/* === tokens.css === */
/* ============================================================
   Carpatians MFG — Design System v0.1
   Proposed tokens. Status: draft for sign-off.
   ============================================================ */

:root {
  /* ---------- Color: surfaces ---------- */
  --paper:        #FAFAF7;   /* page background, off-white warm */
  --paper-2:      #F3F2EE;   /* alt section, faint stone */
  --surface:      #FFFFFF;   /* card */
  --ink:          #0B1220;   /* near-black, primary text & dark sections */
  --ink-2:        #111827;   /* slightly lifted ink for dark sections */
  --ink-3:        #1B2331;   /* third-tier dark, for dark-on-dark cards */

  /* ---------- Color: text ---------- */
  --text:         #0B1220;
  --text-2:       #3A4253;   /* secondary text on light */
  --text-3:       #6B7280;   /* tertiary / captions */
  --text-on-dark: #F5F6F8;
  --text-on-dark-2: #B4BAC6;
  --text-on-dark-3: #7C8493;

  /* ---------- Color: borders / hairlines ---------- */
  --line:         #E6E4DE;   /* warm hairline on paper */
  --line-2:       #D9D7D0;   /* stronger hairline */
  --line-dark:    #232C3C;   /* hairline on dark surfaces */

  /* ---------- Color: brand accent ---------- */
  --blue:         #1E40AF;   /* primary engineering blue */
  --blue-deep:    #1D4ED8;   /* hover / active */
  --blue-press:   #17379A;   /* pressed */
  --blue-tint:    #E8EEFB;   /* faint blue wash for chip backgrounds */
  --blue-on-dark: #6FA1FF;   /* readable on near-black */

  /* ---------- Type ---------- */
  --font-sans: "Inter", "Inter Placeholder", -apple-system, BlinkMacSystemFont,
               "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "JetBrains Mono", "IBM Plex Mono", "SF Mono", ui-monospace,
               Menlo, Consolas, monospace;

  /* Type scale */
  --t-11:  11px;
  --t-12:  12px;
  --t-13:  13px;
  --t-14:  14px;
  --t-15:  15px;
  --t-16:  16px;
  --t-17:  17px;
  --t-18:  18px;
  --t-20:  20px;
  --t-24:  24px;
  --t-30:  30px;
  --t-36:  36px;
  --t-48:  48px;
  --t-64:  64px;
  --t-80:  80px;

  /* Spacing */
  --s-2:   2px;
  --s-4:   4px;
  --s-6:   6px;
  --s-8:   8px;
  --s-12: 12px;
  --s-16: 16px;
  --s-20: 20px;
  --s-24: 24px;
  --s-32: 32px;
  --s-40: 40px;
  --s-48: 48px;
  --s-56: 56px;
  --s-64: 64px;
  --s-72: 72px;
  --s-80: 80px;
  --s-96: 96px;
  --s-128: 128px;

  /* Radii */
  --r-2: 2px;
  --r-4: 4px;
  --r-6: 6px;
  --r-8: 8px;
  --r-12: 12px;
  --r-pill: 999px;

  /* Container */
  --maxw: 1280px;
  --gutter: 32px;
}

/* ============================================================
   Base reset
   ============================================================ */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body {
  background: var(--paper);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--t-16);
  line-height: 1.5;
  font-feature-settings: "ss01", "cv11";
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }

/* ============================================================
   Mobile overflow guard — global rules that prevent horizontal scroll
   on any page. Buttons wrap text instead of pushing past the edge,
   CTA rows flex-wrap, page-hero meta rows stack label-above-value,
   and embedded media is capped at 100% width.

   IMPORTANT: use `overflow-x: clip` (NOT `hidden`) on html/body.
   `overflow-x: hidden` establishes html/body as the sticky containing
   block, which silently breaks `position: sticky` on descendants like
   .site-header on mobile. `clip` prevents horizontal overflow without
   creating a scroll container, so sticky keeps working.
   ============================================================ */
@media (max-width: 768px) {
  html, body { overflow-x: clip; }
  img, video, iframe { max-width: 100%; }

  /* Buttons may wrap text to multiple lines on mobile rather than overflow. */
  .btn {
    white-space: normal;
    height: auto;
    min-height: 44px;
    line-height: 1.25;
    padding-top: 10px;
    padding-bottom: 10px;
    text-align: center;
  }
  .btn-lg { min-height: 52px; }

  /* CTA rows in known layouts wrap onto multiple lines instead of overflowing. */
  .hero__ctas,
  .dark-cta__ctas,
  .final-cta__ctas,
  .page-hero__inner > div > div { flex-wrap: wrap; }

  /* Sub-page hero meta tiles — stack label above value so long values
     ("Troy, MI · ships nationwide", "STEP · IGES · DWG · PDF") can wrap
     without forcing the row wider than the viewport. */
  .page-hero__meta-row {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }
  .page-hero__meta-row strong { text-align: left; }

  /* Utility: hide inline content (e.g. " for {Service Name}" appended to
     a CTA label) on mobile so the button stays compact. */
  .hide-on-mobile { display: none !important; }
}

/* ============================================================
   Typography classes
   ============================================================ */
.h-display {
  font-family: var(--font-sans);
  font-size: clamp(44px, 5.4vw, 72px);
  line-height: 1.04;
  letter-spacing: -0.025em;
  font-weight: 600;
  color: var(--ink);
}
.h-1 {
  font-size: clamp(36px, 4vw, 52px);
  line-height: 1.08;
  letter-spacing: -0.02em;
  font-weight: 600;
  margin: 0;
}
.h-2 {
  font-size: clamp(28px, 2.6vw, 36px);
  line-height: 1.12;
  letter-spacing: -0.015em;
  font-weight: 600;
  margin: 0;
}
.h-3 {
  font-size: var(--t-20);
  line-height: 1.25;
  letter-spacing: -0.005em;
  font-weight: 600;
  margin: 0;
}
.p-lead {
  font-size: var(--t-20);
  line-height: 1.5;
  color: var(--text-2);
  margin: 0;
  max-width: 60ch;
  text-wrap: pretty;
}
.p-body {
  font-size: var(--t-16);
  line-height: 1.6;
  color: var(--text-2);
  margin: 0;
  text-wrap: pretty;
}
.eyebrow {
  font-family: var(--font-mono);
  font-size: var(--t-12);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-3);
}
.eyebrow-blue { color: var(--blue); }
.mono {
  font-family: var(--font-mono);
  font-size: var(--t-13);
  letter-spacing: 0;
  color: var(--text-2);
}
.mono-sm {
  font-family: var(--font-mono);
  font-size: var(--t-12);
  color: var(--text-3);
}

/* ============================================================
   Layout primitives
   ============================================================ */
.container {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.section {
  padding: var(--s-96) 0;
}
.section-tight {
  padding: var(--s-64) 0;
}
.section-flush-top {
  /* Sections that visually butt against the prior section on desktop.
     On mobile, restore full top padding so the rhythm is consistent. */
  padding-top: 0;
}
.section-dark {
  background: var(--ink);
  color: var(--text-on-dark);
}
.section-dark .p-body,
.section-dark .p-lead { color: var(--text-on-dark-2); }
.section-dark .eyebrow { color: var(--text-on-dark-3); }
.section-dark .h-1,
.section-dark .h-2,
.section-dark .h-3 { color: var(--text-on-dark); }

/* ============================================================
   Buttons & links
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 18px;
  border-radius: var(--r-6);
  font-size: var(--t-15);
  font-weight: 500;
  letter-spacing: -0.005em;
  border: 1px solid transparent;
  transition: background .15s ease, border-color .15s ease, color .15s ease, transform .05s ease;
  white-space: nowrap;
}
.btn:active { transform: translateY(1px); }
.btn-sm { height: 36px; padding: 0 14px; font-size: var(--t-14); }
.btn-lg { height: 52px; padding: 0 22px; font-size: var(--t-16); }

.btn-primary {
  background: var(--blue);
  color: #fff;
  border-color: var(--blue);
}
.btn-primary:hover { background: var(--blue-deep); border-color: var(--blue-deep); }
.btn-primary:active { background: var(--blue-press); }

.btn-ghost {
  background: transparent;
  color: var(--ink);
  border-color: var(--line-2);
}
.btn-ghost:hover { border-color: var(--ink); }

.btn-ghost-dark {
  background: transparent;
  color: var(--text-on-dark);
  border-color: rgba(255,255,255,0.18);
}
.btn-ghost-dark:hover { border-color: rgba(255,255,255,0.4); background: rgba(255,255,255,0.04); }

.link {
  color: var(--blue-deep);
  font-weight: 500;
  border-bottom: 1px solid transparent;
  transition: border-color .15s ease;
}
.link:hover { border-bottom-color: var(--blue-deep); }

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--blue-deep);
  font-weight: 500;
  font-size: var(--t-15);
}
.link-arrow .arrow { transition: transform .15s ease; }
.link-arrow:hover .arrow { transform: translateX(3px); }

.link-on-dark {
  color: var(--blue-on-dark);
}

/* ============================================================
   Card patterns
   ============================================================ */
.card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-8);
  padding: var(--s-32);
  display: flex;
  flex-direction: column;
  gap: var(--s-16);
  transition: border-color .15s ease, transform .15s ease;
}
.card-link:hover {
  border-color: var(--ink);
  cursor: pointer;
}
.card-link:hover .card-arrow { transform: translateX(3px); }
.card-arrow { transition: transform .15s ease; color: var(--blue); }

.card-flat {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--line-2);
  border-radius: 0;
  padding: var(--s-24) 0;
}

/* Tag / chip */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 24px;
  padding: 0 10px;
  border-radius: var(--r-pill);
  background: var(--blue-tint);
  color: var(--blue-deep);
  font-family: var(--font-mono);
  font-size: var(--t-12);
  letter-spacing: 0.02em;
  font-weight: 500;
}
.chip-dark {
  background: rgba(111, 161, 255, 0.10);
  color: var(--blue-on-dark);
}
.chip-neutral {
  background: var(--paper-2);
  color: var(--text-2);
}

/* ============================================================
   Placeholder block (for [REPLACE: ...] imagery)
   ============================================================ */
.placeholder {
  position: relative;
  background:
    repeating-linear-gradient(135deg,
      #EDEBE5 0 12px,
      #E6E4DE 12px 24px);
  border: 1px solid var(--line-2);
  border-radius: var(--r-8);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: var(--t-12);
  text-align: center;
  padding: var(--s-24);
  overflow: hidden;
}
.placeholder.dark {
  background:
    repeating-linear-gradient(135deg,
      #16202F 0 12px,
      #121A28 12px 24px);
  border-color: var(--line-dark);
  color: var(--text-on-dark-3);
}
.placeholder .ph-label {
  background: rgba(0,0,0,0.04);
  border: 1px solid var(--line-2);
  border-radius: var(--r-4);
  padding: 6px 10px;
  max-width: 80%;
  line-height: 1.45;
  backdrop-filter: blur(2px);
}
.placeholder.dark .ph-label {
  background: rgba(255,255,255,0.04);
  border-color: var(--line-dark);
  color: var(--text-on-dark-2);
}

/* Overlay text for mega-menu featured image */
.placeholder-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: var(--s-24);
  background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.55) 100%);
  color: #fff;
}

