@charset "UTF-8";
:root { --paper:#fff;--wash:#f5f5f7;--ink:#1d1d1f;--muted:#6e6e73;--blue:#0071e3;--line:#d2d2d7;--night:#050a13;--gutter:clamp(24px,4.5vw,72px);--body:-apple-system,BlinkMacSystemFont,"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;--mono:"SFMono-Regular",Menlo,monospace;--ease:cubic-bezier(.22,.61,.36,1) }
* { box-sizing:border-box }
html { scroll-behavior:auto;scroll-padding-top:90px }
body { margin:0;color:var(--ink);background:var(--paper);font-family:var(--body);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased }
body:has(dialog[open]) { overflow:hidden }
h1,h2,h3,h4,p,figure { margin:0 }
h1,h2,h3,h4 { font-weight:600;line-height:1.22;letter-spacing:-.035em }
h1 { font-size:clamp(42px,5.2vw,76px) }
h2 { font-size:clamp(32px,3.6vw,50px) }
h3 { font-size:1.5625rem }
h4 { font-size:1.125rem }
p { color:var(--muted) }
a { color:inherit;text-decoration:none }
button,input { font:inherit }
button,a,input { -webkit-tap-highlight-color:transparent }
button { cursor:pointer }
button { color:inherit;border:0;background:none }
img,video,canvas { display:block;max-width:100% }
img { object-fit:cover }
svg { display:block }
a,button,input,summary,[tabindex] { outline-offset:6px }
:focus-visible { outline:3px solid #0071e3 }
button:disabled { cursor:default;opacity:.45 }
[hidden] { display:none!important }
ul { margin:16px 0;padding-left:20px;color:var(--muted) }
li+li { margin-top:10px }
::selection { background:#cde8ff }
button svg,a svg { width:21px;height:21px;flex:none }
.wrap { width:calc(100% - var(--gutter)*2);max-width:1200px;margin-inline:auto }
.section { padding-block:112px }
.compact { padding-block:88px }
.wash { background:var(--wash) }
.eyebrow { font-size:1rem;font-weight:600;line-height:1.5;color:var(--muted);margin-bottom:18px }
.meta { font-size:0.8125rem;color:var(--muted);letter-spacing:.01em }
.section-heading { display:flex;align-items:flex-end;justify-content:space-between;gap:36px;margin-bottom:52px }
.section-heading h2 { max-width:850px }
.section-heading>.text-link { flex:none;margin-bottom:6px }
.section-description { font-size:1.1875rem;margin-top:24px;max-width:750px }
.actions { display:flex;align-items:center;gap:28px;flex-wrap:wrap }
.button,.small-button { background:var(--blue);color:white;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:16px;font-size:1rem;line-height:1.4;padding:14px 24px;min-height:48px;transition:background .2s }
.button:hover,.small-button:hover { background:#0077ed }
.small-button { font-size:0.8125rem;min-height:36px;padding:9px 18px }
.text-link { color:var(--blue);display:inline-flex;align-items:center;gap:6px;line-height:1.5 }
.text-link:hover { text-decoration:underline;text-underline-offset:4px }
.text-link svg { width:17px;height:17px }
.skip { position:fixed;top:12px;left:12px;background:white;color:var(--blue);padding:12px;z-index:200;transform:translateY(-200%) }
.skip:focus { transform:none }
.global-header { height:76px;position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(20px);border-bottom:1px solid rgba(0,0,0,.07) }
.header-inner { height:100%;max-width:1440px;width:calc(100% - 64px);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:32px }
.brand { display:inline-flex;align-items:center;gap:10px;white-space:nowrap }
.brand img { width:36px;height:36px;object-fit:contain }
.brand strong { font-size:1.25rem;letter-spacing:.015em;font-weight:600 }
.desktop-nav { display:flex;align-items:center;gap:clamp(22px,3vw,44px);font-size:1rem;height:100% }
.desktop-nav>a { display:flex;align-items:center;height:100% }
.desktop-nav a:hover,.desktop-nav [aria-current],.desktop-nav .current { color:var(--blue) }
.header-actions { display:flex;align-items:center;gap:22px }
.mobile-only { display:none }
dialog { border:0;padding:0;color:var(--ink) }
dialog::backdrop { background:#0008;backdrop-filter:blur(10px) }
.menu-dialog { max-width:none;width:100%;height:100%;max-height:100%;margin:0;background:white;padding:24px var(--gutter) 40px }
.dialog-top { display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px }
.close-button { font-size:2.25rem;width:44px;height:44px;line-height:1 }
.menu-dialog nav { display:grid;padding-top:18px }
.menu-dialog nav a { display:flex;align-items:center;justify-content:space-between;font-size:1.5625rem;line-height:1.3;padding:13px 0 }
.menu-dialog nav svg { width:18px }
.menu-contact { display:block;font-size:0.875rem;border-top:1px solid var(--line);padding-top:24px;margin-top:20px }
.menu-contact strong { display:block;font-size:1.375rem;font-weight:500;margin-top:8px }
.project-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px }
.project-card { background:white;overflow:hidden;border-radius:20px;display:flex;flex-direction:column;min-width:0;transition:box-shadow .25s }
.project-card:hover { box-shadow:0 10px 30px #00000008 }
.project-image { height:230px;display:block;overflow:hidden;background:#eaeaec;padding:20px }
.project-image img { display:block;width:100%;height:100%;object-fit:contain;transition:transform .4s var(--ease) }
.project-image:hover img { transform:scale(1.035) }
.project-copy { padding:28px;display:flex;flex-direction:column;flex:1 }
.project-copy .meta { display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:0.75rem;line-height:1.5;margin-bottom:15px }
.project-copy h3 { font-size:1.4375rem;line-height:1.4;margin-bottom:16px }
.project-copy>p:not(.meta) { font-size:0.9375rem;line-height:1.7;margin-bottom:24px }
.project-copy .text-link { font-size:0.9375rem;margin-top:auto }
.record-cover { height:100%;display:flex;flex-direction:column;justify-content:space-between;color:var(--muted);padding:10px;font-size:0.75rem;background:#eaeaec }
.record-cover strong { font-size:1.625rem;line-height:1.4;color:#46464a;font-weight:500 }
.process { display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding:0;margin:0;list-style:none }
.process li { margin:0;padding-top:26px;border-top:1px solid var(--line) }
.process li>span { font:13px var(--mono);color:var(--blue);display:block;margin-bottom:26px }
.process h3 { font-size:1.375rem;margin-bottom:14px }
.process p { font-size:1rem;line-height:1.8 }
.contact-strip { padding-block:78px;display:flex;align-items:center;justify-content:space-between;gap:30px }
.contact-strip h2 { font-size:2.25rem }
.contact-strip .eyebrow { font-size:0.875rem;margin-bottom:12px }
footer { background:var(--wash);padding:60px 0 24px;font-size:0.8125rem;color:var(--muted) }
.footer-grid { display:grid;grid-template-columns:1.6fr 1fr 1fr 1.25fr;gap:45px }
.footer-grid>div { display:flex;flex-direction:column;align-items:flex-start;gap:12px }
.footer-grid .brand { color:var(--ink);margin-bottom:9px }
.footer-grid .brand img { width:30px;height:30px }
.footer-grid .brand strong { font-size:1.125rem }
.footer-grid h3 { font-size:0.8125rem;color:var(--ink);letter-spacing:0;font-weight:600;margin-bottom:8px }
.footer-grid a:hover { text-decoration:underline }
.footer-grid a.phone { font-size:1.125rem;color:var(--ink);font-weight:500 }
.footer-bottom { display:flex;align-items:center;gap:30px;border-top:1px solid var(--line);margin-top:48px;padding-top:22px;font-size:0.6875rem }
.footer-bottom a:last-child { margin-left:auto }
.toast { position:fixed;bottom:26px;left:50%;transform:translate(-50%,16px);border-radius:50px;background:#1d1d1f;color:white;padding:12px 24px;opacity:0;visibility:hidden;z-index:100;font-size:0.875rem;transition:.2s;white-space:nowrap }
.toast.visible { opacity:1;visibility:visible;transform:translate(-50%,0) }
.reading-layout { display:grid;grid-template-columns:180px minmax(0,1fr);gap:80px;align-items:start;padding-bottom:40px }
.chapter-index { position:sticky;top:112px;display:flex;flex-direction:column;gap:6px;font-size:0.9375rem }
.chapter-index>p { font-size:1rem;margin-bottom:12px }
.chapter-index>a { padding:9px 0;position:relative;line-height:1.6 }
.chapter-index>a[aria-current] { color:var(--blue);font-weight:500 }
.chapter-index>div { border-top:1px solid var(--line);margin-top:20px;padding-top:16px;display:grid;gap:14px;font-size:0.8125rem }
.service-chapter { scroll-margin-top:16px;margin-bottom:100px }
.service-chapter>.eyebrow { color:var(--blue);font-size:0.8125rem;margin-bottom:12px }
.service-chapter h2 { font-size:2.25rem }
.chapter-lead { font-size:1.1875rem;margin-top:24px;line-height:1.8 }
.service-body { display:grid;grid-template-columns:1.4fr 1fr;gap:54px }
.service-body .meta { font-size:0.75rem;color:var(--muted);margin-bottom:16px }
.service-body article+article { margin-top:25px }
.service-body h3 { font-size:1.3125rem;margin-bottom:10px }
.service-body p,.service-body ul { font-size:1rem;line-height:1.85 }
.service-body aside { border-left:1px solid var(--line);padding-left:30px }
.service-body aside>.meta:not(:first-child) { margin-top:25px }
.service-body .text-link { font-size:0.875rem;margin-top:8px }
.delivery-grid { display:grid;grid-template-columns:1fr 1fr;gap:36px 64px }
.delivery-grid article { border-top:1px solid var(--line);padding-top:25px }
.delivery-grid h3 { font-size:1.5rem;margin-bottom:18px }
.delivery-grid p { font-size:1.0625rem }
.delivery-grid article>span { display:block;font-size:0.875rem;color:var(--muted);margin-top:16px }
.split-heading { display:grid;grid-template-columns:1fr 1.45fr;gap:100px }
.split-heading>div:first-child>p:not(.eyebrow) { margin-top:24px;max-width:360px;font-size:1.0625rem }
.faq details { border-top:1px solid var(--line) }
summary { list-style:none;cursor:pointer }
summary::-webkit-details-marker { display:none }
.faq summary { font-size:1.1875rem;font-weight:500;padding:24px 0;display:flex;align-items:center;justify-content:space-between;gap:24px;line-height:1.6 }
.faq summary span { font-size:1.625rem;font-weight:300;transition:transform .2s }
.faq details[open] summary span { transform:rotate(45deg) }
.faq details>p { font-size:1rem;padding-bottom:28px;max-width:590px;line-height:1.9 }
.numbered-editorial article { display:flex;gap:28px;padding:0 0 30px;margin-bottom:30px;border-bottom:1px solid var(--line) }
.numbered-editorial article>span { font:13px var(--mono);color:var(--blue);padding-top:6px }
.numbered-editorial h3 { font-size:1.5625rem;margin-bottom:16px }
.numbered-editorial p { font-size:1.0625rem }
.large-copy { font-size:1.5rem;line-height:1.65;color:var(--ink);margin-bottom:30px }
.company-copy p+p { margin-top:23px }
.company-copy p { line-height:1.9 }
.panorama .editorial-photo { border-radius:22px;overflow:hidden;position:relative }
.panorama .editorial-photo img { width:100%;height:420px;object-fit:cover }
.editorial-photo figcaption { position:absolute;bottom:0;left:0;width:100%;padding:40px 24px 18px;font-size:0.75rem;color:white;background:linear-gradient(transparent,#0007) }
.three-features { display:grid;grid-template-columns:repeat(3,1fr);gap:55px }
.three-features article>span { display:block;color:var(--blue);font:13px var(--mono);margin-bottom:24px }
.three-features h3 { font-size:1.6875rem;margin-bottom:20px }
.three-features p { font-size:1.0625rem;line-height:1.8 }
.three-features .text-link { margin-top:23px;font-size:1rem }
.source-list details { border-top:1px solid var(--line) }
.source-list summary { display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0 }
.source-list summary small { display:block;color:var(--muted);font-size:0.75rem;margin-bottom:8px }
.source-list summary strong { font-size:1.4375rem;font-weight:500;line-height:1.4;display:block }
.source-list summary b { font-size:1.75rem;font-weight:300;transition:.2s }
.source-list details[open] summary b { transform:rotate(45deg) }
.resource-grid { display:grid;grid-template-columns:1fr 1fr;gap:28px }
.resource-grid article { background:white;border-radius:20px;padding:40px }
.resource-grid h3 { font-size:1.75rem;margin-bottom:22px }
.resource-grid .text-link { margin-top:28px }
.partnership-grid { display:grid;grid-template-columns:1fr 1fr;gap:64px }
.partnership-grid article { border-top:1px solid var(--line);padding-top:32px }
.partnership-grid h3 { font-size:2.125rem;margin-bottom:26px }
.partnership-grid li { font-size:1rem }
.contact-section { display:grid;grid-template-columns:1.2fr 1fr;gap:100px }
.contact-section h2 { font-size:3.25rem;margin-bottom:28px }
.contact-section>div>p:not(.eyebrow) { font-size:1.125rem;line-height:1.8 }
.contact-number { margin-top:38px }
.contact-number>span { display:block;font-size:0.8125rem;color:var(--muted);margin-bottom:10px }
.contact-number>a { font-size:1.9375rem;font-weight:500;letter-spacing:-.01em;display:inline-block }
.contact-number>button { color:var(--blue);font-size:0.75rem;margin-left:14px;min-height:44px }
.contact-checklist { background:var(--wash);border-radius:24px;padding:42px }
.contact-checklist h3 { font-size:1.625rem;margin-bottom:32px }
.contact-checklist article+article { margin-top:26px }
.contact-checklist h4 { font-size:1.0625rem;margin-bottom:10px }
.contact-checklist p { font-size:1rem }
.contact-checklist .text-link { margin-top:35px;font-size:1rem }
.method-section { padding-top:70px }
.method-visual { padding:24px 28px 20px;border-radius:22px;background:white;overflow:hidden }
.diagram-heading { display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:0.75rem }
.method-visual svg { width:100%;height:auto;max-height:470px;margin:12px auto }
.method-visual svg text { fill:#6e6e73;font:18px var(--body) }
.method-visual svg .diagram-label { font-size:1.4375rem;fill:var(--ink);font-weight:600 }
.method-visual svg .diagram-small { font-size:1.0625rem }
.diagram-legend { display:flex;justify-content:center;flex-wrap:wrap;gap:8px 20px;font-size:0.75rem;color:var(--muted);margin-top:12px }
.diagram-legend span { display:flex;align-items:center;gap:6px }
.diagram-legend i { width:6px;height:6px;border-radius:50%;background:#7f9fba }
.diagram-legend .legend-1 { background:#0071e3 }
.diagram-note { text-align:center;font-size:0.6875rem;color:#8a8a90;margin-top:14px }
.earth-fill { fill:#e9edf1 }
.surface-line,.wire { stroke:#9aa8b8;stroke-width:2 }
.layer-blue { fill:#d4e5f4 }
.layer-deep { fill:#b5cee1 }
.equipment-box,.chart-card { fill:white;stroke:#a5b8cd;stroke-width:1.4 }
.electrode,.geophone { stroke:#0071e3;stroke-width:5;stroke-linecap:round }
.passive-path,.current-path,.ray-path,.ray-secondary { stroke:#2581b5;stroke-width:2;stroke-dasharray:7 8 }
.up-arrow { stroke:#2581b5;stroke-width:3;stroke-linecap:round;stroke-linejoin:round }
.signal-halo { stroke:#0088e8;fill:#0088e812;stroke-width:1.2;transform-box:fill-box;transform-origin:center }
.passive-source { fill:#d4e9f6;stroke:#4296cd;stroke-width:1.5 }
.graph-axis { stroke:#929eaa;stroke-width:1.5 }
.graph-baseline,.radar-grid { stroke:#c3cbd3;stroke-width:1;stroke-dasharray:4 6 }
.target-body { fill:#91b9d8;stroke:#4b85ac;stroke-width:1.5 }
.transmitter { stroke:#0071e3;stroke-width:4 }
.receiver { fill:#0071e3 }
.induction-ring { stroke:#2483bb;stroke-width:2;stroke-dasharray:10 5 }
.response-curve,.magnetic-curve,.gravity-curve { stroke:#0071e3;stroke-width:3;fill:none }
.interface-line { stroke:#8da9be;stroke-width:3 }
.source-symbol { fill:#0071e3 }
.ray-secondary { opacity:.55 }
.magnet-body { fill:#a9c8e1 }
.magnetic-field { stroke:#2384bc;stroke-width:2;stroke-dasharray:8 5 }
.density-body { fill:#89adc9;stroke:#7595ae;stroke-width:1.5 }
.density-dot { fill:#527895 }
.gravity-vector { stroke:#2d86b8;stroke-width:2 }
.scan-direction { stroke:#7189a0;stroke-width:2;stroke-dasharray:4 4 }
.radar-beam { stroke:#669cbb;stroke-width:1.5;opacity:.6 }
.radar-screen { fill:#edf4f8;stroke:#c7d6e3 }
.radar-hyperbola { stroke:#0071e3;stroke-width:3 }
.radar-echo { stroke:#70aad1;stroke-width:2 }
.method-visual.is-playing .diagram-flow { animation:flow 2.2s linear infinite }
.method-visual.is-playing .diagram-pulse { animation:pulse 2.4s ease-out infinite }
.method-visual.is-playing .diagram-trace { stroke-dasharray:650;animation:trace 3s ease-in-out infinite }
.method-visual.is-playing .diagram-induction { animation:induction 2.4s linear infinite;animation-delay:var(--delay,0s) }
@keyframes flow { to{stroke-dashoffset:-90} }
@keyframes pulse { 0%{transform:scale(.9);opacity:.8}90%,100%{transform:scale(1.22);opacity:0} }
@keyframes trace { 0%{stroke-dashoffset:650}65%,100%{stroke-dashoffset:0} }
@keyframes induction { 0%{opacity:.25}50%{opacity:1}100%{opacity:.25} }
@keyframes panel-enter { from{opacity:.65}to{opacity:1} }
.project-library { padding-top:56px }
.project-tools { display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px }
.filters { display:flex;gap:8px;flex-wrap:wrap }
.filters button { font-size:0.875rem;white-space:nowrap;border:1px solid #c6c6cc;border-radius:99px;padding:10px 16px;min-height:42px;background:transparent }
.filters [aria-pressed=true] { background:var(--ink);border-color:var(--ink);color:white }
.project-search { display:flex;align-items:center;gap:10px }
.project-search>span { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%) }
.project-search input { width:230px;border:1px solid #c6c6cc;background:white;border-radius:10px;padding:12px 15px;font-size:0.875rem;outline-offset:3px;color:var(--ink) }
.results-count { font-size:0.8125rem;margin-bottom:25px }
.empty-state { padding:80px 24px;text-align:center }
.empty-state h2 { font-size:1.875rem }
.empty-state p { margin:20px 0 26px }
.case-article { padding-top:40px;padding-bottom:100px }
.back-link { color:var(--blue);font-size:0.875rem }
.case-article>header { max-width:900px;padding:55px 0 65px }
.case-article h1 { font-size:3.375rem;line-height:1.3 }
.case-task { font-size:1.4375rem;line-height:1.7;margin:28px 0 }
.case-reading { display:grid;grid-template-columns:320px minmax(0,1fr);gap:70px;align-items:start }
.case-reading>aside { position:sticky;top:112px }
.case-reading>aside h2 { font-size:1.25rem;margin-bottom:16px }
.case-reading>aside p { font-size:1rem;line-height:1.9;margin-bottom:38px }
.case-reading>aside p.case-note { font-size:0.75rem;border-top:1px solid var(--line);padding-top:20px }
.case-document { background:var(--wash);padding:24px;border-radius:16px;margin-bottom:24px }
.case-document img { width:100%;height:auto;object-fit:contain }
.case-document figcaption { font-size:0.75rem;color:var(--muted);margin-top:18px }
.text-record { background:var(--wash);border-radius:22px;padding:48px }
.text-record h2 { font-size:2rem;margin-bottom:24px }
.text-record p+p { margin-top:24px }
.earth-experience { background:var(--night);color:#f5f5f7;padding-top:28px;overflow:hidden;position:relative }
.earth-loading,.earth-fallback { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:#9aa9bf;font-size:0.8125rem;pointer-events:none }
.earth-loading span { width:26px;height:26px;border:2px solid #ffffff22;border-top-color:#afc9e5;border-radius:50%;animation:loading 1s linear infinite }
.earth-fallback { padding:40px;text-align:center }
.earth-fallback h2 { font-size:2rem;color:white }
.earth-fallback p { color:#a4b4c8;max-width:550px }
.earth-mode-label { position:absolute;left:var(--gutter);bottom:12px;pointer-events:none }
.earth-mode-label>span { display:block;color:#d9e1ed;font-size:0.875rem }
.earth-mode-label>small { display:block;font-size:0.6875rem;color:#8e9caf;margin-top:5px }
.earth-controls { display:flex;gap:8px }
.earth-controls button { border-radius:30px;min-width:42px;height:42px;background:#1d2735;color:#ccd8e7;font-size:1.25rem }
.earth-controls [data-earth-reset] { font-size:0.75rem;padding:0 18px }
.earth-controls button:hover { background:#314055 }
.status-label { display:inline-flex;padding:6px 12px;background:#edf4fc;color:#356c9e;font-size:0.75rem;border-radius:99px;margin-top:26px }
.source-list { display:grid;grid-template-columns:1fr 1fr;gap:0 64px;align-items:start }
.source-list details>div { padding-bottom:30px;font-size:1rem }
.source-list li { font-size:1rem }
.source-relation { border-top:1px solid var(--line);padding-top:18px;margin-top:24px;color:var(--ink) }
@keyframes loading { to{transform:rotate(360deg)} }
@media(max-width:1100px) {
.header-inner { width:calc(100% - 40px);gap:20px }
.desktop-nav { gap:24px;font-size:1rem }
.header-actions .small-button { display:none }
.project-grid { gap:20px }
.project-copy { padding:24px }
.project-copy h3 { font-size:1.3125rem }
.reading-layout { gap:42px;grid-template-columns:150px minmax(0,1fr) }
.service-body { gap:30px }
.service-body aside { padding-left:23px }
.split-heading { gap:60px }
.contact-section { gap:55px }
.contact-checklist { padding:32px }
.contact-number>a { font-size:1.6875rem }
.case-reading { grid-template-columns:260px minmax(0,1fr);gap:45px }
.footer-grid { gap:25px }
.footer-grid a.phone { font-size:0.9375rem }
}
@media(max-width:850px) {
.desktop-nav { display:none }
.header-actions .small-button { display:inline-flex }
.global-header { height:68px }
.section { padding-block:80px }
.section-heading { margin-bottom:38px;gap:24px }
.section-heading>.text-link { font-size:0.9375rem }
.project-grid { grid-template-columns:1fr 1fr }
.project-grid .project-card:last-child:nth-child(3) { grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr }
.project-grid .project-card:last-child:nth-child(3) .project-image { height:100%;min-height:260px }
.process { grid-template-columns:1fr 1fr;gap:38px }
.footer-grid { grid-template-columns:1.3fr 1fr 1fr }
.footer-grid>div:last-child { grid-column:1/-1;flex-direction:row;align-items:center;gap:25px }
.footer-grid>div:last-child h3 { margin-bottom:0 }
.footer-bottom { flex-wrap:wrap;gap:12px 24px }
.reading-layout { grid-template-columns:1fr;gap:0 }
.chapter-index { position:static;display:flex;flex-direction:row;flex-wrap:wrap;gap:8px 20px;padding-bottom:35px;border-bottom:1px solid var(--line);margin-bottom:50px }
.chapter-index>p,.chapter-index>div { display:none }
.chapter-index>a { font-size:0.875rem }
.service-chapter { margin-bottom:75px }
.split-heading { grid-template-columns:1fr;gap:40px }
.split-heading>div:first-child>p:not(.eyebrow) { max-width:600px }
.method-visual { max-width:700px }
.three-features { gap:30px }
.three-features h3 { font-size:1.375rem }
.three-features p { font-size:1rem }
.partnership-grid { gap:38px }
.resource-grid article { padding:30px }
.contact-section { grid-template-columns:1fr;gap:50px }
.contact-checklist { max-width:660px }
.project-tools { flex-direction:column;align-items:stretch }
.project-search input { width:100% }
.project-search { max-width:400px }
.case-reading { grid-template-columns:1fr;gap:20px }
.case-reading>aside { position:static;display:grid;grid-template-columns:150px 1fr;column-gap:30px }
.case-reading>aside .case-note { grid-column:1/-1 }
.case-article h1 { font-size:2.75rem }
.case-article>header { padding-top:38px;padding-bottom:50px }
.source-list { gap:0 35px }
}
@media(max-width:600px) {
body { font-size:1rem }
.global-header { height:64px }
.header-inner { width:calc(100% - 32px);gap:12px }
.brand img { width:31px;height:31px }
.brand strong { font-size:1.125rem }
.brand { gap:8px }
.header-actions { gap:8px }
.small-button { font-size:0.6875rem;padding:8px 12px;min-height:32px }
.section { padding-block:64px }
.compact { padding-block:60px }
h1 { font-size:2.4375rem }
h2 { font-size:2rem }
.section-heading { display:block;margin-bottom:32px }
.section-heading>.text-link { margin-top:24px }
.section-description { font-size:1rem;line-height:1.8;margin-top:19px }
.eyebrow { font-size:0.8125rem;margin-bottom:14px }
.project-grid { grid-template-columns:1fr;gap:24px }
.project-grid .project-card:last-child:nth-child(3) { display:flex;grid-column:auto }
.project-grid .project-card:last-child:nth-child(3) .project-image { height:230px;min-height:0 }
.project-image { height:230px }
.project-copy { padding:26px }
.project-copy h3 { font-size:1.4375rem }
.project-copy>p:not(.meta) { font-size:0.9375rem }
.process { gap:32px 24px }
.process li>span { margin-bottom:18px }
.process h3 { font-size:1.1875rem;line-height:1.4;margin-bottom:12px }
.process p { font-size:1rem;line-height:1.8 }
.contact-strip { padding-block:56px;display:block }
.contact-strip h2 { font-size:1.875rem;line-height:1.4 }
.contact-strip>.button { margin-top:27px }
.mobile-only { display:block }
footer { padding-top:45px }
.footer-grid { grid-template-columns:1fr 1fr;gap:35px 22px }
.footer-grid>div:first-child { grid-column:1/-1 }
.footer-grid>div:first-child p { font-size:0.875rem;line-height:1.8 }
.footer-grid>div:last-child { flex-direction:column;align-items:flex-start;gap:12px }
.footer-grid a.phone { font-size:1.1875rem }
.footer-bottom { margin-top:34px;padding-top:22px;display:block;font-size:0.625rem }
.footer-bottom a { display:block;margin-top:10px }
.footer-bottom a:last-child { margin-left:0;font-size:0.75rem }
.chapter-index { gap:8px 23px;padding-bottom:26px;margin-bottom:36px }
.chapter-index>a { font-size:0.8125rem;padding-block:5px }
.service-chapter h2 { font-size:1.8125rem;line-height:1.4 }
.chapter-lead { font-size:1rem;line-height:1.85;margin-top:19px }
.service-body { grid-template-columns:1fr;gap:30px }
.service-body aside { border:0;border-top:1px solid var(--line);padding:25px 0 0 }
.service-body h3 { font-size:1.25rem }
.service-body p,.service-body ul { font-size:1rem }
.service-chapter { margin-bottom:65px }
.delivery-grid { grid-template-columns:1fr;gap:30px }
.delivery-grid h3 { font-size:1.4375rem }
.delivery-grid p { font-size:1rem }
.delivery-grid article>span { font-size:0.8125rem }
.split-heading { gap:30px }
.faq summary { font-size:1.0625rem;padding:21px 0;gap:18px }
.faq details>p { font-size:1rem;padding-bottom:24px }
.numbered-editorial article { gap:20px;margin-bottom:25px;padding-bottom:25px }
.numbered-editorial h3 { font-size:1.375rem;line-height:1.4;margin-bottom:12px }
.numbered-editorial p { font-size:1rem }
.large-copy { font-size:1.25rem }
.panorama .editorial-photo img { height:260px }
.editorial-photo figcaption { font-size:0.6875rem;padding:32px 18px 15px }
.panorama .editorial-photo { border-radius:18px }
.three-features { grid-template-columns:1fr;gap:32px }
.three-features article { border-top:1px solid var(--line);padding-top:26px }
.three-features h3 { font-size:1.5rem;margin-bottom:17px }
.three-features p { font-size:1rem }
.source-list summary strong { font-size:1.3125rem }
.source-list summary { padding:22px 0 }
.resource-grid { grid-template-columns:1fr;gap:20px }
.resource-grid article { padding:30px }
.resource-grid h3 { font-size:1.625rem }
.resource-grid p { font-size:1rem }
.partnership-grid { grid-template-columns:1fr;gap:40px }
.partnership-grid h3 { font-size:1.8125rem }
.company-copy p { font-size:1rem }
.company-copy .large-copy { font-size:1.25rem }
.contact-section h2 { font-size:2.375rem }
.contact-section>div>p:not(.eyebrow) { font-size:1rem }
.contact-number>a { font-size:1.6875rem }
.contact-number>button { margin-left:8px;font-size:0.6875rem }
.contact-checklist { padding:30px 26px }
.contact-checklist h3 { font-size:1.5625rem }
.project-library { padding-top:34px }
.filters { gap:8px }
.filters button { font-size:0.75rem;padding:8px 13px;min-height:37px }
.project-tools { gap:22px }
.project-search { max-width:none }
.case-article { padding-top:28px;padding-bottom:64px }
.case-article>header { padding:32px 0 42px }
.case-article h1 { font-size:2.125rem;line-height:1.4 }
.case-task { font-size:1.1875rem;line-height:1.8;margin:24px 0 }
.case-reading>aside { display:block }
.case-reading>aside h2 { font-size:1.3125rem }
.case-reading>aside p { font-size:1rem;margin-bottom:28px }
.case-document { padding:13px;border-radius:12px }
.case-document figcaption { font-size:0.6875rem;margin-top:14px }
.text-record { padding:30px }
.text-record h2 { font-size:1.6875rem }
.method-section { padding-top:28px }
.method-visual { padding:18px 12px 16px;border-radius:18px;margin-inline:-6px }
.method-visual svg .diagram-label { font-size:1.5rem }
.method-visual svg .diagram-small,.method-visual svg text { font-size:1.375rem }
.method-visual svg { margin-block:12px }
.diagram-heading { font-size:0.6875rem;padding-inline:5px }
.diagram-legend { font-size:0.6875rem;gap:8px 12px }
.earth-mode-label { bottom:12px;left:24px }
.earth-mode-label>span { font-size:0.75rem }
.earth-mode-label>small { font-size:0.625rem }
.earth-controls { justify-content:flex-end }
.source-list { grid-template-columns:1fr;gap:0 }
.source-list details>div { font-size:0.9375rem }
}
@media(max-width:360px) {
:root { --gutter:20px }
.brand strong { font-size:1.0625rem }
.brand img { width:28px;height:28px }
.contact-number>a { font-size:1.5rem }
.contact-number>button { font-size:0.625rem }
.process { gap:28px 18px }
}
h1,h2,h3 { text-wrap:balance }
@media(prefers-reduced-motion:reduce) {
html { scroll-behavior:auto }
*,*:before,*:after { animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important }
.project-image:hover img { transform:none }
}

/* Product-style display and reading layouts. */
:root { --muted:#626268; --gutter:clamp(24px,5.5vw,100px); }
body { font-size:1.0625rem; }
h1,h2,h3 { letter-spacing:-.025em; }
.wrap { max-width:1200px; }
.section { padding-block:100px; }
.mobile-break { display:none; }
.home-hero { padding-top:64px; background:#fff; overflow:hidden; text-align:center; }
.hero-copy { position:relative; z-index:1; }
.hero-copy .eyebrow { font-size:1.125rem; color:var(--ink); margin-bottom:18px; }
.hero-copy h1 { font-size:clamp(2.75rem,5.5vw,5rem); line-height:1.18; letter-spacing:-.045em; }
.hero-purpose { color:var(--ink); font-size:clamp(1.25rem,2.2vw,1.75rem); line-height:1.5; margin-top:22px; }
.hero-copy .actions { justify-content:center; margin-top:24px; }
.hero-specimen { width:min(1100px,96vw); margin:-100px auto 0; position:relative; }
.hero-specimen img { width:100%; height:auto; object-fit:contain; }
.hero-specimen figcaption { position:absolute; right:4%; bottom:5%; font-size:.75rem; color:#68686c; }
.mission-statement { text-align:center; padding:60px 0 96px; }
.mission-statement .eyebrow { color:var(--muted); font-size:1.0625rem; margin-bottom:22px; }
.mission-statement h2 { font-size:clamp(1.875rem,3vw,2.875rem); line-height:1.4; }
.mission-statement h2+p { font-size:1.125rem; margin:22px auto 18px; max-width:680px; }
.feature-photo>span,.product-photo>span,.service-photo>span { position:absolute; bottom:0; left:0; width:100%; padding:32px 24px 18px; font-size:.75rem; color:white; background:linear-gradient(transparent,#0009); pointer-events:none; }
.equipment-feature { display:grid; grid-template-columns:1.25fr 1fr; gap:68px; align-items:center; }
.feature-photo,.product-photo { position:relative; overflow:hidden; border-radius:22px; background:var(--wash); align-self:center; }
.feature-photo img,.product-photo img { width:100%; height:auto; object-fit:contain; }
.feature-copy { padding:0; }
.feature-copy .eyebrow { font-size:1rem; }
.feature-copy h3 { font-size:2.25rem; line-height:1.35; margin-bottom:24px; }
.feature-copy>p { font-size:1.125rem; line-height:1.8; }
.feature-copy .actions { margin-top:28px; gap:24px; }
.principles { display:grid; grid-template-columns:repeat(3,1fr); gap:48px; margin-top:64px; }
.principles article { border-top:1px solid var(--line); padding-top:24px; }
.principles h3 { font-size:1.5rem; margin-bottom:16px; }
.principles p { font-size:1.0625rem; line-height:1.8; }
.data-invitation { text-align:center; background:#080b11; color:white; }
.data-invitation .eyebrow { color:#b6c1d1; }
.data-invitation h2 { font-size:clamp(2rem,4.4vw,3.75rem); line-height:1.35; }
.data-invitation h2 span { color:#9eacbd; }
.data-invitation h2+p { font-size:1.25rem; line-height:1.8; margin:28px 0; color:#bac4d2; }
.page-intro { text-align:center; padding-top:72px; padding-bottom:64px; max-width:1020px; }
.page-intro>.eyebrow { color:var(--ink); font-size:1.0625rem; margin-bottom:24px; }
.page-intro>div { display:block; }
.page-intro h1 { font-size:clamp(2.625rem,5vw,4.25rem); line-height:1.25; }
.page-intro>div>p { font-size:1.25rem; line-height:1.8; max-width:710px; margin:28px auto 0; }
.service-photo { position:relative; border-radius:20px; overflow:hidden; margin:36px 0; background:var(--wash); }
.service-photo img { width:100%; height:auto; max-height:560px; object-fit:cover; }
.service-photo img.field-document { max-height:none; object-fit:contain; }
.service-body p,.service-body ul { font-size:1.0625rem; }
.product-stage { display:grid; grid-template-columns:1.2fr 1fr; gap:72px; align-items:center; margin-bottom:100px; }
.product-stage h2 { font-size:2.75rem; margin-bottom:24px; }
.product-stage>div>p:not(.eyebrow) { font-size:1.125rem; line-height:1.8; }
.product-stage .text-link { display:flex; width:max-content; margin-top:28px; }
.product-stage .button { margin-top:28px; }
.product-photo { width:100%; }
.about-mission { text-align:center; padding:78px 0 64px; }
.about-mission h1 { font-size:clamp(2.25rem,5vw,4.25rem); line-height:1.3; white-space:normal; }
.mission-line { font-size:clamp(1.5rem,2.6vw,2.25rem); color:var(--ink); font-weight:500; margin-top:20px; line-height:1.5; white-space:normal; }
.mission-description { margin:28px auto 0; font-size:1.125rem; }
.method-workbench { display:block; }
.method-panels { min-width:0; }
.method-panels>article { scroll-margin-top:100px; }
.method-panels .eyebrow { color:var(--blue); font-size:1rem; text-align:center; margin-bottom:16px; }
.method-panels h2 { font-size:2.5rem; text-align:center; margin-bottom:22px; }
.method-introduction { font-size:1.125rem; line-height:1.85; max-width:780px; margin:0 auto 40px; text-align:center; }
.method-content { display:grid; grid-template-columns:1.7fr 1fr; gap:48px; align-items:start; }
.method-facts { display:flex; flex-direction:column; gap:26px; margin:0; padding:6px 0 0; }
.method-facts>div { border-top:1px solid var(--line); padding-top:20px; }
.method-facts dt { font-size:1rem; font-weight:600; margin-bottom:10px; }
.method-facts dd { font-size:1.0625rem; line-height:1.8; color:var(--muted); margin:0; }
.method-visual { padding:24px 16px; }
.method-visual svg text { font-size:24px; }
.method-visual svg .diagram-small { font-size:23px; }
.method-visual svg .diagram-label { font-size:26px; }
.diagram-legend { font-size:.875rem; }
.diagram-heading { font-size:.875rem; padding-inline:8px; }
.earth-intro { text-align:center; padding:64px 0 52px; }
.earth-intro h1 { font-size:clamp(2.25rem,4.5vw,3.75rem); line-height:1.3; }
.earth-intro h1 span { color:#7c7d83; }
.earth-intro>p:last-child { font-size:1.25rem; line-height:1.8; margin-top:26px; }
.earth-heading { display:flex; justify-content:space-between; align-items:center; gap:18px; font-size:.9375rem; }
.earth-heading p { color:#d7e0ec; }
.earth-heading>span { font-size:.75rem; color:#a8b4c4; }
.earth-view-tabs { display:flex; width:max-content; margin:24px auto 0; padding:5px; gap:4px; border-radius:99px; background:#202832; position:relative; z-index:3; }
.earth-view-tabs button { min-height:44px; padding:10px 24px; border-radius:99px; font-size:1rem; color:#b7c2d1; }
.earth-view-tabs [aria-selected=true] { background:#eff3f7; color:#17202c; }
.earth-canvas-wrap { height:min(530px,64svh); min-height:340px; max-width:1200px; margin:0 auto; position:relative; }
.earth-canvas-wrap canvas { width:100%; height:100%; display:block; touch-action:pan-y; cursor:grab; outline-offset:-8px; }
.earth-canvas-wrap canvas:active { cursor:grabbing; }
.earth-mode-label { bottom:12px; left:32px; }
.earth-mode-label>span { font-size:.875rem; }
.earth-mode-label>small { font-size:.75rem; }
.earth-control-bar { display:flex; align-items:center; justify-content:space-between; min-height:92px; padding-block:18px; gap:24px; border-block:1px solid #303d4d; }
.earth-adjustments { display:flex; flex-direction:column; gap:8px; }
.earth-adjustments label { display:flex; align-items:center; gap:18px; font-size:1rem; }
.earth-adjustments input { width:180px; min-height:32px; accent-color:#b7d4ee; }
.earth-adjustments>span { color:#a9b7c9; font-size:.875rem; }
.earth-controls { gap:10px; }
.earth-controls button { min-height:44px; min-width:44px; font-size:1rem; }
.earth-captions { padding:32px 0 42px; min-height:214px; }
.earth-captions>div { display:grid; grid-template-columns:1fr 1fr; gap:10px 70px; }
.earth-captions .eyebrow { grid-column:1; font-size:.875rem; margin-bottom:0; color:#94a9bf; }
.earth-captions h2 { grid-column:1; font-size:1.875rem; line-height:1.4; }
.earth-captions p:last-child { grid-column:2; grid-row:1 / 3; align-self:center; font-size:1.0625rem; line-height:1.8; color:#b1bfd0; }
.model-hotspot { position:absolute; transform:translate(-50%,-50%); border:1px solid #b6d1e9; border-radius:99px; padding:10px 15px; min-height:44px; white-space:nowrap; font-size:.875rem; color:#183a56; background:#edf5fd; z-index:3; box-shadow:0 3px 14px #0004; }
.model-hotspot[aria-pressed=true] { background:#fff; color:#006cce; border-color:#fff; }
.earth-data-inspector { display:flex; gap:28px; align-items:center; padding:24px 0 0; }
.earth-data-inspector>div { display:flex; gap:8px; flex:none; }
.earth-data-inspector button { padding:10px 14px; font-size:.875rem; color:#bfccdc; border:1px solid #445469; border-radius:99px; min-height:44px; }
.earth-data-inspector [aria-pressed=true] { background:#e3effa; color:#172a3d; border-color:#e3effa; }
.earth-data-inspector p { font-size:1rem; line-height:1.8; color:#b1bfd0; }
.project-copy h3 { font-size:1.5rem; }
.project-copy>p:not(.meta),.project-copy .text-link { font-size:1.0625rem; }
.project-image { height:260px; }
.menu-dialog { overflow-y:auto; overscroll-behavior:contain; }
.dialog-top { position:sticky; top:-24px; background:#fff; z-index:2; padding-top:12px; }
.panorama .editorial-photo img.field-document { height:auto; max-height:none; object-fit:contain; }
@media(max-width:1000px) {
 .equipment-feature,.product-stage { grid-template-columns:1fr; gap:36px; }
 .feature-copy,.product-stage>div:last-child { max-width:650px; }
 .feature-photo,.product-photo { max-width:760px; width:100%; }
 .feature-copy h3 { font-size:2rem; }
 .product-stage { margin-bottom:70px; }
 .principles { gap:28px; }
 .method-content { grid-template-columns:1.4fr 1fr; gap:28px; }
 .earth-captions>div { gap:10px 38px; }
}
@media(max-width:900px) {
 .section { padding-block:76px; }
 .page-intro { padding:58px 0; }
 .page-intro>div>p { font-size:1.125rem; }
 .reading-layout,.split-heading,.contact-section,.case-reading { grid-template-columns:1fr; gap:36px; }
 .chapter-index { position:static; flex-direction:row; flex-wrap:wrap; border-bottom:1px solid var(--line); padding-bottom:24px; }
 .chapter-index>p,.chapter-index>div { display:none; }
 .chapter-index>a { margin-right:20px; font-size:1rem; }
 .service-body { gap:32px; }
 .method-content { grid-template-columns:1fr; gap:30px; }
 .method-panels h2 { font-size:2.125rem; }
 .method-facts { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
 .method-visual { max-width:700px; width:100%; margin-inline:auto; }
 .method-visual svg { max-height:440px; }
 .earth-data-inspector { display:block; }
 .earth-data-inspector p { margin-top:18px; }
 .earth-captions>div { display:block; }
 .earth-captions h2 { margin:12px 0 18px; }
 .earth-captions p:last-child { max-width:650px; }
 .earth-control-bar { flex-wrap:wrap; }
 .earth-canvas-wrap { height:440px; }
 .case-reading>aside { position:static; }
 .case-reading>aside p { font-size:1.0625rem; }
 .three-features,.principles { grid-template-columns:1fr; gap:30px; }
 .three-features article { border-top:1px solid var(--line); padding-top:24px; }
 .footer-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:740px) {
 .hero-copy h1 { font-size:2.75rem; }
 .home-hero { padding-top:48px; }
 .hero-specimen { width:118vw; max-width:none; margin-left:-9vw; margin-top:-60px; }
 .hero-specimen figcaption { right:13%; bottom:4%; font-size:.6875rem; }
 .hero-purpose { font-size:1.25rem; margin-top:20px; }
 .hero-copy .eyebrow { font-size:1rem; }
 .mission-statement { padding:48px 0 64px; }
 .mission-statement h2 { font-size:1.875rem; }
 .mission-statement h2+p { font-size:1.0625rem; }
 .project-grid { grid-template-columns:1fr; max-width:610px; margin-inline:auto; gap:26px; }
 .project-image { height:auto; aspect-ratio:1.65; padding:24px; }
 .project-copy { padding:30px; }
 .section-heading { align-items:flex-start; flex-direction:column; gap:20px; margin-bottom:36px; }
 .section-heading h2 { font-size:2.125rem; }
 .section-heading .text-link { font-size:1rem; }
 .section-description { font-size:1.0625rem; margin-top:18px; }
 .service-body { grid-template-columns:1fr; }
 .service-body aside { border-left:0; padding-left:0; padding-top:26px; border-top:1px solid var(--line); }
 .service-photo { margin-block:26px; }
 .page-intro h1 { font-size:2.375rem; }
 .page-intro>div>p { font-size:1.0625rem; line-height:1.9; }
 .about-mission { padding:56px 0 48px; }
 .mission-line { font-size:1.5rem; }
 .mission-description { font-size:1.0625rem; }
 .product-stage h2 { font-size:2.125rem; }
 .resource-grid,.partnership-grid { grid-template-columns:1fr; gap:28px; }
 .process { grid-template-columns:1fr 1fr; gap:32px; }
 .process p { font-size:1rem; }
 .data-invitation h2+p { font-size:1.0625rem; }
 .earth-intro { padding:48px 0 42px; }
 .earth-intro>p:last-child { font-size:1.0625rem; }
 .earth-heading { display:block; }
 .earth-heading>span { display:block; margin-top:4px; }
 .earth-view-tabs button { font-size:.9375rem; padding-inline:20px; }
 .earth-adjustments>span { font-size:.8125rem; }
 .earth-controls { margin-left:auto; }
 .earth-captions { min-height:0; }
}
@media(max-width:480px) {
 .mobile-break { display:block; }
 .home-hero { padding-top:38px; }
 .hero-copy h1 { font-size:2.625rem; line-height:1.25; }
 .hero-purpose { font-size:1.0625rem; }
 .hero-copy .actions { gap:20px; }
 .hero-copy .actions .button,.hero-copy .actions .text-link { font-size:1rem; }
 .hero-specimen { width:135vw; margin-left:-17.5vw; margin-top:-30px; }
 .hero-specimen figcaption { right:16%; }
 .mission-statement h2 { font-size:1.625rem; }
 .mission-statement h2+p { font-size:1rem; }
 .section { padding-block:64px; }
 .feature-copy h3 { font-size:1.875rem; }
 .feature-copy>p { font-size:1.0625rem; }
 .method-panels h2 { font-size:1.875rem; }
 .method-introduction { font-size:1.0625rem; text-align:left; }
 .method-facts { grid-template-columns:1fr; }
 .method-visual { padding:18px 10px; margin:0; }
 .diagram-heading { font-size:.8125rem; padding-inline:4px; }
 .diagram-legend { font-size:.8125rem; justify-content:flex-start; padding-left:10px; }
 .diagram-note { font-size:.75rem; }
 .earth-canvas-wrap { height:360px; min-height:0; }
 .earth-view-tabs button { padding:10px 17px; font-size:.875rem; }
 .earth-control-bar { gap:18px; padding-block:20px; }
 .earth-adjustments { width:100%; }
 .earth-data-inspector>div { flex-wrap:wrap; }
 .earth-captions h2 { font-size:1.625rem; }
 .model-hotspot { font-size:.8125rem; padding:9px 12px; }
 .earth-mode-label { left:24px; }
 .process { grid-template-columns:1fr; }
 .service-chapter h2 { font-size:1.875rem; }
 .chapter-lead,.service-body p,.service-body ul { font-size:1.0625rem; }
 .contact-number>button { font-size:.875rem; margin-left:0; display:block; }
}

:where(.page-intro,.method-panels,.earth-intro,.mission-statement) p { text-wrap:balance; }


.feature-photo>span,.product-photo>span,.service-photo>span { position:static;display:block;background:#f5f5f7;color:#626268;padding:12px 18px;font-size:.8125rem; }

/* Direct navigation: every desktop destination is a single link. */
:root { --header-height:76px; }
.header-inner { gap:24px; }
.desktop-nav { gap:clamp(14px,1.45vw,24px); font-size:.9375rem; }
.desktop-nav>a { position:relative; white-space:nowrap; }
.desktop-nav>a::after { content:''; position:absolute; left:0; right:0; bottom:18px; height:2px; background:var(--blue); transform:scaleX(0); transition:transform .2s ease; }
.desktop-nav>a[aria-current]::after { transform:scaleX(1); }
.header-actions .small-button { display:inline-flex; }
.menu-button { display:none; align-items:center; gap:10px; min-width:70px; height:44px; padding:0; }
.menu-label { font-size:.9375rem; }
.menu-lines { display:flex; flex-direction:column; gap:6px; width:18px; }
.menu-lines i { height:1px; width:18px; background:var(--ink); display:block; }
@media(max-width:1200px) {
 .desktop-nav { display:none; }
 .menu-button { display:inline-flex; }
}
@media(max-width:850px) { :root { --header-height:68px; } }
@media(max-width:600px) { :root { --header-height:64px; } .menu-button { min-width:64px; gap:8px; } }
@media(max-width:380px) { .header-actions .small-button { display:none; } }

/* Six permanent cards: two columns on desktop, compact single-column cards on phones. */
.business-showcase { scroll-margin-top:20px; }
.business-showcase .section-heading { margin-bottom:40px; }
.business-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.business-card { min-width:0; display:flex; flex-direction:column; border-radius:24px; background:var(--paper); overflow:hidden; }
.business-card-image { height:224px; overflow:hidden; background:#e7e9ed; }
.business-card-image img { width:100%; height:100%; object-fit:cover; }
.business-card-image img[data-asset=underground] { object-position:50% 16%; }
.business-card-image img[data-asset=woodland] { object-position:50% 40%; }
.business-card-image img[data-asset=field] { object-position:50% 0; }
.business-card-media figcaption { padding:10px 28px 0; color:var(--muted); font-size:.75rem; line-height:1.5; }
.business-card-copy { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:18px 28px 24px; }
.business-card-copy h3 { font-size:1.75rem; line-height:1.35; margin-bottom:12px; }
.business-card-copy p { color:#626267; font-size:1.0625rem; line-height:1.75; margin-bottom:16px; }
.business-card-copy .text-link { min-height:44px; margin-top:auto; font-size:1rem; }
@media(max-width:1000px) {
 .business-card-grid { gap:24px; }
 .business-card-image { height:200px; }
 .business-card-copy { padding:16px 24px 20px; }
 .business-card-copy h3 { font-size:1.5rem; }
 .business-card-copy p { font-size:1rem; }
 .business-card-media figcaption { padding-inline:24px; }
}
@media(max-width:640px) {
 .business-showcase .section-heading { margin-bottom:28px; }
 .business-card-grid { grid-template-columns:1fr; gap:20px; }
 .business-card { border-radius:20px; }
 .business-card-image { height:clamp(156px,38vw,220px); }
 .business-card-media figcaption { padding:8px 22px 0; font-size:.6875rem; }
 .business-card-copy { padding:14px 22px 18px; }
 .business-card-copy h3 { font-size:1.5rem; margin-bottom:10px; }
 .business-card-copy p { font-size:1rem; line-height:1.7; margin-bottom:10px; }
}
.method-directory { border-top:1px solid var(--line); margin-top:64px; padding-top:32px; display:grid; grid-template-columns:1fr 1.2fr; gap:36px; }
.method-directory h3 { font-size:1.5rem; margin-bottom:14px; }
.method-directory p { font-size:1.0625rem; max-width:450px; }
.method-directory nav { display:flex; align-content:flex-start; flex-wrap:wrap; gap:12px; }
.method-directory .text-link { padding:12px 18px; background:var(--wash); border-radius:99px; font-size:1rem; }
.mission-statement h2+p { max-width:760px; line-height:1.9; }
.home-delivery .section-description { max-width:780px; }
.home-cooperation-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.home-cooperation-grid article { background:var(--wash); border-radius:24px; padding:44px; }
.home-cooperation-grid .eyebrow { color:var(--blue); }
.home-cooperation-grid h3 { font-size:2rem; line-height:1.4; margin-bottom:24px; }
.home-cooperation-grid p:not(.eyebrow) { font-size:1.125rem; line-height:1.85; margin-bottom:28px; }
.data-topics { display:grid; grid-template-columns:repeat(3,1fr); gap:48px; margin-top:64px; text-align:left; }
.data-topics>div { border-top:1px solid #334253; padding-top:24px; }
.data-topics h3 { font-size:1.375rem; line-height:1.5; color:#eef1f5; margin-bottom:14px; }
.data-topics p { color:#b5c2d3; font-size:1.0625rem; line-height:1.8; }
.data-planning { border-top:1px solid #334253; padding-top:28px; margin-top:44px; color:#9daec3; font-size:1rem; line-height:1.8; }
.diagram-heading { min-height:30px; }
.diagram-heading>span:last-child { color:#8a8a90; font-size:.8125rem; }
.scroll-reveal { transition:opacity .72s ease var(--reveal-delay,0ms),transform .72s var(--ease) var(--reveal-delay,0ms); }
.scroll-reveal.reveal-pending { opacity:0; transform:translateY(28px); }
.hero-specimen { transform:translateY(var(--visual-shift,0px)) scale(var(--visual-scale,1)); transform-origin:center; }
@media(max-width:1000px) {
 .method-directory { grid-template-columns:1fr; gap:24px; }
 .method-directory p { max-width:none; }
 .home-cooperation-grid article { padding:34px; }
 .home-cooperation-grid h3 { font-size:1.75rem; }
 .data-topics { gap:28px; }
}
@media(max-width:740px) {
 .method-directory { margin-top:42px; padding-top:28px; }
 .method-directory nav { gap:10px; }
 .method-directory .text-link { font-size:.9375rem; padding:11px 15px; }
 .home-cooperation-grid { grid-template-columns:1fr; gap:24px; }
 .home-cooperation-grid article { padding:30px; }
 .home-cooperation-grid p:not(.eyebrow) { font-size:1.0625rem; }
 .data-topics { grid-template-columns:1fr; gap:28px; margin-top:42px; }
 .data-topics>div { padding-top:20px; }
 .data-topics h3 { font-size:1.25rem; margin-bottom:10px; }
 .data-planning { text-align:left; font-size:.9375rem; }
 .project-grid .project-card:last-child:nth-child(3) { display:flex; grid-column:auto; }
 .project-grid .project-card:last-child:nth-child(3) .project-image { height:auto; min-height:0; }
}
@media(max-width:480px) {
 .home-cooperation-grid h3 { font-size:1.75rem; }
}
@media(prefers-reduced-motion:reduce) {
 .scroll-reveal,.scroll-reveal.reveal-pending { opacity:1; transform:none; transition:none; }
 .hero-specimen { transform:none; }
 .method-visual [class*=diagram-] { animation:none!important; }
}

.method-section { padding-top:40px; }
.method-visual svg { max-height:min(440px,50svh); }
.method-panels>[role=tabpanel]:focus-visible { outline:0; }
.method-panels>[role=tabpanel]:focus-visible>.eyebrow { text-decoration:underline; text-underline-offset:5px; }

/* Underlined method directory: labels stay visible at every viewport width. */
.method-nav { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); position:sticky; top:var(--header-height); z-index:12; margin-bottom:44px; padding:0; background:rgba(245,245,247,.97); backdrop-filter:blur(18px); scroll-margin-top:20px; }
.method-nav button { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-width:0; min-height:88px; padding:16px 8px; border:0; border-bottom:1px solid #d2d2d7; border-radius:0; color:#56565c; background:transparent; font-size:1rem; line-height:1.5; white-space:nowrap; transition:color .2s; }
.method-nav button::after { content:''; position:absolute; left:12px; right:12px; bottom:-1px; height:3px; background:var(--blue); transform:scaleX(0); transition:transform .24s var(--ease); }
.method-nav button small { display:block; font-size:.75rem; color:#76767c; font-weight:400; }
.method-nav button:hover,.method-nav button[aria-selected=true] { color:var(--blue); background:transparent; }
.method-nav button[aria-selected=true] { font-weight:600; }
.method-nav button[aria-selected=true]::after { transform:scaleX(1); }
.method-nav button:focus-visible { outline-offset:-5px; }
.method-return { display:none; }

/* Open equipment specifications, with no disclosure controls. */
.equipment-config-section .section-description { max-width:740px; }
.equipment-config-catalog { border-block:1px solid var(--line); }
.equipment-config-row { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,2.1fr); gap:48px; padding:32px 0; align-items:start; }
.equipment-config-row+.equipment-config-row { border-top:1px solid #dedee3; }
.equipment-config-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px 20px; margin-bottom:12px; font-size:.8125rem; }
.equipment-config-meta>span { color:var(--muted); }
.equipment-config-meta .text-link { font-size:.8125rem; min-height:24px; }
.equipment-config-meta .text-link svg { width:13px; height:13px; }
.equipment-config-row h3 { font-size:1.4375rem; line-height:1.45; letter-spacing:-.025em; }
.equipment-config-row dl { display:grid; grid-template-columns:1fr 1.15fr; gap:36px; margin:0; padding-top:3px; }
.equipment-config-row dt { color:var(--ink); font-size:.875rem; font-weight:500; margin-bottom:12px; }
.equipment-config-row dd { color:#626267; font-size:1rem; line-height:1.8; margin:0; }
@media(max-width:1000px) {
 .equipment-config-row { grid-template-columns:minmax(0,.95fr) minmax(0,2.05fr); gap:28px; padding-block:28px; }
 .equipment-config-row dl { gap:24px; }
 .equipment-config-row h3 { font-size:1.3125rem; }
}
@media(max-width:900px) {
 .method-nav { position:static; grid-template-columns:repeat(4,minmax(0,1fr)); margin-bottom:36px; backdrop-filter:none; }
 .method-nav button { min-height:76px; padding-block:12px; }
 .method-return { display:block; margin-top:28px; font-size:1rem; }
}
@media(max-width:700px) {
 .equipment-config-catalog { border:0; display:grid; gap:20px; }
 .equipment-config-row { display:block; background:var(--wash); border:0; border-radius:20px; padding:24px; }
 .equipment-config-row+.equipment-config-row { border:0; }
 .equipment-config-meta { margin-bottom:8px; justify-content:space-between; }
 .equipment-config-meta .text-link { min-height:36px; font-size:.875rem; }
 .equipment-config-row h3 { font-size:1.375rem; }
 .equipment-config-row dl { display:grid; grid-template-columns:1fr; gap:16px; margin-top:20px; padding-top:20px; border-top:1px solid #dedee3; }
 .equipment-config-row dl>div { display:grid; grid-template-columns:64px minmax(0,1fr); gap:12px; }
 .equipment-config-row dt { margin:0; padding-top:2px; font-size:.875rem; }
 .equipment-config-row dd { font-size:.9375rem; line-height:1.75; }
}
@media(max-width:600px) {
 .method-nav { grid-template-columns:repeat(3,minmax(0,1fr)); margin-bottom:30px; }
 .method-nav button { min-height:48px; padding:12px 4px; font-size:.9375rem; }
 .method-nav button small { display:none; }
 .method-nav button::after { left:8px; right:8px; height:2px; }
}
@media(prefers-reduced-motion:reduce) { .method-nav button,.method-nav button::after { transition:none; } }
