:root{color-scheme:light;--font-family:Inter, "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, "Cascadia Mono", Consolas, monospace;--font-size:.875rem;--font-small:.8125rem;--font-xs:.75rem;--font-md:1rem;--font-lg:1.25rem;--font-xl:1.625rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:.375rem;--radius:.5rem;--radius-lg:.75rem;--control:2rem;--header-height:3rem;--canvas:#f5f4f1;--surface:#fff;--surface-soft:#faf9f7;--sunken:#efeee9;--hover:#f3f2ee;--ink:#171a26;--ink-2:#3d4152;--muted:#63677a;--faint:#a0a3ad;--line:#e5e3dd;--line-strong:#cdcac2;--accent:#2f5bd3;--accent-hover:#2449b0;--accent-ink:#fff;--accent-soft:#ebf0fd;--accent-line:#b8c8f4;--focus:#c76d00;--success:#1f7a4d;--success-soft:#e3f3ea;--warning:#94600a;--warning-soft:#fcf1d6;--danger:#c2372b;--danger-soft:#fce8e5;--danger-line:#efc4bd;--info:#2f5bd3;--info-soft:#ebf0fd;--review:#6b46c1;--review-soft:#f0ebfb;--neutral-soft:#efeee9;--disabled:#ecebe6;--lith-sand:#f2e9c9;--lith-clay:#e6dcc4;--lith-gravel:#e3d9c2;--lith-rock:#dde2e3;--lith-fill:#e5d7c7;--lith-ink:#6d5a35;--log-groundwater:#2c5d9a;--log-spt:#2c4f7c;--log-wc:#127a72;--plot-a:#008a7d;--plot-b:#b4561f;--survey-old:oklch(84% .04 183);--survey-new:oklch(36% .12 183);--shadow:0 1px 2px #171a260d, 0 1px 3px #171a260d;--shadow-pop:0 18px 50px #171a2638, 0 3px 10px #171a2614;--scrim:#14161e66}@media (prefers-color-scheme:dark){:root{color-scheme:dark;--canvas:#0f1117;--surface:#161922;--surface-soft:#1b1f2a;--sunken:#12141b;--hover:#1e2230;--ink:#e6e8ef;--ink-2:#c4c8d4;--muted:#8f94a3;--faint:#626777;--line:#262a37;--line-strong:#363b4b;--accent:#7c9cf5;--accent-hover:#9bb4f8;--accent-ink:#0b1533;--accent-soft:#1a2448;--accent-line:#2d3f7a;--focus:#f0a040;--success:#5cc28a;--success-soft:#12301f;--warning:#e2b24a;--warning-soft:#33290f;--danger:#f07f72;--danger-soft:#3a1915;--danger-line:#6a2c25;--info:#7c9cf5;--info-soft:#1a2448;--review:#a98bf0;--review-soft:#261d42;--neutral-soft:#1e2230;--disabled:#1e2230;--lith-sand:#3d3820;--lith-clay:#3a3424;--lith-gravel:#3a3526;--lith-rock:#2a3134;--lith-fill:#34312a;--lith-ink:#d6c39a;--log-groundwater:#7fa9e3;--log-spt:#7fa9e3;--log-wc:#3cb0a4;--plot-a:#22a395;--plot-b:#d07a40;--survey-old:oklch(42% .04 183);--survey-new:oklch(86% .12 183);--shadow:0 1px 2px #0006;--shadow-pop:0 18px 50px #0009;--scrim:#0000008c}}*,:before,:after{box-sizing:border-box}html{min-width:320px;font-family:var(--font-family);-webkit-text-size-adjust:100%;scroll-padding-top:5rem}body{color:var(--ink);background:var(--canvas);font-size:var(--font-md);margin:0;line-height:1.6;overflow-x:hidden}img,svg{max-width:100%;height:auto;display:block}button,input,textarea{font:inherit}a{color:var(--accent);text-underline-offset:.2em}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}[hidden]{display:none!important}h1,h2,h3{letter-spacing:-.015em;color:var(--ink);line-height:1.2}h1{letter-spacing:-.03em;margin:.4rem 0 1rem;font-size:clamp(2rem,1.4rem + 2.6vw,3.1rem)}h2{margin:2.5rem 0 .75rem;font-size:clamp(1.4rem,1.15rem + 1vw,1.9rem)}h3{font-size:var(--font-lg);margin:1.75rem 0 .5rem}p,ul,ol{margin:0 0 1rem}ul,ol{padding-left:1.3rem}li{margin:.35rem 0}code{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--sunken);padding:.05rem .3rem;font-size:.9em}.skip-link{z-index:100;border-radius:var(--radius);background:var(--surface);padding:.5rem 1rem;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.wrap{width:100%;max-width:74rem;margin-inline:auto;padding-inline:16px}@media (width>=40rem){.wrap{padding-inline:var(--space-6)}}@media (width>=64rem){.wrap{padding-inline:var(--space-8)}}.eyebrow{color:var(--accent);font-size:var(--font-xs);letter-spacing:.1em;text-transform:uppercase;margin:0;font-weight:700}.lead{max-width:40rem;color:var(--ink-2);font-size:clamp(1.05rem,1rem + .4vw,1.25rem);line-height:1.55}.muted{color:var(--muted)}.button,button.button{justify-content:center;align-items:center;gap:var(--space-2);border:1px solid var(--accent);border-radius:var(--radius);min-height:2.5rem;color:var(--accent-ink);background:var(--accent);white-space:nowrap;cursor:pointer;padding:.45rem 1rem;font-weight:600;line-height:1.3;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.button:hover,button.button:hover:not(:disabled){color:var(--accent-ink);border-color:var(--accent-hover);background:var(--accent-hover)}.button-secondary,button.button-secondary{color:var(--ink);border-color:var(--line-strong);background:var(--surface)}.button-secondary:hover,button.button-secondary:hover:not(:disabled){color:var(--ink);border-color:var(--muted);background:var(--surface-soft)}.button-large{min-height:3.25rem;padding:.7rem 1.5rem;font-size:1.0625rem}.button-inverse{color:var(--ink);border-color:var(--surface);background:var(--surface)}.button-inverse:hover{color:var(--ink);border-color:var(--surface-soft);background:var(--surface-soft)}.button-small{min-height:2.125rem;font-size:var(--font-size);padding:.3rem .8rem}button:disabled{cursor:not-allowed;opacity:.6}.icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.1rem;height:1.1rem}.actions{gap:var(--space-3);flex-wrap:wrap;margin:1.5rem 0 0;display:flex}.site-header{z-index:30;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--surface) 92%, transparent);backdrop-filter:saturate(1.4)blur(8px);position:sticky;top:0}.site-header .wrap{align-items:center;gap:.25rem var(--space-4);flex-wrap:wrap;min-height:3.75rem;padding-block:.5rem;display:flex}.brand{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:.6rem;font-size:1.125rem;font-weight:700;text-decoration:none;display:inline-flex}.brand:hover{color:var(--ink)}.brand-mark{border-radius:var(--radius);width:2rem;height:2rem;color:var(--accent-ink);background:var(--accent);flex:none;place-items:center;font-size:1rem;font-weight:800;display:inline-grid}.site-nav{flex-wrap:wrap;order:3;align-items:center;gap:0 .25rem;width:100%;margin:0 -.5rem;display:flex}.site-nav a{border-radius:var(--radius-sm);color:var(--ink-2);font-size:var(--font-size);padding:.3rem .5rem;font-weight:500;text-decoration:none}.site-nav a:hover{color:var(--ink);background:var(--neutral-soft)}.site-nav a[aria-current=page]{color:var(--accent);background:var(--accent-soft)}.header-actions{align-items:center;gap:var(--space-3);margin-left:auto;display:flex}.header-signin{color:var(--ink-2);font-size:var(--font-size);font-weight:500;text-decoration:none;display:none}.header-signin:hover{color:var(--ink)}@media (width>=23rem){.header-signin{display:inline}}@media (width>=48rem){.site-nav{width:auto;margin:0 0 0 var(--space-4);order:0}.site-header .wrap{flex-wrap:nowrap}}.home-hero{padding-top:clamp(3.5rem,9vw,7rem);overflow:hidden}.home-hero h1{letter-spacing:-.04em;text-wrap:balance;max-width:11em;margin:0 0 1.25rem;font-size:clamp(2.6rem,1.6rem + 4.6vw,5rem);line-height:1.04}.home-hero .actions{margin-top:2rem}.hero-note{color:var(--muted);font-size:var(--font-size);margin:.85rem 0 0}.strata{width:100%;height:clamp(9rem,20vw,17.5rem);margin-top:clamp(2.5rem,6vw,4.5rem)}.strata-texture{stroke:none}.strata-hole{stroke:var(--accent);stroke-width:2.5px;fill:none}.home-modules{background:var(--surface);padding:clamp(3rem,7vw,5.5rem) 0}.home-modules h2{letter-spacing:-.03em;margin:0 0 .5rem;font-size:clamp(1.75rem,1.3rem + 1.8vw,2.75rem)}.section-lead{color:var(--muted);margin:0 0 clamp(1.75rem,4vw,3rem);font-size:clamp(1.05rem,1rem + .3vw,1.2rem)}.module-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.module-row{gap:.1rem var(--space-4);padding:var(--space-5) var(--space-2);border-bottom:1px solid var(--line);grid-template-columns:2.75rem minmax(0,1fr);grid-template-areas:"icon name""icon summary";align-items:center;margin:0;display:grid}.module-icon{border-radius:var(--radius);width:2.75rem;height:2.75rem;color:var(--accent);background:var(--accent-soft);grid-area:icon;align-self:start;place-items:center;display:grid}.module-icon .icon{width:1.35rem;height:1.35rem}.module-name{font-size:var(--font-lg);letter-spacing:-.015em;grid-area:name;font-weight:600}.module-summary{color:var(--muted);grid-area:summary}@media (width>=52rem){.module-row{grid-template-columns:2.75rem 12rem minmax(0,1fr);grid-template-areas:"icon name summary"}.module-icon{align-self:center}}.home-cta{color:var(--accent-ink);background:var(--accent);padding:clamp(3rem,7vw,5rem) 0}.home-cta .wrap{gap:var(--space-6);align-items:center;display:grid}@media (width>=52rem){.home-cta .wrap{gap:var(--space-8);grid-template-columns:minmax(0,1fr) auto}}.home-cta h2{color:inherit;letter-spacing:-.03em;margin:0 0 .5rem;font-size:clamp(1.75rem,1.3rem + 1.8vw,2.75rem)}.home-cta p{max-width:36rem;margin:0;font-size:clamp(1.05rem,1rem + .3vw,1.2rem)}.shot{margin:var(--space-6) 0;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.shot>svg,.shot>img,.shot picture img{border-radius:var(--radius);width:100%}.shot figcaption{margin-top:var(--space-3);color:var(--muted);font-size:var(--font-small);flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;line-height:1.45;display:flex}.shot-tag{color:var(--ink-2);background:var(--neutral-soft);font-size:var(--font-xs);border-radius:999px;padding:.05rem .45rem;font-weight:600}.page-head{border-bottom:1px solid var(--line);background:var(--surface);padding:clamp(2rem,5vw,3.5rem) 0 clamp(1.5rem,3vw,2rem)}.page-head h1{margin-bottom:.5rem}.page-head .lead{margin:0}.prose{max-width:46rem;padding-block:var(--space-8) clamp(2.5rem, 6vw, 4rem)}.prose>:first-child{margin-top:0}.prose h2{padding-top:var(--space-2)}.prose li::marker{color:var(--muted)}.prose table{border-collapse:collapse;width:100%;font-size:var(--font-size);margin:0 0 1.5rem}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere;padding:.5rem .6rem}.prose th{color:var(--muted);font-weight:600}.prose blockquote{border-left:3px solid var(--line-strong);color:var(--ink-2);margin:0 0 1rem;padding:.5rem 1rem}.table-scroll{max-width:100%;overflow-x:auto}.notice{margin:0 0 var(--space-6);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);color:var(--ink-2);font-size:var(--font-size)}.notice strong{color:var(--ink)}.site-footer{padding:var(--space-8) 0 calc(var(--space-8) + 3.5rem);border-top:1px solid var(--line);background:var(--surface-soft);color:var(--muted);font-size:var(--font-size)}.footer-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));display:grid}.footer-grid h2{color:var(--ink);font-size:var(--font-size);letter-spacing:0;margin:0 0 .5rem}.footer-grid ul{margin:0;padding:0;list-style:none}.footer-grid li{margin:.25rem 0}.footer-grid a{color:var(--ink-2);text-decoration:none}.footer-grid a:hover{color:var(--accent);text-decoration:underline}.footer-base{justify-content:space-between;gap:var(--space-2) var(--space-6);margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--line);font-size:var(--font-small);flex-wrap:wrap;display:flex}.footer-base a{color:var(--muted)}.build-stamp{font-family:var(--font-mono);font-size:var(--font-xs)}.chat-launch{z-index:40;box-shadow:var(--shadow-pop);border-radius:999px;padding-inline:1.1rem;position:fixed;bottom:16px;right:16px}.chat-panel{z-index:50;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);max-height:calc(100dvh - 6rem);box-shadow:var(--shadow-pop);flex-direction:column;display:flex;position:fixed;bottom:4.75rem;left:16px;right:16px;overflow:hidden}@media (width>=30rem){.chat-panel{width:24rem;left:auto}}.chat-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);background:var(--surface-soft);display:flex}.chat-head h2{font-size:var(--font-md);letter-spacing:0;margin:0}.chat-close{border-radius:var(--radius);width:2rem;height:2rem;color:var(--ink-2);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;padding:0;display:inline-grid}.chat-close:hover{color:var(--ink);background:var(--neutral-soft)}.chat-body{padding:var(--space-4);overflow-y:auto}.chat-note{margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--accent-soft);color:var(--ink-2);font-size:var(--font-size)}.chat-foot{margin:var(--space-3) 0 0;color:var(--muted);font-size:var(--font-xs)}.form{gap:var(--space-3);display:grid}.field{gap:.3rem;display:grid}.field label,.field-label{color:var(--ink-2);font-size:var(--font-size);font-weight:600}.optional{color:var(--muted);font-weight:400}.field input,.field textarea{border:1px solid var(--line-strong);border-radius:var(--radius);width:100%;min-width:0;min-height:2.5rem;color:var(--ink);background:var(--surface);font-size:var(--font-md);padding:.45rem .65rem}.field textarea{resize:vertical;min-height:7rem;line-height:1.5}.field input:hover,.field textarea:hover{border-color:var(--muted)}.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--focus);outline-offset:0;border-color:var(--focus)}.field [aria-invalid=true]{border-color:var(--danger);background:var(--danger-soft)}.field-row{justify-content:space-between;gap:var(--space-2);display:flex}.count{color:var(--muted);font-size:var(--font-xs);font-variant-numeric:tabular-nums}.count.over{color:var(--danger);font-weight:600}.field-error{color:var(--danger);font-size:var(--font-small);margin:0}.alert{padding:var(--space-3);border:1px solid var(--danger-line);border-left:3px solid var(--danger);border-radius:var(--radius);color:var(--danger);background:var(--danger-soft);font-size:var(--font-size);margin:0}.success{padding:var(--space-3);border:1px solid var(--line);border-left:3px solid var(--success);border-radius:var(--radius);color:var(--success);background:var(--success-soft);font-size:var(--font-size);margin:0}.turnstile{min-height:65px}.sent h3{margin:0 0 var(--space-2);color:var(--success);font-size:var(--font-md)}.sent-text{margin:0 0 var(--space-3);padding:var(--space-3);border-radius:var(--radius);background:var(--sunken);color:var(--ink-2);font-size:var(--font-size);white-space:pre-wrap;overflow-wrap:anywhere;max-height:12rem;overflow-y:auto}.conversation{max-width:44rem;padding-block:var(--space-8) clamp(2.5rem, 6vw, 4rem)}.thread{gap:var(--space-3);margin:0 0 var(--space-6);padding:0;list-style:none;display:grid}.message{padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);margin:0}.message-staff{border-left:3px solid var(--accent)}.message-visitor{background:var(--surface-soft)}.message-meta{color:var(--muted);font-size:var(--font-small);margin:0 0 .25rem}.message-meta strong{color:var(--ink)}.message-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.status-box{padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink-2)}.reply-card{padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.reply-card h2{margin:0 0 var(--space-3);font-size:var(--font-lg)}.not-found{padding-block:clamp(3rem,10vw,7rem)}.ill-bg{fill:var(--surface-soft)}.ill-panel{fill:var(--surface);stroke:var(--line)}.ill-grid{stroke:var(--line);stroke-width:1px;fill:none}.ill-axis{stroke:var(--line-strong);stroke-width:1.2px;fill:none}.ill-text{fill:var(--muted);font-family:var(--font-family);font-size:10px}.ill-text-strong{fill:var(--ink-2);font-family:var(--font-family);font-size:11px;font-weight:600}.ill-accent{stroke:var(--accent);stroke-width:2px;fill:none}.ill-accent-fill{fill:var(--accent)}.ill-accent-soft{fill:var(--accent-soft);stroke:var(--accent-line)}.ill-soft{fill:var(--sunken);stroke:var(--line)}.ill-ink{fill:var(--ink-2)}.ill-ink-line{stroke:var(--ink-2);stroke-width:1.4px;fill:none}.ill-sand{fill:var(--lith-sand);stroke:var(--lith-ink);stroke-width:.6px}.ill-clay{fill:var(--lith-clay);stroke:var(--lith-ink);stroke-width:.6px}.ill-gravel{fill:var(--lith-gravel);stroke:var(--lith-ink);stroke-width:.6px}.ill-rock{fill:var(--lith-rock);stroke:var(--lith-ink);stroke-width:.6px}.ill-fill{fill:var(--lith-fill);stroke:var(--lith-ink);stroke-width:.6px}.ill-pattern{stroke:var(--lith-ink);stroke-width:.7px;fill:none;opacity:.55}.ill-dot{fill:var(--lith-ink);opacity:.5}.ill-water{stroke:var(--log-groundwater);stroke-width:1.5px;fill:none;stroke-dasharray:4 3}.ill-water-mark{fill:var(--log-groundwater)}.ill-spt{fill:var(--log-spt)}.ill-spt-line{stroke:var(--log-spt);stroke-width:1.5px;fill:none}.ill-wc{stroke:var(--log-wc);stroke-width:1.5px;fill:none}.ill-wc-dot{fill:var(--log-wc)}.ill-a{stroke:var(--plot-a);stroke-width:1.8px;fill:none}.ill-b{stroke:var(--plot-b);stroke-width:1.8px;fill:none}.ill-survey-1{stroke:var(--survey-old);stroke-width:1.6px;fill:none}.ill-survey-2{stroke:color-mix(in oklch, var(--survey-old) 66%, var(--survey-new));stroke-width:1.6px;fill:none}.ill-survey-3{stroke:color-mix(in oklch, var(--survey-old) 33%, var(--survey-new));stroke-width:1.6px;fill:none}.ill-survey-4{stroke:var(--survey-new);stroke-width:1.8px;fill:none}.ill-pass{fill:var(--success-soft);stroke:var(--success)}.ill-pass-text{fill:var(--success);font-family:var(--font-family);font-size:10px;font-weight:700}.ill-concrete{fill:var(--line-strong);stroke:var(--ink-2);stroke-width:1px}.ill-steel{stroke:var(--ink-2);stroke-width:1.2px;fill:none;stroke-dasharray:2 0}.ill-draft{fill:var(--warning-soft);stroke:var(--warning)}.ill-draft-text{fill:var(--warning);font-family:var(--font-family);font-size:10px;font-weight:700}.ill-review{fill:var(--review-soft);stroke:var(--review)}.ill-review-text{fill:var(--review);font-family:var(--font-family);font-size:10px;font-weight:700}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.conversation .success{margin-bottom:var(--space-3)}
