:root {
  --bg:#f6f8f7; --surface:#fff; --soft:#e8eeec; --line:#d5dedc;
  --ink:#0f1d24; --muted:#53656c; --accent:#0c6a64; --accent-soft:#d6ebe8; --loss:#b07a24;
  --display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --body:"Public Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --header-height:88px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark) {
  :root { --bg:#0c1418; --surface:#121e24; --soft:#16252c; --line:#2c4047; --ink:#e6eced; --muted:#a0b2b8; --accent:#78cabc; --accent-soft:#143634; --loss:#d9a54c; color-scheme:dark; }
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header-height) + 24px); }
body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.65 var(--body); -webkit-font-smoothing:antialiased; }
button,input,textarea { font:inherit; }
button,a,input,textarea,summary { -webkit-tap-highlight-color:transparent; }
a { color:inherit; }
button { cursor:pointer; }
img,svg { max-width:100%; }
img { display:block; height:auto; }
button { color:inherit; }
:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
::selection { background:var(--accent); color:var(--bg); }
h1,h2,h3,h4,p { margin:0; }
h1,h2,h3,h4 { font-family:var(--display); font-stretch:108%; text-wrap:balance; font-weight:650; }
h1 { font-size:clamp(2.4rem,6.5vw,6.4rem); line-height:1.01; letter-spacing:-.05em; }
h2 { font-size:clamp(2.1rem,4.2vw,4rem); line-height:1.07; letter-spacing:-.045em; }
h3 { font-size:1.35rem; line-height:1.2; letter-spacing:-.025em; }
main { min-width:0; animation:page-entry .35s ease both; }
.container { width:100%; max-width:1380px; margin-inline:auto; padding-inline:48px; }
.section { padding-block:112px; }
.eyebrow,.micro { font:400 .72rem/1.6 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.eyebrow { display:block; color:var(--accent); margin-bottom:24px; }
.micro { color:var(--muted); }
.lede { color:var(--muted); font-size:clamp(1.03rem,1.3vw,1.18rem); line-height:1.7; max-width:50ch; }
.accent { color:var(--accent); }
.mint { color:#78cabc; }
.note { font-size:.78rem; color:var(--muted); line-height:1.65; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:100; top:12px; left:20px; padding:12px 20px; background:var(--ink); color:var(--bg); transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
.site-header { position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--bg) 94%,transparent); border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent); backdrop-filter:blur(18px); }
.header-inner { min-height:var(--header-height); display:flex; align-items:center; justify-content:space-between; gap:32px; }
.brand { display:inline-flex; align-items:center; gap:10px; text-decoration:none; flex-shrink:0; }
.logo-mark { width:38px; height:38px; display:block; }
.logo-word { font:700 1.3rem var(--display); font-stretch:112%; letter-spacing:-.01em; }
.logo-word span { color:#22a98c; }
.nav-panel { display:flex; align-items:center; gap:26px; }
.nav-panel>a:not(.btn) { font-size:.83rem; font-weight:500; text-decoration:none; padding-block:8px; position:relative; white-space:nowrap; }
.nav-panel>a:not(.btn)::after { content:""; position:absolute; bottom:1px; left:0; right:0; height:1px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.nav-panel>a:hover::after,.nav-panel>a[aria-current="page"]::after { transform:scaleX(1); }
.nav-panel>a[aria-current="page"] { color:var(--accent); }
.menu-toggle { display:none; }
.actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:54px; padding:14px 24px; border:1px solid transparent; border-radius:999px; text-decoration:none; font-size:.85rem; font-weight:600; line-height:1.4; transition:background .2s,color .2s,border-color .2s; }
.btn-primary,.btn-small { background:var(--ink); color:var(--bg); }
.btn-primary:hover,.btn-small:hover { background:var(--accent); color:var(--bg); }
.btn-small { min-height:43px; padding:11px 18px; font-size:.78rem; gap:12px; }
.btn-outline { border-color:color-mix(in srgb,var(--ink) 35%,transparent); color:var(--ink); background:transparent; }
.btn-outline:hover { border-color:var(--ink); background:color-mix(in srgb,var(--ink) 4%,transparent); }
.btn-text { padding-inline:0; border-radius:0; background:transparent; }
.btn-light { background:#e6eced; color:#0c1418; }
.btn-light:hover { background:#78cabc; }
.arrow { display:inline-block; flex-shrink:0; transition:transform .25s; font-size:1.1em; }
a:hover .arrow,button:hover .arrow { transform:translate(2px,-2px); }
.text-link { display:inline-flex; align-items:center; gap:24px; text-decoration:none; font-size:.87rem; font-weight:600; padding-block:10px; }
.scene { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.scene-image { width:100%; height:100%; object-fit:contain; }
.scene canvas { position:absolute; inset:0; display:block; width:100%; height:100%; }
.hero-content { position:relative; z-index:1; }
.home-hero { --bg:#0c1418; --ink:#f6f8f7; --muted:#d5e0e1; --accent:#9ce0d0; position:relative; isolation:isolate; background:var(--bg); color:var(--ink); overflow:hidden; }
.hero-media { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.hero-poster,.hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 58%; }
.hero-video { opacity:0; transition:opacity .45s ease; }
.is-video-ready .hero-video { opacity:1; }
.hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,18,21,.8),rgba(4,18,21,.68) 55%,rgba(4,18,21,.6)),linear-gradient(0deg,rgba(4,18,21,.25),transparent 55%); }
.home-hero .hero-content { min-height:min(920px,calc(100svh - var(--header-height))); padding-top:88px; padding-bottom:30px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.home-hero h1 { max-width:21ch; width:91%; }
.home-hero .lede { margin-top:30px; max-width:55ch; }
.home-hero .actions { margin-top:32px; }
.hero-foot { width:100%; display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:64px; padding-top:24px; border-top:1px solid color-mix(in srgb,var(--ink) 15%,transparent); }
.hero-tools { display:flex; align-items:center; gap:24px; }
.hero-video-toggle { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:40px; min-width:88px; padding:10px 14px; border:1px solid #ffffff70; border-radius:999px; background:#0c141870; color:var(--ink); font-size:.72rem; line-height:1.3; }
.hero-video-toggle[hidden] { display:none; }
.hero-video-toggle:hover { background:#0c1418b0; border-color:var(--ink); }
.hero-video-toggle:disabled { cursor:default; }
.video-control-icon { display:block; width:10px; height:12px; }
.video-control-icon::before { content:""; display:block; border-left:9px solid currentColor; border-top:6px solid transparent; border-bottom:6px solid transparent; }
.hero-video-toggle[data-state="playing"] .video-control-icon { border-left:3px solid currentColor; border-right:3px solid currentColor; }
.hero-video-toggle[data-state="playing"] .video-control-icon::before,.hero-video-toggle[data-state="unavailable"] .video-control-icon { display:none; }
.scroll-cue { display:inline-flex; align-items:center; gap:24px; text-decoration:none; font-size:.78rem; }
.section-heading { margin-bottom:48px; }
.offering-pair { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.offering { position:relative; min-width:0; min-height:540px; display:flex; flex-direction:column; justify-content:space-between; padding:32px; text-decoration:none; overflow:hidden; }
.offering-market { background:#0c2024; color:#e6eced; }
.offering-tech { --accent:#0c6a64; background:#d6ebe8; color:#0f1d24; }
.offering-image { position:absolute; width:100%; height:100%; inset:0; object-fit:cover; transition:transform .7s ease; }
.offering:hover .offering-image { transform:scale(1.035); }
.offering::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 25%,#0c2024 95%); pointer-events:none; }
.offering-tech::after { background:linear-gradient(transparent 25%,#d6ebe8 95%); }
.offering-index,.offering-copy { position:relative; z-index:1; }
.offering-index { color:inherit; }
.offering-copy h3 { font-size:clamp(2rem,3vw,3rem); }
.offering-copy p { font-size:.98rem; max-width:30ch; margin:16px 0 18px; }
.offering-copy .text-link { width:100%; justify-content:space-between; border-top:1px solid currentColor; padding-top:20px; }
.dark-surface { --bg:#0c1418; --ink:#e6eced; --muted:#a8bdc0; --accent:#78cabc; --line:#314449; background:var(--bg); color:var(--ink); }
.pathway-section { position:relative; overflow:hidden; }
.pathway-heading { display:flex; gap:48px; align-items:flex-start; justify-content:space-between; }
.pathway-heading h2 { max-width:17ch; }
.pathway-art { position:relative; margin:24px -24px 20px; overflow:hidden; }
.pathway-art img { width:100%; }
.pathway-light { position:absolute; top:20%; left:40%; width:26%; height:60%; border-radius:50%; background:radial-gradient(ellipse,#78cabc18,transparent 70%); animation:breathe 7s ease-in-out infinite; pointer-events:none; }
.pathway-labels { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px; }
.pathway-labels li { display:grid; gap:10px; font-size:.95rem; padding-top:20px; border-top:1px solid var(--line); }
.pathway-labels span { font:.7rem var(--mono); color:var(--accent); }
.closing { max-width:1100px; }
.closing h2 { max-width:24ch; }
.closing .actions,.closing>.btn { margin-top:32px; }
.closing>.lede { margin-top:24px; }
.page-hero { position:relative; overflow:hidden; }
.hero-split { display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:40px; padding-block:88px; min-height:690px; }
.hero-copy { min-width:0; position:relative; z-index:1; }
.hero-copy h1 { font-size:clamp(2.4rem,5.9vw,5.8rem); }
.hero-copy .lede { margin-top:28px; }
.hero-copy .actions { margin-top:30px; }
.market-hero { background:var(--soft); }
.market-hero-visual { aspect-ratio:1; position:relative; background:#0c2024; overflow:hidden; border-radius:50%; }
.market-hero-visual .scene { inset:-5%; }
.visual-key { position:absolute; bottom:25%; left:0; right:0; text-align:center; color:#c0d8d5; font-size:.65rem; }
.buyer-layout { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.section-copy h2 { max-width:16ch; }
.section-copy .lede { margin:26px 0; }
.criteria-explorer { padding:54px 28px 36px; min-height:400px; position:relative; overflow:hidden; background:var(--soft); }
.criteria-explorer>.micro { position:relative; display:block; margin-bottom:44px; }
.criteria-orbit { position:absolute; inset:-140px -80px 0 0; pointer-events:none; opacity:.45; }
.criteria-orbit span { position:absolute; left:50%; top:50%; width:65%; aspect-ratio:1; border:1px solid var(--line); border-radius:50%; transform:translate(-50%,-50%); }
.criteria-orbit span:nth-child(2) { width:90%; }.criteria-orbit span:nth-child(3) { width:115%; }
.criteria-orbit i { position:absolute; width:11px; height:11px; top:25%; left:62%; background:var(--accent); border-radius:50%; box-shadow:0 0 0 10px color-mix(in srgb,var(--accent) 8%,transparent); animation:breathe 5s ease-in-out infinite; }
.criteria-tabs { position:relative; display:flex; gap:8px; flex-wrap:wrap; margin-bottom:32px; }
.criteria-tabs button { padding:8px 13px; border:1px solid var(--line); border-radius:999px; background:var(--bg); font-size:.77rem; transition:background .2s,color .2s; }
.criteria-tabs button[aria-selected="true"] { background:var(--ink); border-color:var(--ink); color:var(--bg); }
.criteria-panel { position:relative; min-height:115px; padding-top:24px; border-top:1px solid var(--line); }
.criteria-panel h3 { font-size:1.15rem; margin-bottom:12px; }
.criteria-panel p { font-size:.91rem; max-width:40ch; color:var(--muted); }
.service-lines { display:grid; grid-template-columns:1fr 1fr; column-gap:48px; list-style:none; padding:0; margin:64px 0 0; }
.service-lines li { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); font-size:.94rem; }
.service-lines li>span { color:var(--accent); }
.supplier-layout { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.supplier-visual { position:relative; min-width:0; }
.supplier-visual img { width:100%; }
.supplier-visual>.micro { display:block; margin-top:20px; color:var(--muted); }
.supplier-services { list-style:none; margin:32px 0; padding:0; display:grid; grid-template-columns:1fr 1fr; column-gap:24px; }
.supplier-services li { font-size:.83rem; padding-block:12px; border-bottom:1px solid var(--line); }
.commercial-process { position:relative; list-style:none; margin:64px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; }
.commercial-process::before { content:""; position:absolute; left:0; right:0; top:22px; height:1px; background:var(--line); }
.commercial-process li { position:relative; }
.process-number { display:inline-grid; place-items:center; height:44px; width:44px; border-radius:50%; border:1px solid var(--line); background:var(--bg); font:.7rem var(--mono); color:var(--accent); margin-bottom:28px; }
.commercial-process h3 { font-size:1.2rem; margin-bottom:14px; }
.commercial-process p { font-size:.88rem; color:var(--muted); max-width:27ch; }
.market-close { padding-block:64px; background:var(--accent-soft); }
.inline-closing { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.inline-closing h2 { max-width:19ch; font-size:clamp(1.9rem,3vw,3rem); }
.inline-closing .btn { flex-shrink:0; }
.technology-hero { overflow:hidden; }
.technology-hero .hero-split { grid-template-columns:1.1fr 1fr; min-height:740px; }
.technology-hero h1 { font-size:clamp(2.4rem,5.6vw,5.5rem); }
.technology-visual { position:relative; min-width:0; aspect-ratio:1; }
.technology-visual .scene { inset:-10%; }
.technology-visual .visual-key { bottom:0; color:var(--muted); }
.development-label { display:inline-flex; align-items:center; gap:10px; margin-top:32px; font:.65rem/1.6 var(--mono); letter-spacing:.03em; color:var(--muted); }
.development-label i { width:6px; height:6px; background:#78cabc; border-radius:50%; }
.split-heading { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; margin-bottom:64px; }
.split-heading h2 { max-width:18ch; }
.system-explorer { background:var(--soft); padding:48px; }
.system-flow { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:20px; position:relative; }
.system-flow::before { content:""; position:absolute; left:10%; right:10%; top:45px; height:1px; background:var(--line); }
.system-flow::after { content:""; position:absolute; left:10%; top:43px; width:5px; height:5px; background:var(--accent); border-radius:50%; box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 10%,transparent); animation:system-travel 9s linear infinite; }
.system-flow button { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:22px; border:0; padding:0; background:transparent; font-size:.8rem; }
.system-node { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:90px; height:90px; border:1px solid var(--line); border-radius:50%; background:var(--bg); transition:border-color .25s,box-shadow .25s; }
.system-node i { width:26px; height:3px; background:var(--muted); transform:skewY(-12deg); transition:width .3s; }
.system-node i:nth-child(2) { width:33px; background:var(--accent); }
.system-node i:nth-child(3) { width:20px; }
.system-flow button[aria-selected="true"] .system-node { border-color:var(--accent); box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 7%,transparent); }
.system-flow button[aria-selected="true"] .system-node i { animation:signal 3s ease-in-out infinite; }
.system-step { display:grid; gap:6px; text-align:center; }
.system-step .micro { font-size:.6rem; }
.system-panel { display:grid; grid-template-columns:.7fr 1fr 1.5fr; gap:24px; align-items:start; margin-top:44px; padding-top:32px; border-top:1px solid var(--line); min-height:134px; }
.system-panel h3 { font-size:1.18rem; }
.system-panel p { color:var(--muted); font-size:.91rem; max-width:42ch; }
.system-caption { margin-top:20px; max-width:90ch; }
.capabilities-section { padding-bottom:80px; }
.capability { display:grid; grid-template-columns:44px 1fr 1.3fr auto; gap:28px; align-items:center; padding-block:34px; border-top:1px solid var(--line); }
.capability:last-child { border-bottom:1px solid var(--line); }
.capability h3 { font-size:1.25rem; }
.capability p { font-size:.91rem; color:var(--muted); max-width:42ch; }
.capability-icon { color:var(--accent); }
.capability-icon svg { display:block; }
.status-pill { border:1px solid var(--line); padding:5px 10px; border-radius:999px; font:.62rem/1.5 var(--mono); letter-spacing:.03em; text-transform:uppercase; white-space:nowrap; }
#try { padding-block:32px; }
.calc-wrap { background:var(--soft); padding:48px; display:grid; grid-template-columns:1fr 1.15fr; gap:64px; align-items:start; }
.calc-wrap>* { min-width:0; }
.calc-intro { display:grid; gap:22px; }
.calc-intro .eyebrow { margin:0; }
.calc-intro h2 { font-size:clamp(2rem,3.2vw,3.1rem); }
.calc { background:var(--surface); padding:28px; display:grid; gap:20px; }
.group { display:grid; gap:10px; }
.group-label { font:.65rem var(--mono); text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
.pills { display:flex; flex-wrap:wrap; gap:6px; }
.pills input { position:absolute; opacity:0; pointer-events:none; }
.pills label { padding:8px 12px; border:1px solid var(--line); border-radius:999px; font-size:.76rem; cursor:pointer; user-select:none; }
.pills input:checked+label { background:var(--ink); color:var(--bg); border-color:var(--ink); }
.pills input:focus-visible+label { outline:2px solid var(--accent); outline-offset:3px; }
.result { display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:20px; }
.result b { font:650 3rem/1 var(--display); letter-spacing:-.04em; color:var(--accent); font-variant-numeric:tabular-nums; }
.result span { color:var(--muted); font-size:.8rem; }
.bar { height:12px; display:flex; overflow:hidden; border-radius:999px; background:var(--soft); }
.bar span { height:100%; transition:width .35s; }.b-net { background:var(--accent); }.b-loss { background:var(--loss); }
.legend { display:flex; gap:16px; flex-wrap:wrap; font-size:.7rem; color:var(--muted); }
.legend i { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; }
.calc .note { font-size:.7rem; }
.prototype-context { padding:0 0 32px; }
details>summary { display:flex; align-items:center; justify-content:space-between; gap:20px; list-style:none; cursor:pointer; padding-block:20px; font-size:.88rem; border-bottom:1px solid var(--line); }
summary::-webkit-details-marker { display:none; }summary>span { transition:transform .2s; }details[open]>summary>span { transform:rotate(45deg); }
.prototype-details { padding-block:28px; font-size:.85rem; color:var(--muted); }
.prototype-details>p { max-width:75ch; }
.prototype-details dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin:28px 0 0; }
.prototype-details dt { font:650 2.1rem var(--display); color:var(--ink); }.prototype-details dd { margin:10px 0 0; max-width:30ch; }
.technology-close { background:var(--accent-soft); margin-top:64px; }
.company-hero { background:var(--soft); }
.company-hero .hero-content { padding-top:100px; padding-bottom:100px; min-height:760px; }
.company-hero h1 { max-width:23ch; font-size:clamp(2.5rem,5.5vw,5.4rem); }
.company-hero .lede { margin-top:30px; max-width:49ch; }
.company-hero .text-link { margin-top:24px; }
.scene-company { top:24%; left:32%; right:-24%; bottom:-10%; opacity:.5; }
.story-layout { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.story-copy>.lede { font-size:1.15rem; }
.founder-story { margin-top:40px; }.founder-story>div { display:grid; gap:16px; padding-top:24px; color:var(--muted); font-size:.88rem; }
.contact-section { padding-top:32px; }
.enquiry-form { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.enquiry-types { border:0; margin:0; padding:0; min-width:0; }
.enquiry-types label { position:relative; display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding:30px 20px; cursor:pointer; transition:background .2s; }
.enquiry-types label:last-child { border-bottom:1px solid var(--line); }
.enquiry-types label:has(input:checked) { background:var(--accent-soft); }
.enquiry-types input { appearance:none; width:18px; height:18px; flex-shrink:0; border:1px solid var(--muted); border-radius:50%; margin:0; }
.enquiry-types input:checked { border:5px solid var(--accent); }
.enquiry-types label>span { display:grid; flex:1; gap:10px; font-family:var(--display); font-size:1.13rem; line-height:1.4; font-weight:550; }
.enquiry-types .micro { font-size:.6rem; }.enquiry-types label>i { font-style:normal; font-size:1.2rem; }
.enquiry-fields { min-width:0; display:grid; gap:24px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.field { min-width:0; display:grid; gap:8px; }
.field>label { font-size:.79rem; }.field label>span { color:var(--muted); }
.field input,.field textarea { width:100%; min-width:0; border:0; border-bottom:1px solid var(--muted); border-radius:0; background:transparent; padding:10px 0; color:var(--ink); font-size:1rem; }
.field textarea { resize:vertical; min-height:120px; }
.field-hint { font-size:.73rem; color:var(--muted); }
.enquiry-fields>.btn { justify-self:start; }
.enquiry-fields>.note { margin-top:-10px; }
.contact-direct { display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:72px; padding-top:28px; border-top:1px solid var(--line); }
.contact-direct>a { text-decoration:none; font-size:1.05rem; }.contact-direct>a:hover { text-decoration:underline; }
.copy { border:1px solid var(--line); border-radius:999px; background:transparent; padding:8px 14px; font-size:.73rem; }
.copy:hover { border-color:var(--ink); }
.contact-direct p { font-size:.78rem; color:var(--muted); margin-left:auto; max-width:45ch; }
.site-footer { padding-block:54px 28px; border-top:1px solid var(--line); }
.footer-top { display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:space-between; padding-bottom:54px; }
.footer-top>p { font-family:var(--display); font-size:1.1rem; }.footer-email { text-decoration:none; font-size:.85rem; }
.footer-bottom { border-top:1px solid var(--line); padding-top:24px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; font-size:.75rem; color:var(--muted); }
.footer-bottom nav { display:flex; flex-wrap:wrap; gap:22px; }.footer-bottom a { text-decoration:none; }.footer-bottom a:hover { color:var(--accent); }
.js .reveal[data-pending] { opacity:0; transform:translateY(24px); }
.reveal { transition:opacity .6s ease,transform .6s cubic-bezier(.2,.65,.3,1); }
@keyframes page-entry { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@keyframes breathe { 50% { opacity:.5; transform:scale(.96); } }
@keyframes signal { 50% { width:18px; } }
@keyframes system-travel { to { left:90%; } }
@keyframes system-travel-vertical { to { top:calc(100% - 30px); } }
@view-transition { navigation:auto; }
::view-transition-old(root) { animation:.2s ease both fade-out; }
::view-transition-new(root) { animation:.3s ease both page-entry; }
@keyframes fade-out { to { opacity:0; } }
@media (min-width:1800px) { .home-hero .hero-content { min-height:900px; } }
@media (max-width:1100px) {
  .container { padding-inline:32px; }.nav-panel { gap:20px; }.header-inner { gap:24px; }
  .buyer-layout,.supplier-layout { gap:48px; }.hero-split { gap:24px; }.offering { min-height:500px; }
  .capability { grid-template-columns:32px 1fr 1.3fr; gap:20px; }.capability .status-pill { grid-column:2; justify-self:start; }
  .enquiry-form,.story-layout,.split-heading { gap:48px; }.calc-wrap { gap:32px; padding:32px; }
}
@media (max-width:980px) {
  :root { --header-height:76px; }
  .header-inner { position:relative; flex-wrap:wrap; gap:0; padding-block:18px; }
  .nav-panel { width:100%; flex-wrap:wrap; padding-top:24px; padding-bottom:10px; }
  .js .nav-panel { display:none; position:absolute; top:100%; left:0; width:100%; padding:28px 32px 36px; flex-direction:column; align-items:stretch; gap:8px; background:var(--bg); border-bottom:1px solid var(--line); box-shadow:0 24px 28px #0000000b; max-height:calc(100svh - 76px); overflow:auto; }
  .js .nav-panel.is-open { display:flex; }.js .nav-panel>a:not(.btn) { font-size:1.2rem; padding:12px 0; }.js .nav-panel>.btn { align-self:flex-start; margin-top:12px; }
  .js .menu-toggle { display:flex; align-items:center; gap:12px; background:transparent; border:0; padding:10px 0 10px 12px; font-size:.78rem; }
  .menu-icon { display:block; width:21px; height:12px; position:relative; border-top:1px solid currentColor; border-bottom:1px solid currentColor; transition:height .2s; }
  .menu-toggle[aria-expanded="true"] .menu-icon { border:0; }.menu-toggle[aria-expanded="true"] .menu-icon::before,.menu-toggle[aria-expanded="true"] .menu-icon::after { content:""; position:absolute; width:21px; height:1px; background:currentColor; top:5px; transform:rotate(45deg); }.menu-toggle[aria-expanded="true"] .menu-icon::after { transform:rotate(-45deg); }
  .section { padding-block:88px; }.offering { padding:26px; min-height:460px; }
  .hero-split { grid-template-columns:1fr 1fr; min-height:600px; padding-block:64px; }.hero-copy h1 { font-size:clamp(2.4rem,6vw,4rem); }
  .home-hero .hero-content { padding-top:72px; }.home-hero h1 { width:100%; }.home-hero .lede { max-width:48ch; }
  .system-explorer { padding:32px 24px; }.system-panel { grid-template-columns:1fr 1.5fr; }.system-panel>.micro { grid-column:1/-1; }
  .technology-hero .hero-split { min-height:650px; }.technology-hero h1 { font-size:clamp(2.4rem,5.8vw,4rem); }
  .company-hero .hero-content { min-height:670px; padding-block:88px; }
}
@media (max-width:760px) {
  .container { padding-inline:24px; }.section { padding-block:72px; }.section-heading { margin-bottom:36px; }
  .home-hero .hero-content { min-height:calc(100svh - var(--header-height)); padding-top:64px; padding-bottom:28px; }.home-hero h1 { max-width:19ch; font-size:clamp(2.6rem,7.5vw,4rem); }
  .hero-poster,.hero-video { object-position:65% 50%; }.hero-foot { margin-top:48px; }.hero-foot>.micro { max-width:25ch; font-size:.6rem; }
  .offering-pair { gap:16px; }.offering { min-height:430px; padding:24px; }.offering-copy h3 { font-size:2rem; }.offering-copy p { font-size:.88rem; }.offering-index { font-size:.6rem; }.offering .text-link { font-size:.76rem; gap:14px; }
  .pathway-heading { display:block; }.pathway-art { margin:32px -60px; }.pathway-labels { gap:16px; }.pathway-labels li { font-size:.77rem; }
  .hero-split,.technology-hero .hero-split { grid-template-columns:1fr; gap:40px; padding-block:64px; }.hero-copy h1,.technology-hero h1 { font-size:clamp(2.6rem,8vw,4rem); max-width:17ch; }
  .market-hero-visual { width:76%; max-width:440px; justify-self:center; }.market-hero .hero-copy { max-width:590px; }
  .buyer-layout,.supplier-layout { grid-template-columns:1fr; gap:44px; }.section-copy h2 { max-width:21ch; }.criteria-explorer { min-height:350px; }.criteria-explorer>.micro { margin-bottom:28px; }
  .service-lines { margin-top:40px; gap:0 28px; }.supplier-visual { max-width:440px; justify-self:center; }.supplier-visual>.micro { font-size:.64rem; }.supplier-layout .section-copy { grid-row:1; }
  .commercial-process { gap:24px; margin-top:44px; }.commercial-process p { font-size:.8rem; }.commercial-process h3 { font-size:1rem; }
  .inline-closing { display:grid; gap:28px; }.inline-closing .btn { justify-self:start; }.market-close { padding-block:48px; }
  .technology-visual { max-width:500px; width:100%; justify-self:center; margin-block:-20px 10px; }.technology-hero .hero-split { gap:16px; }
  .split-heading { grid-template-columns:1fr; gap:28px; margin-bottom:40px; }.split-heading h2 { max-width:23ch; }
  .system-panel { grid-template-columns:1fr; gap:12px; }.system-panel>.micro { grid-column:auto; }.system-panel h3 { max-width:none; }
  .system-node { width:68px; height:68px; }.system-flow::before { top:34px; }.system-flow::after { top:32px; }.system-flow button { font-size:.65rem; gap:16px; }.system-flow { gap:10px; }
  .capability { grid-template-columns:28px 1fr; gap:16px 20px; }.capability p,.capability .status-pill { grid-column:2; }.capability .status-pill { justify-self:start; }.capabilities-section { padding-bottom:48px; }
  .calc-wrap { grid-template-columns:1fr; gap:32px; }.calc-intro h2 { max-width:20ch; }.prototype-details dl { gap:24px; }
  .technology-close { margin-top:32px; }.company-hero .hero-content { min-height:640px; padding-block:72px; }.company-hero h1 { max-width:21ch; font-size:clamp(2.6rem,7.2vw,4rem); }.scene-company { top:42%; left:0; right:-50%; opacity:.35; }
  .story-layout,.enquiry-form { grid-template-columns:1fr; gap:40px; }.story-copy>.lede { font-size:1.05rem; }.contact-section { padding-top:16px; }.contact-direct { margin-top:48px; }.contact-direct p { margin-left:0; max-width:none; width:100%; }
  .footer-top { gap:24px; padding-bottom:36px; }.footer-top>p { font-size:.98rem; }.footer-top>.footer-email { width:100%; }.footer-bottom nav { gap:16px; }
}
@media (max-width:520px) {
  .container { padding-inline:20px; }.header-inner { padding-block:16px; }.logo-mark { height:34px; width:34px; }.logo-word { font-size:1.18rem; }.js .nav-panel { padding-inline:20px; }
  .eyebrow { font-size:.65rem; margin-bottom:20px; }.home-hero .hero-content { padding-top:48px; }.home-hero h1 { font-size:clamp(2.3rem,9.2vw,3rem); width:100%; letter-spacing:-.045em; }.home-hero .lede { font-size:.96rem; margin-top:26px; }.home-hero .actions { gap:10px; margin-top:26px; }.home-hero .btn { font-size:.77rem; min-height:50px; padding-inline:20px; }.hero-foot { margin-top:40px; }.scroll-cue { gap:12px; }
  .hero-foot { flex-wrap:wrap; gap:18px; }.hero-foot>.micro { max-width:none; }.hero-tools { width:100%; justify-content:space-between; gap:16px; }
  .offering-pair { grid-template-columns:1fr; gap:20px; }.offering { min-height:480px; padding:28px; }.offering-copy h3 { font-size:2.3rem; }.offering-copy p { font-size:.95rem; }.offering .text-link { font-size:.83rem; }
  .pathway-art { margin:24px -100px; }.pathway-labels { grid-template-columns:1fr; gap:0; position:relative; padding-left:28px; }.pathway-labels::before { content:""; position:absolute; left:4px; width:1px; top:20px; bottom:20px; background:var(--line); }.pathway-labels li { position:relative; display:flex; align-items:center; gap:24px; padding:18px 0; font-size:1rem; border-top:0; }.pathway-labels li::before { content:""; position:absolute; width:7px; height:7px; background:var(--accent); border-radius:50%; left:-27px; }
  .closing h2 { max-width:19ch; }.closing .actions { align-items:flex-start; flex-direction:column; gap:14px; }
  .hero-split,.technology-hero .hero-split { padding-block:52px; }.hero-copy h1,.technology-hero h1 { font-size:clamp(2.3rem,9.8vw,3.1rem); }.hero-copy .lede { font-size:1rem; }.market-hero-visual { width:90%; }
  .criteria-explorer { padding:32px 22px; }.criteria-tabs { gap:7px; }.criteria-tabs button { font-size:.7rem; padding-inline:11px; }.criteria-panel p { font-size:.85rem; }
  .service-lines { grid-template-columns:1fr; }.supplier-services { gap:0 20px; }.supplier-services li { font-size:.78rem; }
  .commercial-process { grid-template-columns:1fr; gap:32px; padding-left:64px; }.commercial-process::before { left:21px; width:1px; height:auto; top:20px; bottom:0; right:auto; }.commercial-process li { padding-top:4px; }.process-number { position:absolute; left:-64px; top:0; margin:0; }.commercial-process p { max-width:35ch; font-size:.88rem; }.commercial-process h3 { font-size:1.15rem; }
  .system-explorer { padding:28px 20px; }.system-flow { grid-template-columns:1fr; gap:28px; padding-left:0; }.system-flow::before { left:30px; right:auto; top:30px; bottom:30px; width:1px; height:auto; }.system-flow::after { left:28px; top:30px; animation-name:system-travel-vertical; }.system-flow button { flex-direction:row; gap:24px; text-align:left; font-size:.9rem; }.system-node { width:60px; height:60px; flex-shrink:0; }.system-step { text-align:left; }.system-panel { margin-top:32px; padding-top:24px; }.system-caption { font-size:.7rem; }
  .capability { padding-block:28px; }.capability h3 { font-size:1.1rem; }.capability p { font-size:.84rem; }
  .calc-wrap { padding:28px 20px; }.calc { padding:22px 16px; }.calc-intro .lede { font-size:1rem; }.calc-intro h2 { font-size:2rem; }.result b { font-size:2.7rem; }.pills label { padding:8px 10px; font-size:.7rem; }.prototype-details dl { grid-template-columns:1fr; }.prototype-details dl>div { display:grid; grid-template-columns:70px 1fr; gap:24px; }.prototype-details dd { margin:0; }
  .company-hero .hero-content { min-height:650px; padding-block:56px; }.company-hero h1 { font-size:clamp(2.3rem,8.6vw,3rem); max-width:18ch; }.company-hero .lede { font-size:1rem; }.scene-company { left:-10%; right:-70%; }
  .enquiry-types label { padding:24px 16px; gap:16px; }.enquiry-types label>span { font-size:1rem; }.enquiry-types label>i { display:none; }.field-row { grid-template-columns:1fr; }.contact-direct { gap:16px; }.contact-direct>a { font-size:.93rem; }
  .footer-top { align-items:flex-start; flex-direction:column; gap:20px; }.footer-top>p { font-size:1.05rem; }.footer-bottom nav { width:100%; gap:12px 20px; }.footer-bottom { line-height:1.9; }
}
@media (max-width:360px) { .home-hero h1,.hero-copy h1,.technology-hero h1,.company-hero h1 { font-size:2.18rem; }.btn { padding-inline:20px; font-size:.79rem; gap:14px; }.offering { min-height:440px; padding:24px; }.offering-copy h3 { font-size:2rem; }.eyebrow { letter-spacing:.04em; } }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }*,*::before,*::after { animation:none!important; transition:none!important; }.js .reveal[data-pending] { opacity:1; transform:none; }.offering:hover .offering-image { transform:none; }::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) { animation:none!important; }
}
@media print { .site-header,.site-footer,.scene,.actions,.menu-toggle { display:none; }.js .reveal[data-pending] { opacity:1; transform:none; }.section { padding-block:28px; }body { background:#fff; color:#000; } }
