@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600;9..144,700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg: #0c1410;--bg2: #111a14;--bg3: #162018;--surface: #1c2a22;--border: #243228;--border2: #2f4136;--brand: #7ea96a;--brand-deep: #4f7a44;--brand-soft: #a8c598;--ochre: #c89b5c;--bark: #8c6a45;--sky: #6fa8c9;--text: #e8efe4;--text-muted: #9caf9a;--text-dim: #5e6f5b;--mono: "JetBrains Mono", monospace;--display: "Fraunces", "Inter", serif}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:dark}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(800px 600px at 15% 10%,rgba(126,169,106,.08),transparent 70%),radial-gradient(700px 500px at 85% 90%,rgba(200,155,92,.06),transparent 70%)}.blueprint-hatch{background-image:repeating-linear-gradient(135deg,rgba(111,168,201,.06) 0,rgba(111,168,201,.06) 1px,transparent 1px,transparent 8px)}[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform}[data-reveal=in]{opacity:1;transform:translateY(0)}@keyframes leaf-sway{0%,to{transform:translate(-100%)}50%{transform:translate(100%)}}@keyframes tower-blink{0%,to{opacity:.3}50%{opacity:1}}[role=group]:hover .card-image,article:hover .card-image{transform:scale(1.05)}.contact-link{color:var(--text);text-decoration:none;transition:color .18s ease}.contact-link:hover{color:var(--brand)}.projects-map .leaflet-control-attribution{background:#0c1410d9;color:var(--text-dim);font-family:var(--mono);font-size:10px;letter-spacing:.04em;padding:2px 6px}.projects-map .leaflet-control-attribution a{color:var(--text-muted)}.projects-map .leaflet-control-zoom a{background:#0c1410eb;color:var(--text);border-color:var(--border)}.projects-map .leaflet-control-zoom a:hover{background:var(--surface);color:var(--brand)}.projects-map .projects-map__tooltip,.projects-map .leaflet-tooltip{background:#0c1410f0;color:var(--text);border:1px solid var(--border);border-radius:4px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;padding:6px 10px;box-shadow:0 12px 28px -16px #000000b3}.projects-map .leaflet-tooltip-top:before{border-top-color:#0c1410f0}.projects-map .leaflet-container{background:var(--bg);font-family:var(--mono)}.intake-label{display:block;font-family:var(--mono);font-size:.6875rem;color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase;margin-bottom:.5rem}.nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}.nav-link{color:var(--text-muted);text-decoration:none;letter-spacing:.04em;transition:color .18s ease;position:relative;padding:4px 2px}.nav-link:after{content:"";position:absolute;left:2px;right:2px;bottom:-2px;height:1px;background:var(--brand);transform:scaleX(0);transform-origin:left center;transition:transform .22s ease}.nav-link:hover{color:var(--brand)}.nav-link:hover:after,.nav-link--active:after{transform:scaleX(1)}.nav-link--active{color:var(--brand)}.nav-cta{display:inline-flex;align-items:center;font-family:var(--mono);font-size:.85rem;font-weight:500;padding:9px 18px;border:1px solid transparent;border-radius:8px;text-decoration:none;letter-spacing:.05em;white-space:nowrap;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .22s ease,transform .18s ease}.nav-cta--ghost{border-color:var(--border2);color:var(--text);background:transparent}.nav-cta--ghost:hover{border-color:var(--brand);color:var(--brand);background:#7ea96a14}.nav-cta--solid{background:var(--brand);color:var(--bg);border-color:var(--brand);box-shadow:0 8px 22px -12px #7ea96a8c}.nav-cta--solid:hover{background:var(--brand-soft);border-color:var(--brand-soft);color:var(--bg);transform:translateY(-1px);box-shadow:0 14px 30px -12px #7ea96ab3}.footer-link{color:var(--text-muted);text-decoration:none;letter-spacing:.04em;transition:color .18s ease}.footer-link:hover{color:var(--brand)}.magnetic-btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:500;font-size:.95rem;letter-spacing:.04em;padding:14px 24px;border-radius:6px;text-decoration:none;transition:background .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease,transform .25s ease;position:relative;overflow:hidden}.magnetic-btn--primary{background:var(--brand);color:var(--bg);box-shadow:0 12px 30px -10px #7ea96a80}.magnetic-btn--primary:hover{background:var(--brand-soft);box-shadow:0 18px 44px -12px #7ea96a99}.magnetic-btn--ghost{border:1px solid var(--border2);color:var(--text);background:transparent}.magnetic-btn--ghost:hover{border-color:var(--brand);color:var(--brand);background:#7ea96a0f}.scroll-progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--brand) 0%,var(--sky) 100%);z-index:60;pointer-events:none;transform-origin:0 0;box-shadow:0 0 8px #7ea96a99}.cursor-glow{position:fixed;top:0;left:0;width:480px;height:480px;margin-left:-240px;margin-top:-240px;pointer-events:none;z-index:1;background:radial-gradient(circle at center,rgba(126,169,106,.1) 0%,rgba(126,169,106,.05) 30%,transparent 65%);mix-blend-mode:screen;opacity:0;transition:opacity .4s ease;will-change:transform}.cursor-glow[data-active=true]{opacity:1}@media(max-width:900px){.cursor-glow{display:none}}[data-reveal]{transition-duration:.65s}.section-divider{position:relative;height:32px;display:flex;align-items:center;justify-content:center;pointer-events:none}.section-divider:before,.section-divider:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--border2) 50%,transparent)}.section-divider span{padding:0 16px;font-family:var(--mono);font-size:.65rem;color:var(--text-dim);letter-spacing:.32em;text-transform:uppercase}.section-divider:before{background:linear-gradient(90deg,transparent,var(--border2) 100%)}.section-divider:after{background:linear-gradient(90deg,var(--border2) 0%,transparent)}.card-image{filter:saturate(.85) brightness(.92);transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .5s ease}[role=group]:hover .card-image,article:hover .card-image{transform:scale(1.04);filter:saturate(1.05) brightness(1.02)}::selection{background:var(--brand);color:var(--bg)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
