@charset "UTF-8";
:root {
  --ink:#102c22;
  --green:#15533c;
  --deep:#0b3025;
  --ivory:#f7f4ed;
  --amber:#bc863c;
  --muted:#6e756f;
  --line:#e1e1d9;
  --serif:"AppleMyungjo","Nanum Myeongjo","Noto Serif KR",Georgia,serif;
  --sans:"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif
}
* {
  box-sizing:border-box
}
[hidden] {
  display:none!important
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:94px
}
body {
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  word-break:keep-all;
  -webkit-font-smoothing:antialiased
}
button,a {
  -webkit-tap-highlight-color:transparent
}
button {
  font:inherit;
  color:inherit;
  cursor:pointer
}
a {
  color:inherit;
  text-decoration:none
}
button:focus-visible,a:focus-visible {
  outline:3px solid #c58b35;
  outline-offset:5px
}
button {
  border:0;
  background:none
}
img {
  display:block;
  max-width:100%;
  height:auto
}
svg {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:none
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  line-height:1.35
}
h1,h2 {
  letter-spacing:-.045em
}
button:disabled {
  cursor:default
}
.container {
  width:min(1240px,86%);
  margin-inline:auto
}
.wide {
  width:min(1340px,94%)
}
.svg-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}
.skip-link {
  position:fixed;
  top:8px;
  left:8px;
  background:white;
  padding:12px 22px;
  z-index:100;
  transform:translateY(-160%)
}
.skip-link:focus {
  transform:none
}
.site-header {
  background:rgba(248,245,237,.97);
  height:72px;
  position:relative;
  z-index:10;
  border-bottom:1px solid #e6e1d6
}
.nav-wrap {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:100%
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:750;
  font-size:24px;
  letter-spacing:-.045em
}
.brand>svg {
  width:43px;
  height:48px;
  stroke-width:2
}
.site-header nav {
  display:flex;
  gap:46px;
  font-size:14px;
  font-weight:600
}
.site-header nav a {
  padding-block:20px;
  position:relative
}
.site-header nav a:after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:1px;
  background:var(--green);
  bottom:14px;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s
}
.site-header nav a:hover:after {
  transform:scaleX(1)
}
.contact-link {
  border:1px solid var(--amber);
  border-radius:28px;
  padding:9px 31px;
  font-size:14px;
  background:#faf7ef
}
.contact-link:hover {
  background:#eee6d6
}
.hero {
  position:relative;
  padding-bottom:0
}
.hero-landscape {
  position:absolute;
  inset:0 0 95px;
  background:linear-gradient(90deg,rgba(1,24,17,.25),transparent 80%),url('/assets/forest-hero.png') center 40%/cover;
  clip-path:polygon(0 0,100% 0,100% 92%,86% 99%,18% 100%,0 93%);
  z-index:-1
}
.hero-copy {
  padding-top:62px;
  padding-bottom:40px;
  position:relative;
  color:white
}
.launch-badge {
  border:1px solid #f6f4e9;
  border-radius:24px;
  padding:5px 16px;
  font-size:14px;
  letter-spacing:.07em;
  background:#062e2899
}
.hero h1 {
  font-family:var(--serif);
  font-size:clamp(35px,4.12vw,61px);
  font-weight:700;
  line-height:1.38;
  margin:19px 0 17px;
  text-shadow:0 2px 12px #071d164a;
  max-width:1100px
}
.hero-copy>p:not(.forest-note) {
  font-size:24px;
  line-height:1.52;
  letter-spacing:-.02em;
  text-shadow:0 1px 6px #0006
}
.hero-actions {
  display:flex;
  gap:18px;
  margin-top:30px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:30px;
  min-height:54px;
  border-radius:10px;
  padding:14px 34px;
  font-size:17px;
  font-weight:650;
  line-height:1.4;
  transition:background .2s,box-shadow .2s,transform .2s
}
.button:hover {
  transform:translateY(-2px)
}
.button svg {
  width:22px
}
.button-green {
  background:#146441;
  color:#fff;
  box-shadow:0 5px 18px #05261826
}
.button-green:hover {
  background:#207952
}
.button-outline {
  color:white;
  border:1px solid #fff;
  background:#0c291e55
}
.button-outline:hover {
  background:#173d2fb3
}
.forest-note {
  position:absolute;
  right:2%;
  top:47%;
  font-family:var(--serif);
  font-size:20px;
  line-height:1.7;
  transform:rotate(-5deg);
  font-style:italic;
  color:#f5f4df;
  text-shadow:0 1px 4px #112e22
}
.hero-product {
  position:relative
}
.map-window {
  display:flex;
  background:#f8f7f2;
  border:7px solid #f5f3e5bf;
  box-shadow:0 24px 60px #21332230,0 0 0 1px #fff4;
  border-radius:18px;
  overflow:hidden;
  aspect-ratio:1.842;
  container-type:inline-size
}
.app-sidebar {
  width:12.4%;
  flex:none;
  background:linear-gradient(160deg,#12392b,#08271f);
  color:#f5f4e8;
  position:relative;
  padding:1.4% .7%;
  overflow:hidden
}
.app-logo {
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  margin-bottom:17%;
  gap:2px
}
.app-logo svg {
  width:3.1cqw;
  height:3.5cqw
}
.app-logo strong {
  font-size:1.25cqw;
  letter-spacing:-.04em
}
.app-sidebar>a {
  display:flex;
  align-items:center;
  gap:.7cqw;
  padding:1.05cqw .7cqw;
  margin:.5cqw 0;
  border-radius:5px;
  position:relative;
  z-index:1;
  white-space:nowrap;
  font-size:1.16cqw
}
.app-sidebar>a svg {
  width:1.5cqw;
  height:1.5cqw
}
.app-sidebar>a.active {
  background:#235b43;
  border-left:2px solid #4cb189
}
.app-sidebar>a:hover {
  background:#36604b
}
.sidebar-poem {
  position:absolute;
  bottom:4.5%;
  left:15%;
  font-size:1.2cqw;
  color:#b9ccab;
  z-index:1;
  line-height:1.6
}
.sidebar-tree {
  position:absolute;
  bottom:2%;
  width:20cqw;
  height:40cqw;
  left:-4cqw;
  opacity:.085;
  fill:#8dad87;
  stroke:#8dad87
}
.app-main {
  width:87.6%;
  min-width:0;
  display:flex;
  flex-direction:column
}
.app-toolbar {
  display:flex;
  align-items:center;
  gap:1.5cqw;
  height:4.2cqw;
  padding:.5cqw 1.2cqw;
  border-bottom:1px solid #dbded5;
  flex:none
}
.search-preview {
  display:flex;
  align-items:center;
  border:1px solid #e2e0d9;
  width:44%;
  border-radius:6px;
  padding:.35cqw .65cqw;
  gap:.55cqw;
  font-size:1.1cqw;
  color:#72766f;
  white-space:nowrap
}
.search-preview svg {
  width:1.1cqw;
  height:1.1cqw
}
.bell {
  margin-left:auto;
  width:1.5cqw;
  height:1.5cqw
}
.example-badge {
  color:#996326;
  background:#f8e6c9;
  padding:.27cqw .75cqw;
  font-weight:650;
  font-size:.91cqw;
  border-radius:6px;
  white-space:nowrap
}
.map-workspace {
  display:flex;
  flex:1;
  min-height:0
}
.map-canvas {
  position:relative;
  width:70%;
  overflow:hidden;
  background:#253d23
}
.aerial-image {
  width:100%;
  height:100%;
  object-fit:cover;
  position:absolute;
  inset:0
}
.map-canvas:after {
  content:"";
  position:absolute;
  inset:0;
  background:#1937191a;
  pointer-events:none
}
.parcel-map {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:1
}
.parcel {
  fill:#b1964052;
  stroke:#fff8;
  stroke-width:1.7
}
.p1,.p4 {
  fill:#93b1764a
}
.p2,.p6 {
  fill:#7baebf4a
}
.p3,.p7 {
  fill:#cdaa804f
}
.selected-fill {
  fill:#6c932965;
  stroke:#0f736f;
  stroke-width:7
}
.selected-boundary {
  fill:none;
  stroke:#d0fff3;
  stroke-width:3.5;
  filter:drop-shadow(0 0 3px #075e50)
}
.map-display-options {
  position:absolute;
  top:2.8%;
  right:2.4%;
  display:flex;
  gap:.8cqw;
  background:#fffc;
  padding:.55cqw .7cqw;
  border-radius:7px;
  box-shadow:0 2px 7px #0002;
  z-index:3;
  font-size:1cqw
}
.map-display-options span {
  display:flex;
  align-items:center;
  gap:.25cqw
}
.map-display-options i {
  width:1.7cqw;
  height:.9cqw;
  background:#205b40;
  border-radius:20px;
  display:block;
  position:relative
}
.map-display-options i:after {
  content:"";
  position:absolute;
  width:.7cqw;
  height:.7cqw;
  right:.1cqw;
  top:.1cqw;
  border-radius:50%;
  background:#fff
}
.parcel-pin {
  position:absolute;
  top:45%;
  left:48%;
  z-index:3;
  font-size:1.06cqw;
  font-weight:750;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.9cqw;
  filter:drop-shadow(0 2px 5px #0003)
}
.parcel-pin span {
  background:#fffff9;
  padding:.65cqw .85cqw;
  border-radius:7px;
  white-space:nowrap
}
.parcel-pin i {
  width:1.1cqw;
  height:1.1cqw;
  border:2px solid white;
  background:#3dac99;
  border-radius:50%;
  box-shadow:0 0 0 3px #9bd2bd88
}
.map-scale {
  position:absolute;
  bottom:11%;
  left:4%;
  width:30%;
  display:flex;
  justify-content:space-between;
  color:white;
  font-size:.9cqw;
  border-bottom:3px solid #fffa;
  z-index:3
}
.map-legend {
  position:absolute;
  left:3%;
  bottom:4%;
  display:flex;
  align-items:center;
  gap:1.0cqw;
  background:#fbfbf0f2;
  border-radius:5px;
  padding:.65cqw .8cqw;
  font-size:.91cqw;
  z-index:3
}
.map-legend b {
  border-right:1px solid #d4d4c7;
  padding-right:.7cqw
}
.map-legend span {
  display:flex;
  align-items:center;
  gap:.4cqw
}
.map-legend i,.species-list i {
  display:inline-block;
  width:.75cqw;
  height:.75cqw;
  border-radius:50%;
  flex:none
}
.pine {
  background:#32644e
}
.larch {
  background:#bb9747
}
.nutpine {
  background:#86a68d
}
.mixed {
  background:#557e9e
}
.map-caption {
  position:absolute;
  bottom:.6%;
  right:2%;
  color:#fff9;
  z-index:3;
  font-size:.65cqw;
  letter-spacing:.03em
}
.parcel-details {
  width:30%;
  padding:1.7cqw 1.5cqw;
  background:#f8f7f3;
  font-size:1.05cqw
}
.detail-top {
  display:flex;
  justify-content:space-between;
  font-size:1cqw
}
.detail-top>span {
  font-size:1.8cqw;
  line-height:.7;
  color:#67746b
}
.parcel-details h2 {
  font-family:var(--sans);
  font-size:1.75cqw;
  letter-spacing:-.045em;
  margin:1.4cqw 0 .9cqw
}
.detail-photo {
  width:100%;
  aspect-ratio:2.08;
  object-fit:cover;
  border-radius:7px
}
.parcel-metrics {
  margin:1.1cqw 0 1.3cqw;
  display:flex;
  border:1px solid #e0e0d7;
  border-radius:5px
}
.parcel-metrics>div {
  flex:1;
  min-width:0;
  padding:.7cqw .4cqw;
  border-right:1px solid #e0e0d7
}
.parcel-metrics>div:last-child {
  border:0
}
dt {
  color:#777f77;
  font-size:.9cqw
}
dd {
  margin:0
}
.parcel-metrics dd {
  margin-top:.3cqw;
  display:flex;
  align-items:center;
  gap:.3cqw;
  font-size:1.3cqw;
  font-weight:750;
  white-space:nowrap
}
.parcel-metrics svg {
  width:1cqw;
  height:1.5cqw;
  color:var(--green)
}
.parcel-metrics small {
  font-size:.9cqw
}
.parcel-details h3 {
  font-size:1cqw;
  letter-spacing:-.02em;
  margin-bottom:.6cqw
}
.parcel-details h3 span {
  font-size:.8cqw;
  font-weight:400
}
.species-bar {
  height:1.7cqw;
  display:flex;
  border-radius:4px;
  overflow:hidden;
  gap:1px
}
.species-bar i:nth-child(1) {
  background:#bd9845;
  width:68.1%
}
.species-bar i:nth-child(2) {
  background:#34644f;
  width:18.5%
}
.species-bar i:nth-child(3) {
  background:#87a894;
  width:9.7%
}
.species-bar i:nth-child(4) {
  background:#577e9a;
  width:3.7%
}
.species-list {
  list-style:none;
  margin:.55cqw 0 1cqw;
  padding:0;
  font-size:.83cqw
}
.species-list li {
  display:flex;
  align-items:center;
  padding:.24cqw 0;
  gap:.4cqw
}
.species-list li>span {
  display:flex;
  align-items:center;
  gap:.5cqw;
  width:48%
}
.species-list b {
  font-weight:500
}
.species-list small {
  margin-left:auto;
  color:#74786e;
  font-size:.72cqw
}
.location-info {
  border-top:1px solid #e2e3d9;
  padding-top:.7cqw
}
.location-info dl {
  margin:0
}
.location-info dl>div {
  display:flex;
  gap:.7cqw;
  font-size:.83cqw;
  color:#777c75;
  line-height:1.65
}
.location-info dt {
  width:27%;
  font-size:inherit;
  flex:none
}
.scene-caption {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 4px;
  font-size:12px;
  color:#797e72
}
.motion-tools {
  display:flex;
  align-items:center;
  gap:18px
}
.motion-tools button {
  display:flex;
  align-items:center;
  gap:6px;
  padding:5px 0;
  font-size:12px;
  color:#636c5e
}
.motion-tools button:hover {
  text-decoration:underline;
  text-underline-offset:3px
}
.motion-tools svg {
  width:14px;
  height:14px
}
.about {
  position:relative;
  text-align:center;
  overflow:hidden;
  padding:26px 0 62px
}
.eyebrow {
  font-size:14px;
  color:#7d805f;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  letter-spacing:-.025em
}
.eyebrow:before,.eyebrow:after {
  content:"";
  display:inline-block;
  width:15px;
  height:1px;
  background:#c1964d
}
.about h2,.section-heading h2 {
  font-family:var(--serif);
  font-size:clamp(26px,2.8vw,40px);
  font-weight:700;
  margin:15px 0 14px
}
.section-description {
  color:#626c60;
  font-size:17px;
  line-height:1.7;
  letter-spacing:-.03em
}
.process-flow {
  max-width:950px;
  margin:32px auto 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  text-align:left
}
.process-flow>div {
  display:flex;
  gap:18px;
  align-items:flex-start
}
.process-icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:54px;
  height:54px;
  background:#214d2c;
  color:white;
  border-radius:50%;
  box-shadow:inset 0 0 0 3px #ffffff18;
  border:1px solid #173b23;
  flex:none
}
.process-icon svg {
  width:30px;
  height:30px
}
.process-flow h3 {
  font-size:22px;
  font-family:var(--serif);
  margin-bottom:6px
}
.process-flow p {
  font-size:15px;
  line-height:1.65;
  color:#707369;
  white-space:nowrap
}
.process-arrow {
  color:#b9914c;
  width:26px
}
.mountain {
  position:absolute;
  width:320px;
  height:230px;
  bottom:0;
  background:#a9b4a326;
  z-index:-1;
  clip-path:polygon(0 100%,0 30%,14% 36%,36% 7%,45% 15%,52% 34%,61% 29%,70% 51%,77% 41%,100% 85%,100% 100%)
}
.mountain-left {
  left:-30px
}
.mountain-right {
  right:-30px;
  transform:scaleX(-1)
}
.about-tree {
  position:absolute;
  bottom:4px;
  width:160px;
  height:230px;
  color:#9cae952e;
  fill:#a8b79c26;
  z-index:-1;
  stroke-width:.4
}
.t1 {
  left:-22px;
  transform:rotate(-4deg)
}
.t2 {
  right:0
}
.t3 {
  right:95px;
  width:90px;
  height:150px;
  bottom:-5px
}
.features {
  padding:36px 0 24px;
  background:#fcfaf68c;
  border-top:1px solid #e4e3d959
}
.section-heading {
  text-align:center;
  margin-bottom:30px
}
.section-heading h2 {
  margin-top:13px;
  margin-bottom:10px
}
.feature-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px
}
.feature-card {
  background:#fff9;
  border:1px solid #e7e5de;
  border-radius:11px;
  padding:18px 16px 11px;
  scroll-margin-top:20px;
  overflow:hidden
}
.feature-heading {
  display:flex;
  gap:16px;
  margin-bottom:15px;
  padding-inline:3px
}
.feature-number {
  color:#ae7b2e;
  font-family:Georgia,serif;
  font-size:25px;
  line-height:1;
  background:#f3ecdc;
  border-radius:7px;
  padding:8px;
  align-self:flex-start
}
.feature-heading h3 {
  font-size:20px;
  letter-spacing:-.035em;
  font-weight:750;
  margin:1px 0 5px
}
.feature-heading p {
  font-size:15px;
  line-height:1.55;
  color:#757971;
  letter-spacing:-.025em
}
.concept-preview {
  display:block;
  padding:0;
  width:100%;
  position:relative;
  overflow:hidden;
  border-radius:7px;
  box-shadow:0 5px 13px #253a3010;
  text-align:left;
  line-height:0
}
.concept-preview>img {
  width:100%;
  aspect-ratio:1672/941;
  object-fit:contain
}
.preview-overlay {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  fill:none
}
.map-trace path {
  stroke:#adffed;
  stroke-width:5;
  filter:drop-shadow(0 0 7px #40ffcb)
}
.chart-trace path {
  stroke:#61ab89;
  stroke-width:5;
  filter:drop-shadow(0 0 4px #70f8bf)
}
.stat-trace path {
  stroke:#509477;
  stroke-width:26;
  stroke-linecap:butt;
  opacity:.7
}
.preview-open {
  position:absolute;
  bottom:12px;
  right:12px;
  color:var(--green);
  font-size:12px;
  line-height:1.4;
  padding:7px 11px;
  background:#fffef7ed;
  border:1px solid #dfdfcf;
  border-radius:6px;
  box-shadow:0 3px 10px #122a2920;
  opacity:0;
  transform:translateY(4px);
  transition:opacity .2s,transform .2s
}
.preview-open>span {
  margin-left:9px
}
.concept-preview:hover .preview-open,.concept-preview:focus-visible .preview-open {
  opacity:1;
  transform:none
}
.feature-caption {
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:11px;
  color:#626c60;
  margin-top:9px
}
.feature-caption>span:first-child {
  color:#626c60
}
.stage-highlight {
  position:absolute;
  top:21%;
  left:12.1%;
  width:21.3%;
  height:42%;
  border:2px solid #387b55;
  border-radius:6px;
  box-shadow:0 0 12px #397d5130;
  pointer-events:none
}
.concept-notice {
  text-align:center;
  font-size:12px;
  line-height:1.7;
  color:#626c60;
  margin:23px auto 0;
  max-width:1050px
}
.development {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:#f4f4e9;
  background:#0d3027;
  padding:48px 0
}
.development-forest {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#082b25dd,#062c26ba),url('/assets/forest-hero.png') center 72%/cover;
  z-index:-2
}
.development-forest:after {
  content:"";
  position:absolute;
  inset:0;
  background:url('/assets/forest-aerial.png') center/cover;
  mix-blend-mode:multiply;
  opacity:.32
}
.development-content {
  display:grid;
  grid-template-columns:.95fr 1.35fr;
  gap:50px;
  align-items:center
}
.development .eyebrow {
  color:#d1d7c3;
  justify-content:flex-start
}
.development .eyebrow:after {
  display:none
}
.development h2 {
  font-family:var(--serif);
  font-size:37px;
  line-height:1.4;
  font-weight:700;
  margin:12px 0 12px
}
.development-intro>p:last-child {
  font-size:15px;
  line-height:1.7;
  color:#d1d9ce
}
.roadmap {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
  list-style:none;
  padding:0;
  margin:0 0 24px;
  position:relative
}
.roadmap:before {
  content:"";
  position:absolute;
  top:20px;
  left:12%;
  right:12%;
  height:1px;
  background:#aecab996
}
.roadmap>li {
  position:relative;
  text-align:center
}
.milestone {
  display:flex;
  justify-content:center;
  align-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid #e8efde;
  box-shadow:0 0 0 3px #082e29;
  margin:0 auto 20px;
  font-family:Georgia,serif;
  font-size:22px;
  background:#33554b
}
.milestone.reviewed {
  background:#4a8e7b;
  color:#f3f6ee
}
.current .milestone {
  background:#eac080;
  color:#243b2a
}
.roadmap h3 {
  font-size:16px;
  margin:0 0 10px
}
.roadmap p {
  font-size:13px;
  color:#c0cec0;
  line-height:1.7;
  letter-spacing:-.03em
}
.current h3 {
  color:#f0cf97
}
.roadmap-note {
  border:1px solid #6b8a7759;
  border-radius:7px;
  background:#f5ffe009;
  font-size:12px;
  color:#c7d2c5;
  padding:10px 13px;
  display:flex;
  gap:7px;
  align-items:center
}
.site-footer {
  background:#f8f6f0
}
.footer-main {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:34px 0
}
.footer-brand>svg {
  width:62px;
  height:67px
}
.footer-brand {
  font-size:26px;
  gap:13px;
  white-space:nowrap
}
.footer-brand small {
  display:block;
  font-size:13px;
  font-weight:400;
  letter-spacing:-.02em;
  color:#626c60;
  margin-top:4px
}
.footer-message h2 {
  font-family:var(--serif);
  font-size:20px;
  letter-spacing:-.025em;
  margin:0 0 10px
}
.footer-message p {
  font-size:13px;
  line-height:1.65;
  color:#626c60;
  letter-spacing:-.02em
}
.footer-contact {
  border:1px solid #123b2e;
  border-radius:8px;
  font-size:15px;
  min-height:57px;
  white-space:nowrap;
  padding:13px 28px
}
.footer-contact:hover {
  background:#eef0e5
}
.footer-bottom {
  border-top:1px solid #e1e1d5;
  color:#626c60;
  font-size:12px;
  padding:17px 0
}
.footer-bottom>.container {
  display:flex;
  justify-content:space-between
}
.footer-bottom i {
  font-style:normal;
  margin:0 13px;
  color:#bdc0b5
}
dialog {
  color:var(--ink);
  border:1px solid #dce0d2;
  border-radius:16px;
  background:#faf8f1;
  max-width:min(560px,calc(100% - 32px));
  padding:42px;
  text-align:center;
  box-shadow:0 25px 120px #05291e4d
}
dialog::backdrop {
  background:#051d16b3;
  backdrop-filter:blur(5px)
}
dialog .dialog-close {
  position:absolute;
  top:13px;
  right:16px;
  font-size:32px;
  line-height:1;
  width:40px;
  height:40px;
  color:#617163
}
dialog h2 {
  font-family:var(--serif);
  font-size:29px;
  line-height:1.4;
  margin:14px 0 18px
}
dialog p:not(.eyebrow) {
  font-size:15px;
  color:#727d70;
  line-height:1.8
}
dialog .button {
  margin-top:25px;
  min-width:130px
}
.contact-tree {
  width:55px;
  height:65px;
  margin:0 auto 10px;
  color:#286044
}
#preview-dialog {
  width:min(1500px,calc(100% - 40px));
  max-width:none;
  padding:20px;
  text-align:left;
  max-height:calc(100dvh - 40px);
  overflow:auto
}
.preview-dialog-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:3px 4px 16px;
  position:relative
}
.preview-dialog-header .eyebrow {
  justify-content:flex-start;
  font-size:12px
}
.preview-dialog-header .eyebrow:before,.preview-dialog-header .eyebrow:after {
  display:none
}
.preview-dialog-header h2 {
  font-family:var(--sans);
  font-size:24px;
  margin:3px 0 0
}
.preview-dialog-header .dialog-close {
  top:4px;
  right:2px
}
#preview-image {
  width:100%;
  height:auto;
  border-radius:7px
}
.preview-disclaimer {
  font-size:12px!important;
  padding-top:12px;
  text-align:center
}
.noscript-note {
  padding:16px;
  text-align:center;
  background:#fff2cf;
  font-size:14px
}
/* A finite introduction: reveal once on entry; replay only on request. */ html.motion-ready .scene:not(.is-visible) .selected-boundary {
  stroke-dasharray:1;
  stroke-dashoffset:1
}
html.motion-ready .scene:not(.is-visible) .selected-fill {
  opacity:0
}
html.motion-ready .scene:not(.is-visible) .parcel-pin {
  opacity:0
}
html.motion-ready .scene:not(.is-visible) .parcel-details {
  opacity:0
}
html.motion-ready .scene.is-visible .selected-boundary {
  stroke-dasharray:1;
  animation:trace 2.3s .15s both ease-in-out
}
html.motion-ready .scene.is-visible .selected-fill {
  animation:fade-in 1.2s .5s both
}
html.motion-ready .scene.is-visible .parcels-secondary {
  animation:fade-in 1.5s both
}
html.motion-ready .scene.is-visible .parcel-pin {
  animation:pin-in .8s 1.55s both cubic-bezier(.2,.65,.3,1)
}
html.motion-ready .scene.is-visible .parcel-details {
  animation:panel-in .9s 1s both cubic-bezier(.2,.65,.3,1)
}
html.motion-ready .scene.is-visible .species-bar {
  animation:bar-in .9s 1.7s both;
  transform-origin:left
}
html.motion-ready .scene.is-visible .map-trace path,html.motion-ready .scene.is-visible .chart-trace path {
  stroke-dasharray:1;
  animation:trace 2.8s .3s both ease-in-out
}
html.motion-ready .scene.is-visible .stage-highlight {
  animation:stage-travel 4.5s .2s both ease-in-out
}
html.motion-ready .scene.is-visible .stat-trace {
  animation:bar-in 1.8s .2s both cubic-bezier(.2,.65,.3,1);
  transform-origin:50% 70%
}
.feature-card .preview-overlay {
  opacity:.8
}
.feature-card .stage-highlight {
  opacity:0
}
@keyframes trace {
  from {
    stroke-dashoffset:1
  }
  to {
    stroke-dashoffset:0
  }
}
@keyframes fade-in {
  from {
    opacity:0
  }
  to {
    opacity:1
  }
}
@keyframes pin-in {
  from {
    opacity:0;
    transform:translateY(12px)
  }
  to {
    opacity:1;
    transform:none
  }
}
@keyframes panel-in {
  from {
    opacity:0;
    transform:translateX(16px)
  }
  to {
    opacity:1;
    transform:none
  }
}
@keyframes bar-in {
  from {
    transform:scaleY(.02);
    opacity:.3
  }
  to {
    transform:scaleY(1);
    opacity:1
  }
}
@keyframes stage-travel {
  0% {
    opacity:0;
    transform:translateX(0)
  }
  10%,23% {
    opacity:1;
    transform:translateX(0)
  }
  40%,51% {
    opacity:1;
    transform:translateX(103%)
  }
  66%,77% {
    opacity:1;
    transform:translateX(207%)
  }
  91% {
    opacity:1;
    transform:translateX(310%)
  }
  100% {
    opacity:0;
    transform:translateX(310%)
  }
}
html.motion-off {
  scroll-behavior:auto
}
html.motion-off *,html.motion-off *:before,html.motion-off *:after {
  animation:none!important;
  transition:none!important
}
.motion-off .selected-boundary {
  stroke-dashoffset:0!important
}
.motion-off .selected-fill,.motion-off .parcel-pin,.motion-off .parcel-details {
  opacity:1!important;
  transform:none!important
}
.motion-off .stage-highlight {
  display:none
}
.motion-off .preview-overlay {
  opacity:0
}
.motion-off [data-replay] {
  opacity:.5
}
@media(min-width:1600px) {
  .hero-copy {
    padding-top:70px;
    padding-bottom:50px
  }
  .hero-landscape {
    background-position:center 47%
  }
  .hero h1 {
    font-size:61px
  }
}
@media(max-width:1150px) {
  .site-header nav {
    gap:25px
  }
  .forest-note {
    display:none
  }
  .hero-copy {
    padding-top:48px
  }
  .hero-copy>p:not(.forest-note) {
    font-size:21px
  }
  .hero h1 {
    font-size:4.3vw
  }
  .hero-actions .button {
    font-size:15px;
    min-height:50px;
    padding:12px 28px
  }
  .about {
    padding-bottom:46px
  }
  .about h2,.section-heading h2 {
    font-size:30px
  }
  .process-flow {
    gap:18px;
    max-width:850px
  }
  .process-flow>div {
    gap:12px
  }
  .process-icon {
    width:48px;
    height:48px
  }
  .process-flow h3 {
    font-size:21px
  }
  .process-flow p {
    font-size:14px
  }
  .section-description {
    font-size:15px
  }
  .feature-heading h3 {
    font-size:18px
  }
  .feature-heading p {
    font-size:13px
  }
  .feature-caption>span:first-child {
    display:none
  }
  .feature-caption {
    justify-content:flex-end
  }
  .development-content {
    gap:30px;
    grid-template-columns:1fr 1.3fr
  }
  .development h2 {
    font-size:30px
  }
  .development-intro>p:last-child {
    font-size:13px
  }
  .roadmap {
    gap:16px
  }
  .roadmap h3 {
    font-size:14px
  }
  .roadmap p {
    font-size:12px
  }
  .footer-brand {
    font-size:22px
  }
  .footer-brand>svg {
    width:45px;
    height:58px
  }
  .footer-message h2 {
    font-size:16px
  }
  .footer-message p {
    font-size:12px
  }
  .footer-contact {
    padding:12px 18px;
    font-size:13px;
    gap:16px
  }
}
@media(max-width:760px) {
  html {
    scroll-padding-top:24px
  }
  .container,.wide {
    width:calc(100% - 40px)
  }
  .site-header {
    height:66px
  }
  .brand {
    font-size:20px;
    gap:7px
  }
  .brand>svg {
    width:34px;
    height:42px
  }
  .site-header nav {
    display:none
  }
  .contact-link {
    font-size:12px;
    padding:8px 18px
  }
  .hero-copy {
    padding-top:35px;
    padding-bottom:32px
  }
  .launch-badge {
    font-size:11px;
    padding:5px 13px
  }
  .hero h1 {
    font-size:clamp(29px,5.1vw,40px);
    line-height:1.5;
    margin:18px 0 16px;
    max-width:590px;
    letter-spacing:-.05em
  }
  .hero-copy>p:not(.forest-note) {
    font-size:17px;
    line-height:1.65
  }
  .hero-actions {
    gap:10px;
    margin-top:25px
  }
  .hero-actions .button {
    padding:12px 18px;
    min-height:47px;
    font-size:13px;
    gap:15px;
    border-radius:8px
  }
  .hero-actions .button svg {
    width:17px
  }
  .hero-landscape {
    bottom:210px;
    background-position:52% 20%;
    clip-path:polygon(0 0,100% 0,100% 95%,50% 100%,0 96%)
  }
  .hero-product {
    width:calc(100% - 32px)
  }
  .map-window {
    border:5px solid #f3f2e5ba;
    border-radius:13px;
    aspect-ratio:auto;
    box-shadow:0 16px 40px #1c372331;
    container-type:normal
  }
  .app-sidebar {
    display:none
  }
  .app-main {
    width:100%
  }
  .app-toolbar {
    height:38px;
    padding:5px 9px;
    gap:6px
  }
  .search-preview {
    font-size:10px;
    gap:5px;
    border-radius:4px;
    padding:4px 5px;
    width:auto;
    flex:1;
    max-width:240px
  }
  .search-preview svg {
    width:11px;
    height:11px
  }
  .bell {
    display:none
  }
  .example-badge {
    font-size:8px;
    padding:4px 6px;
    border-radius:4px
  }
  .map-workspace {
    display:block
  }
  .map-canvas {
    width:100%;
    height:330px
  }
  .map-display-options {
    font-size:9px;
    gap:9px;
    top:12px;
    right:12px;
    padding:6px 7px;
    border-radius:5px
  }
  .map-display-options i {
    width:17px;
    height:10px
  }
  .map-display-options i:after {
    width:8px;
    height:8px;
    top:1px;
    right:1px
  }
  .map-display-options span {
    gap:4px
  }
  .parcel-pin {
    font-size:10px;
    top:46%;
    left:46%;
    gap:10px
  }
  .parcel-pin span {
    padding:7px 8px;
    border-radius:5px
  }
  .parcel-pin i {
    width:10px;
    height:10px;
    border-width:1px
  }
  .map-legend {
    left:10px;
    bottom:15px;
    font-size:8px;
    padding:6px 7px;
    gap:9px;
    border-radius:4px
  }
  .map-legend b {
    padding-right:6px
  }
  .map-legend span {
    gap:4px
  }
  .map-legend i,.species-list i {
    width:7px;
    height:7px
  }
  .map-scale {
    font-size:8px;
    bottom:57px;
    left:12px;
    border-bottom-width:2px;
    width:115px
  }
  .map-caption {
    font-size:6px;
    bottom:2px;
    right:5px
  }
  .parcel-details {
    width:100%;
    padding:17px 15px 14px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 14px;
    position:relative;
    align-items:start
  }
  .detail-top {
    font-size:10px;
    grid-column:1;
    align-self:start
  }
  .detail-top>span {
    display:none
  }
  .parcel-details h2 {
    font-size:16px;
    margin:4px 0 0;
    grid-column:1
  }
  .detail-photo {
    grid-column:2;
    grid-row:1 / 4;
    height:78px;
    aspect-ratio:auto;
    border-radius:5px
  }
  .parcel-metrics {
    grid-column:1 / -1;
    margin:13px 0 13px
  }
  .parcel-metrics>div {
    padding:8px 10px
  }
  dt {
    font-size:10px
  }
  .parcel-metrics dd {
    margin-top:3px;
    gap:5px;
    font-size:15px
  }
  .parcel-metrics small {
    font-size:10px
  }
  .parcel-metrics svg {
    width:11px;
    height:17px
  }
  .parcel-details h3 {
    font-size:10px;
    grid-column:1 / -1;
    margin-bottom:6px
  }
  .parcel-details h3 span {
    font-size:9px
  }
  .species-bar {
    grid-column:1 / -1;
    height:9px;
    border-radius:3px
  }
  .species-list {
    grid-column:1 / -1;
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    font-size:8px;
    margin:8px 0 0
  }
  .species-list li {
    padding:0;
    gap:4px;
    white-space:nowrap
  }
  .species-list li>span {
    width:auto;
    gap:3px
  }
  .species-list small {
    display:none
  }
  .location-info {
    display:none
  }
  .scene-caption {
    padding:10px 3px;
    font-size:9px;
    align-items:flex-start;
    gap:12px
  }
  .motion-tools {
    gap:12px;
    white-space:nowrap
  }
  .motion-tools button {
    font-size:10px;
    padding:0
  }
  .motion-tools svg {
    width:11px;
    height:11px
  }
  .about {
    padding:29px 0 43px
  }
  .eyebrow {
    font-size:11px;
    gap:7px
  }
  .eyebrow:before,.eyebrow:after {
    width:11px
  }
  .about h2,.section-heading h2 {
    font-size:27px;
    line-height:1.55;
    letter-spacing:-.05em;
    margin:12px auto;
    max-width:480px
  }
  .section-description {
    font-size:13px;
    line-height:1.8
  }
  .desktop-br {
    display:none
  }
  .process-flow {
    gap:10px;
    margin-top:26px;
    flex-direction:column;
    align-items:flex-start;
    width:258px
  }
  .process-flow>div {
    gap:18px;
    align-items:center;
    min-height:72px
  }
  .process-icon {
    width:49px;
    height:49px
  }
  .process-icon svg {
    width:27px;
    height:27px
  }
  .process-flow h3 {
    font-size:21px;
    margin-bottom:3px
  }
  .process-flow p {
    font-size:12px
  }
  .process-arrow {
    width:17px;
    height:17px;
    transform:rotate(90deg);
    margin-left:16px
  }
  .mountain {
    width:210px;
    height:260px;
    opacity:.8
  }
  .about-tree {
    width:115px;
    height:190px;
    opacity:.75
  }
  .t3 {
    right:70px;
    width:75px;
    height:120px
  }
  .features {
    padding:28px 0 27px
  }
  .section-heading {
    margin-bottom:22px
  }
  .section-heading .section-description {
    max-width:310px;
    margin:auto
  }
  .feature-grid {
    grid-template-columns:1fr;
    gap:17px
  }
  .feature-card {
    padding:15px 12px 10px;
    border-radius:9px
  }
  .feature-heading {
    gap:11px;
    padding:0;
    margin-bottom:13px
  }
  .feature-number {
    font-size:21px;
    padding:6px;
    border-radius:5px
  }
  .feature-heading h3 {
    font-size:17px;
    margin:0 0 4px
  }
  .feature-heading p {
    font-size:12px;
    line-height:1.6
  }
  .feature-caption {
    font-size:9px;
    margin-top:8px
  }
  .concept-preview {
    border-radius:5px
  }
  .preview-open {
    opacity:1;
    transform:none;
    font-size:9px;
    padding:4px 7px;
    bottom:7px;
    right:7px;
    border-radius:4px
  }
  .concept-notice {
    font-size:10px;
    line-height:1.85;
    margin-top:17px;
    text-align:left;
    padding-inline:3px
  }
  .development {
    padding:36px 0 32px
  }
  .development-content {
    display:block
  }
  .development h2 {
    font-size:30px;
    line-height:1.5;
    margin:12px 0
  }
  .development-intro>p:last-child {
    font-size:13px;
    line-height:1.9;
    max-width:420px
  }
  .development-roadmap {
    margin-top:30px
  }
  .roadmap {
    gap:10px;
    margin-bottom:20px
  }
  .roadmap:before {
    top:17px;
    left:15%;
    right:15%
  }
  .milestone {
    width:36px;
    height:36px;
    font-size:20px;
    margin-bottom:15px
  }
  .roadmap h3 {
    font-size:12px;
    line-height:1.6;
    min-height:39px;
    max-width:90px;
    margin:0 auto 8px
  }
  .roadmap p {
    font-size:10px;
    letter-spacing:-.06em;
    line-height:1.8
  }
  .roadmap-note {
    font-size:10px;
    padding:10px;
    align-items:flex-start;
    gap:6px
  }
  .footer-main {
    flex-wrap:wrap;
    gap:22px;
    padding:29px 0
  }
  .footer-brand {
    font-size:23px
  }
  .footer-brand>svg {
    width:49px;
    height:57px
  }
  .footer-brand small {
    font-size:11px;
    margin-top:2px
  }
  .footer-message {
    order:2;
    flex-basis:100%
  }
  .footer-message h2 {
    font-size:18px;
    line-height:1.6;
    margin-bottom:8px
  }
  .footer-message p {
    font-size:11px;
    line-height:1.9
  }
  .footer-contact {
    margin-left:auto;
    font-size:11px;
    padding:10px 12px;
    min-height:43px;
    gap:8px;
    border-radius:6px
  }
  .footer-contact svg {
    width:15px
  }
  .footer-bottom {
    font-size:9px;
    padding:13px 0
  }
  .footer-bottom>.container {
    gap:14px
  }
  .footer-bottom i {
    margin:0 4px
  }
  dialog {
    padding:30px 20px
  }
  dialog h2 {
    font-size:25px
  }
  dialog p:not(.eyebrow) {
    font-size:12px
  }
  #preview-dialog {
    width:calc(100% - 20px);
    padding:12px;
    max-height:calc(100dvh - 28px);
    border-radius:10px
  }
  .preview-dialog-header {
    padding:5px 35px 12px 2px
  }
  .preview-dialog-header h2 {
    font-size:20px
  }
  .preview-dialog-header .eyebrow {
    font-size:10px
  }
  .preview-disclaimer {
    font-size:10px!important;
    text-align:left;
    line-height:1.7!important
  }
  .preview-dialog-header .dialog-close {
    right:-4px;
    top:0
  }
}
@media(max-width:370px) {
  .container,.wide {
    width:calc(100% - 30px)
  }
  .hero h1 {
    font-size:28px
  }
  .hero-actions .button {
    font-size:12px;
    padding:12px 14px
  }
  .map-canvas {
    height:305px
  }
  .species-list {
    gap:8px
  }
  .scene-caption>span {
    font-size:8px
  }
  .motion-tools {
    gap:9px
  }
  .about h2,.section-heading h2 {
    font-size:25px
  }
  .footer-contact {
    padding:9px
  }
  .footer-brand {
    font-size:20px
  }
  .footer-brand>svg {
    width:40px
  }
  .footer-bottom>.container {
    flex-direction:column;
    gap:3px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto!important
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
  .selected-boundary {
    stroke-dashoffset:0!important
  }
  .selected-fill,.parcel-pin,.parcel-details {
    opacity:1!important;
    transform:none!important
  }
  .preview-overlay,.stage-highlight {
    display:none!important
  }
  .button:hover {
    transform:none
  }
}
.preview-controls {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  font-size:12px;
  color:#626c60;
  margin:0 4px 12px
}
.preview-controls button {
  border:1px solid #c7cec0;
  border-radius:6px;
  padding:7px 12px;
  background:#f1f2e8;
  font-weight:600;
  white-space:nowrap
}
.preview-controls button span {
  margin-left:8px
}
.preview-viewport {
  overflow:auto;
  max-height:68dvh;
  border-radius:7px;
  overscroll-behavior:contain
}
.preview-viewport.is-zoomed #preview-image {
  width:1672px;
  max-width:none
}
.preview-controls button:hover {
  background:#e1e8d7
}
.motion-tools button:disabled {
  cursor:default
}
.job-flight {
  display:flex;
  position:absolute;
  left:12.7%;
  top:26%;
  width:20.6%;
  height:16.5%;
  border:1px solid #b6d2b3;
  border-radius:5px;
  background:#fffef8;
  box-shadow:0 8px 24px #102f3433;
  padding:1.2%;
  gap:7%;
  opacity:0;
  pointer-events:none;
  line-height:1.5;
  align-items:center;
  container-type:inline-size
}
.job-flight-photo {
  width:27%;
  height:100%;
  background:url('/assets/forest-hero.png') center/cover;
  border-radius:4px
}
.job-flight>span:last-child {
  flex:1
}
.job-flight b {
  display:block;
  font-size:9cqw;
  color:#163e2b
}
.job-flight small {
  display:block;
  font-size:7cqw;
  color:#697763;
  margin:6% 0
}
.job-flight i {
  display:block;
  font-size:7cqw;
  background:#d9efdd;
  color:#25583b;
  font-style:normal;
  padding:3%
}
.motion-ready .scene.is-visible .job-flight {
  animation:job-travel 4.5s .2s both cubic-bezier(.4,0,.2,1)
}
@keyframes job-travel {
  0% {
    opacity:0;
    transform:translateX(0) translateY(8%)
  }
  12%,23% {
    opacity:1;
    transform:translateX(0) translateY(0)
  }
  42%,52% {
    opacity:1;
    transform:translateX(107%) translateY(-4%)
  }
  73%,84% {
    opacity:1;
    transform:translateX(214%) translateY(0)
  }
  100% {
    opacity:0;
    transform:translateX(214%) translateY(0)
  }
}
@media(max-width:760px) {
  .preview-controls {
    font-size:10px;
    align-items:flex-start
  }
  .preview-controls>span {
    max-width:145px;
    line-height:1.6
  }
  .preview-controls button {
    padding:8px
  }
  .preview-viewport {
    max-height:62dvh
  }
  .preview-viewport.is-zoomed #preview-image {
    width:1300px
  }
}
@media(prefers-reduced-motion:reduce) {
  .job-flight {
    display:none!important
  }
}
.about {
  isolation:isolate
}
.about:before,.about:after {
  content:"";
  position:absolute;
  bottom:0;
  width:370px;
  height:295px;
  background:url('/assets/forest-illustration.svg') bottom left/contain no-repeat;
  z-index:-1
}
.about:before {
  left:-30px
}
.about:after {
  right:-30px;
  transform:scaleX(-1)
}
.mountain,.about-tree,.sidebar-tree {
  display:none
}
.app-sidebar:after {
  content:"";
  position:absolute;
  inset:35% -130% 0 -10%;
  background:url('/assets/forest-illustration.svg') bottom left/contain no-repeat;
  opacity:.52;
  pointer-events:none
}
.motion-off .job-flight {
  display:none
}
@media(max-width:760px) {
  .about:before,.about:after {
    width:215px;
    height:320px;
    opacity:.8
  }
  .about:before {
    left:-67px
  }
  .about:after {
    right:-65px
  }
}

.hero-last { white-space: nowrap; }
.footer-message .footer-email {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin-top: 8px;
  font-size: 14px;
}
.footer-email > span {
  font-size: 12px;
}
.footer-email a {
  color: var(--green);
  font-weight: 650;
  letter-spacing: 0;
  text-decoration: underline;
  text-decoration-color: #a6baa2;
  text-underline-offset: 4px;
  overflow-wrap: anywhere;
  user-select: text;
}
.footer-email a:hover {
  text-decoration-color: currentColor;
}
