:root {
  --paper: #f3f1ea;
  --paper-deep: #e9e6dc;
  --ink: #18201f;
  --muted: #68706d;
  --line: rgba(24, 32, 31, 0.16);
  --line-strong: rgba(24, 32, 31, 0.32);
  --accent: #2aa897;
  --accent-dark: #16776c;
  --white: #faf9f5;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --sans: Inter, "Helvetica Neue", Arial, sans-serif;
  --pad: clamp(22px, 4vw, 72px);
  --header-h: 82px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
}
button, input, select { font: inherit; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button { color: inherit; }

.grain {
  position: fixed;
  z-index: 999;
  inset: 0;
  pointer-events: none;
  opacity: .08;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
}

.cursor-glow {
  position: fixed;
  z-index: -1;
  width: 42vw;
  aspect-ratio: 1;
  left: var(--mouse-x, 70vw);
  top: var(--mouse-y, 20vh);
  transform: translate(-50%, -50%);
  pointer-events: none;
  background: radial-gradient(circle, rgba(42,168,151,.09), transparent 64%);
  filter: blur(26px);
}

.site-header {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--header-h);
  padding: 0 var(--pad);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 36px;
  border-bottom: 1px solid transparent;
  transition: background .4s ease, border-color .4s ease, height .4s ease;
}
.site-header.is-scrolled {
  height: 68px;
  background: rgba(243,241,234,.88);
  border-color: var(--line);
  backdrop-filter: blur(18px);
}
.brand {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 11px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .15em;
}
.brand-mark { position: relative; width: 26px; height: 26px; display: inline-block; }
.brand-mark i { position: absolute; left: 12px; bottom: 3px; width: 2px; height: 20px; background: var(--ink); transform-origin: bottom; }
.brand-mark i:nth-child(2) { height: 15px; transform: rotate(48deg); }
.brand-mark i:nth-child(3) { height: 14px; transform: rotate(-52deg); }
.desktop-nav { display: flex; align-items: center; gap: clamp(24px, 3vw, 52px); }
.desktop-nav a { position: relative; font-size: 12px; letter-spacing: .06em; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background:var(--accent); transition:right .3s ease; }
.desktop-nav a:hover::after { right:0; }
.header-cta { justify-self: end; display: inline-flex; align-items: center; gap: 18px; font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.header-cta b { display:grid; place-items:center; width:36px; height:36px; border:1px solid var(--line-strong); border-radius:50%; font-weight:400; transition:.3s ease; }
.header-cta:hover b { background:var(--ink); color:var(--paper); transform:rotate(45deg); }
.menu-button { display:none; border:0; background:transparent; padding:10px; }
.menu-button span { display:block; width:26px; height:1px; background:var(--ink); margin:6px 0; transition:.3s ease; }
.mobile-menu { display:none; }

.hero {
  position: relative;
  min-height: 100svh;
  padding: calc(var(--header-h) + 42px) var(--pad) 36px;
  display: grid;
  grid-template-columns: 1fr 1.35fr;
  grid-template-rows: auto 1fr auto;
  column-gap: 32px;
  overflow: hidden;
}
.hero::before {
  content:"";
  position:absolute;
  inset: 0;
  pointer-events:none;
  background:
    linear-gradient(90deg, transparent calc(50% - 1px), rgba(24,32,31,.045) 50%, transparent calc(50% + 1px)),
    linear-gradient(rgba(24,32,31,.035) 1px, transparent 1px);
  background-size:100% 100%, 100% 96px;
}
.hero-kicker { grid-column:1; align-self:start; display:flex; align-items:center; gap:10px; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.16em; }
.pulse-dot { width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 7px rgba(42,168,151,.1); animation:pulse 2.8s infinite; }
@keyframes pulse { 50% { box-shadow:0 0 0 13px rgba(42,168,151,0); } }
.hero-title-wrap { grid-column:1; grid-row:2; position:relative; z-index:3; align-self:center; max-width:770px; padding:80px 0 72px; }
.hero-title { margin:0; font-size:clamp(68px, 8.4vw, 150px); line-height:.79; letter-spacing:-.075em; font-weight:500; }
.title-line { display:block; white-space:nowrap; opacity:0; transform:translateY(50px); animation:titleIn 1s cubic-bezier(.22,.8,.2,1) forwards; }
.title-line-2 { animation-delay:.12s; margin-left:clamp(20px, 4vw, 70px); }
.hero-title em { color:var(--accent-dark); font-family:var(--serif); font-weight:400; }
@keyframes titleIn { to { opacity:1; transform:none; } }
.hero-intro { max-width:440px; margin:40px 0 0 clamp(22px, 6vw, 110px); font-size:clamp(15px,1.2vw,18px); line-height:1.6; color:var(--muted); }

.hero-tree-wrap { position:absolute; z-index:2; right:0; top:7vh; width:min(65vw, 900px); height:min(86vh, 860px); pointer-events:none; }
.hero-tree { width:100%; height:100%; overflow:visible; }
.tree-ghost { stroke:rgba(24,32,31,.09); stroke-width:9; }
.root-path, .trunk-path, .branch-path { stroke:url(#trunkTone); }
.root-path { stroke-width:5; }
.trunk-path { stroke-width:10; }
.branch-path { stroke-width:6; }
.twig-lines path { stroke:#52605d; stroke-width:3.2; }
.root-hair { stroke:rgba(24,32,31,.32); stroke-width:1.4; }
.draw-path { transition:stroke-dashoffset 1.1s cubic-bezier(.2,.75,.2,1); }
.root-root { opacity:.34; transition:opacity .45s ease, filter .45s ease; }
.root-root.is-active { opacity:1; filter:url(#softGlow); }
.root-root.is-active .root-path { stroke:var(--accent); }
.leaf-nodes circle { fill:var(--paper); stroke:var(--accent-dark); stroke-width:2; opacity:0; transform-box:fill-box; transform-origin:center; transition:opacity .5s ease, transform .5s ease; transform:scale(.2); }
.tree-ready .leaf-nodes circle { opacity:.85; transform:scale(1); }
.leaf-nodes circle:nth-child(2n) { transition-delay:.2s; }
.energy-dot { fill:var(--accent); filter:url(#softGlow); opacity:0; }
.tree-ready .energy-dot { opacity:1; }
.canopy-label { position:absolute; padding:8px 12px; border:1px solid var(--line); border-radius:999px; background:rgba(243,241,234,.72); backdrop-filter:blur(8px); color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.12em; opacity:0; animation:labelIn .8s 1.45s forwards; }
@keyframes labelIn { to { opacity:1; } }
.canopy-label-a { left:47%; top:2%; }
.canopy-label-b { right:5%; top:29%; }
.canopy-label-c { left:7%; top:35%; }

.hero-root-strip { grid-column:1 / -1; grid-row:3; z-index:4; display:grid; grid-template-columns:repeat(5, 1fr); border-top:1px solid var(--line); }
.root-chip { border:0; border-right:1px solid var(--line); background:transparent; min-height:74px; padding:16px 20px; display:flex; align-items:center; gap:12px; text-align:left; cursor:pointer; font-size:12px; letter-spacing:.02em; transition:.35s ease; }
.root-chip:first-child { border-left:1px solid var(--line); }
.root-chip span { color:var(--accent-dark); font-size:9px; }
.root-chip:hover, .root-chip.is-active { background:var(--ink); color:var(--paper); }
.root-chip.is-active span { color:#78d3c7; }
.scroll-cue { position:absolute; left:var(--pad); bottom:126px; z-index:5; display:flex; align-items:center; gap:16px; font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); }
.scroll-cue i { display:grid; place-items:center; width:35px; height:35px; border:1px solid var(--line); border-radius:50%; font-style:normal; animation:down 1.8s ease-in-out infinite; }
@keyframes down { 50% { transform:translateY(7px); } }

.section-head { padding:clamp(100px, 12vw, 190px) var(--pad) clamp(60px, 7vw, 110px); display:grid; grid-template-columns:1fr 1.35fr; gap:32px; }
.eyebrow { margin:0 0 36px; color:var(--accent-dark); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.18em; }
.section-head h2, .equipment h2, .proof h2, .contact h2 { margin:0; font-size:clamp(54px, 7.5vw, 126px); line-height:.88; letter-spacing:-.06em; font-weight:500; }
.section-head h2 { grid-column:2; }
.section-head h2 em, .equipment h2 em, .proof h2 em, .contact h2 em { font-family:var(--serif); color:var(--accent-dark); font-weight:400; }
.section-head > p:last-child { grid-column:2; max-width:530px; margin:34px 0 0 auto; color:var(--muted); font-size:17px; line-height:1.6; }
.section-head-inline { grid-template-columns:1.4fr .6fr; align-items:end; }
.section-head-inline h2 { grid-column:auto; }
.section-head-inline > p:last-child { grid-column:auto; margin:0 0 8px; }

.system-section { background:var(--white); }
.system-grid { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.system-index { border-right:1px solid var(--line); }
.system-item { width:100%; min-height:94px; border:0; border-bottom:1px solid var(--line); background:transparent; padding:0 var(--pad); display:grid; grid-template-columns:44px 1fr 40px; align-items:center; text-align:left; cursor:pointer; transition:.35s ease; }
.system-item:last-child { border-bottom:0; }
.system-item:hover, .system-item.is-active { background:var(--ink); color:var(--paper); }
.system-no { color:var(--accent); font-size:10px; }
.system-name { font-size:clamp(17px,1.6vw,24px); letter-spacing:-.02em; }
.system-icon { justify-self:end; display:grid; place-items:center; width:34px; height:34px; border:1px solid currentColor; border-radius:50%; opacity:.55; transition:.35s ease; }
.system-item.is-active .system-icon { opacity:1; transform:rotate(45deg); }
.system-detail { min-height:470px; padding:clamp(48px,6vw,94px); display:flex; flex-direction:column; }
.system-detail-top { display:flex; justify-content:space-between; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.13em; }
.detail-count b { color:var(--accent-dark); font-size:20px; font-weight:500; }
.system-detail h3 { max-width:650px; margin:70px 0 24px; font-size:clamp(36px,4vw,68px); line-height:1; letter-spacing:-.045em; font-weight:500; }
.system-detail > p { max-width:640px; color:var(--muted); font-size:17px; line-height:1.65; }
.system-detail ul { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; list-style:none; padding:0; margin:40px 0 56px; }
.system-detail li { border-top:1px solid var(--line); padding-top:12px; color:var(--muted); font-size:12px; line-height:1.5; }
.text-link { align-self:flex-start; display:inline-flex; align-items:center; gap:24px; padding-bottom:8px; border-bottom:1px solid var(--ink); font-size:12px; font-weight:600; }
.text-link span { color:var(--accent-dark); transition:.3s ease; }
.text-link:hover span { transform:translate(4px,-4px); }

.statement { padding:clamp(110px,15vw,250px) var(--pad); background:var(--ink); color:var(--paper); overflow:hidden; }
.statement-kicker { margin:0 0 60px; color:#83bdb5; font-size:10px; text-transform:uppercase; letter-spacing:.17em; }
.statement-line { display:flex; align-items:center; gap:30px; font-size:clamp(42px,7.7vw,130px); line-height:.96; letter-spacing:-.06em; white-space:nowrap; }
.statement-line-offset { margin-left:clamp(0px,9vw,150px); font-family:var(--serif); color:#b8c5c1; font-style:italic; }
.line-rule { flex:1; min-width:60px; height:1px; background:rgba(243,241,234,.25); }
.statement-seal { margin-left:auto; display:grid; place-items:center; flex:0 0 auto; width:clamp(58px,8vw,110px); aspect-ratio:1; border:1px solid rgba(126,211,199,.5); border-radius:50%; color:#7ed3c7; font:400 clamp(19px,2.4vw,36px)/1 var(--serif); letter-spacing:0; }

.solutions { padding-bottom:clamp(90px,12vw,190px); }
.solution-feature { margin:0 var(--pad); display:grid; grid-template-columns:1.12fr .88fr; min-height:750px; border:1px solid var(--line); }
.solution-photo { position:relative; min-height:720px; overflow:hidden; background:#d8d7d0; }
.solution-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(7,14,13,.38),transparent 35%); }
.solution-photo img { width:100%; height:100%; object-fit:cover; object-position:center 48%; transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
.solution-feature:hover .solution-photo img { transform:scale(1.035); }
.photo-caption { position:absolute; z-index:2; left:28px; bottom:24px; color:white; font-size:10px; text-transform:uppercase; letter-spacing:.13em; }
.solution-copy { padding:clamp(50px,6vw,100px); display:flex; flex-direction:column; align-items:flex-start; }
.solution-no { color:var(--accent-dark); font-size:10px; letter-spacing:.14em; }
.solution-copy h3 { margin:70px 0 28px; font-size:clamp(44px,5vw,82px); line-height:.94; letter-spacing:-.05em; font-weight:500; }
.solution-copy > p { color:var(--muted); font-size:17px; line-height:1.65; max-width:510px; }
.solution-copy dl { width:100%; margin:50px 0 58px; }
.solution-copy dl div { display:grid; grid-template-columns:110px 1fr; gap:20px; border-top:1px solid var(--line); padding:15px 0; }
.solution-copy dt { color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.solution-copy dd { margin:0; font-size:13px; }
.button { min-height:56px; padding:0 24px; border:1px solid var(--ink); display:inline-flex; justify-content:center; align-items:center; gap:28px; cursor:pointer; font-size:12px; font-weight:600; transition:.3s ease; }
.button span { transition:transform .3s ease; }
.button:hover span { transform:translate(4px,-4px); }
.button-dark { background:var(--ink); color:var(--paper); }
.button-dark:hover { background:var(--accent-dark); border-color:var(--accent-dark); }
.solution-cards { margin:24px var(--pad) 0; display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.solution-card { position:relative; min-height:620px; padding:30px; border:1px solid var(--line); overflow:hidden; display:flex; flex-direction:column; }
.card-top { display:flex; justify-content:space-between; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.14em; }
.card-top span:first-child { color:var(--accent-dark); }
.solution-card h3 { z-index:2; margin:58px 0 20px; font-size:clamp(40px,4vw,68px); line-height:.96; letter-spacing:-.05em; font-weight:500; }
.solution-card p { z-index:2; max-width:400px; color:var(--muted); line-height:1.6; }
.solution-card img { position:absolute; width:62%; max-height:48%; right:-2%; bottom:0; object-fit:contain; object-position:right bottom; filter:saturate(.72) contrast(.94); transition:transform .7s ease; }
.solution-card:hover img { transform:translateY(-10px) scale(1.03); }

.equipment { padding:clamp(110px,13vw,210px) var(--pad); background:var(--paper-deep); }
.equipment-intro { display:grid; grid-template-columns:1fr 1.4fr; gap:32px; margin-bottom:clamp(70px,9vw,140px); }
.equipment-intro h2 { grid-column:2; }
.equipment-intro > p:last-child { grid-column:2; max-width:500px; margin:30px 0 0 auto; color:var(--muted); font-size:17px; line-height:1.6; }
.product-stage { min-width:0; min-height:730px; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong); }
.product-visual { min-width:0; position:relative; display:grid; place-items:center; overflow:hidden; border-right:1px solid var(--line-strong); }
.product-visual::before, .product-visual::after { content:""; position:absolute; background:var(--line); }
.product-visual::before { width:1px; height:100%; }
.product-visual::after { width:100%; height:1px; }
.product-orbit { position:absolute; width:min(72%,560px); aspect-ratio:1; border:1px solid var(--line); border-radius:50%; animation:rotate 18s linear infinite; }
.product-orbit i { position:absolute; width:7px; height:7px; border-radius:50%; background:var(--accent); }
.product-orbit i:nth-child(1) { left:12%; top:15%; }
.product-orbit i:nth-child(2) { right:-4px; top:50%; }
.product-orbit i:nth-child(3) { left:38%; bottom:-4px; }
@keyframes rotate { to { transform:rotate(360deg); } }
.product-image { position:relative; z-index:2; width:min(54%,410px); height:570px; object-fit:contain; filter:drop-shadow(0 24px 30px rgba(21,34,32,.12)) saturate(.78); transition:opacity .35s ease, transform .6s ease; }
.product-image.is-changing { opacity:0; transform:translateY(20px); }
.product-index { position:absolute; left:24px; bottom:20px; font:italic 120px/1 var(--serif); color:rgba(24,32,31,.08); }
.product-copy { min-width:0; padding:clamp(50px,4vw,72px); display:flex; flex-direction:column; }
.product-type { color:var(--accent-dark); font-size:10px; text-transform:uppercase; letter-spacing:.16em; }
.product-copy h3 { margin:70px 0 24px; font-size:clamp(48px,4.2vw,64px); line-height:.88; letter-spacing:-.06em; font-weight:500; }
.product-copy > p { max-width:520px; color:var(--muted); font-size:16px; line-height:1.65; }
.product-specs { margin:50px 0 auto; }
.product-specs div { display:flex; justify-content:space-between; gap:20px; padding:15px 0; border-top:1px solid var(--line); font-size:12px; }
.product-specs span { color:var(--muted); }
.product-specs b { font-weight:500; text-align:right; }
.product-actions { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:60px; }
.slider-controls { display:flex; align-items:center; gap:16px; }
.slider-controls button { display:grid; place-items:center; width:42px; height:42px; border:1px solid var(--line-strong); border-radius:50%; background:transparent; cursor:pointer; transition:.3s ease; }
.slider-controls button:hover { background:var(--ink); color:var(--paper); }
.slider-controls span { font-size:10px; color:var(--muted); }
.slider-controls b { color:var(--ink); }

.process { padding-bottom:clamp(100px,13vw,210px); background:var(--white); }
.process-track { position:relative; margin:0 var(--pad); display:grid; grid-template-columns:repeat(4,1fr); }
.process-line { position:absolute; left:0; right:0; top:0; height:1px; background:var(--line); }
.process-line i { display:block; width:0; height:2px; background:var(--accent); transition:width .15s linear; }
.process-step { min-height:300px; padding:30px clamp(22px,3vw,48px) 30px 0; border-right:1px solid var(--line); }
.process-step:not(:first-of-type) { padding-left:clamp(22px,3vw,48px); }
.process-step:last-child { border-right:0; }
.process-step > span { display:grid; place-items:center; width:38px; height:38px; margin-bottom:80px; border:1px solid var(--line-strong); border-radius:50%; color:var(--accent-dark); font-size:10px; background:var(--white); }
.process-step h3 { margin:0 0 18px; font-size:22px; font-weight:500; letter-spacing:-.03em; }
.process-step p { margin:0; color:var(--muted); font-size:13px; line-height:1.6; }

.proof { display:grid; grid-template-columns:1fr 1fr; min-height:900px; background:var(--paper); }
.proof-photo { position:relative; overflow:hidden; }
.proof-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(10,17,16,.35),transparent 40%); }
.proof-photo img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.7); }
.proof-photo > span { position:absolute; z-index:2; left:var(--pad); bottom:34px; color:white; font-size:10px; text-transform:uppercase; letter-spacing:.15em; }
.proof-copy { padding:clamp(70px,8vw,130px) var(--pad); display:flex; flex-direction:column; align-items:flex-start; }
.proof-copy h2 { font-size:clamp(50px,6vw,98px); }
.proof-lead { margin:50px 0 60px; max-width:500px; color:var(--muted); font-size:17px; line-height:1.65; }
.proof-list { width:100%; margin-bottom:65px; }
.proof-list div { display:grid; grid-template-columns:50px 1fr; padding:17px 0; border-top:1px solid var(--line); }
.proof-list span { color:var(--accent-dark); font-size:9px; }
.proof-list p { margin:0; font-size:13px; }

.contact { position:relative; padding:clamp(110px,13vw,210px) var(--pad); display:grid; grid-template-columns:1fr 1fr; gap:8vw; background:#123b37; color:var(--paper); overflow:hidden; }
.contact-tree { position:absolute; inset:5% auto -18% 22%; width:40%; opacity:.12; pointer-events:none; }
.contact-tree svg { width:100%; height:100%; }
.contact-tree path { stroke:#7ed3c7; stroke-width:2; stroke-linecap:round; }
.contact-copy, .contact-form { position:relative; z-index:2; }
.contact .eyebrow { color:#7ed3c7; }
.contact h2 { font-size:clamp(58px,7vw,112px); }
.contact h2 em { color:#a8d8d1; }
.contact-copy > p:last-child { max-width:480px; margin-top:42px; color:rgba(243,241,234,.65); font-size:17px; line-height:1.65; }
.contact-form { align-self:end; display:grid; gap:28px; }
.contact-form label { display:grid; gap:10px; }
.contact-form label > span { color:rgba(243,241,234,.58); font-size:9px; text-transform:uppercase; letter-spacing:.15em; }
.contact-form input, .contact-form select { width:100%; height:54px; border:0; border-bottom:1px solid rgba(243,241,234,.3); border-radius:0; outline:0; background:transparent; color:var(--paper); font-size:15px; }
.contact-form input::placeholder { color:rgba(243,241,234,.36); }
.contact-form select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,#aaa 50%),linear-gradient(135deg,#aaa 50%,transparent 50%); background-position:calc(100% - 15px) 24px,calc(100% - 10px) 24px; background-size:5px 5px; background-repeat:no-repeat; }
.contact-form select option { color:var(--ink); }
.button-light { justify-self:start; margin-top:14px; color:var(--ink); background:var(--paper); border-color:var(--paper); }
.button-light:hover { background:#88d1c8; border-color:#88d1c8; }
.form-note { margin:0; color:rgba(243,241,234,.4); font-size:10px; }
.form-status { min-height:20px; margin:0; color:#9de4da; font-size:12px; }

.footer { min-height:160px; padding:35px var(--pad); display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:30px; background:var(--ink); color:var(--paper); border-top:1px solid rgba(243,241,234,.12); }
.brand-footer .brand-mark i { background:var(--paper); }
.footer-meta { display:flex; justify-content:space-between; gap:20px; color:rgba(243,241,234,.45); font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
.back-top { font-size:11px; }

.reveal { opacity:0; transform:translateY(32px); transition:opacity .85s ease, transform .85s cubic-bezier(.2,.75,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 1100px) {
  .desktop-nav { display:none; }
  .site-header { grid-template-columns:1fr auto; }
  .header-cta { display:none; }
  .menu-button { display:block; justify-self:end; cursor:pointer; }
  .menu-button.is-open span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-button.is-open span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .mobile-menu { position:fixed; z-index:90; inset:0; padding:120px var(--pad) 50px; background:var(--paper); opacity:0; visibility:hidden; display:block; transition:.35s ease; }
  .mobile-menu.is-open { opacity:1; visibility:visible; }
  .mobile-menu nav { display:grid; }
  .mobile-menu a { padding:20px 0; border-bottom:1px solid var(--line); font-size:clamp(32px,7vw,54px); letter-spacing:-.04em; }
  .hero { grid-template-columns:1fr; }
  .hero-tree-wrap { opacity:.68; right:-22vw; width:92vw; }
  .hero-title-wrap { max-width:850px; }
  .hero-intro { background:rgba(243,241,234,.72); padding:14px; backdrop-filter:blur(5px); }
  .system-detail ul { grid-template-columns:1fr; }
  .solution-feature { grid-template-columns:1fr; }
  .solution-photo { min-height:660px; }
  .product-stage { grid-template-columns:1fr; }
  .product-visual { min-height:650px; border-right:0; border-bottom:1px solid var(--line-strong); }
  .product-copy { min-height:650px; }
}

@media (max-width: 760px) {
  :root { --pad:20px; --header-h:68px; }
  .grain { opacity:.045; }
  .cursor-glow { display:none; }
  .site-header { height:68px; }
  .brand { font-size:10px; }
  .brand-mark { transform:scale(.82); transform-origin:left center; margin-right:-4px; }
  .hero { min-height:920px; padding-top:94px; grid-template-rows:auto 1fr auto; }
  .hero::before { background-size:100% 100%, 100% 72px; }
  .hero-kicker { font-size:9px; }
  .hero-title-wrap { align-self:start; padding:42px 0 0; }
  .hero-title { position:relative; z-index:4; font-size:clamp(54px,15.8vw,72px); line-height:.84; }
  .title-line-2 { margin-left:13px; }
  .hero-intro { margin:25px 0 0 0; padding:0; background:none; backdrop-filter:none; max-width:320px; font-size:14px; }
  .hero-tree-wrap { top:320px; right:auto; left:50%; width:100vw; height:auto; aspect-ratio:1000 / 790; opacity:.78; transform:translateX(-50%) scale(1.75); transform-origin:center top; }
  .hero-tree { transform:rotate(-2deg); }
  .canopy-label { display:none; }
  .hero-root-strip { grid-template-columns:1fr; align-self:end; border:1px solid var(--line); margin-bottom:0; }
  .root-chip { min-height:43px; border:0; border-bottom:1px solid var(--line); padding:9px 13px; background:rgba(243,241,234,.86); backdrop-filter:blur(7px); font-size:10px; }
  .root-chip:last-child { border-bottom:0; }
  .root-chip:first-child { border-left:0; }
  .scroll-cue { display:none; }
  .section-head { padding:90px var(--pad) 55px; display:block; }
  .section-head h2, .equipment h2, .proof h2, .contact h2 { font-size:clamp(49px,14vw,70px); }
  .section-head > p:last-child { margin:28px 0 0; font-size:14px; }
  .eyebrow { margin-bottom:28px; }
  .system-grid { grid-template-columns:1fr; }
  .system-index { border-right:0; }
  .system-item { min-height:72px; padding:0 var(--pad); }
  .system-detail { min-height:540px; padding:52px var(--pad); }
  .system-detail h3 { margin-top:54px; font-size:42px; }
  .system-detail > p { font-size:14px; }
  .system-detail ul { margin:36px 0 46px; }
  .statement { padding:100px var(--pad); }
  .statement-kicker { margin-bottom:40px; }
  .statement-line { white-space:normal; gap:12px; font-size:12.7vw; }
  .statement-line-offset { margin:8px 0; }
  .line-rule { display:none; }
  .statement-seal { width:54px; }
  .section-head-inline { display:block; }
  .solution-feature { margin:0; border-left:0; border-right:0; }
  .solution-photo { min-height:520px; }
  .photo-caption { left:18px; bottom:18px; max-width:260px; line-height:1.5; }
  .solution-copy { padding:52px var(--pad) 65px; }
  .solution-copy h3 { margin-top:48px; font-size:47px; }
  .solution-copy > p { font-size:14px; }
  .solution-copy dl div { grid-template-columns:88px 1fr; }
  .solution-cards { margin:18px 0 0; grid-template-columns:1fr; gap:18px; }
  .solution-card { min-height:540px; border-left:0; border-right:0; padding:24px var(--pad); }
  .solution-card h3 { font-size:44px; }
  .solution-card img { width:75%; max-height:43%; }
  .equipment { padding:90px var(--pad); }
  .equipment-intro { display:block; margin-bottom:65px; }
  .equipment-intro > p:last-child { margin:28px 0 0; font-size:14px; }
  .product-stage { margin:0 calc(var(--pad) * -1); }
  .product-visual { min-height:520px; }
  .product-image { height:400px; width:62%; }
  .product-index { font-size:80px; }
  .product-copy { min-height:610px; padding:54px var(--pad); }
  .product-copy h3 { margin-top:52px; font-size:50px; overflow-wrap:anywhere; }
  .product-copy > p { font-size:14px; }
  .product-actions { align-items:flex-start; flex-direction:column; }
  .slider-controls { align-self:flex-end; }
  .process { padding-bottom:90px; }
  .process-track { display:block; }
  .process-line { left:18px; top:0; bottom:0; width:1px; height:auto; }
  .process-line i { width:2px; height:0; }
  .process-step, .process-step:not(:first-of-type) { min-height:210px; padding:0 0 50px 70px; border-right:0; }
  .process-step > span { position:absolute; left:0; margin:0; }
  .process-step h3 { padding-top:8px; }
  .proof { grid-template-columns:1fr; }
  .proof-photo { min-height:620px; }
  .proof-copy { padding:80px var(--pad) 100px; }
  .proof-lead { font-size:14px; }
  .contact { grid-template-columns:1fr; gap:80px; padding:95px var(--pad); }
  .contact-copy > p:last-child { font-size:14px; }
  .contact-tree { left:20%; width:90%; }
  .footer { grid-template-columns:1fr auto; min-height:190px; align-items:center; }
  .footer-meta { grid-column:1 / -1; grid-row:2; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