/* ---------- Mega-menu featured block (with hero image) ----------
   Drop-in replacement for the .placeholder.dark + .placeholder-overlay pair
   in the Services / Industries mega-menus when a real hero photo is
   provided. Same footprint (fills the left column), same text positioning
   (bottom-anchored), but with a dark gradient overlay tuned for white text
   over a busy machined-part photo. */
.mega-featured {
  position: relative;
  height: 100%;
  min-height: 220px;
  border-radius: var(--r-8);
  background-color: var(--ink);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}
.mega-featured__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(15, 23, 42, 0.45) 0%,
    rgba(15, 23, 42, 0.78) 100%
  );
  pointer-events: none;
}
.mega-featured__text {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: var(--s-24);
  color: #fff;
}
.mega-featured__overline {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 8px;
}
.mega-featured__title {
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -0.01em;
  font-weight: 600;
  color: #fff;
  max-width: 32ch;
  text-wrap: balance;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

/* ============================================================
   Header
   ============================================================ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--ink);
  color: var(--text-on-dark);
  border-bottom: 1px solid var(--line-dark);
  transition: box-shadow .15s ease;
}
.site-header[data-stuck="true"] {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18), 0 4px 14px -8px rgba(0, 0, 0, 0.35);
}
.site-header__sentinel {
  /* 1px sentinel sits just above the sticky nav. Sticky toggles when this
     scrolls out of viewport. */
  width: 100%;
  height: 1px;
  pointer-events: none;
}
.site-header__topbar {
  /* NOT sticky — scrolls away with page content. */
  background: var(--ink);
  color: var(--text-on-dark-3);
  border-bottom: 1px solid var(--line-dark);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
}

/* Mobile contact ribbon — hidden on desktop, visible on the same breakpoint
   that swaps the nav over to the hamburger (≤900px). */
.site-header__mobile-contact {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 30px;
  padding: 7px 16px;
  /* Same dark fill as the main nav bar so the ribbon + nav read as one
     continuous header strip on mobile (no visible seam). */
  background: var(--ink);
  color: #fff;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1;
  text-decoration: none;
}
.site-header__mobile-contact .sep { opacity: 0.5; }
.site-header__mobile-contact .phone { color: #fff; font-weight: 500; }
.site-header__topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  height: 30px;
  padding: 0 var(--gutter);
  max-width: 1440px;
  margin: 0 auto;
}
.site-header__topbar-left {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  color: var(--text-on-dark-3);
}
.site-header__topbar-right {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
}
.site-header__topbar-right li {
  display: flex;
  align-items: center;
  white-space: nowrap;
}
.site-header__topbar-right li + li {
  margin-left: 24px;
  padding-left: 24px;
  border-left: 1px solid var(--line-dark);
}
.site-header__topbar-right a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text-on-dark-2);
  white-space: nowrap;
  line-height: 1;
  text-decoration: none;
}
.site-header__topbar-right a:hover { color: var(--text-on-dark); }
.site-header__topbar-right a svg { flex-shrink: 0; display: block; }
.site-header__bar {
  display: flex;
  align-items: center;
  gap: var(--s-32);
  min-height: 68px;
  padding: 10px var(--gutter);
  max-width: 1440px;
  margin: 0 auto;
}
.site-header__logo {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.site-header__logo img {
  height: 48px;
  width: auto;
  flex-shrink: 0;
}
.site-header__nav {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: var(--s-16);
}
.nav-item {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  align-self: stretch;
  padding: 0 14px;
  color: var(--text-on-dark-2);
  font-size: var(--t-15);
  font-weight: 500;
  letter-spacing: -0.005em;
  border-bottom: 2px solid transparent;
  transition: color .15s ease, border-color .15s ease;
  cursor: pointer;
  background: transparent;
  border-top: 0; border-left: 0; border-right: 0;
  white-space: nowrap;
  flex-shrink: 0;
}
.nav-item:hover, .nav-item[aria-expanded="true"] {
  color: #fff;
  border-bottom-color: var(--blue-on-dark);
}
.nav-item .chev { transition: transform .15s ease; opacity: 0.7; }
.nav-item[aria-expanded="true"] .chev { transform: rotate(180deg); }
.site-header__cta {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: var(--s-12);
}

/* ============================================================
   Mega-menu panel
   ============================================================ */
.mega {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  background: var(--surface);
  color: var(--text);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 24px 48px -24px rgba(11,18,32,0.25);
  animation: megaIn .18s ease-out;
}
@keyframes megaIn {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.mega__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: var(--s-40) var(--gutter) var(--s-48);
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: var(--s-48);
}
.mega__featured {
  position: relative;
  height: 340px;
  border-radius: var(--r-8);
  overflow: hidden;
}
.mega__cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s-40);
}
.mega__cols.cols-2 { grid-template-columns: repeat(2, 1fr); }
.mega__col-label {
  font-family: var(--font-mono);
  font-size: var(--t-12);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-3);
  padding-bottom: var(--s-12);
  margin-bottom: var(--s-12);
  border-bottom: 1px solid var(--line);
}
.mega__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.mega__list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  font-size: var(--t-15);
  font-weight: 500;
  color: var(--text);
  border-radius: var(--r-4);
  transition: color .12s ease;
}
.mega__list a:hover { color: var(--blue-deep); }
.mega__list a .a-arrow { opacity: 0; transition: opacity .12s ease, transform .12s ease; color: var(--blue); }
.mega__list a:hover .a-arrow { opacity: 1; transform: translateX(2px); }
.mega__viewall {
  margin-top: var(--s-16);
  padding-top: var(--s-12);
  border-top: 1px solid var(--line);
}

/* Scrim behind open mega-menu */
.scrim {
  position: fixed;
  inset: 0;
  background: rgba(11,18,32,0.35);
  z-index: 40;
  animation: fadeIn .15s ease-out;
}
@keyframes fadeIn { from { opacity: 0 } to { opacity: 1 } }

/* ============================================================
   Mobile menu (hamburger button + full-screen overlay)
   Hidden on desktop; activated by media queries above.
   ============================================================ */
.site-header__burger {
  display: none;
  margin-left: auto;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--r-4);
  color: var(--text-on-dark);
  cursor: pointer;
  flex-shrink: 0;
}
.site-header__burger:hover {
  border-color: rgba(255,255,255,0.4);
  background: rgba(255,255,255,0.04);
}
/* Mobile hamburger overlay — LIGHT theme.
   Repainted Mar 2026 from dark navy to the site's paper/ink palette so the
   overlay matches the rest of the site. The dark navy main nav bar
   (.site-header) and the dark contact ribbon (.site-header__mobile-contact)
   are unchanged — only this overlay panel is light. */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: var(--paper);
  color: var(--text);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  animation: mobileMenuIn .18s ease-out;
}
@keyframes mobileMenuIn { from { opacity: 0 } to { opacity: 1 } }
.mobile-menu__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px;
  border-bottom: 1px solid var(--line);
  min-height: 56px;
}
.mobile-menu__logo img { height: 42px; width: auto; display: block; }
.mobile-menu__close {
  width: 44px; height: 44px;
  background: transparent;
  border: 1px solid var(--line-2);
  color: var(--ink);
  border-radius: var(--r-4);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.mobile-menu__close:hover {
  border-color: var(--ink);
  background: rgba(0,0,0,0.03);
}
.mobile-menu__nav {
  display: flex;
  flex-direction: column;
  padding: var(--s-12) 20px;
  border-bottom: 1px solid var(--line);
}
.mm-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  text-align: left;
  padding: 16px 4px;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.005em;
  color: var(--ink);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
  min-height: 56px;
}
.mm-link:hover,
.mm-link:active { color: var(--blue-deep); }
.mm-link:last-child { border-bottom: 0; }
.mm-link--toggle .mm-chev { transition: transform .18s ease; opacity: 0.7; color: var(--ink); }
.mm-group.is-open > .mm-link--toggle .mm-chev { transform: rotate(180deg); }
.mm-group { border-bottom: 1px solid var(--line); }
.mm-group > .mm-link { border-bottom: 0; }
.mm-group.is-open { background: var(--paper-2); }
.mm-sub {
  list-style: none;
  margin: 0;
  padding: 0 0 var(--s-12) var(--s-20);
  display: flex;
  flex-direction: column;
}
.mm-sub li { border-top: 1px solid var(--line); }
.mm-sub a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 4px;
  font-size: 15px;
  color: var(--text-2);
  min-height: 48px;
}
.mm-sub a:hover { color: var(--blue-deep); }
.mm-sub__all a { color: var(--blue-deep); font-family: var(--font-mono); font-size: var(--t-12); letter-spacing: 0.08em; text-transform: uppercase; }
.mm-sub__arrow { display: inline-flex; }

.mobile-menu__ctas {
  display: flex;
  flex-direction: column;
  gap: var(--s-12);
  padding: var(--s-24) 20px;
  border-bottom: 1px solid var(--line);
}
.mobile-menu__ctas .btn { width: 100%; }
.mobile-menu__contact {
  padding: var(--s-16) 20px var(--s-20);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.mm-contact__label {
  font-family: var(--font-mono);
  font-size: var(--t-12);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 4px;
}
.mobile-menu__contact a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: var(--t-14);
  min-height: 28px;
}
.mobile-menu__contact a:hover { color: var(--blue-deep); }
.mobile-menu__contact a svg { color: var(--blue); flex-shrink: 0; }
.mm-contact__addr {
  font-family: var(--font-mono);
  font-size: var(--t-13);
  line-height: 1.55;
  color: var(--text-2);
  margin-top: 2px;
}

