/* Public landing page. All selectors are scoped to avoid changing the app UI. */
.landing-page { --home-ink:#172c35; --home-green:#326750; --home-muted:#596b6d; --home-line:#dbe3df; color:var(--home-ink); font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif; line-height:1.6; background:#fff; }
.landing-page h1,.landing-page h2,.landing-page h3 { color:var(--home-ink); font-weight:600; letter-spacing:-.045em; line-height:1.15; }
.landing-page p { margin:0 0 1rem; }
.landing-page a { color:inherit; }
.landing-page a:focus-visible,.landing-page button:focus-visible,.landing-page input:focus-visible,.landing-page textarea:focus-visible { outline:3px solid #398160; outline-offset:5px; }
.landing-page [hidden] { display:none !important; }
.landing-container { width:min(1280px,calc(100% - 96px)); margin-inline:auto; }
.landing-main { flex:1; }
.landing-header { background:#fff; border-bottom:1px solid var(--home-line); }
.header-inner { min-height:96px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.landing-brand { display:inline-flex; align-items:center; gap:10px; text-decoration:none; font-size:23px; font-weight:750; letter-spacing:-1px; line-height:1.15; }
.landing-brand img { flex-shrink:0; }
.landing-brand .brand-light { font-weight:400; margin-left:3px; }
.landing-brand small { display:block; font-size:9px; letter-spacing:1.1px; font-weight:500; margin-top:5px; text-transform:uppercase; }
.landing-nav { display:flex; gap:35px; font-size:13px; font-weight:600; }
.landing-nav a,.landing-footer a { text-decoration:none; }
.landing-nav a:hover,.landing-footer nav a:hover { color:var(--home-green); text-decoration:underline; text-underline-offset:5px; }
.landing-page .button { display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:52px; padding:13px 23px; border:1px solid transparent; border-radius:5px; font:600 13px/1.4 "Avenir Next",Avenir,"Segoe UI",sans-serif; text-decoration:none; cursor:pointer; transition:background .15s,transform .15s; }
.landing-page .button-dark { background:var(--home-ink); color:#fff; }
.landing-page .button-dark:hover { background:#2c5548; transform:translateY(-1px); }
.landing-page .button-small { min-height:40px; padding:10px 19px; }
.landing-page .button span { font-size:19px; font-weight:400; }
.landing-page .text-link { display:inline-flex; align-items:center; gap:19px; font-size:13px; font-weight:600; text-decoration:none; }
.landing-page .text-link:hover { text-decoration:underline; text-underline-offset:5px; }
.skip-link { position:absolute; top:-100px; left:20px; z-index:100; background:#fff; padding:12px; }
.skip-link:focus { top:10px; }
.hero { background:#f1f5ee; padding:83px 0 78px; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:48px; }
.eyebrow { font-size:10px; font-weight:700; letter-spacing:1.8px; line-height:1.5; color:var(--home-green); }
.hero .eyebrow { display:flex; align-items:center; gap:9px; margin-bottom:28px; font-size:9px; letter-spacing:1.5px; }
.status-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:#4c815f; flex-shrink:0; }
.hero h1 { font-size:clamp(44px,4.7vw,68px); line-height:1.07; margin:0 0 26px; letter-spacing:-3.5px; }
.hero h1 em { font-style:normal; color:var(--home-green); }
.hero-description { font-size:18px; font-weight:500; line-height:1.6; max-width:420px; }
.hero-detail { max-width:470px; color:var(--home-muted); font-size:14px; line-height:1.85; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:22px; margin-top:29px; }
.access-note { font-size:10px; color:var(--home-muted); margin-top:9px !important; }
.hero-tags { display:flex; gap:16px; margin-top:31px; color:#596b60; font-size:10px; }
.hero-tags span { display:flex; gap:7px; align-items:center; }
.hero-tags span:before { content:""; width:4px; height:4px; border-radius:50%; background:#70937b; }
.map-preview { min-width:0; border:1px solid #c9d5ce; border-radius:9px; overflow:hidden; background:#fff; box-shadow:0 20px 45px -25px #223c3955; transform:rotate(-1deg); }
.preview-topline { padding:15px 18px; display:flex; justify-content:space-between; gap:10px; align-items:center; font-size:9px; color:#647371; border-bottom:1px solid #d4ded7; }
.preview-topline>span:first-child { color:var(--home-ink); font-size:10px; letter-spacing:1px; font-weight:700; display:flex; align-items:center; gap:8px; }
.preview-topline b { font-size:8px; padding:2px 5px; background:#e5ede5; color:var(--home-green); border-radius:3px; }
.preview-canvas { position:relative; height:414px; background:#e8eee5; overflow:hidden; }
.preview-canvas>svg { width:100%; height:100%; display:block; }
.preview-layer-panel { position:absolute; top:18px; left:17px; padding:14px; width:177px; border:1px solid #d9e1d9; border-radius:5px; background:#ffffffed; box-shadow:0 5px 20px #213c3410; font-size:10px; }
.preview-label { font-size:8px; letter-spacing:1.4px; color:#6c7c74; font-weight:650; display:block; margin-bottom:9px; }
.preview-layer-panel label { display:flex; align-items:center; gap:7px; cursor:pointer; padding:4px 0; }
.preview-layer-panel input { accent-color:#39694e; width:12px; height:12px; margin:0 1px 0 0; }
.layer-key { width:6px; height:6px; display:inline-block; flex-shrink:0; }
.key-plant { border-radius:50%; background:#39694e; }
.key-pipeline { background:#6a9c81; height:2px; }
.key-power { background:#b29258; height:2px; }
.key-ccus { background:#7c799e; transform:rotate(45deg); }
.preview-insight { position:absolute; bottom:25px; left:20px; right:20px; background:#fffffff5; border:1px solid #d4dfd6; border-radius:5px; display:flex; align-items:center; gap:12px; padding:13px 15px; }
.insight-icon { display:grid; place-items:center; width:32px; height:32px; background:#edf3ed; border-radius:4px; color:var(--home-green); font-size:26px; }
.preview-insight strong { display:block; font-size:11px; font-weight:650; }
.preview-insight div>span { display:block; font-size:9px; color:var(--home-muted); margin-top:3px; }
.preview-north { position:absolute; top:20px; right:20px; font-size:11px; line-height:1.3; color:#607364; text-align:center; }
.preview-caption { padding:12px 17px; display:flex; justify-content:space-between; gap:10px; color:#63766a; font-size:8px; }
.preview-caption a { font-size:9px; font-weight:650; text-decoration:none; }
.audience-strip { border-bottom:1px solid var(--home-line); padding:25px 0; }
.audience-strip>.landing-container { display:flex; align-items:center; justify-content:space-between; gap:25px; }
.audience-strip span { font-size:8px; letter-spacing:1.4px; color:#6f7c76; }
.audience-strip p { font-size:11px; font-weight:550; margin:0; }
.audience-strip i { margin:0 15px; font-style:normal; color:#b1bfb7; }
.landing-section { padding-block:90px; }
.landing-page section[id] { scroll-margin-top:30px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:60px; margin-bottom:38px; }
.section-heading h2,.value-section h2,.closing-section h2,.contact-section h2 { font-size:38px; margin:0; }
.section-heading .eyebrow { margin-bottom:19px; }
.section-heading>p { flex:0 1 370px; font-size:13px; line-height:1.85; color:var(--home-muted); margin:0 0 3px; }
.muted-heading { color:#788a80; }
.layer-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--home-line); border-radius:6px; overflow:hidden; }
.layer-card { padding:26px 23px 23px; border-right:1px solid var(--home-line); position:relative; display:flex; flex-direction:column; }
.layer-card:last-child { border-right:0; }
.feature-icon { font-size:27px; color:var(--home-green); height:55px; }
.card-index { position:absolute; top:29px; right:22px; font-size:10px; color:#94a39a; }
.layer-card h3 { font-size:17px; margin:15px 0 14px; letter-spacing:-.4px; }
.layer-card p { font-size:12px; color:var(--home-muted); line-height:1.85; }
.card-tag { border-top:1px solid #e8ece8; padding-top:16px; margin-top:auto; font-size:10px; font-weight:550; color:var(--home-green); }
.section-footnote { font-size:10px; color:#66776e; margin:17px 0 0 !important; }
.data-section { background:#f6f7f3; padding:85px 0; border-block:1px solid #e6ebe4; }
.data-workspace { display:grid; grid-template-columns:300px minmax(0,1fr); border:1px solid #d3ded4; border-radius:6px; overflow:hidden; background:#fff; }
.data-tabs { padding:18px; background:#edf1e9; }
.data-tabs button { width:100%; display:flex; align-items:center; text-align:left; gap:13px; border:1px solid transparent; border-radius:4px; background:transparent; padding:19px 14px; font:550 12px "Avenir Next",Avenir,"Segoe UI",sans-serif; color:#5d6e63; cursor:pointer; margin-bottom:4px; }
.data-tabs button>span:first-child { font-size:9px; color:#7a8c7d; }
.data-tabs button>span:last-child { margin-left:auto; }
.data-tabs button[aria-selected="true"] { border-color:#cdd9cd; background:#fff; color:var(--home-ink); box-shadow:0 3px 6px #23402805; }
.data-tabs button:hover { background:#ffffffa8; }
.data-tabs-note { padding:31px 14px 10px; color:#667c6c; font-size:12px; line-height:1.8; }
.data-tabs-note strong { color:#36583e; font-weight:550; }
.data-panel { padding:32px 39px; }
.data-panel+.data-panel { border-top:1px solid var(--home-line); }
.panel-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:24px; }
.panel-top .eyebrow { font-size:8px; letter-spacing:1.2px; }
.record-badge { font-size:8px; white-space:nowrap; padding:3px 8px; border:1px solid #d8e2d5; border-radius:3px; color:#60785c; }
.data-panel h3 { font-size:25px; margin-bottom:15px; }
.data-panel .capacity-note { font-size:10px; margin-top:-12px; }
.data-panel>p { font-size:12px; color:var(--home-muted); line-height:1.85; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; margin:25px 0; border-top:1px solid #e5eae2; border-left:1px solid #e5eae2; }
.field-grid>div { border-right:1px solid #e5eae2; border-bottom:1px solid #e5eae2; padding:13px 16px; }
.field-grid span { display:block; font-size:8px; color:#7c8c7f; letter-spacing:1.2px; margin-bottom:5px; }
.field-grid strong { display:block; font-size:11px; font-weight:600; }
.source-note { display:flex; gap:12px; color:var(--home-green); }
.source-note>span { font-size:23px; }
.source-note p { color:var(--home-muted); font-size:11px; line-height:1.8; }
.source-note strong { color:var(--home-ink); font-weight:600; }
.data-panel>.text-link { font-size:11px; margin-top:8px; }
.use-case-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 55px; }
.use-case-grid article { padding:30px 0; border-top:1px solid var(--home-line); }
.use-case-label { font-size:9px; color:var(--home-green); letter-spacing:1.2px; font-weight:650; }
.use-case-grid h3 { font-size:27px; margin:18px 0 17px; }
.use-case-grid p { font-size:13px; line-height:1.85; color:var(--home-muted); max-width:450px; }
.value-line { display:flex; align-items:baseline; gap:10px; margin-top:20px; font-size:11px; color:#365c46; font-weight:600; }
.value-line span { font-size:20px; }
.value-section { background:#19382d; color:#d3e0d5; padding:75px 0; }
.value-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; }
.value-section .eyebrow { color:#a7cbb2; }
.value-section h2 { color:#fff; margin:24px 0; font-size:43px; }
.value-section p { font-size:13px; line-height:1.9; max-width:365px; }
.value-steps { padding:0; margin:0; list-style:none; }
.value-steps li { display:flex; gap:25px; border-bottom:1px solid #ffffff22; padding:21px 0; }
.value-steps li:first-child { padding-top:0; }
.value-steps li:last-child { border:0; padding-bottom:0; }
.value-steps li>span { color:#94b9a0; font-size:11px; padding-top:3px; }
.value-steps h3 { color:#eef5ed; font-size:17px; margin:0 0 8px; letter-spacing:-.3px; }
.value-steps p { font-size:12px; margin:0; max-width:400px; }
.closing-section { padding-block:70px; display:flex; gap:40px; justify-content:space-between; align-items:center; }
.closing-section h2 { font-size:33px; margin-bottom:15px; }
.closing-section p:not(.eyebrow) { font-size:12px; color:var(--home-muted); margin:0; }
.closing-actions { display:flex; flex-direction:column; align-items:center; gap:12px; flex-shrink:0; }
.closing-actions>span { font-size:10px; color:var(--home-muted); }
.landing-footer { border-top:1px solid var(--home-line); padding:27px 0; }
.footer-inner { display:flex; align-items:center; gap:30px; }
.footer-inner>.landing-brand { font-size:19px; }
.footer-inner>span { font-size:10px; color:var(--home-muted); }
.footer-inner nav { display:flex; gap:23px; margin-left:auto; font-size:11px; }
.footer-inner small { font-size:9px; color:#728377; margin-left:15px; }
.contact-section { padding-block:80px; display:grid; grid-template-columns:1fr 1fr; gap:95px; border-top:1px solid var(--home-line); }
.contact-section h2 { margin:20px 0; }
.contact-section p { font-size:13px; color:var(--home-muted); line-height:1.85; max-width:370px; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:19px; }
.contact-form .form-field { min-width:0; }
.contact-form .form-field-wide,.contact-form .form-note,.contact-form .form-error-summary { grid-column:1/-1; }
.contact-form label { display:block; font-size:11px; font-weight:600; margin-bottom:6px; }
.contact-form input,.contact-form textarea { width:100%; border:1px solid #c8d4cb; border-radius:4px; background:#fcfdfb; padding:11px; font:inherit; font-size:13px; line-height:1.6; color:var(--home-ink); }
.contact-form textarea { resize:vertical; min-height:115px; }
.contact-form .button { justify-self:start; }
.contact-form .form-note { font-size:10px; margin:0; }
.contact-form .errorlist { margin:5px 0 0; padding:0; list-style:none; color:#a13724; font-size:11px; }
.contact-form [aria-invalid="true"] { border-color:#a13724; }
.contact-form .form-error-summary { color:#a13724; font-size:12px; margin:0; }
.contact-trap { display:none; }
.contact-success { background:#eef4ea; border:1px solid #cddfc5; border-radius:6px; padding:28px; align-self:start; }
.contact-success h3 { font-size:24px; margin-bottom:14px; }
.contact-success p { margin:0; }
@media (min-width:1500px) { .hero { padding-block:95px; } }
@media (max-width:1100px) { .landing-container { width:calc(100% - 56px); } .hero-grid { gap:30px; } .hero h1 { letter-spacing:-2.4px; font-size:49px; } .hero-tags { gap:10px; font-size:8px; } .hero-actions { gap:15px; } .hero-actions .text-link { font-size:11px; } .audience-strip>.landing-container { flex-direction:column; gap:9px; } .layer-card { padding:22px 18px; } .layer-card h3 { font-size:15px; } .data-workspace { grid-template-columns:265px 1fr; } .data-panel { padding:30px; } .section-heading h2 { font-size:33px; } .section-heading { gap:35px; } .section-heading>p { flex-basis:330px; } .contact-section,.value-grid { gap:55px; } }
@media (max-width:800px) { .header-inner { min-height:82px; gap:20px; } .landing-nav { gap:18px; font-size:11px; } .landing-brand { font-size:20px; } .hero { padding:55px 0; } .hero-grid { grid-template-columns:1fr; gap:40px; } .hero-copy { max-width:560px; } .hero h1 { font-size:64px; } .hero-detail { max-width:520px; } .hero-tags { font-size:10px; gap:23px; } .map-preview { transform:none; } .preview-canvas { height:380px; } .section-heading { display:block; } .section-heading>p { max-width:510px; margin-top:22px; } .layer-grid { grid-template-columns:1fr 1fr; } .layer-card:nth-child(2) { border-right:0; } .layer-card:nth-child(-n+2) { border-bottom:1px solid var(--home-line); } .layer-card h3 { font-size:18px; } .landing-section { padding-block:65px; } .data-section { padding-block:65px; } .data-workspace { grid-template-columns:1fr; } .data-tabs { display:grid; grid-template-columns:1fr 1fr; padding:12px; gap:5px; } .data-tabs-note { display:none; } .data-tabs button { margin:0; padding:15px 12px; } .value-grid { gap:40px; } .value-section h2 { font-size:34px; } .closing-section { align-items:flex-start; flex-direction:column; gap:25px; } .closing-actions { align-items:flex-start; } .contact-section { gap:35px; } .contact-section h2 { font-size:32px; } .footer-inner { flex-wrap:wrap; gap:18px; } .footer-inner small { margin-left:auto; } }
@media (max-width:560px) { .landing-container { width:calc(100% - 40px); } .header-inner { flex-wrap:wrap; padding-block:16px 13px; gap:18px; } .landing-nav { order:3; flex-basis:100%; justify-content:space-between; border-top:1px solid #edf0ea; padding-top:12px; } .landing-brand small { font-size:8px; } .hero { padding:38px 0 40px; } .hero .eyebrow { font-size:8px; letter-spacing:1px; margin-bottom:23px; } .hero h1 { font-size:43px; letter-spacing:-2px; } .hero-description { font-size:17px; } .hero-detail { font-size:13px; } .hero-actions { gap:22px; } .hero-actions .text-link { font-size:12px; } .hero-tags { gap:12px; font-size:8px; margin-top:25px; } .hero-grid { gap:30px; } .preview-canvas { height:350px; } .preview-topline { padding:13px; } .preview-topline>span:last-child { font-size:8px; } .preview-layer-panel { left:12px; top:12px; } .preview-insight { bottom:16px; left:12px; right:12px; padding:10px; gap:8px; } .preview-insight strong { font-size:10px; } .preview-insight div>span { font-size:8px; } .insight-icon { flex-shrink:0; width:28px; } .preview-caption { padding:10px; font-size:7px; } .audience-strip { padding:20px 0; } .audience-strip p { font-size:10px; text-align:center; line-height:2.1; } .audience-strip i { margin:0 7px; } .audience-strip span { font-size:7px; letter-spacing:1px; } .section-heading h2 { font-size:29px; } .section-heading { margin-bottom:27px; } .section-heading>p { font-size:12px; } .layer-grid { grid-template-columns:1fr; } .layer-card { border-right:0; border-bottom:1px solid var(--home-line); padding:23px; } .layer-card:last-child { border-bottom:0; } .feature-icon { height:35px; } .layer-card h3 { margin-top:13px; } .layer-card p { margin-bottom:18px; } .data-tabs button { font-size:10px; gap:8px; padding:14px 8px; } .data-panel { padding:25px 20px; } .panel-top { flex-wrap:wrap; gap:8px; } .data-panel h3 { font-size:24px; } .field-grid>div { padding:12px 10px; } .field-grid strong { font-size:10px; } .use-case-grid { grid-template-columns:1fr; } .use-case-grid article { padding-block:26px; } .use-case-grid h3 { font-size:26px; } .value-grid { grid-template-columns:1fr; gap:32px; } .value-section { padding-block:55px; } .value-section h2 { font-size:36px; } .value-steps li { gap:18px; } .closing-section { padding-block:50px; } .closing-section h2 { font-size:30px; } .contact-section { grid-template-columns:1fr; padding-block:55px; gap:25px; } .contact-form { gap:16px; } .contact-form .form-field { grid-column:1/-1; } .footer-inner>span { display:none; } .footer-inner nav { gap:14px; font-size:10px; } .footer-inner small { width:100%; text-align:center; } }
@media (prefers-reduced-motion:reduce) { .landing-page .button { transition:none; } }
