:root{
    --bg:        oklch(0.165 0.015 256);
    --bg-2:      oklch(0.195 0.016 256);
    --surface:   oklch(0.228 0.018 256);
    --surface-2: oklch(0.278 0.018 256);
    --surface-3: oklch(0.335 0.018 256);
    --line:      oklch(0.31 0.016 256);
    --line-strong: oklch(0.42 0.018 256);
    --text:      oklch(0.955 0.006 250);
    --text-soft: oklch(0.745 0.012 250);
    --text-faint:oklch(0.565 0.013 256);
    --accent:    oklch(0.66 0.20 33);
    --accent-press: oklch(0.72 0.19 33);
    --on-accent: oklch(0.99 0.012 70);
    --accent-tint: oklch(0.66 0.20 33 / 0.14);
    --data:      oklch(0.80 0.13 195);
    --data-2:    oklch(0.84 0.11 150);
    --glow:      oklch(0.66 0.20 33 / 0.18);
    --glow-2:    oklch(0.80 0.13 195 / 0.12);

    --maxw: 1240px;
    --gut: clamp(1.25rem, 4vw, 3rem);
    --r: 14px;
    --ease: cubic-bezier(0.16, 1, 0.3, 1);
    --font: "Hanken Grotesk", system-ui, -apple-system, sans-serif;
    --serif: "Instrument Serif", Georgia, serif;
    --mono: "Geist Mono", ui-monospace, "JetBrains Mono", "SFMono-Regular", monospace;
  }

  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; background:var(--bg); }
  body{
    font-family:var(--font);
    background:transparent;
    color:var(--text);
    line-height:1.55;
    font-size:clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    overflow-x:hidden;
  }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
  }
  a{ color:inherit; text-decoration:none; }
  img{ display:block; max-width:100%; }
  button{ font:inherit; cursor:pointer; border:none; background:none; color:inherit; }
  ::selection{ background:var(--accent); color:var(--on-accent); }

  .scrollbar{ position:fixed; top:0; left:0; height:2px; width:0; background:var(--accent); z-index:100; box-shadow:0 0 14px var(--accent); }

  /* ---------- ambient background ---------- */
  .bg-layer{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
  .bg-grid{
    position:absolute; inset:-2px;
    background-image:
      linear-gradient(var(--line) 1px, transparent 1px),
      linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size:62px 62px;
    opacity:0.32;
    mask-image:radial-gradient(130% 120% at 70% 0%, #000 0%, #000 35%, transparent 78%);
    -webkit-mask-image:radial-gradient(130% 120% at 70% 0%, #000 0%, #000 35%, transparent 78%);
  }
  .bg-glow{ position:absolute; border-radius:50%; filter:blur(90px); }
  .bg-glow.a{ width:680px; height:680px; background:var(--glow); top:-260px; right:-120px; animation:drift1 26s var(--ease) infinite alternate; }
  .bg-glow.b{ width:520px; height:520px; background:var(--glow-2); top:42%; left:-200px; animation:drift2 32s var(--ease) infinite alternate; }
  @keyframes drift1{ from{ transform:translate(0,0) scale(1);} to{ transform:translate(-80px,60px) scale(1.12);} }
  @keyframes drift2{ from{ transform:translate(0,0) scale(1);} to{ transform:translate(120px,-50px) scale(1.18);} }

  .wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut); position:relative; z-index:1; }
  main, header.nav, footer{ position:relative; z-index:1; }

  .eyebrow{
    font-family:var(--mono); font-size:0.72rem; font-weight:500;
    letter-spacing:0.16em; text-transform:uppercase; color:var(--text-faint);
    display:inline-flex; align-items:center; gap:0.55rem;
  }
  .eyebrow::before{ content:""; width:1.6rem; height:1px; background:var(--line-strong); }
  .eyebrow.accent{ color:var(--text-soft); }
  .eyebrow.accent::before{ background:var(--accent); width:2.2rem; }

  .serif-em{ font-family:var(--serif); font-weight:400; font-style:italic; letter-spacing:0.005em; }
  .dot{ color:var(--accent); }

  h1,h2,h3{ line-height:1.04; letter-spacing:-0.022em; font-weight:800; }
  .display{ font-size:clamp(2.9rem, 1.5rem + 5.8vw, 6.1rem); }
  .h2{ font-size:clamp(2rem, 1.3rem + 2.8vw, 3.5rem); font-weight:800; letter-spacing:-0.02em; line-height:1.05; }
  .lede{ font-size:clamp(1.1rem, 1rem + 0.6vw, 1.35rem); color:var(--text-soft); line-height:1.5; max-width:60ch; }

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; gap:0.6rem;
    padding:0.92rem 1.5rem; border-radius:999px;
    font-weight:600; font-size:0.98rem; letter-spacing:-0.01em;
    transition:transform .4s var(--ease), background .25s, color .25s, border-color .25s, box-shadow .3s;
    will-change:transform;
  }
  .btn-primary{ background:var(--accent); color:var(--on-accent); box-shadow:0 6px 22px -8px var(--accent); }
  .btn-primary:hover{ background:var(--accent-press); transform:translateY(-2px); box-shadow:0 12px 30px -8px var(--accent); }
  .btn-primary .arr{ transition:transform .4s var(--ease); }
  .btn-primary:hover .arr{ transform:translateX(4px); }
  .btn-ghost{ border:1px solid var(--line-strong); color:var(--text); }
  .btn-ghost:hover{ border-color:var(--text); transform:translateY(-2px); background:oklch(1 0 0 / 0.03); }

  /* ---------- nav ---------- */
  header.nav{
    position:sticky; top:0; z-index:60;
    backdrop-filter:saturate(1.3) blur(12px);
    background:oklch(0.165 0.015 256 / 0.72);
    border-bottom:1px solid transparent;
    transition:border-color .3s, background .3s;
  }
  header.nav.scrolled{ border-bottom-color:var(--line); background:oklch(0.15 0.015 256 / 0.86); }
  .nav-inner{ display:flex; align-items:center; justify-content:space-between; height:74px; }
  .brand{ font-size:1.55rem; font-weight:800; letter-spacing:-0.04em; }
  .nav-links{ display:flex; gap:2rem; align-items:center; }
  .nav-links a{ font-size:0.94rem; font-weight:500; color:var(--text-soft); position:relative; transition:color .2s; }
  .nav-links a:hover{ color:var(--text); }
  .nav-links a::after{ content:""; position:absolute; left:0; bottom:-5px; height:1.5px; width:0; background:var(--accent); transition:width .35s var(--ease); }
  .nav-links a:hover::after{ width:100%; }
  .nav-cta{ display:flex; align-items:center; gap:1.2rem; }
  .nav-cta .btn{ padding:0.6rem 1.1rem; font-size:0.9rem; }
  .menu-btn{ display:none; width:42px; height:42px; align-items:center; justify-content:center; }
  .menu-btn span{ display:block; width:22px; height:2px; background:var(--text); position:relative; transition:.3s; }
  .menu-btn span::before,.menu-btn span::after{ content:""; position:absolute; left:0; width:22px; height:2px; background:var(--text); transition:.3s var(--ease); }
  .menu-btn span::before{ top:-7px; } .menu-btn span::after{ top:7px; }
  body.menu-open .menu-btn span{ background:transparent; }
  body.menu-open .menu-btn span::before{ top:0; transform:rotate(45deg); }
  body.menu-open .menu-btn span::after{ top:0; transform:rotate(-45deg); }

  .mobile-menu{
    position:fixed; inset:74px 0 0 0; z-index:55;
    background:var(--bg); padding:2rem var(--gut);
    display:flex; flex-direction:column; gap:0.4rem;
    transform:translateY(-12px); opacity:0; pointer-events:none; transition:.4s var(--ease);
  }
  body.menu-open .mobile-menu{ transform:none; opacity:1; pointer-events:auto; }
  .mobile-menu a{ font-size:1.6rem; font-weight:700; letter-spacing:-0.02em; padding:0.7rem 0; border-bottom:1px solid var(--line); }
  .mobile-menu .btn{ margin-top:1.4rem; justify-content:center; }

  /* ---------- reveal ---------- */
  .reveal{ opacity:0; transform:translateY(26px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
  .reveal.in{ opacity:1; transform:none; }
  .reveal[data-d="1"]{ transition-delay:.08s; }
  .reveal[data-d="2"]{ transition-delay:.16s; }
  .reveal[data-d="3"]{ transition-delay:.24s; }
  .reveal[data-d="4"]{ transition-delay:.32s; }

  /* ---------- hero ---------- */
  .hero{ padding-top:clamp(3rem, 2rem + 5vw, 6.5rem); padding-bottom:clamp(3.5rem,2rem+5vw,7rem); position:relative; }
  .hero-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(2rem,4vw,4.5rem); align-items:center; }
  .hero-panel{ transition:transform .35s var(--ease); transform-style:preserve-3d; will-change:transform; }
  .hero h1{ margin:1.6rem 0 0; }
  .hero h1 .ln{ display:block; overflow:hidden; }
  .hero h1 .ln > span{ display:block; transform:translateY(105%); transition:transform 1.1s var(--ease); }
  .hero h1.in .ln > span{ transform:none; }
  .hero h1.in .ln:nth-child(2) > span{ transition-delay:.12s; }
  .hero .lede{ margin-top:1.6rem; }
  .hero-cta{ display:flex; gap:0.9rem; margin-top:2.2rem; flex-wrap:wrap; }
  .hero-trust{ margin-top:2.6rem; font-size:0.85rem; color:var(--text-faint); display:flex; align-items:center; gap:0.6rem; flex-wrap:wrap; }
  .hero-trust b{ color:var(--text-soft); font-weight:600; }

  /* ---------- data panel ---------- */
  .panel{
    background:
      radial-gradient(120% 90% at 85% -10%, oklch(0.30 0.03 256) 0%, transparent 55%),
      var(--surface);
    color:var(--text);
    border-radius:var(--r);
    padding:clamp(1.3rem,1rem+1.2vw,1.9rem);
    box-shadow:0 1px 0 oklch(1 0 0 / 0.05) inset, 0 50px 90px -50px oklch(0 0 0 / 0.8);
    border:1px solid var(--line);
    position:relative; overflow:hidden;
  }
  .panel-head{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
  .panel-title{ font-family:var(--mono); font-size:0.74rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-soft); }
  .live{ display:inline-flex; align-items:center; gap:0.45rem; font-family:var(--mono); font-size:0.68rem; color:var(--data-2); letter-spacing:0.08em; }
  .live .pulse{ width:7px; height:7px; border-radius:50%; background:var(--data-2); box-shadow:0 0 0 0 var(--data-2); animation:pulse 2.4s var(--ease) infinite; }
  @keyframes pulse{ 0%{ box-shadow:0 0 0 0 oklch(0.84 0.11 150 / 0.5);} 70%{ box-shadow:0 0 0 9px oklch(0.84 0.11 150 / 0);} 100%{ box-shadow:0 0 0 0 oklch(0.84 0.11 150 / 0);} }

  .readouts{ display:grid; grid-template-columns:repeat(3,1fr); gap:0.4rem 1.2rem; margin-top:1.3rem; }
  .ro-label{ font-family:var(--mono); font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-faint); }
  .ro-val{ font-size:1.5rem; font-weight:700; letter-spacing:-0.02em; margin-top:0.15rem; font-variant-numeric:tabular-nums; }
  .ro-val .up{ color:var(--data-2); font-size:0.8rem; font-weight:600; margin-left:0.25rem; }

  .chart{ width:100%; display:block; }
  .chart .grid-line{ stroke:var(--line); stroke-width:1; }
  .chart .axis-label{ fill:var(--text-faint); font-family:var(--mono); font-size:9px; letter-spacing:0.04em; }
  .chart .line{ fill:none; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
  .chart .area{ opacity:0.9; }
  .chart .dot-end{ fill:var(--surface); }

  /* ---------- section scaffolding ---------- */
  section{ position:relative; }
  .sec{ padding-block:clamp(4rem, 3rem + 5vw, 8rem); }
  .sec.hairline{ border-top:1px solid var(--line); }
  .sec-head{ max-width:62ch; }
  .sec-head h2{ margin-top:1.2rem; }
  .sec-head p{ margin-top:1.3rem; }

  /* ---------- logos / marquee ---------- */
  .logos{ padding-block:clamp(2.5rem,2rem+2vw,3.5rem); border-block:1px solid var(--line); background:oklch(0.18 0.015 256 / 0.5); }
  .logos .eyebrow{ justify-content:center; width:100%; }
  .logo-marquee{ margin-top:2rem; overflow:hidden; position:relative;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
  .logo-track{ display:flex; align-items:center; gap:clamp(2.5rem,5vw,5rem); width:max-content; animation:marquee 46s linear infinite; }
  .logo-track.rev{ animation-direction:reverse; animation-duration:54s; margin-top:1.6rem; }
  .logo-marquee:hover .logo-track{ animation-play-state:paused; }
  .logo-track img{ height:30px; width:auto; flex:none; opacity:0.46; filter:brightness(0) invert(1); transition:opacity .35s, filter .35s, transform .35s var(--ease); }
  .logo-track a:hover img{ opacity:1; transform:translateY(-2px); }
  @keyframes marquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

  /* ---------- who ---------- */
  .who-grid{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
  .mini-panel{ margin-top:1.4rem; }
  .mini-panel .panel{ padding:1.3rem; }
  .who-stats{ display:grid; grid-template-columns:1fr 1fr; gap:1.6rem 2rem; margin-top:2.4rem; border-top:1px solid var(--line); padding-top:2rem; }
  .who-stat .n{ font-size:clamp(2.2rem,1.5rem+2vw,3rem); font-weight:800; letter-spacing:-0.03em; font-variant-numeric:tabular-nums; }
  .who-stat .l{ color:var(--text-soft); font-size:0.95rem; margin-top:0.3rem; }

  /* ---------- case ---------- */
  .case-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(2rem,4vw,4rem); align-items:center; }
  .case-stat-row{ display:flex; gap:2.4rem; margin-top:2rem; flex-wrap:wrap; }
  .case-stat .n{ font-size:clamp(2rem,1.4rem+1.6vw,2.8rem); font-weight:800; letter-spacing:-0.03em; }
  .case-stat .l{ font-family:var(--mono); font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-faint); margin-top:0.3rem; }

  /* ---------- services ---------- */
  .svc-list{ margin-top:2.5rem; border-top:1px solid var(--line); }
  .svc{ display:grid; grid-template-columns:auto minmax(7rem,1fr) clamp(80px,11vw,150px) minmax(0,30ch) auto; gap:1.6rem; align-items:center; padding:1.5rem 0; border-bottom:1px solid var(--line); transition:padding .4s var(--ease), background .4s; }
  .svc:hover{ padding-left:0.8rem; background:linear-gradient(90deg, oklch(0.66 0.20 33 / 0.05), transparent 60%); }
  .svc .num{ font-family:var(--mono); font-size:0.8rem; color:var(--text-faint); }
  .svc .name{ font-size:clamp(1.4rem,1.1rem+1.2vw,2rem); font-weight:700; letter-spacing:-0.02em; transition:color .3s; }
  .svc .desc{ color:var(--text-soft); font-size:0.95rem; }
  .svc .spark{ width:100%; height:34px; }
  .svc .spark .sl{ fill:none; stroke:var(--text-faint); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:stroke .3s; }
  .svc:hover .spark .sl{ stroke:var(--accent); }
  .svc .go{ color:var(--text-faint); transition:color .3s, transform .4s var(--ease); }
  .svc:hover .go{ color:var(--accent); transform:translate(3px,-3px); }
  .svc:hover .name{ color:var(--accent); }
  @media(max-width:860px){ .svc{ grid-template-columns:auto 1fr auto; } .svc .desc{ grid-column:2; } .svc .spark{ display:none; } }

  /* ---------- system ---------- */
  .sys-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(2rem,4vw,4rem); align-items:center; margin-top:3rem; }
  .pillars{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
  .pillar{ background:var(--bg-2); padding:1.5rem; transition:background .3s; }
  .pillar:hover{ background:var(--surface); }
  .pillar .pn{ font-family:var(--mono); font-size:0.66rem; letter-spacing:0.1em; color:var(--data-2); }
  .pillar h3{ font-size:1.15rem; font-weight:700; margin-top:0.8rem; letter-spacing:-0.01em; }
  .pillar p{ color:var(--text-soft); font-size:0.9rem; margin-top:0.5rem; }
  .process{ margin-top:3rem; display:flex; flex-wrap:wrap; gap:0.5rem; align-items:center; font-family:var(--mono); font-size:0.78rem; letter-spacing:0.04em; color:var(--text-faint); }
  .process span{ color:var(--text); }
  .process .sep{ color:var(--accent); }
  .bars{ display:flex; flex-direction:column; gap:0.9rem; margin-top:1.4rem; }
  .bar-row{ display:grid; grid-template-columns:6.5rem 1fr auto; gap:0.8rem; align-items:center; font-size:0.8rem; }
  .bar-row .bl{ font-family:var(--mono); color:var(--text-soft); font-size:0.72rem; letter-spacing:0.04em; }
  .bar-track{ height:8px; background:var(--surface-2); border-radius:99px; overflow:hidden; }
  .bar-fill{ height:100%; width:0; border-radius:99px; transition:width 1.3s var(--ease); }
  .bar-row .bv{ font-family:var(--mono); font-size:0.74rem; color:var(--text); font-variant-numeric:tabular-nums; }

  /* ---------- model ---------- */
  .model-grid{ display:grid; grid-template-columns:0.92fr 1.08fr; gap:clamp(1.5rem,3vw,3rem); align-items:stretch; margin-top:3rem; }
  .controls{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:clamp(1.4rem,1rem+1vw,2rem); display:flex; flex-direction:column; box-shadow:0 40px 80px -50px oklch(0 0 0 / 0.8); }
  .field{ margin-bottom:1.7rem; }
  .field label{ display:flex; justify-content:space-between; align-items:baseline; font-family:var(--mono); font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--text-soft); margin-bottom:0.7rem; }
  .field label .v{ font-size:1.1rem; color:var(--text); font-weight:600; letter-spacing:0; text-transform:none; font-variant-numeric:tabular-nums; }
  input[type=range]{ -webkit-appearance:none; appearance:none; width:100%; height:4px; border-radius:99px; background:var(--surface-2); outline:none; }
  input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width:22px; height:22px; border-radius:50%; background:var(--accent); border:3px solid var(--surface); box-shadow:0 2px 10px oklch(0.66 0.20 33 / .55); cursor:pointer; transition:transform .2s; }
  input[type=range]::-webkit-slider-thumb:hover{ transform:scale(1.12); }
  input[type=range]::-moz-range-thumb{ width:22px; height:22px; border-radius:50%; background:var(--accent); border:3px solid var(--surface); cursor:pointer; }
  .chips{ display:flex; gap:0.5rem; flex-wrap:wrap; }
  .chip{ padding:0.5rem 0.9rem; border-radius:99px; border:1px solid var(--line-strong); font-size:0.85rem; color:var(--text-soft); transition:.25s; }
  .chip[aria-pressed=true]{ background:var(--text); color:var(--bg); border-color:var(--text); }
  .capture{ margin-top:auto; padding-top:1.4rem; border-top:1px solid var(--line); }
  .capture .row{ display:flex; gap:0.6rem; }
  .capture input[type=email]{ flex:1; padding:0.85rem 1rem; border:1px solid var(--line-strong); border-radius:10px; background:var(--bg); font:inherit; color:var(--text); }
  .capture input[type=email]::placeholder{ color:var(--text-faint); }
  .capture input[type=email]:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-tint); }
  .projection{ display:flex; flex-direction:column; }
  .proj-readouts{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:1rem; margin-top:1.3rem; }
  .disclaimer{ font-size:0.74rem; color:var(--text-faint); margin-top:1.1rem; font-family:var(--mono); letter-spacing:0.02em; line-height:1.5; }
  .ok-state{ display:none; }
  .capture.done .ok-state{ display:flex; align-items:center; gap:0.6rem; color:var(--text); font-weight:600; }
  .capture.done .row, .capture.done .cap-note{ display:none; }
  .cap-note{ font-size:0.78rem; color:var(--text-faint); margin-top:0.7rem; }

  /* ---------- partners ---------- */
  .partners-row{ margin-top:2.4rem; display:flex; flex-wrap:wrap; gap:0.7rem; }
  .partner{ display:inline-flex; align-items:center; gap:0.6rem; padding:0.7rem 1.1rem; border:1px solid var(--line); border-radius:99px; font-size:0.92rem; font-weight:500; background:var(--surface); transition:border-color .3s, transform .3s var(--ease); }
  .partner:hover{ border-color:var(--line-strong); transform:translateY(-2px); }
  .partner .seal{ width:16px; height:16px; color:var(--accent); }

  /* ---------- close ---------- */
  .close{ text-align:center; }
  .close .h2{ max-width:18ch; margin:1.4rem auto 0; }
  .close-cta{ display:flex; gap:0.9rem; justify-content:center; margin-top:2.4rem; flex-wrap:wrap; }
  .close .eyebrow{ justify-content:center; }
  .contact{ max-width:520px; margin:3rem auto 0; text-align:left; background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:1.8rem; box-shadow:0 50px 90px -50px oklch(0 0 0 / 0.8); }
  .contact .grid2{ display:grid; grid-template-columns:1fr 1fr; gap:0.8rem; }
  .contact input, .contact textarea{ width:100%; padding:0.85rem 1rem; background:var(--bg); border:1px solid var(--line); border-radius:10px; color:var(--text); font:inherit; margin-bottom:0.8rem; }
  .contact input::placeholder, .contact textarea::placeholder{ color:var(--text-faint); }
  .contact input:focus, .contact textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-tint); }
  .contact .btn{ width:100%; justify-content:center; }
  .contact-done{ display:none; text-align:center; padding:1rem 0; }
  .contact.sent form{ display:none; } .contact.sent .contact-done{ display:block; }

  /* ---------- footer ---------- */
  footer{ background:var(--bg-2); border-top:1px solid var(--line); }
  .foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2rem; padding-block:4rem 2.5rem; }
  .foot-brand .brand{ color:var(--text); font-size:1.8rem; }
  .foot-brand p{ margin-top:1rem; font-size:0.9rem; max-width:30ch; color:var(--text-soft); }
  .foot-col h4{ font-family:var(--mono); font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-faint); margin-bottom:1.1rem; }
  .foot-col a{ display:block; font-size:0.92rem; color:var(--text-soft); padding:0.32rem 0; transition:color .2s; }
  .foot-col a:hover{ color:var(--text); }
  .foot-bottom{ display:flex; justify-content:space-between; align-items:center; padding-block:1.6rem; border-top:1px solid var(--line); font-size:0.82rem; color:var(--text-soft); flex-wrap:wrap; gap:1rem; }

  /* ---------- responsive ---------- */
  @media(max-width:980px){
    .hero-grid,.who-grid,.case-grid,.sys-grid,.model-grid{ grid-template-columns:1fr; }
    .hero-panel{ order:2; }
    .nav-links{ display:none; }
    .menu-btn{ display:flex; }
    .foot-grid{ grid-template-columns:1fr 1fr; }
    .proj-readouts{ grid-template-columns:repeat(3,1fr); }
  }
  @media(max-width:560px){
    .nav-cta .btn{ display:none; }
    .who-stats{ grid-template-columns:1fr 1fr; }
    .pillars{ grid-template-columns:1fr; }
    .foot-grid{ grid-template-columns:1fr; gap:2.5rem; }
    .readouts{ grid-template-columns:1fr 1fr; }
    .capture .row{ flex-direction:column; }
    .contact .grid2{ grid-template-columns:1fr; }
  }