/* === page.css === */
.hero{padding:var(--s-80) 0 var(--s-96);background:radial-gradient(1200px 600px at 80% -10%,rgba(30,64,175,0.06),transparent 60%),var(--paper);border-bottom:1px solid var(--line)}.hero__grid{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--s-64);row-gap:0;align-items:stretch}.hero__left{display:flex;flex-direction:column;align-items:flex-start;padding-bottom:var(--s-40);min-width:0}.hero__eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--text-3);font-family:var(--font-mono);font-size:var(--t-12);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:var(--s-24)}.hero__eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--blue);position:relative}.hero__eyebrow .dot::after{content:'';position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;background:var(--blue);transform:translate(-50%,-50%) scale(1);opacity:0.6;animation:status-dot-pulse 1.8s ease-out infinite;pointer-events:none}@keyframes status-dot-pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:0.6}100%{transform:translate(-50%,-50%) scale(3.5);opacity:0}}@media (prefers-reduced-motion:reduce){.hero__eyebrow .dot::after{animation:none;opacity:0}}.hero__title{font-size:clamp(44px,5vw,72px);line-height:1.04;letter-spacing:-0.028em;font-weight:600;color:var(--ink);margin:0 0 var(--s-24);text-wrap:balance}.hero__sub{font-size:var(--t-20);line-height:1.55;color:var(--text-2);max-width:56ch;margin:0 0 var(--s-32)}.hero__ctas{display:flex;gap:var(--s-12);flex-wrap:wrap}.hero__meta{grid-column:1;display:flex;gap:var(--s-32);padding-top:var(--s-24);border-top:1px solid var(--line);flex-wrap:wrap}.hero__meta-item{display:flex;flex-direction:column;gap:4px}.hero__meta-num{font-size:var(--t-30);font-weight:600;letter-spacing:-0.02em;color:var(--ink);display:inline-flex;align-items:baseline}.hero__meta-unit{font-size:0.55em;font-weight:500;letter-spacing:-0.005em;color:var(--text-3);margin-left:2px}.hero__meta-label{font-family:var(--font-mono);font-size:var(--t-12);letter-spacing:0.06em;text-transform:uppercase;color:var(--text-3)}.hero__visual{position:relative;width:100%;display:flex;align-items:flex-start;justify-content:center;padding-top:var(--s-40)}.hero__visual-img{display:block;width:100%;max-width:660px;height:auto;margin-top:var(--s-40);filter:drop-shadow(0 8px 16px rgba(0,0,0,0.15))}.hero__visual-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:var(--s-24);pointer-events:none}.hero__visual-tag{align-self:flex-start;font-family:var(--font-mono);font-size:var(--t-11);background:rgba(11,18,32,0.78);color:#fff;padding:4px 8px;border-radius:var(--r-2);letter-spacing:0.04em}.hero__visual-caption{font-family:var(--font-mono);font-size:var(--t-12);background:#fff;border:1px solid var(--line-2);border-radius:var(--r-4);padding:10px 12px;color:var(--text-2);align-self:flex-start;max-width:320px;line-height:1.45}.crosshair{position:absolute;width:18px;height:18px;border:1px solid var(--ink);opacity:0.45}.crosshair.tl{top:10px;left:10px;border-right:0;border-bottom:0}.crosshair.tr{top:10px;right:10px;border-left:0;border-bottom:0}.crosshair.bl{bottom:10px;left:10px;border-right:0;border-top:0}.crosshair.br{bottom:10px;right:10px;border-left:0;border-top:0}.trust-strip{padding:var(--s-32) 0 var(--s-48);border-bottom:1px solid var(--line)}.trust-strip__inner{display:grid;grid-template-columns:auto 1fr;gap:var(--s-48);align-items:center}.trust-strip__label{font-family:var(--font-mono);font-size:var(--t-12);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);max-width:220px;line-height:1.5}.trust-strip__items{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s-24)}.trust-logo{height:32px;border-radius:var(--r-4);background:repeating-linear-gradient(135deg,#EDEBE5 0 8px,#E6E4DE 8px 16px);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px;color:var(--text-3)}.section-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:var(--s-32);margin-bottom:var(--s-48)}.section-head__title{max-width:22ch}.section-head__sub{max-width:56ch;color:var(--text-2);font-size:var(--t-18);line-height:1.55;margin-top:var(--s-12)}.section-head__aside{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.cap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-16)}.cap-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-8);padding:var(--s-24);display:flex;flex-direction:column;gap:var(--s-12);min-height:240px;transition:border-color .15s ease,background .15s ease;cursor:pointer}.cap-card:hover{border-color:var(--ink)}.cap-card .icon{width:36px;height:36px;border-radius:var(--r-6);background:var(--blue-tint);color:var(--blue-deep);display:flex;align-items:center;justify-content:center}.cap-card h3{font-size:var(--t-18);font-weight:600;letter-spacing:-0.01em;margin:0;color:var(--ink)}.cap-card p{font-size:var(--t-14);line-height:1.5;color:var(--text-2);margin:0}.cap-card__index{position:absolute;top:var(--s-24);right:var(--s-24);font-family:var(--font-mono);font-size:var(--t-12);color:var(--text-3)}.cap-card__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between}.cap-card__foot .link-arrow{font-size:var(--t-13)}.ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}.ind-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:var(--s-24);display:flex;flex-direction:column;gap:var(--s-12);min-height:180px;background:var(--surface);transition:background .15s ease;cursor:pointer}.ind-cell:hover{background:var(--paper-2)}.ind-cell__num{font-family:var(--font-mono);font-size:var(--t-12);color:var(--text-3);letter-spacing:0.04em}.ind-cell__title{font-size:var(--t-20);font-weight:600;color:var(--ink);letter-spacing:-0.01em;margin:0}.ind-cell__caption{font-size:var(--t-13);color:var(--text-2);margin:0;line-height:1.5}.ind-cell__foot{margin-top:auto;display:flex;justify-content:flex-end;color:var(--blue)}.why{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.why__grid{display:grid;grid-template-columns:360px 1fr;gap:var(--s-64);align-items:start}.why-image{margin:var(--s-32) 0 0;max-width:100%}.why-image__img{width:100%;display:block;border-radius:var(--r-6);overflow:hidden;height:auto;filter:saturate(0.92) contrast(1.02)}.why__points{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-32) var(--s-48)}.why-point{display:flex;flex-direction:column;gap:var(--s-8);padding-top:var(--s-20);border-top:1px solid var(--line-2)}.why-point__num{font-family:var(--font-mono);font-size:var(--t-12);letter-spacing:0.04em;color:var(--text-3)}.why-point__title{font-size:var(--t-18);font-weight:600;color:var(--ink);letter-spacing:-0.01em;margin:0}.why-point__desc{font-size:var(--t-14);color:var(--text-2);line-height:1.55;margin:0}.materials{padding:var(--s-64) 0;border-bottom:1px solid var(--line)}.materials__list{display:flex;flex-wrap:wrap;gap:var(--s-8);margin-top:var(--s-24)}.mat-chip{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);font-family:var(--font-mono);font-size:var(--t-13);color:var(--ink)}.mat-chip .dot{width:6px;height:6px;border-radius:50%;background:var(--blue)}.visit-section{padding:var(--s-64) 0 var(--s-72)}@media (max-width:1100px){.visit-section{padding:var(--s-56) 0}}@media (max-width:720px){.visit-section{padding:var(--s-48) 0}}.visit__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--s-48);align-items:start}.visit__panel{padding:var(--s-40);border:1px solid var(--line);background:var(--surface);border-radius:var(--r-8);display:flex;flex-direction:column;gap:var(--s-20)}.visit__address{font-family:var(--font-mono);font-size:var(--t-14);line-height:1.7;color:var(--ink);white-space:pre-line}.visit__meta{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-16);padding-top:var(--s-20);border-top:1px solid var(--line)}.visit__meta dt{font-family:var(--font-mono);font-size:var(--t-11);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);margin:0 0 4px}.visit__meta dd{font-size:var(--t-14);color:var(--ink);margin:0;font-family:var(--font-mono)}.visit__map{height:400px;border-radius:var(--r-8);position:relative}.visit__pin{position:absolute;top:42%;left:56%;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--ink);border-radius:var(--r-pill);padding:6px 12px 6px 8px;font-family:var(--font-mono);font-size:var(--t-12);color:var(--ink);box-shadow:0 4px 14px -4px rgba(11,18,32,0.25)}.visit__pin .pinDot{width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px rgba(30,64,175,0.18)}.dark-cta{padding:var(--s-128) 0;background:var(--ink);color:var(--text-on-dark);border-top:1px solid var(--line-dark)}.dark-cta__inner{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--s-64);align-items:end}.dark-cta h2{font-size:clamp(40px,4.4vw,64px);line-height:1.05;letter-spacing:-0.02em;font-weight:600;margin:0 0 var(--s-24);color:#fff}.dark-cta p{color:var(--text-on-dark-2);font-size:var(--t-18);line-height:1.55;margin:0 0 var(--s-32);max-width:50ch}.dark-cta__ctas{display:flex;gap:var(--s-12)}.dark-cta__detail{display:flex;flex-direction:column;gap:var(--s-16)}.dark-cta__row{padding:var(--s-16) 0;border-top:1px solid var(--line-dark);display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:var(--t-13);color:var(--text-on-dark-2)}.dark-cta__row strong{color:#fff;font-weight:500}.footer{background:var(--ink-2);color:var(--text-on-dark-2);border-top:1px solid var(--line-dark);padding:var(--s-80) 0 var(--s-40)}.footer__grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:var(--s-48)}.footer__brand img{height:32px;margin-bottom:var(--s-20)}.footer__brand p{color:var(--text-on-dark-2);font-size:var(--t-14);line-height:1.55;max-width:32ch;margin:0 0 var(--s-20)}.footer-col h4{font-family:var(--font-mono);font-size:var(--t-12);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-on-dark-3);margin:0 0 var(--s-16);font-weight:500}.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.footer-col a{color:var(--text-on-dark-2);font-size:var(--t-14);transition:color .15s ease}.footer-col a:hover{color:#fff}.footer__bottom{margin-top:var(--s-80);padding-top:var(--s-24);border-top:1px solid var(--line-dark);display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--s-16);font-family:var(--font-mono);font-size:var(--t-12);color:var(--text-on-dark-3)}.footer__bottom a{color:var(--text-on-dark-2)}.footer__bottom a:hover{color:#fff}.footer__cols{display:contents}.footer-col__parent-link{display:none}.footer__gmaps-link{display:none}.visit-block{display:flex;flex-direction:column;gap:4px;font-family:var(--font-mono);font-size:var(--t-13);line-height:1.7;color:var(--text-on-dark)}.visit-block a{color:var(--text-on-dark);transition:color .15s ease}.visit-block a:hover{color:#fff}.visit-block__addr{white-space:pre-line}.visit-block__hours{color:var(--text-on-dark-2)}@media (max-width:768px){.footer__grid{grid-template-columns:1fr;gap:0}.footer__brand{display:contents}.footer__brand>.visit-block{order:2;margin-top:0}.footer__cols{order:1;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-16);align-items:start;margin-bottom:36px}.footer__brand img{height:36px;margin-bottom:24px}.footer__brand p{margin-bottom:36px;max-width:none}.footer__gmaps-link{display:inline-flex;align-items:center;margin-top:4px;color:var(--blue-on-dark) !important;font-family:var(--font-mono);font-size:var(--t-13);font-weight:500;padding:4px 0}.footer-col--map{display:none}.footer-col h4{margin-bottom:12px;font-size:10px;letter-spacing:0.1em}.footer-col--has-children .footer-col__children{display:none}.footer-col--has-children .footer-col__parent-link{display:inline-block;color:var(--text-on-dark);font-size:var(--t-13);font-weight:500;padding:6px 0;white-space:nowrap;min-height:32px;line-height:20px}.footer-col--has-children .footer-col__parent-link:hover{color:#fff}.footer-col ul{gap:8px}.footer-col a{font-size:var(--t-13);white-space:nowrap;padding:4px 0;display:inline-block}.footer__bottom{margin-top:var(--s-24);flex-direction:row;flex-wrap:wrap;gap:6px 16px;align-items:baseline;font-size:11px}}@media (max-width:380px){.footer-col a,.footer-col__parent-link{font-size:12px}.footer__cols{gap:12px}}@media (max-width:1100px){.hero__grid{grid-template-columns:1fr;gap:var(--s-48)}.hero__left{padding-bottom:0}.hero__visual{padding-top:0}.hero__visual-img{margin-top:0}.cap-grid{grid-template-columns:repeat(2,1fr)}.ind-grid{grid-template-columns:repeat(2,1fr)}.why__grid{grid-template-columns:1fr}.visit__grid{grid-template-columns:1fr}.dark-cta__inner{grid-template-columns:1fr}.mega__inner{grid-template-columns:280px 1fr;gap:var(--s-32)}}@media (min-width:769px) and (max-width:1100px){.footer__grid{grid-template-columns:1fr 1fr}}@media (max-width:900px){.site-header__nav,.site-header__cta{display:none}.site-header__burger{display:inline-flex}.site-header__topbar{display:none}.site-header__mobile-contact{display:flex}}@media (max-width:768px){.container{padding:0 20px}.section{padding:var(--s-64) 0}.section-tight{padding:var(--s-48) 0}.section-flush-top{padding-top:var(--s-64)}.site-header__bar{min-height:72px;padding:0 20px;gap:var(--s-16)}.site-header__logo img{height:46px}.hero{padding:var(--s-64) 0}.hero__title{font-size:34px;line-height:1.08;letter-spacing:-0.02em}.hero__sub{font-size:var(--t-16);line-height:1.5}.hero__ctas .btn-lg{height:48px;font-size:var(--t-15)}.hero__meta{gap:var(--s-20);padding-top:var(--s-20)}.hero__meta-num{font-size:var(--t-24)}.hero__meta-label{font-size:11px}.hero__left{order:1}.hero__meta{order:2}.hero__visual{order:3;padding-top:var(--s-40)}.hero__visual-img{margin-top:0;max-width:100%}.ribbon{padding:0}.section-head{grid-template-columns:1fr;gap:var(--s-16);margin-bottom:var(--s-40)}.section-head__aside{text-align:left;align-items:flex-start}.section-head__sub{font-size:var(--t-16);line-height:1.55;max-width:none}.cap-grid{grid-template-columns:1fr;gap:var(--s-12)}.cap-card{min-height:0;padding:var(--s-20)}.cap-card h3{font-size:var(--t-17)}.ind-grid{grid-template-columns:1fr}.ind-cell{min-height:0;padding:var(--s-20)}.why__grid{gap:var(--s-40)}.why__points{grid-template-columns:1fr;gap:var(--s-20)}.why-image{margin-top:var(--s-24)}.materials{padding:var(--s-64) 0}.dark-cta{padding:var(--s-72) 0}.dark-cta__inner{gap:var(--s-40)}.dark-cta h2{font-size:32px;line-height:1.1}.dark-cta p{font-size:var(--t-16)}.dark-cta__ctas{flex-wrap:wrap}.dark-cta__ctas .btn-lg{flex:1 1 auto}.dark-cta__row{font-size:var(--t-12);flex-wrap:wrap;gap:4px 12px}.visit-section{padding:var(--s-64) 0}.visit__panel{padding:var(--s-24)}.visit__map{height:320px;aspect-ratio:auto !important}.footer{padding:var(--s-64) 0 var(--s-40)}.trust-strip__inner{grid-template-columns:1fr}.trust-strip__items{grid-template-columns:repeat(3,1fr)}}@media (max-width:400px){.hero__title{font-size:30px}.hero__meta{gap:var(--s-16)}.container{padding:0 16px}.site-header__bar{padding:0 16px}}.ds-ref{background:#fff;border-top:4px solid var(--blue);padding:var(--s-80) 0 var(--s-128)}.ds-ref__head{border-bottom:1px solid var(--line);padding-bottom:var(--s-32);margin-bottom:var(--s-48);display:flex;align-items:end;justify-content:space-between;gap:var(--s-32)}.ds-ref h2{font-size:clamp(28px,3vw,40px);letter-spacing:-0.02em;font-weight:600;margin:0;color:var(--ink)}.ds-ref__sub{color:var(--text-2);margin:8px 0 0;max-width:60ch}.ds-block{margin-bottom:var(--s-64)}.ds-block__title{font-family:var(--font-mono);font-size:var(--t-12);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);margin:0 0 var(--s-20);padding-bottom:var(--s-8);border-bottom:1px solid var(--line)}.swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--s-16)}.swatch{border:1px solid var(--line);border-radius:var(--r-8);overflow:hidden;background:#fff}.swatch__chip{height:88px}.swatch__meta{padding:var(--s-12) var(--s-16);display:flex;flex-direction:column;gap:2px}.swatch__name{font-size:var(--t-14);font-weight:500;color:var(--ink)}.swatch__val{font-family:var(--font-mono);font-size:var(--t-12);color:var(--text-3)}.type-list{display:flex;flex-direction:column;gap:var(--s-20)}.type-row{display:grid;grid-template-columns:96px 1fr;gap:var(--s-24);align-items:baseline;padding:var(--s-12) 0;border-top:1px solid var(--line)}.type-row .label{font-family:var(--font-mono);font-size:var(--t-12);color:var(--text-3)}.spacing-row{display:grid;grid-template-columns:80px 1fr 80px;gap:var(--s-16);align-items:center;padding:var(--s-8) 0;border-top:1px solid var(--line)}.spacing-row .bar{background:var(--blue);height:10px;border-radius:2px}.spacing-row .label,.spacing-row .px{font-family:var(--font-mono);font-size:var(--t-12);color:var(--text-2)}.spacing-row .px{text-align:right}.ds-samples{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-16)}@media (max-width:900px){.swatches{grid-template-columns:repeat(3,1fr)}.ds-samples{grid-template-columns:1fr}}
/* === pages.css === */
.page-hero-image{padding-top:var(--s-32);background:var(--paper)}.page-hero-image img{width:100%;height:450px;object-fit:cover;object-position:center;display:block;border-radius:var(--r-8);background:var(--paper-2)}.page-hero{background:var(--paper);padding:var(--s-64) 0 var(--s-48);border-bottom:1px solid var(--line)}.page-hero__inner{display:grid;grid-template-columns:55fr 45fr;column-gap:var(--s-48);row-gap:0;align-items:start}.page-hero__inner:has(>.page-hero__text){display:flex;flex-direction:column;gap:var(--s-40)}.page-hero__text{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-20)}.page-hero__eyebrow-row{display:flex;align-items:center;gap:12px;color:var(--blue);min-width:0;margin:0}.page-hero__text>h1{margin:0;max-width:22ch}.page-hero__text>.page-hero__summary{margin:0;max-width:64ch}.page-hero__ctas{display:flex;gap:12px;flex-wrap:wrap;margin:var(--s-4) 0 0;min-width:0}.page-hero__aside{width:100%}.page-hero__image{width:100%;aspect-ratio:16 / 9;border-radius:var(--r-12,12px);overflow:hidden;background:var(--paper-2);display:block;position:relative}.page-hero__image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;border-radius:inherit}.page-hero--agriculture .page-hero__image img{object-position:center 75%}.page-hero--industrial-machinery .page-hero__image img{object-position:40% center}.page-hero--assembly-sub-assembly .page-hero__image{background:#ffffff}.page-hero--assembly-sub-assembly .page-hero__image img{object-fit:contain}.page-hero--cad-cam-design .page-hero__image img{object-fit:contain}.page-hero--cad-cam-design .page-hero__image{background:var(--paper)}.page-hero__specs{margin:0;padding-top:var(--s-24);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-24) var(--s-32)}.page-hero__specs__item{display:flex;flex-direction:column;gap:4px;min-width:0}.page-hero__specs dt{font-family:var(--font-mono);font-size:var(--t-12);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);font-weight:500}.page-hero__specs dd{margin:0;font-size:var(--t-15);line-height:1.4;color:var(--ink);font-weight:500}.breadcrumbs{display:flex;flex-wrap:wrap;gap:6px;font-family:var(--font-mono);font-size:var(--t-12);letter-spacing:0.04em;color:var(--text-3);margin-bottom:var(--s-20);text-transform:uppercase}.breadcrumbs a{color:var(--text-2)}.breadcrumbs a:hover{color:var(--ink)}.breadcrumbs .sep{color:var(--text-3);opacity:0.6}.page-hero h1{font-size:clamp(36px,4.2vw,60px);line-height:1.05;letter-spacing:-0.025em;font-weight:600;margin:0 0 var(--s-20);color:var(--ink);text-wrap:balance}.page-hero__summary{font-size:var(--t-20);line-height:1.5;color:var(--text-2);max-width:56ch;margin:0 0 var(--s-24)}.page-hero__meta{display:grid;grid-template-columns:1fr;gap:var(--s-12);padding:var(--s-24);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-8)}.page-hero__meta-row{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:var(--s-12);border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:var(--t-13);color:var(--text-2);gap:var(--s-12)}.page-hero__meta-row:last-child{border-bottom:0;padding-bottom:0}.page-hero__meta-row strong{color:var(--ink);font-weight:500;text-align:right}.page-hero--image{position:relative;background-color:#0f172a;background-size:cover;background-position:center;background-repeat:no-repeat;border-bottom:1px solid var(--line-dark);overflow:hidden;min-height:480px;padding:var(--s-64) 0 var(--s-48)}.page-hero--image .page-hero__overlay{position:absolute;inset:0;background:linear-gradient( 180deg,rgba(15,23,42,0.55) 0%,rgba(15,23,42,0.78) 100% );z-index:1;pointer-events:none}.page-hero--image>.container{position:relative;z-index:2}.page-hero--image .breadcrumbs{color:rgba(255,255,255,0.55)}.page-hero--image .breadcrumbs a{color:rgba(255,255,255,0.75)}.page-hero--image .breadcrumbs a:hover{color:#fff}.page-hero--image .breadcrumbs .sep{color:rgba(255,255,255,0.4)}.page-hero--image h1{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,0.25)}.page-hero--image .page-hero__summary{color:rgba(255,255,255,0.82);text-shadow:0 1px 2px rgba(0,0,0,0.2)}.page-hero--image .page-hero__meta{background:rgba(11,18,32,0.55);border-color:rgba(255,255,255,0.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.page-hero--image .page-hero__meta-row{color:rgba(255,255,255,0.72);border-bottom-color:rgba(255,255,255,0.12)}.page-hero--image .page-hero__meta-row strong{color:#fff}.page-hero--image .btn-ghost-on-dark{background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.35)}.page-hero--image .btn-ghost-on-dark:hover{border-color:#fff;background:rgba(255,255,255,0.06)}@media (max-width:768px){.page-hero--image{min-height:320px}}.prose{display:grid;grid-template-columns:minmax(0,65ch) auto;gap:var(--s-64)}.prose__main{font-size:var(--t-17);line-height:1.7;color:var(--text)}.prose__main p{margin:0 0 var(--s-20);color:var(--text-2);font-size:var(--t-18);line-height:1.65}.prose__main p:last-child{margin-bottom:0}.prose__main h2{font-size:clamp(24px,2vw,28px);letter-spacing:-0.015em;font-weight:600;color:var(--ink);margin:var(--s-48) 0 var(--s-16)}.prose__aside{width:280px;padding:var(--s-24);background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-8);position:sticky;top:120px;align-self:start;display:flex;flex-direction:column;gap:var(--s-12)}.prose__aside h4{font-family:var(--font-mono);font-size:var(--t-12);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);margin:0 0 4px;font-weight:500}.apps-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line)}.apps-list li{list-style:none;display:grid;grid-template-columns:56px 1fr;gap:var(--s-16);align-items:baseline;padding:var(--s-20) var(--s-12);border-bottom:1px solid var(--line)}.apps-list li:nth-child(odd){border-right:1px solid var(--line)}.apps-list .num{font-family:var(--font-mono);font-size:var(--t-12);color:var(--blue);letter-spacing:0.04em}.apps-list .txt{font-size:var(--t-17);color:var(--ink);line-height:1.45}.apps-list.single{grid-template-columns:1fr}.apps-list.single li:nth-child(odd){border-right:0}.xlinks{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-16)}.xlink{display:flex;flex-direction:column;gap:var(--s-12);padding:var(--s-24);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-8);cursor:pointer;transition:border-color .15s ease}.xlink:hover{border-color:var(--ink)}.xlink__label{font-family:var(--font-mono);font-size:var(--t-12);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3)}.xlink__title{font-size:var(--t-18);font-weight:600;color:var(--ink);letter-spacing:-0.005em}.xlink__caption{font-size:var(--t-14);color:var(--text-2);line-height:1.5}.xlink__foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;color:var(--blue);font-family:var(--font-mono);font-size:var(--t-12)}.faq{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-q{display:flex;width:100%;align-items:center;justify-content:space-between;text-align:left;padding:var(--s-24) 0;font-size:var(--t-18);font-weight:500;color:var(--ink);background:transparent;border:0;cursor:pointer;letter-spacing:-0.005em}.faq-q:hover{color:var(--blue-deep)}.faq-q .plus{width:28px;height:28px;border-radius:50%;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--ink);flex-shrink:0}.faq-item[data-open="true"] .plus{background:var(--blue);color:#fff;border-color:var(--blue)}.faq-a{overflow:hidden;max-height:0;transition:max-height .25s ease}.faq-item[data-open="true"] .faq-a{max-height:600px}.faq-a__inner{padding:0 0 var(--s-24);font-size:var(--t-17);line-height:1.65;color:var(--text-2);max-width:64ch}.process{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}.process-step{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:var(--s-32);display:flex;flex-direction:column;gap:var(--s-12);min-height:200px;background:var(--surface)}.process-step__num{font-family:var(--font-mono);font-size:var(--t-30);font-weight:500;color:var(--blue);letter-spacing:-0.02em}.process-step__title{font-size:var(--t-18);font-weight:600;color:var(--ink)}.process-step__desc{font-size:var(--t-14);color:var(--text-2);line-height:1.55}.svc-index{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}.svc-index .ind-cell{min-height:220px}.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-24)}.work-card{display:flex;flex-direction:column;gap:var(--s-16)}.work-card__img{aspect-ratio:4 / 3;border-radius:var(--r-8)}.work-card__meta{display:flex;gap:10px;flex-wrap:wrap}.work-card h3{font-size:var(--t-18);font-weight:600;color:var(--ink);margin:0;letter-spacing:-0.005em}.work-card p{margin:0;font-size:var(--t-14);color:var(--text-2);line-height:1.55}.work-intro{background:var(--paper);padding:var(--s-64) 0 var(--s-96);border-bottom:1px solid var(--line-2)}.work-intro__inner{margin-top:var(--s-24);display:flex;flex-direction:column;gap:var(--s-20);max-width:880px}.work-intro__h2{font-size:clamp(36px,4.2vw,60px);line-height:1.05;letter-spacing:-0.025em;font-weight:600;color:var(--ink);margin:0;text-wrap:balance;max-width:22ch}.work-intro__body{font-size:var(--t-18);line-height:1.7;color:var(--text-2);max-width:680px;margin:0;text-wrap:pretty}.work-gallery-section{background:var(--ink-2);padding:var(--s-96) 0 var(--s-128)}.work-gallery__header{text-align:center;margin-bottom:var(--s-72);display:flex;flex-direction:column;align-items:center;gap:var(--s-16)}.work-gallery__header .eyebrow{color:var(--text-on-dark-3);letter-spacing:0.18em;margin:0}.work-gallery__header::after{content:"";display:block;width:80px;height:2px;background:var(--blue-on-dark);opacity:0.55;border-radius:2px}.work-gallery{display:flex;align-items:flex-start;gap:20px}.work-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:20px}.work-tile{display:block;position:relative;width:100%;margin:0;padding:0;background:transparent;border:0;cursor:pointer;border-radius:10px}.work-tile:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.work-tile__frame{display:block;background:#FAFAFA;border:4px solid rgba(11,18,32,0.08);border-radius:10px;padding:0;box-shadow:0 4px 16px rgba(0,0,0,0.35);transition:transform 240ms ease-out,box-shadow 240ms ease-out;overflow:hidden}.work-tile__frame img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain;background:#FAFAFA}@media (hover:hover) and (pointer:fine){.work-tile:hover .work-tile__frame{transform:scale(1.02);box-shadow:0 14px 36px rgba(0,0,0,0.5)}}.work-reorder-hint{display:flex;align-items:center;gap:10px;max-width:640px;margin:0 auto var(--s-40);padding:12px 18px;border:1px solid rgba(107,201,255,0.4);border-radius:8px;background:rgba(107,201,255,0.08);color:var(--text-on-dark-2,#cdd2da);font-family:var(--font-mono);font-size:12px;letter-spacing:0.04em;line-height:1.5;text-align:left}.work-reorder-hint__dot{flex:none;width:8px;height:8px;border-radius:50%;background:#6bc9ff;box-shadow:0 0 0 4px rgba(107,201,255,0.18);animation:work-reorder-dot 1.6s ease-in-out infinite}@keyframes work-reorder-dot{0%,100%{opacity:1}50%{opacity:0.35}}@media (prefers-reduced-motion:reduce){.work-reorder-hint__dot{animation:none}}.work-tile--reorder{cursor:grab}.work-tile--reorder:active{cursor:grabbing}@media (hover:hover) and (pointer:fine){.work-gallery.is-reordering .work-tile:hover .work-tile__frame{transform:none;box-shadow:0 4px 16px rgba(0,0,0,0.35)}.work-tile--reorder:hover .work-tile__frame{outline:1px solid rgba(107,201,255,0.55);outline-offset:2px}}.work-tile__pos{position:absolute;top:8px;left:8px;z-index:2;min-width:24px;height:24px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:rgba(8,10,14,0.82);color:#fff;font-family:var(--font-mono);font-size:12px;font-weight:500;line-height:1;pointer-events:none;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.work-tile.is-dragging{opacity:0.4}.work-tile.is-drop-target .work-tile__frame{outline:2px dashed #6bc9ff;outline-offset:2px}@media (max-width:1024px){.work-gallery{gap:18px}.work-col{gap:18px}.work-tile{margin:0}.work-tile__frame{padding:0}}@media (max-width:640px){.work-gallery-section{padding:var(--s-64) 0 var(--s-80)}.work-gallery__header{margin-bottom:var(--s-48);gap:var(--s-12)}.work-gallery__header::after{width:56px}.work-gallery{gap:16px}.work-col{gap:16px}.work-tile{margin:0}.work-tile__frame{padding:0;border-radius:10px}.work-tile__frame img{max-height:none}}@media (max-width:480px){.work-gallery-section>.container{padding:0 16px}}.work-cta{background:var(--paper);padding:var(--s-128) 0}.work-cta__inner{max-width:760px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--s-20)}.work-cta__inner .eyebrow{margin-bottom:0}.work-cta__h2{font-size:clamp(32px,3.6vw,48px);line-height:1.08;letter-spacing:-0.02em;font-weight:600;color:var(--ink);margin:0;text-wrap:balance}.work-cta__body{font-size:var(--t-18);line-height:1.6;color:var(--text-2);margin:0;max-width:56ch}.work-cta__ctas{display:flex;gap:var(--s-12);flex-wrap:wrap;justify-content:center;margin-top:var(--s-12)}@media (max-width:640px){.work-intro{padding:var(--s-48) 0 var(--s-64)}.work-cta{padding:var(--s-80) 0}.work-cta__ctas{flex-direction:column;align-items:stretch;width:100%;max-width:320px}.work-cta__ctas .btn{width:100%}}.work-lightbox{position:fixed;inset:0;z-index:200;background:rgba(6,7,10,0.92);display:flex;align-items:center;justify-content:center;padding:56px 80px;animation:lightboxIn 160ms ease-out;touch-action:none}@keyframes lightboxIn{from{opacity:0}to{opacity:1}}.work-lightbox__stage{position:relative;margin:0;max-width:min(1200px,100%);max-height:100%;display:flex;align-items:center;justify-content:center}.work-lightbox__img{display:block;max-width:100%;max-height:calc(100vh - 112px);width:auto;height:auto;object-fit:contain;border-radius:6px;background:#0e131c;box-shadow:0 24px 64px rgba(0,0,0,0.5);user-select:none;-webkit-user-drag:none}.work-lightbox__btn{position:absolute;width:48px;height:48px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.18);color:#fff;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background 150ms ease,border-color 150ms ease,transform 60ms ease}.work-lightbox__btn:hover{background:rgba(255,255,255,0.16);border-color:rgba(255,255,255,0.4)}.work-lightbox__btn:active{transform:scale(0.96)}.work-lightbox__btn--close{top:20px;right:20px}.work-lightbox__btn--prev{top:50%;left:20px;transform:translateY(-50%)}.work-lightbox__btn--next{top:50%;right:20px;transform:translateY(-50%)}.work-lightbox__btn--prev:active{transform:translateY(-50%) scale(0.96)}.work-lightbox__btn--next:active{transform:translateY(-50%) scale(0.96)}@media (max-width:768px){.work-lightbox{padding:56px 12px 72px}.work-lightbox__img{max-height:calc(100vh - 128px);border-radius:4px}.work-lightbox__btn{width:44px;height:44px}.work-lightbox__btn--close{top:12px;right:12px}.work-lightbox__btn--prev{left:8px}.work-lightbox__btn--next{right:8px}}.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--s-64);align-items:start}.form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-8);padding:var(--s-40)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-16);margin-bottom:var(--s-16)}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1 / -1}.form-field label{font-family:var(--font-mono);font-size:var(--t-11);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);font-weight:500}.form-field label .req{color:var(--blue)}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line-2);background:#fff;padding:10px 12px;border-radius:var(--r-4);font:inherit;color:var(--ink);width:100%;font-size:var(--t-15)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--blue);outline-offset:-1px;border-color:var(--blue)}.form-field textarea{resize:vertical;min-height:120px}.form-file{border:1px dashed var(--line-2);background:var(--paper);padding:var(--s-20);border-radius:var(--r-6);display:flex;align-items:center;gap:var(--s-12);font-family:var(--font-mono);font-size:var(--t-13);color:var(--text-2)}.form-file .icon{color:var(--blue)}.form-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-16);margin-top:var(--s-24);padding-top:var(--s-24);border-top:1px solid var(--line);flex-wrap:wrap}.form-foot small{font-family:var(--font-mono);font-size:var(--t-11);color:var(--text-3);max-width:36ch;line-height:1.5}.success-msg{padding:var(--s-24);background:var(--blue-tint);border-left:4px solid var(--blue);border-radius:var(--r-4);font-size:var(--t-15);color:var(--ink);line-height:1.55}.map-frame{position:relative;border:1px solid var(--line-2);border-radius:var(--r-8);overflow:hidden;background:var(--paper-2)}.map-frame.dark{border-color:var(--line-dark);background:#0e131c}.map-frame iframe{display:block;width:100%;height:100%;border:0}.final-cta{background:#06070a;color:var(--text-on-dark);padding:var(--s-128) 0;border-top:1px solid var(--line-dark)}.final-cta__inner{display:grid;grid-template-columns:1.05fr 1fr;gap:80px;align-items:center}.final-cta__pitch .eyebrow{margin-bottom:12px}.final-cta__h2{font-size:clamp(40px,4.4vw,64px);line-height:1.05;letter-spacing:-0.02em;font-weight:600;color:#fff;margin:0 0 var(--s-24)}.final-cta__sub{color:var(--text-on-dark-2);font-size:var(--t-18);line-height:1.55;margin:0 0 var(--s-32);max-width:52ch}.final-cta__ctas{display:flex;gap:var(--s-12);flex-wrap:wrap}.final-cta__trust{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:22px}.final-cta__trust li{display:grid;grid-template-columns:24px 1fr;gap:14px;align-items:start}.final-cta__check{color:var(--blue-on-dark);display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-top:1px}.final-cta__claim{font-family:var(--font-sans);font-size:clamp(17px,1.4vw,20px);line-height:1.3;letter-spacing:-0.005em;font-weight:600;color:#fff}.final-cta__detail{margin:4px 0 0;font-family:var(--font-sans);font-size:clamp(13px,1vw,15px);line-height:1.5;font-weight:400;color:var(--text-on-dark-2);max-width:44ch}@media (max-width:1100px){.final-cta{padding:var(--s-96) 0}.final-cta__inner{grid-template-columns:1fr;gap:var(--s-64);align-items:start}.final-cta__trust{gap:18px}.final-cta__claim{font-size:17px}.final-cta__detail{font-size:14px}}@media (max-width:720px){.final-cta{padding:var(--s-72) 0}}.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--s-64)}.about-section{padding:var(--s-96) 0}.about-section--paper{background:var(--paper)}.about-section--paper-2{background:#FAFAFA}.about-section__article{margin:0;max-width:70ch;display:flex;flex-direction:column;gap:0}.about-section__eyebrow{position:relative;display:block;padding-top:22px;margin-bottom:var(--s-16)}.about-section__eyebrow::before{content:"";position:absolute;top:0;left:0;width:28px;height:1px;background:var(--blue)}.about-section__title{margin:0 0 var(--s-24);letter-spacing:-0.015em;text-wrap:balance;max-width:22ch}.about-section__body{color:var(--text-2)}.about-section__body p{font-size:var(--t-18);line-height:1.7;margin:0 0 var(--s-20);color:var(--text-2);max-width:68ch}.about-section__body p:last-child{margin-bottom:0}.about-section__signoff{margin-top:var(--s-16) !important;color:var(--text-3)}@media (max-width:720px){.about-section{padding:var(--s-64) 0}.about-section__article{max-width:100%}.about-section__body p{font-size:var(--t-16);line-height:1.65;max-width:100%}.about-section__title{margin-bottom:var(--s-20)}}.about-story{padding-top:var(--s-64);padding-bottom:var(--s-32)}.about-story__article{max-width:680px;margin:0 auto}.about-story__section+.about-story__section{margin-top:120px}.about-story__section .eyebrow{display:block;margin-bottom:16px}.about-story__title{margin:0 0 28px;letter-spacing:-0.015em;text-wrap:balance}.about-story__body{color:var(--text-2)}.about-story__body p{font-size:var(--t-18);line-height:1.7;margin:0 0 var(--s-20);color:var(--text-2)}.about-story__body p:last-child{margin-bottom:0}.about-story__signoff{margin-top:var(--s-24) !important;color:var(--text-3,var(--text-2));font-style:normal}.about-aside-section{padding-top:var(--s-48);padding-bottom:var(--s-96)}.about-aside-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--s-64);align-items:start}@media (max-width:900px){.about-aside-grid{grid-template-columns:1fr}}@media (max-width:720px){.about-story__section+.about-story__section{margin-top:80px}.about-story__body p{font-size:var(--t-16);line-height:1.65}.about-story__title{margin-bottom:20px}}.about-photos{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-16)}.about-photos .placeholder{aspect-ratio:4 / 5}.about-photos .placeholder.wide{grid-column:1 / -1;aspect-ratio:16 / 9}@media (max-width:1100px){.prose{grid-template-columns:1fr}.prose__aside{width:100%;position:static}.apps-list{grid-template-columns:1fr}.apps-list li:nth-child(odd){border-right:0}.xlinks{grid-template-columns:1fr 1fr}.process{grid-template-columns:1fr 1fr}.svc-index{grid-template-columns:1fr 1fr}.work-grid{grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:1fr}.about-grid{grid-template-columns:1fr}}@media (max-width:720px){.xlinks{grid-template-columns:1fr}.process{grid-template-columns:1fr}.svc-index{grid-template-columns:1fr}.work-grid{grid-template-columns:1fr}.form{padding:var(--s-24)}.form-row{grid-template-columns:1fr}.about-photos{grid-template-columns:1fr}}.quote-page__head{max-width:720px}.quote-page__form-wrap{max-width:820px;margin:0 auto}.quote-page__cross{margin-top:var(--s-40);padding-top:var(--s-24);border-top:1px solid var(--line);font-size:var(--t-14)}.visit-page__grid{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--s-48);align-items:start}.visit-page__panel{padding:var(--s-32);border:1px solid var(--line);background:var(--surface);border-radius:var(--r-8);display:flex;flex-direction:column;gap:var(--s-20)}.visit-page__addr{font-family:var(--font-mono);font-size:var(--t-15);line-height:1.7;color:var(--ink)}.visit-page__meta{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-16);margin:0;padding-top:var(--s-20);border-top:1px solid var(--line)}.visit-page__meta div{margin:0}.visit-page__meta dt{font-family:var(--font-mono);font-size:var(--t-11);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);margin:0 0 4px}.visit-page__meta dd{font-size:var(--t-14);color:var(--ink);margin:0;font-family:var(--font-mono)}.visit-page__meta dd a{color:var(--ink);border-bottom:1px solid transparent;transition:border-color .15s ease}.visit-page__meta dd a:hover{border-bottom-color:var(--ink)}.visit-page__ctas{display:flex;gap:12px;flex-wrap:wrap}.visit-page__map{height:480px;border-radius:var(--r-8)}@media (max-width:900px){.visit-page__grid{grid-template-columns:1fr;gap:var(--s-32)}.visit-page__map{height:360px}}@media (max-width:768px){.visit-page__panel{padding:var(--s-24);max-width:100%;box-sizing:border-box}.visit-page__meta{grid-template-columns:1fr;gap:var(--s-12)}.visit-page__meta dd,.visit-page__meta dd a{overflow-wrap:anywhere;word-break:break-word;min-width:0}.visit-page__map{max-width:100%}}@media (max-width:768px){.page-hero{padding:var(--s-64) 0 var(--s-48)}.page-hero-image{padding-top:var(--s-20)}.page-hero-image img{height:260px;border-radius:var(--r-4,4px)}.page-hero h1{font-size:34px;line-height:1.08}.page-hero__summary{font-size:var(--t-16);line-height:1.55}.page-hero__inner:has(>.page-hero__text){gap:var(--s-32)}.page-hero__text{gap:var(--s-16)}.page-hero__image{aspect-ratio:16 / 10}.page-hero__inner:not(:has(>.page-hero__text)){grid-template-columns:1fr;row-gap:var(--s-40)}.page-hero__inner:not(:has(>.page-hero__text))>div:first-child{min-width:0}.page-hero__inner:not(:has(>.page-hero__text)) .page-hero__meta{width:100%}.page-hero--image .page-hero__overlay{background:linear-gradient( 180deg,rgba(15,23,42,0.72) 0%,rgba(15,23,42,0.88) 100% )}.page-hero__specs{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-20) var(--s-24)}.quote-page__head h1{font-size:28px;line-height:1.12;letter-spacing:-0.015em}.quote-page__head .page-hero__summary{font-size:var(--t-16);line-height:1.55}.page-hero__meta{padding:var(--s-20)}.page-hero__meta-row{font-size:var(--t-12)}.prose{gap:var(--s-32)}.prose__main p{font-size:var(--t-16);line-height:1.6}.prose__main h2{font-size:22px;margin:var(--s-32) 0 var(--s-12)}.prose__aside{padding:var(--s-20)}.apps-list li{grid-template-columns:40px 1fr;padding:var(--s-16) var(--s-4)}.apps-list .txt{font-size:var(--t-15)}.work-card__img{aspect-ratio:3 / 2}.faq-q{font-size:var(--t-16);padding:var(--s-20) 0;gap:var(--s-12)}.faq-a__inner{font-size:var(--t-15);padding-bottom:var(--s-20)}.process-step{padding:var(--s-24);min-height:0}.contact-grid{gap:var(--s-32)}}@media (max-width:1024px){.page-hero__specs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.page-hero__specs{grid-template-columns:1fr;gap:var(--s-16)}}
/* === rfq-form.css === */
.rfq{--rfq-accent:var(--blue);--rfq-accent-deep:var(--blue-deep);--rfq-error:#B43A2E;--rfq-success:#2C7A4A;--rfq-pad:var(--s-32);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-8);padding:var(--rfq-pad);position:relative}.rfq-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border:1px solid var(--line-2);background:var(--paper-2);border-radius:var(--r-6);margin-bottom:24px;font-size:var(--t-14);color:var(--text-2);flex-wrap:wrap}.rfq-banner__actions{display:flex;gap:8px;align-items:center}.rfq-banner__btn{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;padding:6px 12px;border-radius:var(--r-4);background:transparent;border:1px solid var(--line-2);color:var(--ink);cursor:pointer}.rfq-banner__btn:hover{border-color:var(--ink)}.rfq-banner__btn.primary{background:var(--rfq-accent);border-color:var(--rfq-accent);color:#fff}.rfq-banner__btn.primary:hover{background:var(--rfq-accent-deep);border-color:var(--rfq-accent-deep)}.rfq-steps{position:relative;display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);margin:-8px -8px 28px;padding:0 8px}.rfq-step{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 8px;background:transparent;border:0;cursor:default;position:relative;font-family:var(--font-mono);font-size:var(--t-13);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);transition:color .15s ease}.rfq-step[data-clickable="true"]{cursor:pointer}.rfq-step[data-clickable="true"]:hover{color:var(--ink)}.rfq-step[data-state="current"]{color:var(--ink)}.rfq-step[data-state="done"]{color:var(--ink)}.rfq-step__badge{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--r-4);font-family:var(--font-mono);font-size:12px;font-weight:500;background:transparent;border:1px solid var(--line-2);color:var(--text-3)}.rfq-step[data-state="current"] .rfq-step__badge{background:var(--rfq-accent);border-color:var(--rfq-accent);color:#fff}.rfq-step[data-state="done"] .rfq-step__badge{background:var(--rfq-success);border-color:var(--rfq-success);color:#fff}.rfq-step__underline{position:absolute;bottom:-1px;height:3px;background:var(--rfq-accent);border-radius:2px;width:calc(100% / 3);transition:transform .22s cubic-bezier(.4,.0,.2,1);pointer-events:none}.rfq-progress-mobile{display:none}.rfq-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.rfq-field{display:flex;flex-direction:column;gap:6px;min-width:0}.rfq-field.full{grid-column:1 / -1}.rfq-field__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.rfq-field label,.rfq-field__label{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);font-weight:500;display:flex;align-items:center;gap:6px}.rfq-field__hint{font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-3)}.rfq-req{color:var(--rfq-accent);font-family:var(--font-mono);font-weight:500}.rfq-field input[type="text"],.rfq-field input[type="email"],.rfq-field input[type="tel"],.rfq-field input[type="number"],.rfq-field input[type="date"],.rfq-field textarea{font:inherit;font-size:var(--t-15);border:1px solid var(--line-2);background:#fff;padding:12px 14px;border-radius:var(--r-4);color:var(--ink);width:100%;font-feature-settings:"tnum"}.rfq-field input:focus,.rfq-field textarea:focus{outline:2px solid var(--rfq-accent);outline-offset:-1px;border-color:var(--rfq-accent)}.rfq-field textarea{resize:vertical;min-height:120px;line-height:1.5}.rfq-field[data-error="true"] input,.rfq-field[data-error="true"] textarea{border-color:var(--rfq-error);outline-color:var(--rfq-error)}.rfq-error{font-family:var(--font-mono);font-size:11px;color:var(--rfq-error);letter-spacing:0.02em;margin-top:4px}.rfq-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.rfq-chip{font-family:var(--font-mono);font-size:12px;letter-spacing:0.06em;text-transform:uppercase;padding:10px 16px;min-height:44px;border-radius:var(--r-4);border:1px solid var(--line-2);background:#fff;color:var(--ink);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease;display:inline-flex;align-items:center;gap:6px}.rfq-chip:hover{border-color:var(--ink)}.rfq-chip:focus-visible{outline:2px solid var(--rfq-accent);outline-offset:2px}.rfq-chip[aria-pressed="true"]{background:var(--rfq-accent);border-color:var(--rfq-accent);color:#fff}.rfq-chip[aria-pressed="true"]:hover{background:var(--rfq-accent-deep);border-color:var(--rfq-accent-deep)}.rfq-note{font-size:var(--t-12);color:var(--text-3);margin-top:8px;line-height:1.5}.rfq-drop{position:relative;border:1px dashed var(--line-2);border-radius:var(--r-6);background:var(--paper);padding:24px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease;min-height:132px;justify-content:center}.rfq-drop:hover{border-color:var(--ink);background:#fff}.rfq-drop[data-active="true"]{border-color:var(--rfq-accent);background:var(--blue-tint)}.rfq-drop:focus-visible{outline:2px solid var(--rfq-accent);outline-offset:2px}.rfq-drop__icon{color:var(--blue)}.rfq-drop__primary{font-size:var(--t-15);color:var(--ink);font-weight:500}.rfq-drop__primary u{text-decoration:underline;text-underline-offset:3px;color:var(--rfq-accent);cursor:pointer}.rfq-drop__caption{font-family:var(--font-mono);font-size:11px;letter-spacing:0.04em;color:var(--text-3)}.rfq-files{margin-top:12px;display:flex;flex-direction:column;gap:8px}.rfq-file{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-4);font-size:var(--t-14)}.rfq-file__check{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;background:var(--rfq-success);color:#fff;flex-shrink:0}.rfq-file__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-weight:500}.rfq-file__size{font-family:var(--font-mono);font-size:11px;color:var(--text-3);flex-shrink:0}.rfq-file__remove{font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;background:transparent;border:0;color:var(--text-3);cursor:pointer;padding:4px 8px}.rfq-file__remove:hover{color:var(--rfq-error)}.rfq-file.ghost{background:var(--paper-2);color:var(--text-3)}.rfq-file.ghost .rfq-file__name{color:var(--text-2);font-weight:400}.rfq-file-error{font-family:var(--font-mono);font-size:11px;color:var(--rfq-error);background:rgba(180,58,46,0.06);border:1px solid rgba(180,58,46,0.2);border-radius:var(--r-4);padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.rfq-file-error__close{background:transparent;border:0;color:var(--rfq-error);cursor:pointer}.rfq-summary{font-family:var(--font-mono);font-size:13px;line-height:1.7;color:var(--ink);background:var(--blue-tint);border-left:4px solid var(--rfq-accent);border-radius:var(--r-4);padding:16px 20px;margin:8px 0 24px;white-space:pre-wrap;word-break:break-word}.rfq-foot{margin-top:28px;padding-top:24px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.rfq-back{font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;background:transparent;border:0;color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:12px 0}.rfq-back[data-hidden="true"]{visibility:hidden;pointer-events:none}.rfq-back:hover{color:var(--ink)}.rfq-next{font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;background:var(--rfq-accent);border:1px solid var(--rfq-accent);color:#fff;padding:14px 22px;border-radius:var(--r-6);cursor:pointer;display:inline-flex;align-items:center;gap:10px;min-height:44px}.rfq-next:hover:not(:disabled){background:var(--rfq-accent-deep);border-color:var(--rfq-accent-deep)}.rfq-next:disabled{background:var(--line-2);border-color:var(--line-2);color:rgba(255,255,255,0.85);cursor:not-allowed}.rfq-confirm{text-align:center;padding:32px 8px;display:flex;flex-direction:column;align-items:center;gap:16px}.rfq-confirm__check{width:72px;height:72px;border:2px solid var(--rfq-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--rfq-accent);background:var(--blue-tint)}.rfq-confirm h2{font-size:clamp(28px,3vw,36px);letter-spacing:-0.02em;font-weight:600;color:var(--ink);margin:0}.rfq-confirm__body{font-size:var(--t-16);color:var(--text-2);line-height:1.55;max-width:52ch}.rfq-confirm__ticket{font-family:var(--font-mono);font-size:14px;letter-spacing:0.05em;color:var(--ink);background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-4);padding:12px 18px}.rfq-confirm__actions{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap;justify-content:center}.rfq-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:768px){.rfq{padding:20px}.rfq-row{grid-template-columns:1fr;gap:16px}.rfq-steps{display:none}.rfq-progress-mobile{display:block;margin:-4px 0 24px}.rfq-progress-mobile__label{font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink);margin-bottom:10px}.rfq-progress-mobile__bar{height:4px;background:var(--line);border-radius:2px;overflow:hidden}.rfq-progress-mobile__fill{height:100%;background:var(--rfq-accent);transition:width .25s ease}.rfq-summary{font-size:12px;padding:14px}.rfq-foot{flex-direction:column-reverse;align-items:stretch;gap:8px}.rfq-back{align-self:center}.rfq-next{width:100%;justify-content:center}}
/* === manifold-showcase.css === */
.manifold-section{background:#06070a;color:#f0f3f8;padding:120px 0}.manifold-section__head{text-align:center;margin-bottom:56px;display:flex;flex-direction:column;align-items:center;gap:18px}.manifold-section__eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:#6bc9ff;opacity:0.8}.manifold-section__h2{font-family:var(--font-sans);font-size:clamp(32px,4.4vw,56px);line-height:1.05;letter-spacing:-0.025em;font-weight:600;color:#f0f3f8;margin:0;max-width:22ch;text-wrap:balance}.manifold-section__sub{font-family:var(--font-sans);font-size:clamp(15px,1.4vw,20px);line-height:1.55;color:#b4bac4;max-width:60ch;margin:0}.manifold-section__cta{margin-top:8px}.manifold-viz{position:relative;margin:0 auto;width:100%;max-width:1088px;min-height:680px;aspect-ratio:16 / 11;background:#06070a;overflow:hidden}.manifold-viz canvas{display:block;width:100% !important;height:100% !important}.manifold-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(205,210,218,0.45);z-index:1}.manifold-loading::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#6bc9ff;margin-right:12px;animation:m-pulse 1.4s ease-in-out infinite}@keyframes m-pulse{0%,100%{opacity:0.3}50%{opacity:1}}.manifold-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;background:repeating-linear-gradient(135deg,#0e131c 0 14px,#0a0f17 14px 28px)}.manifold-fallback__caption{font-family:var(--font-mono);font-size:12px;letter-spacing:0.12em;color:rgba(205,210,218,0.55);margin-top:16px;text-align:center}.manifold-fallback__placeholder{font-family:var(--font-mono);font-size:12px;color:rgba(205,210,218,0.45);padding:12px 18px;border:1px solid rgba(255,255,255,0.1);background:rgba(8,10,14,0.6);border-radius:4px}.m-hud-card{position:absolute;top:24px;left:24px;width:288px;max-width:calc(100% - 48px);padding:13px 16px;background:rgba(8,10,14,0.6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(100,200,255,0.22);box-shadow:0 0 0 1px rgba(255,255,255,0.03) inset,0 20px 60px rgba(0,0,0,0.6);z-index:10;pointer-events:none;font-family:"Helvetica Neue",-apple-system,BlinkMacSystemFont,sans-serif}.m-hud-card .m-cross{position:absolute;width:12px;height:12px;border:1px solid rgba(100,200,255,0.55)}.m-hud-card .m-cross.tl{top:-4px;left:-4px;border-right:0;border-bottom:0}.m-hud-card .m-cross.tr{top:-4px;right:-4px;border-left:0;border-bottom:0}.m-hud-card .m-cross.bl{bottom:-4px;left:-4px;border-right:0;border-top:0}.m-hud-card .m-cross.br{bottom:-4px;right:-4px;border-left:0;border-top:0}.m-hud-title{font-size:10px;letter-spacing:0.32em;color:#cdd2da;font-weight:600;display:flex;align-items:baseline;gap:10px}.m-hud-title .big{font-size:26px;font-weight:200;letter-spacing:0.04em;color:#f0f3f8;margin-left:auto;line-height:1}.m-hud-section{margin-top:11px;font-style:italic;font-size:11px;letter-spacing:0.22em;color:#6bc9ff;font-weight:600;padding-bottom:6px;background:linear-gradient(to right,#6bc9ff 0%,#6bc9ff 60%,transparent 100%) no-repeat bottom / 100% 1px}.m-hud-body{margin-top:10px;font-size:11px;line-height:1.5;color:#b4bac4}.m-hud-specs{margin-top:11px;padding-top:10px;border-top:1px solid rgba(255,255,255,0.08);display:flex;flex-direction:column;gap:7px;font-size:9px;letter-spacing:0.18em}.m-hud-specs .row{display:flex;justify-content:space-between;align-items:baseline;gap:14px}.m-hud-specs .label{color:rgba(205,210,218,0.55);white-space:nowrap}.m-hud-specs .value{color:#6bc9ff;white-space:nowrap}.m-corner-hud{position:absolute;top:28px;right:28px;z-index:10;text-align:right;font-family:"Helvetica Neue",-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;letter-spacing:0.3em;color:rgba(205,210,218,0.5);line-height:1.9;pointer-events:none}.m-corner-hud .value{color:#6bc9ff}.m-corner-hud .a-axis{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,0.08)}.m-index-indicator{position:absolute;top:50%;right:50px;transform:translateY(-50%);width:96px;height:96px;z-index:10;pointer-events:none}.m-index-indicator svg{width:100%;height:100%}.m-index-indicator .m-index-label{position:absolute;bottom:-22px;left:0;right:0;text-align:center;font-family:"Helvetica Neue",-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;letter-spacing:0.32em;color:rgba(205,210,218,0.55)}.m-footer-hud{position:absolute;bottom:28px;right:28px;z-index:10;font-family:"Helvetica Neue",-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;letter-spacing:0.3em;color:rgba(205,210,218,0.4);pointer-events:none}.m-controls{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:10;background:rgba(8,10,14,0.6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,0.08);padding:6px;font-family:"Helvetica Neue",-apple-system,BlinkMacSystemFont,sans-serif}.m-controls button{background:transparent;border:1px solid rgba(255,255,255,0.12);color:#cdd2da;padding:8px 14px;font-size:11px;letter-spacing:0.18em;font-weight:500;cursor:pointer;transition:all 0.2s;font-family:inherit;min-height:36px}.m-controls button:hover{border-color:rgba(107,201,255,0.6);color:#6bc9ff}.m-controls button:focus-visible{outline:2px solid #6bc9ff;outline-offset:2px;border-color:#6bc9ff}.m-controls button.active{border-color:#6bc9ff;color:#6bc9ff;background:rgba(107,201,255,0.1)}.m-controls button.m-cue-pulse{position:relative;overflow:hidden}.m-controls button.m-cue-pulse::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 37%,rgba(255,255,255,0.6) 50%,transparent 63%);transform:translateX(-100%);animation:m-cue-shimmer 2s ease-in-out infinite}.m-controls button.m-cue-pulse.m-cue-stagger::before{animation-delay:1s}@keyframes m-cue-shimmer{0%{transform:translateX(-100%)}50%{transform:translateX(100%)}100%{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.m-controls button.m-cue-pulse{overflow:visible}.m-controls button.m-cue-pulse::before{content:none;animation:none}}.m-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:220px;z-index:20;pointer-events:none;text-align:center;opacity:0;transition:opacity .35s ease}.m-hint[data-show="true"]{opacity:1}.m-hint .m-hint-text{margin-top:6px;font-family:"Helvetica Neue",-apple-system,BlinkMacSystemFont,sans-serif;font-size:11px;letter-spacing:0.4em;color:#6bc9ff;font-weight:500;text-shadow:0 0 12px rgba(107,201,255,0.5)}.m-swipe-hint{position:absolute;inset:0;z-index:20;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;gap:18px;animation:hintFadeIn 0.3s ease forwards}.m-swipe-hint[data-dismissing="true"]{animation:hintFadeOut 0.3s ease forwards}.m-swipe-hint__finger{width:72px;height:72px;filter:drop-shadow(0 4px 14px rgba(0,0,0,0.5));opacity:0.7}.m-swipe-hint__finger svg{width:100%;height:100%}.m-swipe-hint:not([data-reduced="true"]) .m-swipe-hint__finger{animation:hintSwipeLoop 2.3s ease-in-out infinite}.m-swipe-hint[data-reduced="true"] .m-swipe-hint__finger{display:none}.m-swipe-hint__text{font-family:"Helvetica Neue",-apple-system,BlinkMacSystemFont,sans-serif;font-size:11px;letter-spacing:0.4em;color:#6bc9ff;font-weight:500;text-shadow:0 0 14px rgba(107,201,255,0.5);opacity:0.85}@keyframes hintFadeIn{from{opacity:0}to{opacity:1}}@keyframes hintFadeOut{from{opacity:1}to{opacity:0}}@keyframes hintSwipeLoop{0%{transform:translateX(-48px)}78%{transform:translateX(48px)}100%{transform:translateX(48px)}}.m-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 35%,rgba(0,0,0,0.85) 100%);z-index:2}.m-scan-lines{position:absolute;inset:0;pointer-events:none;z-index:1;background:repeating-linear-gradient( 0deg,transparent 0px,transparent 2px,rgba(255,255,255,0.005) 3px,rgba(255,255,255,0.005) 3px )}@media (max-width:1100px){.manifold-viz{min-height:600px;aspect-ratio:16 / 11}.m-hud-card{width:280px;padding:12px 15px;top:20px;left:20px}.m-hud-title .big{font-size:24px}.m-corner-hud{top:20px;right:20px}.m-footer-hud{bottom:20px;right:20px}.m-index-indicator{right:28px;width:80px;height:80px}}@media (max-width:768px){.manifold-section{padding:72px 0;margin-bottom:0 !important}.manifold-viz{min-height:720px;aspect-ratio:3 / 4}.manifold-section__head{margin-bottom:var(--s-32)}.manifold-section__h2{font-size:28px}.m-hud-card{width:calc(100% - 150px);max-width:300px;padding:10px 12px;top:12px;left:12px}.m-hud-card .m-hud-title{font-size:9px;gap:6px;letter-spacing:0.24em}.m-hud-card .m-hud-title .big{font-size:22px}.m-hud-section{font-size:10px;letter-spacing:0.18em;margin-top:10px;padding-bottom:4px}.m-hud-body{font-size:11px;margin-top:8px;line-height:1.5}.m-hud-specs{display:none}.m-corner-hud{top:12px;right:12px;font-size:10px;letter-spacing:0.2em;line-height:1.7;background:rgba(8,10,14,0.6);padding:8px 10px;border:1px solid rgba(255,255,255,0.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.m-corner-hud>div:not(.a-axis){display:none}.m-corner-hud .a-axis{margin-top:0;padding-top:0;border-top:0}.m-index-indicator{top:auto;right:16px;bottom:88px;transform:none;width:56px;height:56px}.m-index-indicator .m-index-label{bottom:-16px;font-size:7px;letter-spacing:0.24em}.m-controls{bottom:28px;padding:4px;gap:4px}.m-controls button{padding:8px 12px;font-size:10px;letter-spacing:0.14em;min-height:40px}.m-footer-hud{display:none}.m-swipe-hint__finger{width:56px;height:56px}.m-swipe-hint__text{font-size:10px;letter-spacing:0.34em}@keyframes hintSwipeLoop{0%{transform:translateX(-36px)}78%{transform:translateX(36px)}100%{transform:translateX(36px)}}}@media (max-width:420px){.manifold-viz{min-height:680px}}@media (max-width:360px){.m-hud-card{display:none}}
/* === trust-ribbon.css === */
.ribbon{width:100%;background:var(--blue);color:#f0f3f8;border-top:1px solid rgba(255,255,255,0.06);border-bottom:1px solid rgba(255,255,255,0.06);overflow:hidden}.ribbon__inner{height:44px;display:flex;align-items:center;overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 32px,#000 calc(100% - 32px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 32px,#000 calc(100% - 32px),transparent 100%)}.ribbon__track{display:flex;flex-wrap:nowrap;flex-shrink:0;width:max-content;min-width:max-content;animation:ribbonScroll 120s linear infinite;will-change:transform}.ribbon__inner:hover .ribbon__track{animation-play-state:paused}.ribbon__list{display:flex;flex-wrap:nowrap;flex-shrink:0;list-style:none;margin:0;padding:0;align-items:center}.ribbon__item{display:inline-flex;flex-shrink:0;align-items:center;gap:10px;padding:0 18px;font-family:var(--font-mono);font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:#f0f3f8;white-space:nowrap;font-weight:500}.ribbon__diamond{display:inline-block;font-size:9px;line-height:1;color:#F59E0B;transform:translateY(-1px);letter-spacing:0}.ribbon--static .ribbon__inner{-webkit-mask-image:none;mask-image:none;overflow:hidden}.ribbon__list--static{display:flex;flex-wrap:wrap;gap:0;padding:0 16px}.ribbon__list--static .ribbon__item{padding:0 16px}.ribbon__item--sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes ribbonScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.ribbon__track{animation:none;transform:none;width:100%;flex-wrap:nowrap;overflow:hidden}.ribbon__inner:hover .ribbon__track{animation:none}.ribbon__track .ribbon__list+.ribbon__list{display:none}.ribbon__list{flex-wrap:nowrap;overflow:hidden;width:100%}}@media (max-width:768px){.ribbon__inner{height:38px}.ribbon__item{font-size:13px;gap:8px;padding:0 14px;letter-spacing:0.14em;line-height:1.2}.ribbon__diamond{font-size:10px}}
/* === page-legal.css === */
.legal-section{padding:var(--s-48) 0 var(--s-96);background:var(--paper)}.legal-container{max-width:720px;margin:0 auto;padding:0 var(--gutter)}.legal-disclaimer{font-size:var(--t-13);line-height:1.55;color:var(--text-3);font-style:italic;background:var(--paper-2);border-left:3px solid var(--line-2);padding:14px 16px;border-radius:var(--r-4);margin:0 0 var(--s-32)}.legal-h1{font-size:clamp(36px,4vw,48px);line-height:1.05;letter-spacing:-0.025em;font-weight:600;color:var(--ink);margin:0 0 var(--s-12)}.legal-meta{font-family:var(--font-mono);font-size:var(--t-12);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);margin:0 0 var(--s-40)}.legal-toc{margin:0 0 var(--s-48);padding:var(--s-20) var(--s-24);border:1px solid var(--line);border-radius:var(--r-6);background:var(--surface)}.legal-toc__label{font-family:var(--font-mono);font-size:var(--t-12);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);margin-bottom:var(--s-12)}.legal-toc__list{margin:0;padding-left:24px;display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;font-size:var(--t-14)}.legal-toc__list li{color:var(--text-2)}.legal-toc__link{color:var(--blue-deep);font-weight:500;border-bottom:1px solid transparent;transition:border-color .15s ease;display:inline-flex;align-items:center;gap:6px}.legal-toc__link:hover{border-bottom-color:var(--blue-deep)}.legal-toc__link span{display:none}.legal-body{font-size:var(--t-16);color:var(--text);line-height:1.7}.legal-body h2{font-size:var(--t-24);line-height:1.2;letter-spacing:-0.01em;font-weight:600;color:var(--ink);margin:var(--s-48) 0 var(--s-16);scroll-margin-top:80px}.legal-body h2:first-child{margin-top:0}.legal-body p{margin:0 0 var(--s-16);color:var(--text-2);max-width:64ch}.legal-body ul{margin:0 0 var(--s-16);padding-left:22px;color:var(--text-2)}.legal-body ul li{margin-bottom:8px;line-height:1.6}.legal-foot{margin-top:var(--s-64);padding-top:var(--s-32);border-top:1px solid var(--line)}.legal-footnote{margin:var(--s-32) 0 0;font-size:var(--t-13);color:var(--text-3);line-height:1.55}@media (max-width:720px){.legal-section{padding:var(--s-64) 0}.legal-h1{font-size:30px}.legal-toc__list{grid-template-columns:1fr}.legal-container{padding:0 20px}.legal-body{font-size:var(--t-15)}.legal-body h2{font-size:22px;margin:var(--s-32) 0 var(--s-12)}}
