/* Maxvision: supplied blue identity, mining workflows and shared site outputs. */
/* Use a simpler local sans-serif glyph for ampersands in every text style. */
@font-face {
  font-family:"Maxvision Ampersand";
  src:local("Arial"),local("ArialMT"),local("Helvetica Neue"),local("Helvetica"),local("Roboto"),local("Liberation Sans");
  font-weight:400;
  font-style:normal;
  unicode-range:U+0026;
}
@font-face {
  font-family:"Maxvision Ampersand";
  src:local("Arial Bold"),local("Arial-BoldMT"),local("Helvetica Neue Bold"),local("Helvetica Bold"),local("Roboto Bold"),local("Liberation Sans Bold");
  font-weight:700;
  font-style:normal;
  unicode-range:U+0026;
}
:root { --twin:#72ddf4; --twin-dim:rgba(114,221,244,.35); --oxide:#1288c2; --oxide-soft:rgba(18,136,194,.15); --paper:#eff4f6; --brand-blue:#087dba; --section-y:clamp(60px,7.5vw,100px); }
:root {
  --font-display:"Maxvision Ampersand","IBM Plex Sans",system-ui,sans-serif;
  --font-body:"Maxvision Ampersand","IBM Plex Sans",system-ui,sans-serif;
  --font-mono:"Maxvision Ampersand","IBM Plex Sans",system-ui,sans-serif;
}
html { scroll-padding-top:112px; }
.footer-company-statement { margin:28px 0 0; max-width:88ch; color:#d8e6eb; font-size:.95rem; line-height:1.65; }
.site-header, .site-header.is-solid { color:var(--ink); background:rgba(255,255,255,.98); box-shadow:0 1px 0 rgba(10,27,38,.12); }
.no-js .site-header { background:#fff; }
.site-header__inner { height:104px; }
.site-header .brand__logo { width:124px; height:auto; }
.site-footer .brand { background:#fff; padding:14px; border-radius:4px; }
.site-footer .brand__logo { width:154px; height:auto; }
.nav a { color:#213744; font-size:1.0625rem; font-weight:600; }
main .eyebrow.label { font-size:.95rem; font-weight:600; letter-spacing:.035em; }
.nav a:hover, .nav a[aria-current="page"] { color:#006da6; background:#eaf5fa; }
.btn--twin, .nav .btn, .nav .btn[aria-current="page"] { color:#fff; background:var(--brand-blue); border-color:var(--brand-blue); }
.btn--twin:hover, .nav .btn:hover { color:#fff; background:#086aa0; border-color:#086aa0; }
.nav-toggle { color:var(--ink); border-color:var(--rule); }
.site-header :focus-visible, :focus-visible { outline-color:#087dba; }
.on-dark :focus-visible { outline-color:var(--twin); }
.hero { min-height:760px; min-height:min(900px,100svh); }
.hero__center { padding-top:190px; padding-bottom:110px; }
.hero__center h1 { max-width:17em; font-size:clamp(2.6rem,5.1vw,4.8rem); line-height:1.12; }
.hero__media::after { background:linear-gradient(90deg,rgba(7,25,37,.84),rgba(7,25,37,.38)),linear-gradient(0deg,rgba(7,25,37,.74),transparent 50%); }
.hero__center .lead { max-width:43em; }
.hero__bar b { font-size:.92rem; }
.hero__bar span { font-size:.8rem; }
.page-hero { padding-top:178px; }
.page-hero h1 { max-width:18em; }
.page-hero__bg::after { background:linear-gradient(90deg,rgba(7,25,37,.9),rgba(7,25,37,.48)); }
.evidence-links span:last-child { color:#0079b1; }
.value svg, .capability-card > svg, .capture-step > svg { fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.value svg { color:#087dba; }
.capability-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.capability-card { padding:32px; background:#fff; border:1px solid var(--rule); border-radius:6px; }
.capability-card > svg { width:42px; height:42px; color:#087dba; margin-bottom:24px; }
.capability-card h3 { font-size:1.45rem; margin-bottom:10px; }
.capability-card p { margin:0; color:var(--muted); font-size:1rem; line-height:1.6; }
/* Solutions capabilities: one image and one concise paragraph per row. */
.capability-rows { display:grid; gap:28px; }
.service-review-notes { margin-top:32px; }
.capability-row { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); grid-template-areas:"media copy"; gap:36px; align-items:center; min-height:280px; border:1px solid var(--rule); border-radius:6px; overflow:hidden; background:#fff; }
.capability-row__media { grid-area:media; position:relative; align-self:stretch; margin:0; min-height:280px; overflow:hidden; background:var(--paper); }
.capability-row__media img { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:cover; }
.capability-row__copy { grid-area:copy; min-width:0; padding:30px 36px 30px 0; }
.capability-row h3 { margin:0 0 16px; font-size:clamp(1.5rem,2.1vw,1.8rem); line-height:1.25; }
.capability-row p { margin:0; max-width:58ch; font-size:1rem; line-height:1.7; color:var(--muted); }
@media (max-width:960px) {
  .capability-row { gap:26px; }
  .capability-row__copy { padding:26px 26px 26px 0; }
}
@media (max-width:640px) {
  .capability-rows { gap:24px; }
  .capability-row { grid-template-columns:1fr; grid-template-areas:"media" "copy"; gap:0; min-height:0; }
  .capability-row__media { min-height:0; aspect-ratio:3 / 2; }
  .capability-row__copy { padding:24px; }
  .capability-row h3 { font-size:1.5rem; margin-bottom:12px; }
}
.capture-flow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.capture-step { border-top:1px solid var(--rule); padding:26px 0 0; }
.capture-step > svg { width:48px; height:48px; color:#087dba; margin-bottom:24px; }
.capture-step .label { color:var(--muted); }
.capture-step h3 { font-size:1.4rem; margin:6px 0 10px; }
.capture-step p { font-size:.98rem; color:var(--muted); }
.architecture-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.architecture-grid .label { color:var(--muted); }
.plain-list { list-style:none; padding:0; margin:16px 0 0; color:var(--muted); font-size:.94rem; }
.plain-list li { padding:8px 0; border-top:1px solid var(--rule); }
.deployment-steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); list-style:none; padding:0; gap:22px; }
.deployment-steps li { border-top:2px solid #1288c2; padding-top:20px; }
.deployment-steps .label { color:#0078af; }
.deployment-steps h3 { font-size:1.12rem; margin:8px 0 12px; }
.deployment-steps p { font-size:.94rem; color:var(--muted); margin:0; }
.specification-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.specification { display:flex; flex-direction:column; border-left:2px solid #1288c2; padding:18px; background:var(--paper); }
.specification .label { color:var(--muted); }
.specification strong { color:#086da3; font-family:var(--font-display); font-size:1.6rem; margin:12px 0; }
.specification > span:last-child { color:var(--muted); font-size:.9rem; }
.technical-note { max-width:80ch; margin:24px auto 32px; color:var(--muted); font-size:.88rem; text-align:center; }
.input-chips { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.input-chips span { border:1px solid var(--rule-dark); border-radius:30px; padding:10px 16px; font-size:.94rem; }
.output-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.output-card { background:var(--paper); border:1px solid var(--rule); border-radius:6px; overflow:hidden; }
.output-art { width:100%; height:auto; background:#102a3a; }
.output-card > div { padding:26px; }
.output-card .label { color:#00749f; font-size:.71rem; }
.output-card h3 { margin:12px 0; font-size:1.3rem; }
.output-card p { font-size:.98rem; color:var(--muted); margin:0; }
.output-preview { display:block; position:relative; background:#102a3a; overflow:hidden; }
.output-preview .output-art { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; transition:transform .25s; }
.output-preview:hover .output-art { transform:scale(1.035); }
.output-preview:focus-visible { outline:3px solid #087dba; outline-offset:-3px; }
.output-preview__hint { position:absolute; right:14px; bottom:14px; padding:7px 12px; background:#0a1b26e8; color:#fff; border:1px solid #87b2c3; border-radius:3px; font-size:.78rem; }
.output-image-dialog { width:min(1200px,calc(100vw - 36px)); max-height:calc(100dvh - 36px); margin:auto; padding:0; border:1px solid #416877; border-radius:8px; background:#0d2634; color:#fff; overflow:auto; }
.output-image-dialog::backdrop { background:#020b13e8; }
.output-image-dialog__header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px 24px; }
.output-image-dialog__header .label { color:#95d4e6; font-size:.7rem; }
.output-image-dialog__header h2 { margin:0; font-size:clamp(1.15rem,2vw,1.65rem); color:#fff; }
.output-image-dialog .dialog-close { flex:none; color:#fff; background:#173d4e; border:1px solid #628fa0; border-radius:3px; padding:9px 13px; font:inherit; cursor:pointer; }
.output-image-dialog figure { margin:0; }
.output-image-dialog figure img { display:block; width:100%; height:auto; max-height:calc(100dvh - 210px); object-fit:contain; background:#071822; }
.output-image-dialog__footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 24px 18px; font-size:.85rem; }
.output-image-dialog__footer button { background:#173d4e; color:#fff; border:1px solid #628fa0; border-radius:3px; padding:8px 12px; font:inherit; cursor:pointer; }
.output-image-dialog button:focus-visible { outline:3px solid #7fe2f8; outline-offset:3px; }
@media (max-width:600px) {
  .output-image-dialog { width:calc(100vw - 16px); max-height:calc(100dvh - 16px); }
  .output-image-dialog__header { padding:16px; gap:14px; }
  .output-image-dialog__footer { padding:16px; font-size:.78rem; }
}
.company-details { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.company-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(32px,5vw,72px); align-items:center; }
.company-intro__copy h2 { margin:16px 0 24px; font-size:clamp(2rem,3.5vw,3.2rem); line-height:1.15; }
.company-intro__copy > p { color:var(--muted); max-width:62ch; line-height:1.75; }
.company-intro__copy .company-intro__lead { color:var(--ink); font-size:1.14rem; line-height:1.7; }
.company-intro__copy .arrow-link { margin-top:12px; }
.company-intro__facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.company-intro__facts > div { display:flex; flex-direction:column; align-items:flex-start; padding:24px; background:var(--paper); border:1px solid var(--rule); border-top:3px solid #087dba; border-radius:4px; }
.company-intro__facts .label { color:var(--muted); font-size:.69rem; }
.company-intro__facts strong { font-family:var(--font-display); color:#086a9b; font-size:clamp(1.5rem,2.6vw,2.1rem); margin:18px 0 10px; line-height:1.2; }
.company-intro__facts > div > span:last-child { font-size:.86rem; line-height:1.5; color:var(--muted); }
.company-applications { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.company-applications a { padding:26px 22px; border:1px solid var(--rule); background:var(--paper); border-radius:4px; }
.company-applications a:hover { border-color:#087dba; }
.company-applications svg { display:block; width:36px; height:36px; margin-bottom:22px; fill:none; stroke:#087dba; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.company-applications h3 { font-size:1.14rem; margin:0 0 18px; }
.company-applications span { font-size:.82rem; color:#006f9e; }
/* About: compact headings and credited photography in the existing palette. */
.company-intro--visual { grid-template-columns:1fr 1.1fr; gap:32px 56px; }
.about-photo { position:relative; margin:0; overflow:hidden; background:#102a3a; border-radius:4px; aspect-ratio:4 / 3; }
.about-photo img { width:100%; height:100%; display:block; object-fit:cover; }
.about-photo figcaption { position:absolute; bottom:0; left:0; right:0; padding:40px 24px 22px; color:#fff; font-size:.95rem; font-weight:500; background:linear-gradient(transparent,rgba(7,25,37,.82)); }
.about-capabilities { display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center; }
.about-capabilities__copy h2 { font-size:clamp(2rem,3.4vw,3.1rem); line-height:1.15; margin:16px 0 28px; }
.about-capabilities__list { display:grid; gap:20px; margin-bottom:28px; }
.about-capabilities__list > div { display:grid; grid-template-columns:32px 1fr; gap:16px; }
.about-capabilities__list svg { width:28px; height:28px; margin-top:3px; fill:none; stroke:#087dba; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.about-capabilities__list h3 { font-size:1.3rem; margin:0 0 6px; }
.about-capabilities__list p { color:var(--muted); font-size:.96rem; line-height:1.6; margin:0; max-width:42ch; }
.about-industry-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.about-industry-card { border:1px solid var(--rule); border-radius:4px; overflow:hidden; background:var(--paper); }
.about-industry-card > img { display:block; width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover; }
.about-industry-card > div { padding:24px; }
.about-industry-card h3 { font-size:1.4rem; line-height:1.3; margin:0 0 10px; }
.about-industry-card p { color:var(--muted); font-size:.94rem; line-height:1.6; margin:0 0 18px; }
.about-industry-card__links { display:flex; flex-wrap:wrap; gap:10px 16px; }
.about-industry-card__links a { font-size:.83rem; font-weight:500; color:#006da6; text-decoration:none; }
.about-industry-card__links a:hover { text-decoration:underline; }
.about-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; list-style:none; margin:0; padding:0; }
.about-steps li { padding-top:20px; border-top:2px solid #087dba; }
.about-steps .label { color:#087dba; font-size:.75rem; }
.about-steps h3 { font-size:1.4rem; margin:12px 0 8px; }
.about-steps p { color:var(--muted); font-size:.96rem; line-height:1.6; margin:0; }
.contact-avatar svg { width:42px; height:42px; fill:none; stroke:currentColor; stroke-width:1.4; }
@media (max-width:960px) {
  .company-intro { grid-template-columns:1fr; gap:32px; }
  .company-applications { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .company-intro--visual { grid-template-columns:1fr 1fr; gap:28px; }
  .about-capabilities { grid-template-columns:1fr 1fr; gap:28px; }
  .about-capabilities .about-photo { aspect-ratio:3 / 4; }
  .about-industry-grid { gap:16px; }
  .about-industry-card > div { padding:20px 16px; }
}
@media (max-width:600px) {
  .company-intro__facts { gap:10px; }
  .company-intro__facts > div { padding:18px 14px; }
  .company-intro__facts strong { font-size:1.4rem; margin-top:14px; }
  .company-intro__facts > div > span:last-child { font-size:.8rem; }
  .company-applications { grid-template-columns:1fr; gap:14px; }
  .company-applications a { padding:22px; }
  .company-intro--visual, .about-capabilities { grid-template-columns:1fr; gap:28px; }
  .about-photo, .about-capabilities .about-photo { aspect-ratio:4 / 3; }
  .about-photo figcaption { font-size:.87rem; padding:36px 18px 18px; }
  .about-capabilities__copy { grid-row:1; }
  .about-capabilities__list { gap:18px; }
  .about-industry-grid { grid-template-columns:1fr; gap:22px; }
  .about-industry-card > div { padding:22px; }
  .about-steps { grid-template-columns:1fr; gap:24px; }
  .about-steps li { display:grid; grid-template-columns:30px 1fr; gap:0 16px; padding-top:18px; }
  .about-steps .label { grid-row:1 / 3; margin-top:4px; }
  .about-steps h3 { margin:0 0 6px; }
}
.technical-contact { display:flex; align-items:center; gap:24px; }
.contact-avatar { width:90px; height:90px; display:grid; place-items:center; flex:none; background:#0c77a9; color:#fff; border-radius:50%; font-family:var(--font-display); font-weight:700; font-size:1.5rem; }
.technical-contact .label { color:var(--muted); }
.technical-contact h3 { font-size:1.8rem; margin:6px 0 12px; }
.technical-contact a { display:block; margin-top:6px; font-size:.98rem; }
.company-details dl { margin:0; }
.company-details dl > div { border-top:1px solid var(--rule); padding:14px 0; }
.company-details dt { font-size:.82rem; color:var(--muted); }
.company-details dd { margin:4px 0 0; }
.contact-email { overflow-wrap:anywhere; }
/* Content refresh: concise technical headings and original vector views. */
.page-hero--data { background:#edf5f8; color:var(--ink); overflow:hidden; border-bottom:1px solid var(--rule); }
.page-hero--data .lead, .page-hero--data .page-hero__crumb { color:var(--muted); }
.page-hero--data .page-hero__crumb a { color:#076a9e; }
.page-hero--data .page-hero__crumb a:hover { color:var(--ink); text-decoration:underline; }
.cta.section { padding-block:clamp(56px,7vw,92px); border-bottom:1px solid var(--rule-dark); }
.cta h2 { margin:0 0 18px; }
.cta p:not(.eyebrow) { margin:0 0 28px; color:var(--muted-on-dark); }
.site-footer .footer-photo-credit { margin:0; max-width:72ch; color:var(--muted-on-dark); font-size:.75rem; line-height:1.6; }
.site-footer .footer-photo-credit a { color:inherit; text-underline-offset:2px; }
.not-found .wrap { max-width:800px; }
.not-found__code { color:var(--brand-blue); font-size:clamp(5rem,15vw,9rem); line-height:1; font-weight:600; margin:0 0 24px; }
.not-found .hero__actions { margin-top:32px; flex-wrap:wrap; }
.page-hero--data .wrap { position:relative; z-index:1; }
.page-hero--data h1 { max-width:14em; }
.page-hero--data .lead { max-width:34em; }
.page-hero__data-art { position:absolute; right:-3%; top:14%; width:52%; height:90%; color:#007caf; opacity:.17; pointer-events:none; }
.page-hero__data-art svg { width:100%; height:100%; }
.company-method { display:grid; gap:0; border-top:1px solid var(--rule); }
.company-method > div { display:flex; align-items:center; gap:22px; padding:24px 0; border-bottom:1px solid var(--rule); }
.company-method svg { width:38px; height:38px; flex:none; fill:none; stroke:var(--brand-blue); stroke-width:1.4; }
.company-method h3 { margin:0; font-size:1.4rem; }
.company-method--strengths p { margin:7px 0 0; color:var(--muted); line-height:1.6; }
.home-service-card { position:relative; display:block; color:var(--ink); text-decoration:none; transition:border-color .2s,background .2s; }
.home-service-card:hover { border-color:var(--brand-blue); background:#f5fafc; }
.home-service-card:focus-visible { outline:3px solid var(--brand-blue); outline-offset:4px; }
.home-service-card__arrow { display:block; margin-top:22px; color:var(--brand-blue); font-size:1.35rem; }
.capability-row { position:relative; }
.capability-row__media { min-height:0; aspect-ratio:3 / 2; align-self:center; }
.capability-row__copy .eyebrow { margin:0 0 14px; color:var(--brand-blue); font-size:.85rem; }
.capability-row__badge { position:absolute; left:14px; bottom:14px; z-index:1; margin:0; padding:7px 10px; border:1px solid rgba(85,215,250,.55); border-radius:3px; color:#fff; background:rgba(7,26,43,.9); font-size:.85rem; line-height:1.4; }
.service-anchor { position:absolute; top:0; scroll-margin-top:120px; }
.home-resource-links { display:flex; flex-wrap:wrap; justify-content:center; gap:20px 32px; margin-top:36px; }
.sector-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.sector-card { overflow:hidden; border:1px solid var(--rule); border-radius:var(--radius); scroll-margin-top:125px; }
.sector-photo { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; background:#edf5f8; }
#mining .sector-photo { object-position:center 58%; }
#tailings .sector-photo { object-position:center 58%; }
.sector-card > div { padding:30px; }
.sector-card h2 { font-size:clamp(1.5rem,2.3vw,2rem); margin:0 0 16px; }
.sector-card p { color:var(--muted); line-height:1.65; }
.sector-card .chips { margin:22px 0; }
@media (max-width:760px) {
  .page-hero__data-art { width:110%; top:18%; right:-40%; opacity:.1; }
  .sector-grid { grid-template-columns:1fr; gap:22px; }
  .sector-card > div { padding:24px; }
  .company-method > div { padding:18px 0; }
  .company-method h3 { font-size:1.25rem; }
  .home-resource-links { justify-content:flex-start; gap:18px 24px; }
}
.contact__item > div { min-width:0; }
.contact__item { background:var(--paper); }
.contact__item a { font-size:.96rem; }
.twin-layout .portfolio-note { width:100%; }
.portfolio { color:var(--white); }
.twin__tag { max-width:155px; margin:0; transform:translate(-50%,-50%); }
.twin.is-fallback .twin__tag { display:inline-flex; }
/* Photorealistic scene viewer: application focus, image zoom and a larger view. */
.twin-layout { align-items:start; }
.twin-layout > .site-image { display:flex; flex-direction:column; height:580px; min-height:0; }
.site-image__toolbar, .site-image__footer { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:16px 18px; background:#102a3a; }
.site-image__toolbar { border-bottom:1px solid var(--rule-dark); flex-wrap:wrap; }
.site-image__toolbar-actions { margin-left:auto; display:flex; align-items:center; gap:8px; }
.site-image__expand, .site-image__reset { color:#fff; background:transparent; border:1px solid #527481; border-radius:4px; padding:8px 12px; cursor:pointer; white-space:nowrap; font:inherit; font-size:.85rem; min-height:40px; }
.site-image__reset { background:#194958; border-color:#82c7d7; }
.site-image__reset:focus-visible { outline:3px solid #7fe2f8; outline-offset:3px; }
.site-image .site-image__viewport { position:relative; inset:auto; flex:1; min-height:0; width:100%; overflow:hidden; background:#0a1b26; touch-action:pan-y; }
.site-image__layer { position:absolute; left:0; top:0; transform-origin:0 0; will-change:transform; }
.site-image__layer.is-moving { transition:transform .48s cubic-bezier(.2,.7,.2,1); }
.site-image__viewport { cursor:default; }
.site-image__viewport.is-zoomed { cursor:grab; }
.site-image__viewport.is-dragging { cursor:grabbing; }
.site-image__photo { display:block; width:100%; height:100%; max-width:none; object-fit:fill; user-select:none; -webkit-user-drag:none; }
.site-image__layer .twin__tag { display:inline-flex; pointer-events:auto; border-color:rgba(255,255,255,.75); color:#fff; background:rgba(7,26,36,.9); font-size:.83rem; box-shadow:0 3px 12px rgba(0,0,0,.3); }
.site-image__layer .twin__tag::before { content:""; width:7px; height:7px; flex:none; background:#72ddf4; border-radius:50%; }
.site-image__layer .twin__tag[aria-pressed="true"] { color:#071a24; background:#8be8f8; border-color:#d2f7ff; }
.site-image__layer .twin__tag[aria-pressed="true"]::before { background:#087dba; }
.site-image__footer { border-top:1px solid var(--rule-dark); color:#c7dce2; font-size:.84rem; }
.site-image__controls { display:flex; align-items:center; gap:6px; flex:none; }
.site-image__controls button { min-height:40px; min-width:40px; padding:8px 11px; border:1px solid #527481; background:#173c4d; color:#fff; font:inherit; font-size:.86rem; border-radius:4px; cursor:pointer; }
.site-image__controls button:hover, .site-image__expand:hover, .site-image__reset:hover { background:#245368; }
.site-image__controls button:disabled { opacity:.4; cursor:default; }
.site-image-dialog { width:min(1320px,calc(100vw - 36px)); max-width:none; max-height:calc(100dvh - 36px); padding:0; overflow:hidden; border:1px solid #486775; border-radius:8px; background:#0a1b26; color:#fff; }
.site-image-dialog[open] { display:flex; flex-direction:column; height:min(1000px,calc(100dvh - 36px)); }
.site-image-dialog::backdrop { background:rgba(3,13,20,.87); }
.site-image-dialog__header, .site-image-dialog__footer { padding:16px 22px; display:flex; align-items:center; justify-content:space-between; gap:16px; background:#102a3a; }
.site-image-dialog__header h2 { font-size:1.45rem; }
.site-image-dialog .dialog-close { color:#fff; border-color:#527481; background:#173c4d; min-height:40px; }
.site-image-dialog__options { display:flex; flex-wrap:wrap; gap:8px; padding:12px 22px; border-top:1px solid var(--rule-dark); }
.site-image-dialog__options button { min-height:40px; color:#c7dce2; border:1px solid #527481; background:transparent; border-radius:4px; padding:8px 14px; font:inherit; font-size:.9rem; cursor:pointer; }
.site-image-dialog__options button[aria-pressed="true"] { color:#0a1b26; background:#72ddf4; border-color:#72ddf4; }
.site-image-dialog__viewport { position:relative; flex:1; overflow:hidden; min-height:0; background:#0a1b26; touch-action:pan-y; }
.site-image-dialog__header, .site-image-dialog__footer, .site-image-dialog__options { flex-shrink:0; }
.site-image-dialog__footer { font-size:.9rem; color:#c7dce2; border-top:1px solid var(--rule-dark); }
.no-js .site-image__layer, .site-image.is-fallback .site-image__layer { position:absolute; inset:0; }
.no-js .site-image__photo, .site-image.is-fallback .site-image__photo { object-fit:contain; }
.no-js .site-image__layer .twin__tag, .site-image.is-fallback .site-image__layer .twin__tag, .no-js .site-image__controls, .no-js .site-image__expand, .no-js .site-image__reset { display:none; }
@media (max-width:760px) {
  .twin-layout > .site-image { height:390px; }
  .site-image__toolbar, .site-image__footer { padding:12px; gap:8px; }
  .site-image__expand, .site-image__reset { padding:8px; font-size:.8rem; }
  .site-image__footer { font-size:.75rem; }
  .site-image__controls button { padding:7px; min-width:36px; font-size:.78rem; }
  .site-image__layer .twin__tag { font-size:.7rem; padding:7px 9px; min-height:36px; }
  .site-image-dialog { width:calc(100vw - 16px); max-height:calc(100dvh - 16px); }
  .site-image-dialog[open] { height:calc(100dvh - 16px); }
  .site-image-dialog__header, .site-image-dialog__footer { padding:12px; gap:10px; }
  .site-image-dialog__header h2 { font-size:1.15rem; }
  .site-image-dialog__options { padding:10px 12px; gap:6px; }
  .site-image-dialog__options button { padding:8px 10px; font-size:.82rem; }
  .site-image-dialog__footer { font-size:.8rem; }
}
.footer-grid { grid-template-columns:1.25fr .75fr .75fr 1.2fr; gap:28px; }
.site-footer .footer-base { gap:20px; flex-wrap:wrap; }
.site-footer .footer-base a { text-decoration:underline; text-underline-offset:4px; }
.footer-grid a { font-size:.95rem; }
.footer-about p { margin-top:22px; }
@media (max-width:1100px) {
  .nav a { padding-left:8px; padding-right:8px; font-size:1rem; }
  .nav .btn { padding:12px 14px; margin-left:6px; }
  .deployment-steps { grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:30px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:960px) {
  .site-header__inner { height:88px; }
  .site-header .brand__logo { width:103px; }
  .nav { top:88px; background:#fff; border-color:var(--rule); max-height:calc(100dvh - 88px); overflow-y:auto; }
  .nav a { color:var(--ink); font-size:1.0625rem; padding:16px 4px; border-color:var(--rule); }
  .nav .btn { margin:18px 0 0; }
  .hero { min-height:750px; }
  .capture-flow, .specification-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .architecture-grid { grid-template-columns:1fr; }
  .output-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .company-details { gap:32px; }
}
@media (max-width:760px) {
  html { scroll-padding-top:102px; }
  .hero { min-height:0; }
  .hero__center { padding-top:155px; padding-bottom:60px; }
  .hero__center h1 { font-size:clamp(2.25rem,8.3vw,3.4rem); max-width:12em; }
  .hero__center .lead { font-size:1.04rem; }
  .hero__bar { position:relative; grid-template-columns:1fr 1fr; }
  .hero__bar a { text-align:left; min-height:93px; padding:16px; }
  .hero__bar b { font-size:.83rem; }
  .hero__bar span { font-size:.73rem; }
  .page-hero { padding-top:142px; }
  .capability-grid, .output-grid, .company-details { grid-template-columns:1fr; }
  .capability-card { padding:25px; }
  .capture-flow { gap:20px; }
  .capture-step h3 { font-size:1.24rem; }
  .capture-step p { font-size:.94rem; }
  .deployment-steps { grid-template-columns:1fr; }
  .deployment-steps li { display:grid; grid-template-columns:32px 1fr; column-gap:18px; padding-top:18px; }
  .deployment-steps .label { grid-row:1 / 3; margin-top:3px; }
  .deployment-steps h3 { margin:0 0 6px; }
  .company-details { gap:36px; }
  .technical-contact { align-items:flex-start; gap:18px; }
  .contact-avatar { width:56px; height:56px; font-size:1.1rem; }
  .technical-contact > div { min-width:0; }
  .technical-contact h3 { font-size:1.5rem; }
  .technical-contact a { font-size:.9rem; }
  .specification { padding:14px; }
  .specification .label { font-size:.7rem; }
  .specification strong { font-size:1.25rem; }
  .specification > span:last-child { font-size:.8rem; }
  .footer-about, .footer-grid > div:last-child { grid-column:1 / -1; }
  .twin__tag { font-size:.75rem; padding:8px; }
  .model-motion { max-width:155px; font-size:.8rem; }
}
