:root {
  --ink: #10283a;
  --ink-deep: #061c2b;
  --navy: #0b3046;
  --cad: #c51d6d;
  --cad-dark: #8f174f;
  --cad-soft: #f8e9f0;
  --blue: #126ab4;
  --cyan: #31b7d8;
  --muted: #60768a;
  --line: #dce5ec;
  --paper: #ffffff;
  --wash: #f3f7fa;
  --radius: 24px;
  --shadow: 0 26px 70px rgba(8, 39, 61, 0.14);
  --shell: 1180px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 82px; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

body.nav-open { overflow: hidden; }
a { color: inherit; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, figure { margin-top: 0; }
h1, h2, h3 { line-height: 1.07; letter-spacing: -0.042em; }
.shell { width: min(calc(100% - 48px), var(--shell)); margin-inline: auto; }

.skip-link {
  position: fixed; z-index: 1000; top: 12px; left: 12px; padding: 10px 15px;
  color: var(--ink-deep); background: #fff; border-radius: 8px; transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: fixed; z-index: 100; top: 0; right: 0; left: 0;
  color: #eaf5fb; background: rgba(6, 28, 43, 0.3);
  border-bottom: 1px solid rgba(255,255,255,.1); backdrop-filter: blur(16px);
  transition: background 180ms ease, box-shadow 180ms ease;
}
.site-header.is-scrolled { background: rgba(6, 28, 43, .96); box-shadow: 0 10px 30px rgba(2,15,24,.2); }
.header-inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.cad-brand { display: inline-flex; align-items: center; gap: 15px; color: inherit; text-decoration: none; }
.cad-brand img { width: 132px; height: auto; }
.cad-brand span { max-width: 105px; color: #9cb7c6; font-size: .61rem; line-height: 1.35; letter-spacing: .1em; text-transform: uppercase; }
.primary-nav { display: flex; align-items: center; gap: 26px; }
.primary-nav a { color: #dce9f1; font-size: .8rem; font-weight: 700; text-decoration: none; }
.primary-nav a:hover, .primary-nav a:focus-visible, .primary-nav a[aria-current="page"] { color: #fff; }
.primary-nav .nav-contact { padding: 9px 15px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; }
.menu-button { display: none; width: 44px; height: 44px; padding: 10px; color: #fff; background: transparent; border: 0; cursor: pointer; }
.menu-button span { display: block; width: 22px; height: 2px; margin: 4px auto; background: currentColor; }

.hero {
  position: relative; overflow: hidden; color: #fff;
  background: radial-gradient(circle at 78% 25%, rgba(197,29,109,.2), transparent 28%), linear-gradient(135deg, var(--ink-deep), #0b2d42 62%, #163a50);
}
.hero-orbit { position: absolute; right: -330px; bottom: -420px; width: 790px; height: 790px; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; box-shadow: 0 0 0 75px rgba(255,255,255,.018), 0 0 0 150px rgba(255,255,255,.012); }
.hero-grid { position: relative; z-index: 2; min-height: 770px; display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 74px; padding: 142px 0 82px; }
.eyebrow { margin-bottom: 22px; color: var(--cad); font-size: .69rem; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }
.eyebrow-light { color: #f3a7ca; }
h1 { max-width: 750px; margin-bottom: 28px; font-size: clamp(3.8rem, 6vw, 5.9rem); font-weight: 660; }
.hero-lead { max-width: 710px; margin-bottom: 34px; color: #bed0db; font-size: clamp(1.12rem, 1.7vw, 1.38rem); line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 13px; }
.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 11px; padding: 0 22px; border-radius: 999px; font-size: .8rem; font-weight: 800; text-decoration: none; transition: transform 180ms ease, background 180ms ease; }
.button:hover { transform: translateY(-2px); }
.button-light { color: var(--ink-deep); background: #fff; }
.button-outline { color: #fff; border: 1px solid rgba(255,255,255,.28); }
.button-outline:hover { background: rgba(255,255,255,.08); }
.research-note { margin: 24px 0 0; color: #9fb6c4; font-size: .73rem; }
.research-note strong { color: #f2c2d8; }

.case-preview { justify-self: end; width: min(100%, 470px); padding: 18px; background: rgba(5,25,38,.7); border: 1px solid rgba(255,255,255,.14); border-radius: 26px; box-shadow: var(--shadow); backdrop-filter: blur(12px); }
.case-preview-bar { display: flex; justify-content: space-between; gap: 20px; padding: 3px 3px 15px; color: #82a2b4; font-size: .62rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.case-images { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.case-images figure { position: relative; overflow: hidden; margin: 0; background: #020608; border-radius: 14px; }
.case-images img { width: 100%; aspect-ratio: .77; object-fit: cover; }
.case-images figcaption { position: absolute; right: 8px; bottom: 8px; padding: 4px 7px; color: #fff; background: rgba(6,28,43,.8); border-radius: 999px; font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.case-preview > p { margin: 14px 2px 1px; color: #9fb5c2; font-size: .68rem; }
.system-strip { position: relative; z-index: 2; min-height: 82px; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid rgba(255,255,255,.1); }
.system-strip span { display: grid; place-items: center; padding: 12px; color: #9db5c3; border-right: 1px solid rgba(255,255,255,.1); font-size: .66rem; font-weight: 780; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.system-strip span:first-child { border-left: 1px solid rgba(255,255,255,.1); }

.section { padding: 116px 0; }
.section-heading h2, .evidence-grid h2 { max-width: 780px; margin-bottom: 0; color: var(--ink-deep); font-size: clamp(2.75rem, 4.8vw, 4.5rem); }
.split-heading { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 80px; }
.split-heading > p { margin-bottom: 5px; color: var(--muted); font-size: 1rem; }
.system-section { background: var(--wash); }
.system-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 62px; }
.system-card { min-height: 590px; display: flex; flex-direction: column; padding: 34px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.system-card-dark { color: #eaf4f8; background: var(--ink-deep); border-color: var(--ink-deep); }
.card-number { color: #7d99aa; font-size: .68rem; font-weight: 850; letter-spacing: .14em; }
.system-card > img { width: 128px; height: 58px; margin: 72px 0 24px; object-fit: contain; object-position: left center; }
.system-card h3 { max-width: 520px; margin-bottom: 15px; color: var(--ink-deep); font-size: 1.85rem; }
.system-card-dark h3 { color: #fff; }
.system-card > p { color: var(--muted); font-size: .9rem; }
.system-card-dark > p { color: #adc2ce; }
.system-card ul { margin: auto 0 0; padding: 20px 0 0; list-style: none; border-top: 1px solid var(--line); }
.system-card-dark ul { border-color: rgba(255,255,255,.14); }
.system-card li { padding: 5px 0; color: #516b7d; font-size: .8rem; }
.system-card-dark li { color: #b5c9d3; }

.system-card-resource { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--line); }
.system-card-dark .system-card-resource { border-color: rgba(255,255,255,.14); }
.system-card-resource > summary { display: grid; grid-template-columns: 1fr auto; gap: 7px 20px; color: #fff; cursor: pointer; list-style: none; }
.system-card-resource > summary::-webkit-details-marker { display: none; }
.system-card-resource > summary > span, .system-card-video > span { grid-column: 1 / -1; color: #efa3c6; font-size: .64rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.system-card-resource > summary > strong { font-size: 1.08rem; line-height: 1.25; }
.system-card-resource > summary > small { display: flex; align-items: center; gap: 9px; color: #efa3c6; font-size: .68rem; font-weight: 850; }
.system-card-resource > summary > small b { font-size: 1.1rem; transition: transform 180ms ease; }
.system-card-resource[open] > summary > small b { transform: rotate(45deg); }
.system-card-resource .integration-figure { margin: 22px 0 0; padding: 12px; background: #fff; border-radius: 14px; }
.system-card-resource .integration-figure figcaption { margin-top: 10px; color: #5f7688; font-size: .68rem; }
.system-card-video { display: grid; gap: 8px; }
.system-card-video > span { color: var(--cad); }
.system-card-video > strong { color: var(--ink-deep); font-size: 1.08rem; }
.system-card-video > p { margin: 0; color: var(--muted); font-size: .78rem; }
.system-card-video a { width: fit-content; margin-top: 6px; color: var(--cad-dark); font-size: .72rem; font-weight: 850; text-decoration: none; }
.system-card-video a:hover { text-decoration: underline; text-underline-offset: 5px; }

.method-section { color: #eaf4f8; background: var(--ink-deep); }
.method-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 100px; }
.method-grid h2 { margin-bottom: 26px; color: #fff; font-size: clamp(2.9rem, 5vw, 4.8rem); }
.method-grid > div > p:not(.eyebrow) { max-width: 550px; color: #acc2ce; }
.text-link { color: var(--cad); font-size: .78rem; font-weight: 800; text-decoration: none; }
.text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.text-link-light { color: #f1a4c8; }
.output-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.15); }
.output-list li { min-height: 126px; display: grid; grid-template-columns: 55px 1fr; gap: 20px; padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
.output-list li > span { padding-top: 4px; color: #728fa0; font-size: .66rem; font-weight: 850; }
.output-list strong { color: #fff; font-size: 1.15rem; }
.output-list p { margin: 6px 0 0; color: #a9beca; font-size: .82rem; }

.demos-section { background: #fff; }
.demo-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin-top: 62px; }
.demo-grid-two { grid-template-columns: repeat(2,1fr); }
.demo-grid-one { grid-template-columns: 1fr; }
.demo-grid-one .demo-card { min-height: 360px; }
.demo-grid-one .demo-card > p:not(.card-label) { max-width: 820px; }
.demo-card { min-height: 410px; display: flex; flex-direction: column; padding: 30px; background: var(--wash); border: 1px solid var(--line); border-radius: var(--radius); }
.demo-card-dark { color: #eaf4f8; background: var(--ink-deep); border-color: var(--ink-deep); }
.demo-card-accent { background: var(--cad-soft); border-color: #efcada; }
.demo-card > span { color: #819baa; font-size: .67rem; font-weight: 850; }
.demo-card .card-label { margin: 72px 0 11px; color: var(--cad); font-size: .66rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.demo-card-dark .card-label { color: #efa3c6; }
.demo-card h3 { margin-bottom: 15px; color: var(--ink-deep); font-size: 1.65rem; }
.demo-card-dark h3 { color: #fff; }
.demo-card > p:not(.card-label) { color: var(--muted); font-size: .87rem; }
.demo-card-dark > p:not(.card-label) { color: #adc2ce; }
.demo-card a { margin-top: auto; color: var(--cad-dark); font-size: .76rem; font-weight: 850; text-decoration: none; }
.demo-card-dark a { color: #efa3c6; }
.demo-card a:hover { text-decoration: underline; text-underline-offset: 5px; }

.evidence-section { background: var(--wash); }
.evidence-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 95px; }
.evidence-grid > div:last-child > p { color: var(--muted); font-size: 1.04rem; }
.evidence-links { display: flex; flex-wrap: wrap; gap: 15px 28px; margin-top: 30px; }
.evidence-links a { color: var(--cad-dark); font-size: .77rem; font-weight: 800; text-decoration: none; }
.evidence-links a:hover { text-decoration: underline; text-underline-offset: 5px; }
.contact-band { padding: 92px 0; color: #eaf4f8; background: #0a3549; }
.contact-band-inner { display: grid; grid-template-columns: 1fr auto; gap: 60px; align-items: end; }
.contact-band h2 { max-width: 760px; margin-bottom: 0; color: #fff; font-size: clamp(2.7rem, 5vw, 4.5rem); }

.site-footer { padding: 70px 0 28px; color: #afc4cf; background: var(--ink-deep); }
.footer-top { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 70px; padding-bottom: 62px; }
.footer-mesc { width: fit-content; display: inline-flex; align-items: center; gap: 13px; text-decoration: none; }
.footer-mesc img { width: 52px; }
.footer-mesc span { display: grid; line-height: 1.2; }
.footer-mesc strong { color: #fff; font-size: .9rem; }
.footer-mesc small { margin-top: 5px; color: #87a4b4; font-size: .64rem; }
.footer-top nav { display: grid; align-content: start; gap: 10px; }
.footer-top nav a { width: fit-content; color: #afc4cf; font-size: .75rem; font-weight: 700; text-decoration: none; }
.footer-top nav a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; gap: 30px; padding-top: 23px; border-top: 1px solid rgba(255,255,255,.12); }
.footer-bottom p { margin: 0; font-size: .68rem; }

.subhero { padding: 164px 0 82px; color: #fff; background: radial-gradient(circle at 78% 18%, rgba(197,29,109,.17), transparent 25%), linear-gradient(135deg, var(--ink-deep), #0b3046); }
.subhero-inner { display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: end; }
.subhero h1 { margin: 0; font-size: clamp(3.5rem, 6vw, 5.8rem); }
.subhero-inner > p { max-width: 520px; margin-bottom: 8px; color: #b2c6d1; font-size: 1.03rem; }

.capabilities-section { background: var(--wash); }
.capability-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin-top: 64px; }
.capability-grid article { min-height: 320px; padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: 20px; }
.capability-grid article:nth-child(1), .capability-grid article:nth-child(5) { color: #eaf4f8; background: var(--ink-deep); border-color: var(--ink-deep); }
.capability-grid article > span { color: #809baa; font-size: .67rem; font-weight: 850; }
.capability-grid h3 { margin: 76px 0 14px; color: var(--ink-deep); font-size: 1.45rem; }
.capability-grid article:nth-child(1) h3, .capability-grid article:nth-child(5) h3 { color: #fff; }
.capability-grid p { margin: 0; color: var(--muted); font-size: .84rem; }
.capability-grid article:nth-child(1) p, .capability-grid article:nth-child(5) p { color: #adc2ce; }

.figure-section { background: #fff; }
.figure-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 78px; align-items: center; }
.figure-grid h2 { margin-bottom: 25px; color: var(--ink-deep); font-size: clamp(2.7rem, 4.8vw, 4.5rem); }
.figure-grid > div > p:not(.eyebrow) { color: var(--muted); }
.figure-caution { padding: 13px 15px; color: #715126 !important; background: #fff6e7; border-left: 3px solid #d6a041; font-size: .76rem; font-weight: 700; }
.figure-grid figure { margin: 0; padding: 22px; background: var(--wash); border: 1px solid var(--line); border-radius: 22px; }
.figure-grid figure img { width: 100%; }
.figure-grid figcaption, .integration-figure figcaption { margin-top: 13px; color: #6e8494; font-size: .68rem; text-align: center; }

.integration-section { background: var(--wash); }
.integration-figure { margin: 62px 0 0; padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: 22px; }
.integration-figure img { width: 100%; max-height: 620px; object-fit: contain; }

.research-section { color: #eaf4f8; background: var(--ink-deep); }
.research-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 90px; }
.research-intro { position: sticky; top: 122px; align-self: start; }
.research-intro h2 { color: #fff; font-size: clamp(2.8rem, 5vw, 4.6rem); }
.research-intro > p:not(.eyebrow) { color: #afc4cf; }
.research-figure { margin: 0 0 28px; padding: 18px; background: #fff; border-radius: 16px; }
.research-figure img { width: 100%; }
.research-figure figcaption { margin-top: 10px; color: #607a8b; font-size: .68rem; text-align: center; }

.references-section { color: #eaf4f8; background: var(--ink-deep); }
.references-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 90px; }
.references-grid h2 { color: #fff; font-size: clamp(2.8rem, 5vw, 4.6rem); }
.reference-list { border-top: 1px solid rgba(255,255,255,.15); }
.reference-list details { border-bottom: 1px solid rgba(255,255,255,.15); }
.reference-list summary { min-height: 78px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px; color: #fff; cursor: pointer; list-style: none; font-size: 1.05rem; font-weight: 780; }
.reference-list summary::-webkit-details-marker { display: none; }
.reference-list summary span { color: #86a5b5; font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.reference-list details > p, .reference-list details > ol { margin: 0 0 28px; color: #b1c5d0; font-size: .83rem; }
.reference-list li { margin-bottom: 13px; padding-left: 8px; }
.reference-list details > a { display: inline-block; margin: 0 0 28px; color: #efa3c6; font-size: .76rem; font-weight: 800; text-decoration: none; }

.contact-page { background: #fff; }
.contact-page-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 95px; }
.contact-page h2 { margin-bottom: 24px; color: var(--ink-deep); font-size: clamp(2.7rem, 4.8vw, 4.5rem); }
.contact-page-grid > div:first-child > p:last-child { color: var(--muted); }
.contact-options { display: grid; gap: 12px; }
.email-button, .contact-option { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 16px 20px; color: var(--ink); background: var(--wash); border: 1px solid var(--line); border-radius: 14px; font: inherit; text-align: left; text-decoration: none; cursor: pointer; }
.email-button:hover, .contact-option:hover { background: #eaf1f5; }
.email-button span, .contact-option span { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.email-button strong, .contact-option strong { color: var(--cad-dark); font-size: .82rem; }
.contact-inline { background: var(--wash); }
.location-note { margin-top: 28px; color: var(--ink-deep) !important; font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

.quick-demo-section { background: #fff; }
.demo-notice { display: grid; grid-template-columns: 180px 1fr; gap: 30px; margin-bottom: 46px; padding: 18px 20px; color: #526d7f; background: #fff6e7; border-left: 3px solid #d6a041; }
.demo-notice strong { color: #6e4d20; }
.demo-notice p { margin: 0; font-size: .82rem; }
.quick-image-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.quick-image-grid figure { margin: 0; padding: 18px; background: var(--ink-deep); border-radius: 20px; }
.quick-image-grid figure > span { display: block; margin-bottom: 12px; color: #f1a5c8; font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.quick-image-grid img { width: 100%; max-height: 610px; object-fit: contain; background: #020608; border-radius: 12px; }
.quick-image-grid figcaption { margin-top: 12px; color: #9fb4c1; font-size: .7rem; }
.demo-guide-section { background: var(--wash); }
.demo-guide-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; }
.demo-guide-grid h2 { color: var(--ink-deep); font-size: clamp(2.7rem, 4.8vw, 4.4rem); }
.demo-guide-grid ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid #ccd9e1; }
.demo-guide-grid li { display: grid; grid-template-columns: 50px 1fr; gap: 20px; padding: 24px 0; border-bottom: 1px solid #ccd9e1; }
.demo-guide-grid li > span { color: var(--cad-dark); font-size: .67rem; font-weight: 850; }
.demo-guide-grid li p { margin: 0; color: var(--muted); }
.demo-guide-grid li strong { color: var(--ink-deep); }

.viewer-section { padding: 62px 0 108px; background: #eaf0f4; }
.viewer-controls { display: grid; grid-template-columns: 190px 1fr 210px; gap: 22px; align-items: end; padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: 20px; box-shadow: 0 15px 45px rgba(8,39,61,.08); }
.case-control > label, .mode-control legend, .level-control > span { display: block; margin-bottom: 9px; color: #647d8e; font-size: .65rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.case-control > div, .level-control > div { display: grid; grid-template-columns: 42px 1fr 42px; gap: 7px; }
.case-control button, .level-control button, .enhancement-controls button { min-height: 44px; color: var(--cad-dark); background: var(--wash); border: 1px solid var(--line); border-radius: 10px; font: inherit; font-weight: 800; cursor: pointer; }
.case-control button:hover, .level-control button:hover, .enhancement-controls button:hover { background: #e7eef2; }
.case-control button:disabled, .level-control button:disabled, .enhancement-controls button:disabled { color: #a9b8c1; cursor: not-allowed; }
.case-control select, .enhancement-controls select { min-height: 44px; padding: 0 11px; color: var(--ink-deep); background: #fff; border: 1px solid #cfdce4; border-radius: 10px; font: inherit; font-size: .82rem; font-weight: 750; }
.mode-control { margin: 0; padding: 0; border: 0; }
.mode-tabs { display: flex; flex-wrap: wrap; gap: 7px; }
.mode-tabs button { min-height: 44px; padding: 0 13px; color: #4f6a7c; background: var(--wash); border: 1px solid var(--line); border-radius: 999px; font: inherit; font-size: .72rem; font-weight: 780; cursor: pointer; }
.mode-tabs button[aria-pressed="true"] { color: #fff; background: var(--cad-dark); border-color: var(--cad-dark); }
.level-control strong { display: grid; place-items: center; color: var(--ink-deep); background: #fff; border: 1px solid #cfdce4; border-radius: 10px; font-size: .72rem; }
.viewer-status { display: grid; grid-template-columns: 1fr .8fr; gap: 60px; align-items: end; padding: 68px 6px 28px; }
.viewer-status h2 { margin-bottom: 0; color: var(--ink-deep); font-size: clamp(2.7rem, 4.5vw, 4.2rem); }
.viewer-status > p { margin-bottom: 7px; color: var(--muted); font-size: .92rem; }
.viewer-images { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.viewer-images figure { margin: 0; overflow: hidden; background: var(--ink-deep); border-radius: 20px; box-shadow: 0 18px 50px rgba(8,39,61,.13); }
.viewer-images figure > div { display: grid; min-height: 500px; padding: 18px; place-items: center; background: #020608; }
.viewer-images img { width: 100%; max-height: 690px; object-fit: contain; }
.viewer-images figcaption { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 18px; color: #a9beca; }
.viewer-images figcaption strong { color: #fff; font-size: .8rem; }
.viewer-images figcaption span { font-size: .67rem; }
.viewer-comparison { display: grid; gap: 44px; }
.comparison-column-labels { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; padding: 0 6px; }
.comparison-column-labels span { color: #60798a; font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.comparison-column-labels span:last-child { color: var(--cad-dark); }
.comparison-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.comparison-pair h3 { grid-column: 1 / -1; margin: 0 0 -3px; color: var(--ink-deep); font-size: 1.25rem; }
.comparison-pair figure { min-width: 0; margin: 0; overflow: hidden; background: var(--ink-deep); border-radius: 20px; box-shadow: 0 18px 50px rgba(8,39,61,.13); }
.comparison-pair figure > div { min-height: 480px; display: grid; padding: 18px; place-items: center; background: #020608; }
.comparison-pair img { width: 100%; max-height: 670px; object-fit: contain; }
.comparison-pair figcaption { padding: 15px 18px; color: #fff; font-size: .72rem; font-weight: 750; }
.viewer-explanation { background: #fff; }
.enhancement-controls { width: fit-content; display: grid; grid-template-columns: 125px 120px 125px; gap: 10px; align-items: end; margin-inline: auto; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.enhancement-controls label { display: grid; gap: 5px; color: #647d8e; font-size: .65rem; font-weight: 850; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.enhancement-status { padding-top: 56px; }
.enhancement-images figure > div { min-height: 590px; }

.casebook-section { background: #fff; }
.casebook-disclosure { margin-top: 54px; overflow: hidden; background: var(--wash); border: 1px solid var(--line); border-radius: 22px; }
.casebook-disclosure > summary { min-height: 104px; display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 22px 26px; color: var(--ink-deep); cursor: pointer; list-style: none; }
.casebook-disclosure > summary::-webkit-details-marker { display: none; }
.casebook-disclosure > summary span { display: grid; gap: 4px; }
.casebook-disclosure > summary strong { font-size: 1.15rem; }
.casebook-disclosure > summary small { color: var(--muted); font-size: .7rem; }
.casebook-disclosure > summary > b { color: var(--cad-dark); font-size: 1.5rem; }
.casebook-content { padding: 36px 26px 30px; border-top: 1px solid var(--line); }
.casebook-content .demo-notice { margin-bottom: 34px; background: #fff; }

@media (max-width: 980px) {
  .menu-button { display: block; }
  .primary-nav { position: fixed; top: 82px; right: 0; left: 0; display: grid; padding: 28px 24px 36px; gap: 18px; background: rgba(6,28,43,.98); border-bottom: 1px solid rgba(255,255,255,.1); transform: translateY(-130%); transition: transform 220ms ease; }
  .primary-nav.is-open { transform: translateY(0); }
  .primary-nav .nav-contact { width: fit-content; }
  .hero-grid, .split-heading, .method-grid, .evidence-grid { grid-template-columns: 1fr; }
  .hero-grid { gap: 54px; }
  .case-preview { width: 100%; justify-self: start; }
  .split-heading, .evidence-grid { gap: 28px; }
  .method-grid { gap: 58px; }
  .demo-grid { grid-template-columns: 1fr; }
  .demo-card { min-height: 320px; }
  .subhero-inner, .figure-grid, .references-grid, .research-layout, .contact-page-grid, .demo-guide-grid { grid-template-columns: 1fr; gap: 40px; }
  .research-intro { position: static; }
  .capability-grid { grid-template-columns: repeat(2,1fr); }
  .viewer-controls { grid-template-columns: 1fr; align-items: start; }
  .viewer-status { grid-template-columns: 1fr; gap: 18px; }
}

@media (max-width: 700px) {
  .shell { width: min(calc(100% - 32px), var(--shell)); }
  .cad-brand span { display: none; }
  .cad-brand img { width: 118px; }
  .hero-grid { min-height: auto; padding: 128px 0 66px; }
  h1 { font-size: clamp(3.1rem, 15vw, 4.4rem); }
  .system-strip { grid-template-columns: repeat(2,1fr); }
  .system-strip span { min-height: 58px; border-bottom: 1px solid rgba(255,255,255,.1); }
  .section { padding: 82px 0; }
  .system-grid { grid-template-columns: 1fr; }
  .system-card { min-height: 430px; padding: 28px; }
  .section-heading h2, .evidence-grid h2 { font-size: clamp(2.45rem, 12vw, 3.4rem); }
  .case-images img { aspect-ratio: .72; }
  .contact-band-inner { grid-template-columns: 1fr; align-items: start; gap: 30px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 42px; }
  .footer-mesc { grid-column: 1 / -1; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 7px; }
  .subhero { padding: 138px 0 68px; }
  .subhero h1 { font-size: clamp(3.1rem, 14vw, 4.5rem); }
  .capability-grid, .quick-image-grid { grid-template-columns: 1fr; }
  .capability-grid article { min-height: 280px; }
  .demo-notice { grid-template-columns: 1fr; gap: 6px; }
  .email-button, .contact-option { min-height: 88px; align-items: flex-start; flex-direction: column; gap: 8px; }
  .viewer-section { padding: 42px 0 82px; }
  .viewer-controls { padding: 17px; }
  .mode-tabs { display: grid; grid-template-columns: 1fr 1fr; }
  .viewer-images { grid-template-columns: 1fr; }
  .viewer-images figure > div, .enhancement-images figure > div { min-height: 380px; }
  .viewer-images figcaption { align-items: flex-start; flex-direction: column; gap: 3px; }
  .viewer-comparison { gap: 34px; }
  .comparison-column-labels { gap: 10px; }
  .comparison-column-labels span { font-size: .58rem; }
  .comparison-pair { gap: 10px; }
  .comparison-pair figure > div { min-height: 280px; padding: 8px; }
  .comparison-pair figcaption { min-height: 52px; display: flex; align-items: center; padding: 10px; font-size: .62rem; }
  .enhancement-controls { width: 100%; grid-template-columns: 1fr 86px 1fr; padding: 14px; }
  .enhancement-controls button { font-size: .7rem; }
  .casebook-disclosure { margin-top: 38px; }
  .casebook-disclosure > summary { min-height: 118px; align-items: flex-start; padding: 20px; }
  .casebook-content { padding: 26px 14px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