/* beta: content version of the homepage */
.logo-track span{display:block;flex:none}
.logo-track span:hover img{opacity:1;transform:translateY(-2px)}
.teaser-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.4rem}
@media(max-width:980px){.teaser-grid{grid-template-columns:1fr}}
a.panel{transition:border-color .3s,transform .3s var(--ease)}
a.panel:hover{transform:translateY(-3px)}
.results-list{display:grid;gap:0;margin-top:1.2rem}
.res-row{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1.2rem;padding:1.05rem 0;border-top:1px solid var(--line);align-items:baseline}
.res-row:first-child{border-top:none}
.res-row .n{font-size:clamp(1.7rem,1.2rem+1.4vw,2.3rem);font-weight:800;letter-spacing:-0.03em;color:var(--text)}
.res-row .l{font-size:.92rem;color:var(--text-soft)}
.res-row .b{grid-column:1/-1;font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--data)}
.case-list a{display:block;padding:1.1rem 0;border-top:1px solid var(--line);transition:padding .35s var(--ease)}
.case-list a:first-of-type{border-top:none}
.case-list a:hover{padding-left:.5rem}
.case-list .cb{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--data)}
.case-list .ch{font-weight:700;font-size:1.05rem;margin-top:.35rem}
.case-list .cm{color:var(--text-soft);font-size:.88rem;margin-top:.25rem}
.pillars.four{grid-template-columns:repeat(4,1fr);margin-top:3rem}
@media(max-width:980px){.pillars.four{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pillars.four{grid-template-columns:1fr}}
.who-grid.solo{grid-template-columns:0.8fr 1.2fr}
.partner{text-decoration:none}
