/* Skyrover: one type scale, restrained controls, no content/layout reordering. */
:root,:host {
  --type-body:1rem; --type-copy:.9375rem; --type-small:.8125rem;
  --type-label:.75rem; --type-micro:.6875rem;
  --ease-out:cubic-bezier(.23,1,.32,1);
  --sky-muted:#53685e;
}
body { font-size:var(--type-body); line-height:1.65; }
h1,h2,h3 { text-wrap:balance; }
p { text-wrap:pretty; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
:where(button,a,input,select,textarea,summary):focus-visible {
  outline:2px solid #a55e40; outline-offset:4px;
}
summary { cursor:pointer; }
.header-description,.brand-note,.header-note { font-size:var(--type-label); line-height:1.5; }
.header-right>a,.study-nav a,.back-link,.return-link { font-size:var(--type-small); }
.contact-link { font-size:var(--type-small)!important; min-height:44px; }
.division-nav { flex-wrap:wrap; row-gap:10px; }
.division-nav>div { flex-wrap:wrap; gap:12px 24px; }
.division-nav a { font-size:var(--type-label); min-height:32px; display:inline-flex; align-items:center; }
.division-id,.eyebrow,.section-heading .eyebrow,.enquiry-band .eyebrow { font-size:var(--type-micro); letter-spacing:.08em; line-height:1.5; }
.rail-end { font-size:10px; letter-spacing:.04em; }
.capability-strip { font-size:var(--type-label); line-height:1.6; flex-wrap:wrap; }
.section-heading h2,.support h2,.enquiry-band h2 { font-size:clamp(2.5rem,3.8vw,3.5rem); line-height:1.08; letter-spacing:-.02em; }
.section-heading>p,.solution summary p,.solution-body p,.industry-panel p,.application p,.approach-steps p,.support p,.enquiry-band p,.group-row p,.operation p { font-size:var(--type-copy); line-height:1.7; color:var(--sky-muted); }
.section-heading>p { max-width:34ch; }
.solution h3,.approach-steps h3 { font-size:2rem; line-height:1.15; letter-spacing:-.01em; }
.solution summary,.solution[open] summary { padding:26px 0; transition:none; }
.solution summary p { max-width:48ch; }
.solution-body { padding-top:4px; }
.tags span,.industry-panel .industry-apps,.app-flow,.application>.mono,.group-row .mono { font-size:var(--type-micro); line-height:1.6; letter-spacing:.02em; }
.industry-tab,.industry-tab .industry-name { font-size:var(--type-small); }
.industry-panel h3,.application h3 { font-size:2.25rem; line-height:1.12; }
.industry-panel figcaption { font-size:var(--type-micro); line-height:1.6; }
.text-link,.text-button,.group-capabilities a { font-size:var(--type-small); }
.group-intro h1 { font-size:clamp(3rem,5vw,4.75rem); line-height:1.06; }
.group-capabilities strong { font-size:1.75rem; }
footer,footer>a:last-child { font-size:var(--type-label); line-height:1.6; }
.mobile-switch a>span:last-child { font-size:var(--type-micro); }
.dialog-intro,dialog label { font-size:var(--type-small); line-height:1.6; }
dialog input,dialog select,dialog textarea { font-size:1rem; }
.experience-fallback h1 { font-size:clamp(3.25rem,5.5vw,5.5rem); line-height:1; }
.experience-fallback p { font-size:var(--type-copy); line-height:1.7; }
.fallback-picker { font-size:var(--type-label); }
/* Press feedback is deliberately small; data and page content never bounce. */
.button,.hero-copy .button { font-size:var(--type-small); min-height:44px; border-radius:4px; box-shadow:none; }
.button:hover { transform:none; box-shadow:none; }
:where(.button,.contact-link,.application-picker button,.sensor-choice,.measurement-groups button,.capture-switch button,.scan-actions button,.timeline>button,.live-time button,.epoch-choices button,#reset-view) {
  transition:transform 100ms var(--ease-out);
}
@media (prefers-reduced-motion:no-preference) {
  :where(.button,.contact-link,.application-picker button,.sensor-choice,.measurement-groups button,.capture-switch button,.scan-actions button,.timeline>button,.live-time button,.epoch-choices button,#reset-view):active:not(:disabled):not(:focus-visible) {
    transform:scale(.97); transition-duration:160ms;
  }
}
.button:focus-visible,.contact-link:focus-visible { transition:none; }
/* Keep the shell in place and make capability changes brief. */
::view-transition-old(root) { animation-duration:120ms; animation-timing-function:var(--ease-out); }
::view-transition-new(root) { animation-duration:180ms; animation-timing-function:var(--ease-out); }
@media (hover:none),(pointer:coarse) {
  .button:hover { transform:none; box-shadow:none; }
  .project-image:hover img { transform:none; }
}
@media (max-width:760px) {
  .header-description { display:none; }
  .header-right { gap:12px; }
  .header-right>a { font-size:var(--type-label); }
  .contact-link { padding:10px 12px; }
  .section-heading>p { max-width:none; }
  .solution h3 { font-size:1.875rem; }
  .solution summary,.solution[open] summary { padding:23px 0; }
  .mobile-switch a { font-size:var(--type-small); }
  .division-nav a { min-height:40px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .button:active { transform:none; }
  ::view-transition-old(root),::view-transition-new(root) { animation:none; }
}
/* Repeated navigation states respond immediately; focus never waits for motion. */
.rail,.mode-rails button,.capability-rails button,.study-switch button { transition:none; }
:where(button,a):focus-visible { transition:none; }

/* Second craft pass: hierarchy through rhythm and weight, not size alone. */
:root,:host {
  --motion-press:100ms; --motion-enter:200ms; --motion-panel:250ms;
  --surface-lift:0 1px 2px #193e3b08,0 4px 14px #193e3b08;
}
.section-heading { gap:2rem; }
.section-heading h2,.support h2,.enquiry-band h2 { font-weight:500; }
.section-heading>p { margin-top:2rem; }
.solution h3 { letter-spacing:0; }
.solution summary { align-items:flex-start; }
.solution summary .expand { margin-top:.35rem; flex-shrink:0; }
.solution summary>div,.industry-panel>div,.group-row>div { min-width:0; }
.solution-body p,.support p { max-width:65ch; }
.industry-tab.is-active { font-weight:600; }
.tags { gap:.5rem; }
.tags span { border-radius:3px; }
.form-pair { grid-template-columns:repeat(2,minmax(0,1fr)); }
dialog { max-height:calc(100dvh - 3rem); overflow:auto; box-shadow:0 16px 70px #193e3b30; }
dialog h2 { font-size:clamp(2rem,4vw,2.75rem); line-height:1.12; }
dialog label { font-weight:500; }
dialog input,dialog select,dialog textarea { min-width:0; max-width:100%; border-radius:4px; }
dialog .close { min-width:44px; min-height:44px; }
::view-transition-group(lidar-panel),::view-transition-group(products-panel),::view-transition-group(software-panel) {
  animation-duration:var(--motion-panel); animation-timing-function:var(--ease-out);
}
/* Specificity matters: these supersede the original button hover transform. */
:is(.button,.contact-link,.application-picker button,.measurement-groups button,.sensor-choice,.capture-switch button,.scan-actions button,.timeline>button,.live-time button,.epoch-choices button,#reset-view) {
  transition:transform var(--motion-press) var(--ease-out);
}
@media(prefers-reduced-motion:no-preference) {
  :is(.button,.contact-link,.application-picker button,.measurement-groups button,.sensor-choice,.capture-switch button,.scan-actions button,.timeline>button,.live-time button,.epoch-choices button,#reset-view):active:not(:disabled):not(:focus-visible) {
    transform:scale(.97); transition-duration:100ms;
  }
}
html[data-input=keyboard] button,html[data-input=keyboard] .button,
.integrated-root[data-input=keyboard] button { transition:none; }
@media(max-width:760px) {
  .section-heading>p { margin-top:1.25rem; }
  .form-pair { grid-template-columns:minmax(0,1fr); }
  dialog { width:calc(100% - 2rem); padding:1.5rem; max-height:calc(100dvh - 2rem); }
}
@media(prefers-contrast:more) {
  :root,:host { --sky-muted:#274c40; --line:#718773; }
  .tags span { color:#173c3c; border:1px solid #718773; }
}
@media(prefers-reduced-motion:reduce) {
  ::view-transition-group(lidar-panel),::view-transition-group(products-panel),::view-transition-group(software-panel) { animation:none; }
}
::view-transition { pointer-events:none; }

/* Three permanent spines; the active title stays beside its content. */
:root { --rail:64px; }
main>.panel.active { display:flex; align-items:stretch; }
main>.panel>.rail { display:flex; flex:0 0 var(--rail); width:var(--rail); align-self:flex-start; height:100svh; max-height:none; padding:24px 0; gap:22px; background-image:none; }
main>.panel>.panel-content { flex:1 1 0; min-width:0; }
main>.panel>.rail .rail-num { font-size:2rem; }
main>.panel>.rail .rail-title { font-size:1.25rem; letter-spacing:.04em; margin-top:14px; }
main>.panel>.rail .rail-end { margin-top:auto; font-size:.5625rem; letter-spacing:.07em; }
main>.panel>.rail[aria-current=page] { background:#193e3b; color:#f2f0e7; border-right:1px solid #193e3b; }
main>.panel>.rail[aria-current=page] .rail-num { color:#d8b08a; }
main>.panel>.rail[aria-current=page] .rail-end { color:#d6ded0; }
main>.panel>.rail:focus-visible { outline-offset:-5px; }
main>.panel[data-division] { view-transition-name:none; }
main>.panel[data-division=lidar]>.rail { view-transition-name:lidar-rail; }
main>.panel[data-division=products]>.rail { view-transition-name:products-rail; }
main>.panel[data-division=software]>.rail { view-transition-name:software-rail; }
main>.panel.active>.panel-content { view-transition-name:capability-content; }
::view-transition-group(lidar-rail),::view-transition-group(products-rail),::view-transition-group(software-rail),::view-transition-group(capability-content) {
  animation-duration:var(--motion-panel); animation-timing-function:var(--ease-out);
}
@media(hover:hover) and (pointer:fine) {
  main>.panel>.rail:not([aria-current=page]):hover { background:#cbd7c3; }
}
@media(min-width:761px) and (max-width:1100px) { :root { --rail:52px; } }
@media(max-width:760px) {
  body { padding-bottom:calc(63px + env(safe-area-inset-bottom)); }
  main>.panel:not(.active),main>.panel>.rail { display:none; }
  main>.panel.active { display:block; width:100%; border:0; }
  .mobile-switch { position:fixed; bottom:0; left:0; right:0; display:flex; background:var(--paper); border-top:1px solid #bac9c0; z-index:30; padding-bottom:env(safe-area-inset-bottom); box-shadow:0 -6px 25px #123a4208; }
  .mobile-switch a { flex:1; min-height:63px; display:flex; justify-content:center; align-items:center; gap:10px; }
  .mobile-switch a.current { color:var(--paper); }
}
@media(prefers-reduced-motion:reduce) {
  ::view-transition-group(lidar-rail),::view-transition-group(products-rail),::view-transition-group(software-rail),::view-transition-group(capability-content) { animation:none; }
}
main>.panel>.rail[aria-current=page] .rail-end:before { background:currentColor; }
@media(min-width:761px) and (max-height:600px) {
  main>.panel>.rail { padding:16px 0; gap:12px; }
  main>.panel>.rail .rail-title { font-size:1.125rem; margin-top:0; }
  main>.panel>.rail .rail-end { display:none; }
}
