/* ACE service navigation: restrained line symbols with explicit text labels. */
.capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 2.75rem;border-bottom:1px solid var(--line)}
.capability-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:2rem 0 2.25rem;border-top:1px solid var(--line);text-decoration:none}
.service-icon{width:4rem;height:4rem;object-fit:contain;flex:none;margin-bottom:1.5rem}
.capability-card h3{font-size:1.375rem;line-height:1.35;max-width:22rem}
.capability-card p{font-size:1rem;line-height:1.65;color:var(--muted);margin:1rem 0 1.5rem}
.capability-action{margin-top:auto;font-size:.9375rem;font-weight:700;color:var(--blue);border-bottom:1px solid transparent}
.capability-card:hover .capability-action{border-color:var(--blue)}
.capability-card:hover h3{color:var(--blue)}
.capability-card:focus-visible{outline:3px solid var(--blue);outline-offset:7px}
.capability-links{display:flex;flex-wrap:wrap;gap:1rem 2rem;margin-top:1.75rem}
.capability-links .text-link{font-size:1rem}
.service-scope .scope-heading>.service-icon,.assessment-service .scope-heading>.service-icon{margin-bottom:1.25rem}
.design-disciplines{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:1.75rem 0 2rem}
.design-disciplines section{border-top:1px solid var(--line);padding-top:1.25rem;scroll-margin-top:2rem;min-width:0}
.design-disciplines .service-icon{width:2.5rem;height:2.5rem;margin-bottom:1rem}
.design-disciplines h3{font-size:1.1875rem;line-height:1.4}
.design-disciplines p{font-size:1rem;line-height:1.65;margin-top:.75rem}
.component-photo{margin:2rem 0 0}
.component-photo img{width:100%;height:auto;max-height:34rem;object-fit:contain;background:#f0f5fa}
.assessment-summary ol{padding:0;list-style:none;counter-reset:assessment}
.assessment-summary li{border-top:1px solid var(--line);padding:1.125rem 0;counter-increment:assessment}
.assessment-summary li strong{font-size:1.0625rem}
.assessment-summary li strong:before{content:'0' counter(assessment) ' ';color:var(--blue);margin-right:.5rem}
.assessment-summary p{font-size:1rem;color:var(--muted);margin:.625rem 0 0}
.assessment-summary>.text-link{margin-top:1.25rem}
.analysis-demonstration{margin-top:3rem;border-top:2px solid var(--blue);padding-top:2rem;scroll-margin-top:2rem}
.analysis-demo-heading{max-width:48rem;margin-bottom:1.75rem}
.analysis-demo-heading h3{font-size:1.75rem;line-height:1.3;margin-bottom:1rem}
.analysis-demo-heading>p:not(.eyebrow){font-size:1.0625rem;color:var(--muted)}
.analysis-demonstration figure{max-width:58rem;margin:0 auto}
.analysis-demonstration figure img{display:block;width:100%;height:auto;background:white;border:1px solid var(--line)}
.analysis-demonstration figcaption{font-size:.875rem;max-width:48rem}
.demo-basis{max-width:58rem;margin:1.5rem auto 0;border-top:1px solid var(--line);padding-top:1rem}
.demo-basis summary{cursor:pointer;font-weight:700;font-size:1rem;color:var(--navy)}
.demo-basis p{font-size:1rem;color:var(--muted);margin-top:1rem}
.hero-image.context-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#f0f5fa}
@media(max-width:1000px){.capability-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2rem}}
@media(max-width:600px){.capability-grid{grid-template-columns:minmax(0,1fr)}.capability-card{padding:1.5rem 0}.service-icon{width:3.5rem;height:3.5rem;margin-bottom:1.125rem}.capability-card h3{font-size:1.375rem}.design-disciplines{grid-template-columns:minmax(0,1fr)}.component-photo img{max-height:none}.capability-links{flex-direction:column;align-items:flex-start}.analysis-demo-heading h3{font-size:1.5rem}}
.analysis-demonstration figcaption .text-link{display:block;margin-top:.625rem}
.demo-results{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:1rem;table-layout:fixed}
.demo-results caption{text-align:left;font-weight:700;margin-bottom:1rem}
.demo-results th,.demo-results td{text-align:left;vertical-align:top;padding:.875rem .625rem;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.demo-results thead th{background:white}

/* Motion stays inside each symbol; text, card position and click target stay still. */
.service-symbol{display:block;overflow:visible}
.symbol-gear{transform-origin:32px 32px}
@media(prefers-reduced-motion:no-preference){
  .is-animating .symbol-trace{animation:ace-symbol-trace 2s ease-out both}
  .is-animating .symbol-gear{animation:ace-symbol-turn 2s cubic-bezier(.3,0,.2,1) both}
  .is-animating .symbol-scan{animation:ace-symbol-scan 2s ease-in-out both}
  .is-animating .symbol-lens{animation:ace-symbol-inspect 2s ease-in-out both}
  .is-animating .symbol-plate{animation:ace-symbol-align 2s ease-out both}
  .is-animating .symbol-bolts{animation:ace-symbol-bolts 2s ease-out both}
}
@keyframes ace-symbol-trace{0%{stroke-dasharray:1;stroke-dashoffset:1;opacity:.35}75%,100%{stroke-dasharray:1;stroke-dashoffset:0;opacity:1}}
@keyframes ace-symbol-turn{from{transform:rotate(0deg)}to{transform:rotate(90deg)}}
@keyframes ace-symbol-scan{0%{transform:translateY(-16px);opacity:0}20%{opacity:.9}75%{transform:translateY(16px);opacity:.9}100%{transform:translateY(16px);opacity:0}}
@keyframes ace-symbol-inspect{0%,100%{transform:translate(0,0)}35%{transform:translate(-4px,3px)}65%{transform:translate(-2px,5px)}}
@keyframes ace-symbol-align{0%{transform:translateX(5px);opacity:.55}60%,100%{transform:translateX(0);opacity:1}}
@keyframes ace-symbol-bolts{0%,25%{opacity:.3}70%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.service-symbol *{animation:none!important;transition:none!important}}

/* Supplied project model: preserve both boom ends and the complete geometry. */
.stacker-model{grid-column:1/-1;min-width:0;margin:0;background:white;padding:clamp(.5rem,1.5vw,1.25rem)}
.stacker-model a,.stacker-model picture{display:block}
.stacker-model a{cursor:zoom-in}
.stacker-model a:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.stacker-model img{display:block;width:100%;height:auto;aspect-ratio:1736/707;object-fit:contain}
.principal-profile .principal-portrait{width:100%;max-width:340px;height:auto;object-fit:contain}

/* Preserve the complete portrait machinery view at every width. */
.intro-figure.machinery-portrait{width:min(100%,27rem);justify-self:center}
.intro-figure.machinery-portrait img{width:100%;height:auto;aspect-ratio:3/4;max-height:none;object-fit:contain}

/* Keep the approach imagery intact and the supplied 640px model at native size. */
.intro-figure.full-frame-photo img{width:100%;height:auto;aspect-ratio:4/3;max-height:none;object-fit:contain}
.machine-view.reclaimer-view{max-width:640px;margin-inline:auto;background:white}
.machine-view.reclaimer-view img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}

.image-zoom{display:block;cursor:zoom-in}
.image-zoom:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.component-photo>.text-link{margin-top:.75rem;font-size:.9375rem}
.guide-transcript{overflow-wrap:anywhere}
.guide-transcript ol{padding-left:1.5rem}
.guide-transcript li{padding:.75rem 0}
.guide-transcript li p{margin-top:.5rem}
.guide-transcript h4{font-size:1.125rem;line-height:1.4;margin:1.75rem 0 .75rem}

.analysis-demonstration .luff-calculation-page-1{max-width:761px}
.analysis-demonstration .luff-calculation-page-2{max-width:921px}
.analysis-demonstration .luff-calculation-page + .luff-calculation-page{margin-top:2.5rem}
