:root {
  --ink: #111a1a;
  --ink-2: #172323;
  --paper: #f3f2ed;
  --paper-2: #e9eae1;
  --white: #fbfbf8;
  --line: #c8ccc3;
  --muted: #626b68;
  --lime: #cbf22c;
  --lime-soft: #e8fb9a;
  --orange: #ff6a3c;
  --serif: "Newsreader", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --mono: "DM Mono", Consolas, monospace;
  --max: 1240px;
  --ease-out: cubic-bezier(.23,1,.32,1);
  --ease-in-out: cubic-bezier(.77,0,.175,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.55; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }
::selection { background: var(--lime); color: var(--ink); }

.shell { width: min(calc(100% - 48px), var(--max)); margin: 0 auto; }
.section-space { padding: 128px 0; }
.sr-only { position: absolute; overflow: hidden; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; clip: rect(0,0,0,0); }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 100; padding: 10px 14px; background: var(--lime); color: var(--ink); font-weight: 800; transition: top .2s var(--ease-out); }
.skip-link:focus { top: 16px; }

.site-header { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid rgba(17,26,26,.12); background: rgba(243,242,237,.93); backdrop-filter: blur(16px); }
.nav-wrap { min-height: 74px; display: flex; align-items: center; gap: 28px; }
.brand { display:inline-flex; align-items:center; gap:10px; width:fit-content; }
.brand-symbol { display:block; flex:none; width:28px; height:29px; }
.brand-name { display: flex; flex-direction: column; line-height: .75; }
.brand-name b { font-weight: 800; letter-spacing: -.075em; font-size: 1.22rem; }.brand-name small { padding: 6px 0 0 1px; font-size: .52rem; letter-spacing: .4em; font-weight: 700; }
.nav-links { display: flex; align-items: center; gap: 27px; margin-left: auto; font-size: .83rem; font-weight: 700; }
.nav-links a { position: relative; }
.nav-links a:not(.nav-legal)::after { content:""; position:absolute; left:0; bottom:-5px; width:0; height:1px; background:var(--ink); transition:width .2s var(--ease-out); }.nav-links a:hover::after { width:100%; }
.nav-legal { color: var(--muted); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 11px; min-height: 48px; padding: 13px 19px; border: 1px solid var(--lime); background: var(--lime); color: var(--ink); font-size: .86rem; font-weight: 800; cursor: pointer; transition: transform .16s var(--ease-out), background .18s var(--ease-out), border-color .18s var(--ease-out); }
.button:hover { transform: translateY(-2px); border-color: var(--lime-soft); background: var(--lime-soft); }.button:active { transform: scale(.97); }
.button-small { min-height: 39px; padding: 8px 12px; font-size: .78rem; }.button-dark { border-color: var(--ink); background: var(--ink); color: var(--white); }.button-dark:hover { background: #2c3736; border-color: #2c3736; }.button-light { background: var(--white); border-color: var(--white); }.button-outline { border-color: rgba(255,255,255,.48); background: transparent; color: #fff; }.button-outline:hover { color: var(--ink); background: var(--white); border-color: var(--white); }
.menu-toggle { display: none; }

.hero { position: relative; overflow: hidden; padding: 88px 0 28px; background: var(--ink); color: var(--white); }
.hero-grid-lines { position: absolute; inset: 0; opacity: .16; background-image: linear-gradient(rgba(234,242,233,.28) 1px, transparent 1px), linear-gradient(90deg, rgba(234,242,233,.28) 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(90deg, black, transparent 84%); }
.hero::after { content:""; position:absolute; right:-16vw; bottom:-28vw; width:70vw; height:70vw; border: 1px solid rgba(203,242,44,.24); border-radius:50%; box-shadow: 0 0 0 84px rgba(203,242,44,.03), 0 0 0 168px rgba(203,242,44,.025); }
.hero-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr); gap: 6vw; align-items: center; min-height: 645px; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 20px; color: var(--lime); font: 500 .69rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; }.eyebrow span { display: inline-block; width: 18px; height: 1px; background: currentColor; }.eyebrow.dark { color: #65712d; }
h1, h2, h3, p { margin-top: 0; }h1, h2, h3 { line-height: .98; letter-spacing: -.055em; }h1 { max-width: 8.5ch; margin-bottom: 25px; font-size: clamp(4rem, 7.4vw, 7.6rem); font-weight: 700; }h1 em, h2 em { color: var(--lime); font-family: var(--serif); font-style: italic; font-weight: 500; }h2 { max-width: 11ch; margin-bottom: 0; font-size: clamp(2.8rem, 5vw, 5.15rem); font-weight: 700; }h3 { font-size: 1.7rem; }
.hero-lede { max-width: 560px; margin-bottom: 12px; color: #eef3ed; font-size: 1.28rem; font-weight: 600; line-height: 1.42; }.hero-sub { max-width: 570px; margin-bottom: 0; color: #b8c2bc; font-size: .98rem; }.hero-sub strong { color: var(--lime); }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 34px; }.text-link { display: inline-flex; gap: 10px; align-items: center; font-size: .9rem; font-weight: 800; }.text-link span { color: var(--orange); font-size: 1.12em; }.text-link:hover span { transform: translateY(3px); }.text-link.light { color: var(--white); }
.hero-notes { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; max-width: 520px; margin: 62px 0 0; }.hero-notes div { padding-top: 11px; border-top: 1px solid rgba(255,255,255,.22); }.hero-notes dt { margin-bottom: 6px; color: var(--lime); font: 500 .61rem var(--mono); letter-spacing: .08em; }.hero-notes dd { margin: 0; color: #c5cdca; font-size: .68rem; line-height: 1.38; }
.hero-visual { position: relative; align-self: stretch; min-height: 540px; }.sensor-photo-frame { position: absolute; inset: 1.4vw 0 5.8vw 7vw; overflow: hidden; background: #d1d8d6; }.sensor-photo-frame::after { content:""; position:absolute; inset:0; background:linear-gradient(135deg, rgba(17,26,26,.04), rgba(17,26,26,.24)); }.sensor-photo-frame img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; mix-blend-mode: multiply; }.photo-credit { position: absolute; z-index: 1; left: 15px; bottom: 12px; color: rgba(17,26,26,.7); font: .56rem var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.hero-data-card { position: absolute; z-index: 2; left: 0; bottom: 0; width: min(330px, 66%); padding: 14px; border: 1px solid rgba(203,242,44,.68); background: rgba(16,25,26,.96); box-shadow: 18px 18px 0 rgba(16,25,26,.28); }.data-card-top { display:flex; justify-content:space-between; padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,.14); color:#b6c2b9; font: .57rem var(--mono); letter-spacing:.08em; }.data-card-top b { color:var(--lime); font-weight:500; }.hero-data-card svg { width:100%; height:auto; margin: 12px 0 4px; overflow:visible; }.hero-data-card .grid { stroke:#48534d; stroke-width:.6; }.route-cycle { fill:none; stroke:var(--lime); stroke-width:2; }.route-car { fill:none; stroke:#d5dad5; stroke-width:2; stroke-dasharray:3 3; }.cycle-dot { fill:var(--lime); }.car-dot { fill:var(--ink); stroke:#fff; stroke-width:2; }.measure { stroke:var(--orange); stroke-width:1; stroke-dasharray:2 2; }.hero-data-card text { fill:var(--orange); font: 8px var(--mono); }.data-readout { display:flex; justify-content:space-between; gap:5px; color:#b8c1bb; font: .49rem var(--mono); }.data-readout span:not(:last-child)::after { content:"·"; padding-left:5px; color:var(--lime); }
.scroll-prompt { position:relative; z-index:1; display:flex; align-items:center; gap:12px; color:#9aa7a0; font: .6rem var(--mono); letter-spacing:.08em; text-transform:uppercase; }.scroll-prompt i { display:block; width:46px; height:1px; background:var(--lime); }

.intro-section { background: var(--white); }.split-intro { display: grid; grid-template-columns: .9fr 1.1fr; gap: 10vw; }.section-sticky h2 { max-width: 8.8ch; }.intro-copy { padding-top: 4px; }.intro-copy p { max-width: 660px; color: #58605d; font-size: 1.06rem; }.intro-copy .intro-lede { color: var(--ink); font-size: 1.55rem; line-height: 1.38; font-weight: 600; }.intro-copy strong { color: var(--ink); }.evidence-strip { display: flex; flex-wrap: wrap; align-items:center; gap: 10px; margin-top: 38px; color:#62722f; font: .66rem var(--mono); letter-spacing:.05em; text-transform:uppercase; }.evidence-strip i { width:22px; height:1px; background:var(--orange); }

.applications { background: var(--paper-2); }.section-heading { margin-bottom: 52px; }.split-heading { display: grid; grid-template-columns: 1fr .8fr; gap: 8vw; align-items: end; }.split-heading h2 { max-width: 8ch; }.split-heading > p, .product-heading > p { max-width: 460px; margin: 0 0 6px; color:#5f6864; font-size:1.03rem; }.application-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }.application-card { display: flex; flex-direction:column; min-height: 440px; padding: 28px; border: 1px solid #c7ccc4; background:rgba(255,255,255,.32); }.application-card.featured { background: var(--ink); color: var(--white); border-color: var(--ink); }.card-num { margin-bottom: 54px; color:#758078; font: .62rem var(--mono); letter-spacing:.06em; }.featured .card-num { color:var(--lime); }.application-card h3 { max-width:8ch; font-size:1.8rem; }.card-kicker { margin: 18px 0 10px; font-size:.92rem; font-weight:800; }.application-card p:not(.card-kicker) { color:#5e6964; font-size:.91rem; }.featured p:not(.card-kicker) { color:#bec7c1; }.reveal-button { display:flex; align-items:center; justify-content:space-between; width:100%; margin-top:auto; padding: 17px 0 0; border:0; border-top:1px solid currentColor; background:transparent; font-size:.82rem; font-weight:800; text-align:left; cursor:pointer; }.reveal-button span { color:var(--orange); font-size:1.2rem; line-height:1; }.featured .reveal-button span { color:var(--lime); }.reveal-panel { display:none; padding-top: 13px; color:#58635e; font-size:.82rem; }.reveal-panel.open { display:block; }.featured .reveal-panel { color:#d4ddd6; }.reveal-panel ul { margin:0; padding:0 0 0 16px; }.reveal-panel li + li { margin-top:7px; }

.interaction-section { position:relative; overflow:hidden; background:var(--ink); color:var(--white); }.interaction-section::before { content:"URBOMETRY"; position:absolute; top:0; right:-.05em; color:rgba(255,255,255,.025); font-weight:800; font-size:clamp(7rem,18vw,22rem); letter-spacing:-.1em; }.interaction-layout { position:relative; display:grid; grid-template-columns:.76fr 1.24fr; gap:10vw; align-items:center; }.interaction-copy h2 { max-width:8ch; }.interaction-copy > p:not(.eyebrow) { max-width:480px; margin:26px 0; color:#bdc7c0; font-size:1.03rem; }.interaction-timeline { border-top:1px solid #3e4843; }.timeline-header { display:flex; justify-content:space-between; padding: 13px 0; color:#8e9a91; font: .59rem var(--mono); letter-spacing:.08em; }.timeline-header span:last-child { color:var(--lime); }.interaction-timeline ol { margin:0; padding:0; list-style:none; }.interaction-timeline li { display:grid; grid-template-columns:52px 1fr 80px; align-items:center; min-height:75px; border-top:1px solid #3e4843; }.interaction-timeline li:last-child { border-bottom:1px solid #3e4843; }.interaction-timeline li > span { color:var(--lime); font:.62rem var(--mono); }.interaction-timeline li p { margin:0; font-size:1.04rem; }.interaction-timeline li i { position:relative; display:block; width:100%; height:2px; background:#68736b; }.interaction-timeline li i::before { content:""; position:absolute; left:12%; top:50%; width:8px; height:8px; border-radius:50%; background:var(--lime); transform:translateY(-50%); }.interaction-timeline li:nth-child(2) i::before { left:42%; }.interaction-timeline li:nth-child(3) i::before { left:60%; background:var(--orange); }.interaction-timeline li:nth-child(4) i::before { left:76%; background:#fff; }.interaction-timeline li:nth-child(5) i::before { left:89%; }

.urbometry-section { background: var(--white); }.product-heading { display:grid; grid-template-columns:1fr .8fr; gap:8vw; align-items:end; }.product-heading h2 { max-width:10ch; }.workflow-grid { display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }.workflow-grid > div { display:flex; flex-direction:column; min-height:180px; padding:20px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.workflow-grid span { margin-bottom:36px; color:#77817b; font: .61rem var(--mono); }.workflow-grid b { font-size:1.02rem; }.workflow-grid small { margin-top:8px; color:#6f7974; font-size:.76rem; line-height:1.35; }.platform-panel { display:grid; grid-template-columns:1.02fr .98fr; margin-top:22px; background:var(--ink); color:var(--white); }.platform-image { min-height:420px; overflow:hidden; background:#dce2e0; }.platform-image img { width:100%; height:100%; object-fit:cover; object-position:52% center; mix-blend-mode:multiply; opacity:.94; }.platform-copy { display:flex; flex-direction:column; justify-content:center; padding: clamp(34px,5vw,70px); }.platform-copy h3 { max-width:9ch; font-size:clamp(2rem, 3vw, 3.3rem); }.platform-copy > p:not(.eyebrow) { max-width:470px; margin:22px 0; color:#bbc6be; }.signal-list { margin:0; padding:0; list-style:none; }.signal-list li { padding:10px 0 10px 20px; border-top:1px solid #3c4740; color:#e8eee9; font-size:.84rem; }.signal-list li::before { content:"→"; position:absolute; margin-left:-20px; color:var(--lime); }

.projects-section { background:#eef0eb; }.case-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }.case-card { position:relative; min-height:430px; overflow:hidden; background:#1d2723; }.case-card.large { grid-row:span 2; min-height:874px; }.case-card img { width:100%; height:100%; object-fit:cover; opacity:.9; transition:transform .65s var(--ease-out), opacity .45s var(--ease-out); }.case-card:hover img { transform:scale(1.045); opacity:1; }.case-overlay { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:30px; color:#fff; background:linear-gradient(180deg, rgba(10,18,17,0) 25%, rgba(10,18,17,.88) 100%); }.case-overlay > span:first-child { margin-bottom:10px; color:var(--lime); font:.61rem var(--mono); letter-spacing:.08em; text-transform:uppercase; }.case-overlay h3 { font-size:clamp(2rem,3vw,3.5rem); }.case-overlay p { max-width:460px; margin:13px 0 17px; color:#e2e7e2; font-size:.89rem; line-height:1.45; }.case-overlay a { width:fit-content; color:var(--white); border-bottom:1px solid var(--lime); padding-bottom:2px; font-size:.76rem; font-weight:800; }.case-overlay a span { color:var(--lime); }.case-source { color:#ccd4cc; font-size:.67rem; }
.trust-section { padding:44px 0; background:var(--white); border-bottom:1px solid var(--line); }.trust-layout { display:grid; grid-template-columns:200px 1fr; gap:28px; align-items:center; }.trust-layout > p { margin:0; color:#707872; font: .6rem var(--mono); line-height:1.45; letter-spacing:.06em; text-transform:uppercase; }.logo-row { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; align-items:center; }.logo-row img { max-height:48px; max-width:150px; width:auto; filter:grayscale(1) contrast(.75); opacity:.72; }

.method-section { background:var(--paper); }.method-layout { display:grid; grid-template-columns:.74fr 1.26fr; gap:11vw; }.method-intro h2 { max-width:7ch; }.method-intro h2 em { color:#637027; }.method-intro > p:not(.eyebrow) { max-width:310px; margin-top:28px; color:#65706b; }.method-steps { border-top:1px solid #bcc3ba; }.method-steps > div { display:grid; grid-template-columns:56px minmax(150px,.92fr) 1.1fr; gap:18px; padding:26px 0; border-bottom:1px solid #bcc3ba; }.method-steps span { color:#748077; font: .63rem var(--mono); }.method-steps h3 { font-size:1.15rem; letter-spacing:-.03em; }.method-steps p { margin:0; color:#626d67; font-size:.9rem; }

.brief-section { padding:108px 0; background:var(--orange); color:var(--ink); }.brief-layout { display:grid; grid-template-columns:1fr .8fr; gap:10vw; align-items:center; }.brief-copy h2 { max-width:9ch; }.brief-copy h2 em { color:var(--white); }.brief-copy > p:not(.eyebrow) { max-width:500px; margin:25px 0; font-size:1.05rem; font-weight:600; }.brief-meta { display:flex; gap:8px; }.brief-meta span { padding:5px 8px; border:1px solid rgba(17,26,26,.38); font:.6rem var(--mono); letter-spacing:.06em; }.brief-form { padding:28px; background:var(--ink); color:var(--white); }.brief-form label { color:#dae2db; }.brief-form .check-label a { color:var(--lime); }.brief-form .form-note { color:#abb8ae; }.brief-form .form-status { color:var(--lime); }

.contact-section { background:var(--white); }.contact-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:10vw; }.contact-copy h2 { max-width:8ch; }.contact-copy > p:not(.eyebrow) { max-width:440px; margin:28px 0; color:#5d6863; font-size:1.04rem; }.email-link { display:inline-flex; gap:10px; align-items:center; border-bottom:1px solid var(--orange); padding-bottom:2px; font-size:.92rem; font-weight:800; }.email-link span { color:var(--orange); }.contact-form, .brief-form { display:flex; flex-direction:column; gap:13px; }.form-row { display:grid; grid-template-columns:1fr 1fr; gap:13px; }.contact-form label, .brief-form > label { display:block; color:#45504a; font-size:.72rem; font-weight:800; }.contact-form label span, .brief-form label > span { color:var(--orange); }input, textarea, select { width:100%; margin-top:5px; padding:11px 12px; border:1px solid #bdc5bd; border-radius:0; background:#fcfcf9; color:var(--ink); font-size:.91rem; transition:border-color .16s var(--ease-out), box-shadow .16s var(--ease-out); }textarea { resize:vertical; }input:focus, textarea:focus, select:focus { border-color:#66732c; box-shadow:0 0 0 2px rgba(203,242,44,.52); outline:0; }.check-label { display:flex !important; align-items:flex-start; gap:9px; margin-top:3px; line-height:1.4; }.check-label input { flex:none; width:14px; height:14px; margin:3px 0 0; accent-color:#607026; }.check-label span { color:#536059; font-size:.7rem; font-weight:500; }.check-label a { text-decoration:underline; text-underline-offset:2px; }.form-note, .form-status { margin:0; color:#68746c; font-size:.67rem; line-height:1.45; }.form-status { min-height:1.45em; color:#415226; font-weight:700; }.contact-form .button { align-self:flex-start; margin-top:3px; }

.site-footer { padding:54px 0 30px; background:#0c1211; color:#fff; }.footer-layout { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; align-items:start; }.footer-brand .brand-symbol { width:28px; height:29px; }.footer-layout p { margin:17px 0 0; color:#a1ada4; font-size:.78rem; }.footer-links, .footer-legal { display:flex; flex-direction:column; align-items:flex-start; gap:9px; font-size:.76rem; }.footer-links a:hover, .footer-legal a:hover { color:var(--lime); }.footer-legal { color:#c0cac2; }.footer-legal p { margin-top:7px; font-size:.63rem; }.text-button { border:0; padding:0; background:transparent; color:inherit; font-size:inherit; cursor:pointer; }.text-button:hover { color:var(--lime); }

.cookie-banner { position:fixed; z-index:50; right:20px; bottom:20px; width:min(440px, calc(100vw - 40px)); padding:20px; background:var(--ink); color:#e2eae4; box-shadow:0 14px 50px rgba(0,0,0,.25); }.cookie-banner p { margin:0 0 16px; font-size:.75rem; line-height:1.5; }.cookie-banner p strong { display:block; margin-bottom:5px; color:var(--white); font-size:.86rem; }.cookie-banner > div { display:flex; gap:8px; margin-bottom:12px; }.cookie-banner > a { color:var(--lime); font-size:.7rem; text-decoration:underline; text-underline-offset:3px; }.consent-dialog { width:min(540px, calc(100vw - 36px)); padding:0; border:0; background:var(--white); color:var(--ink); box-shadow:0 16px 70px rgba(0,0,0,.34); }.consent-dialog::backdrop { background:rgba(10,15,14,.72); }.consent-dialog form { position:relative; padding:38px; }.consent-dialog h2 { max-width:9ch; font-size:clamp(2.2rem,5vw,3.4rem); }.consent-dialog p:not(.eyebrow) { color:#5e6762; }.dialog-close { position:absolute; right:15px; top:11px; border:0; background:transparent; color:var(--ink); font-size:2rem; cursor:pointer; }.consent-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:23px; }

.legal-page { background:var(--white); }.legal-hero { padding:106px 0 75px; background:var(--ink); color:var(--white); }.legal-hero h1 { max-width:11ch; margin:0; font-size:clamp(3.4rem,6vw,6.2rem); }.legal-content { display:grid; grid-template-columns:minmax(190px,.45fr) minmax(0,1fr); gap:8vw; padding:84px 0 120px; }.legal-toc { position:sticky; top:100px; align-self:start; border-top:1px solid var(--line); }.legal-toc a { display:block; padding:10px 0; border-bottom:1px solid var(--line); color:#58645d; font-size:.8rem; }.legal-toc a:hover { color:var(--ink); }.legal-prose { max-width:800px; }.legal-prose section + section { margin-top:55px; }.legal-prose h2 { max-width:none; margin-bottom:18px; font-size:clamp(1.9rem,3vw,3rem); }.legal-prose h3 { margin:28px 0 9px; font-size:1.18rem; letter-spacing:-.03em; }.legal-prose p, .legal-prose li { color:#4d5852; }.legal-prose p { margin-bottom:16px; }.legal-prose a { color:#4f6220; text-decoration:underline; text-underline-offset:3px; }.legal-prose ul { padding-left:19px; }.legal-prose li + li { margin-top:6px; }.legal-box { margin:25px 0; padding:22px; border-left:3px solid var(--lime); background:var(--paper); }.legal-box p { margin:0; color:var(--ink); }.legal-note { color:#6d7871!important; font-size:.82rem; }

.reveal-on-scroll { opacity:0; transform:translateY(18px); transition:opacity .65s var(--ease-out), transform .65s var(--ease-out); }.reveal-on-scroll.in-view { opacity:1; transform:none; }.application-grid > .reveal-on-scroll:nth-child(2), .case-grid > .reveal-on-scroll:nth-child(2) { transition-delay:.08s; }.application-grid > .reveal-on-scroll:nth-child(3), .case-grid > .reveal-on-scroll:nth-child(3) { transition-delay:.16s; }.case-grid > .reveal-on-scroll:nth-child(4) { transition-delay:.22s; }

@media (max-width: 1020px) {
  .nav-links { gap:17px; }.nav-legal { display:none; }.hero-layout { grid-template-columns:.9fr 1.1fr; gap:4vw; }.hero-visual { min-height:480px; }.sensor-photo-frame { inset:1vw 0 4.5vw 4vw; }.application-card { padding:22px; }.card-num { margin-bottom:38px; }.interaction-layout, .method-layout { gap:7vw; }.legal-content { gap:5vw; }
}
@media (max-width: 820px) {
  .shell { width:min(calc(100% - 36px), var(--max)); }.section-space { padding:84px 0; }.site-header { background:rgba(243,242,237,.97); }.nav-wrap { min-height:66px; }.nav-cta { display:none; }.menu-toggle { display:flex; flex-direction:column; justify-content:center; gap:6px; width:42px; height:42px; margin-left:auto; border:0; background:transparent; cursor:pointer; }.menu-toggle i { display:block; width:22px; height:1.5px; background:var(--ink); transition:transform .2s var(--ease-out); }.menu-toggle[aria-expanded="true"] i:first-of-type { transform:translateY(3.75px) rotate(45deg); }.menu-toggle[aria-expanded="true"] i:last-of-type { transform:translateY(-3.75px) rotate(-45deg); }.nav-links { position:absolute; top:66px; right:0; left:0; display:none; align-items:stretch; gap:0; padding:10px 18px 18px; border-bottom:1px solid var(--line); background:var(--paper); }.nav-links.open { display:flex; }.nav-links a { padding:12px 0; border-bottom:1px solid var(--line); font-size:.93rem; }.nav-links a::after { display:none; }.hero { padding-top:64px; }.hero-layout, .split-intro, .split-heading, .interaction-layout, .product-heading, .platform-panel, .method-layout, .brief-layout, .contact-layout, .legal-content { grid-template-columns:1fr; gap:42px; }.hero-layout { min-height:0; }.hero-visual { min-height:440px; }.sensor-photo-frame { inset:0 0 4vw 14vw; }.hero-data-card { left:0; width:min(340px,75%); }.hero-notes { margin-top:43px; }.scroll-prompt { display:none; }.section-heading { margin-bottom:35px; }.split-heading h2, .product-heading h2 { max-width:9ch; }.application-grid { grid-template-columns:1fr; }.application-card { min-height:330px; }.card-num { margin-bottom:30px; }.interaction-timeline li { grid-template-columns:46px 1fr 56px; }.workflow-grid { grid-template-columns:1fr 1fr; }.workflow-grid > div:nth-child(5) { grid-column:span 2; }.workflow-grid > div { min-height:145px; }.workflow-grid span { margin-bottom:22px; }.platform-image { min-height:320px; }.case-grid { grid-template-columns:1fr; }.case-card, .case-card.large { min-height:500px; grid-row:auto; }.trust-layout { grid-template-columns:1fr; }.logo-row { grid-template-columns:repeat(4,1fr); gap:12px; }.logo-row img { max-width:100px; max-height:38px; }.method-intro h2 { max-width:10ch; }.method-steps > div { grid-template-columns:42px 1fr; gap:11px; }.method-steps p { grid-column:2; }.legal-toc { position:static; }.legal-content { padding:56px 0 85px; }.legal-toc { display:none; }.legal-hero { padding:80px 0 60px; }
}
@media (max-width: 540px) {
  .shell { width:min(calc(100% - 32px), var(--max)); }.section-space { padding:70px 0; }h1 { font-size:clamp(3.45rem,17.5vw,5.2rem); }h2 { font-size:clamp(2.55rem,13vw,3.5rem); }.hero { padding:51px 0; }.hero-lede { font-size:1.1rem; }.hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }.hero-notes { gap:10px; }.hero-notes dd { font-size:.59rem; }.hero-visual { min-height:364px; }.sensor-photo-frame { inset:0 0 48px 31px; }.hero-data-card { width:250px; padding:10px; }.data-readout { flex-wrap:wrap; justify-content:flex-start; }.hero-data-card svg { margin:7px 0 3px; }.split-heading > p, .product-heading > p { font-size:.94rem; }.workflow-grid { grid-template-columns:1fr; }.workflow-grid > div, .workflow-grid > div:nth-child(5) { grid-column:auto; min-height:125px; }.workflow-grid > div { border-right:0; }.platform-copy { padding:31px 25px; }.platform-image { min-height:230px; }.case-card, .case-card.large { min-height:430px; }.case-overlay { padding:20px; }.case-overlay h3 { font-size:2.4rem; }.logo-row { grid-template-columns:repeat(2,1fr); gap:24px 15px; }.brief-section { padding:70px 0; }.brief-form { padding:21px; }.form-row { grid-template-columns:1fr; }.footer-layout { grid-template-columns:1fr; gap:28px; }.footer-links { display:grid; grid-template-columns:1fr 1fr; width:100%; }.footer-legal { gap:12px; }.cookie-banner { right:12px; bottom:12px; width:calc(100vw - 24px); }.cookie-banner > div { flex-direction:column; }.cookie-banner .button { width:100%; }.consent-dialog form { padding:29px 23px; }.legal-hero { padding:68px 0 51px; }.legal-prose section + section { margin-top:45px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; }.reveal-on-scroll { opacity:1; transform:none; transition:none; }.case-card img, .button, .text-link span { transition:none; } }


/* Multilingual selector: explicit choice remains visible across every viewport. */
.language-switch { display:flex; align-items:center; gap:2px; flex:none; padding:3px; border:1px solid var(--line); background:rgba(255,255,255,.42); font:700 .62rem/1 var(--mono); letter-spacing:.05em; }
.language-switch a { display:grid; place-items:center; min-width:26px; min-height:25px; padding:0 5px; color:#68716c; transition:background .16s var(--ease-out), color .16s var(--ease-out); }
.language-switch a:hover { color:var(--ink); background:var(--lime-soft); }
.language-switch a[aria-current="page"] { background:var(--ink); color:var(--white); }
@media (max-width:1020px) { .nav-wrap { gap:16px; }.nav-links { gap:14px; } }
@media (max-width:820px) { .language-switch { margin-left:0; }.language-switch a { min-width:24px; } }
