/* Public marketing page only. Logical properties keep the Arabic layout native. */
:root {
  --plane:#f8f6ef; --surface-1:#fffef9; --text-primary:#193b2b;
  --text-secondary:#566252; --text-muted:#636d5e; --border:#dce1d4;
  --brand-blue-ink:#285238; --brand-teal-ink:#42663b; --brand-teal-deep:#183d2c;
  --brand-orange:#edc677; --on-accent:#233721; --radius-card:20px;
  --site-width:1180px;
  /* `system-ui` first, matching `app.css`. Leading with "Segoe UI" served a
     Windows font to every visitor who had one and the platform's own face to
     nobody else, so the site looked different on a Mac, an iPhone and an
     Android handset for no reason anyone chose. */
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}
html { scroll-behavior:smooth; }
body.site { font-size:16px; line-height:1.7; }
.site h1,.site h2,.site h3 { font-weight:600; text-wrap:balance; }
.site h2 { letter-spacing:-.035em; }
.site a { text-underline-offset:4px; }
.siteheader { background:rgba(248,246,239,.96); backdrop-filter:blur(14px); }
.siteheader-inner { min-height:84px; padding-inline:24px; gap:28px; flex-wrap:nowrap; }
.brand-name { font-size:23px; letter-spacing:-.045em; }
.brand-mark { width:31px; }
.sitenav { gap:22px; }
.sitenav a { font-size:14px; }
.site .btn { border-radius:8px; font-size:14px; min-height:48px; padding:12px 22px; transition:background .2s,transform .2s; }
.site .btn:hover { transform:translateY(-2px); background:#e7ebdd; }
.site .btn-accent { background:var(--brand-teal-deep); color:#fffdf4; }
.site .btn-accent:hover { background:#2a563c; }
.site .btn-lg { min-height:54px; font-size:15px; }
.sitelink { gap:12px; font-weight:600; }
.site .forward { display:inline-block; }
[dir="rtl"] .forward { transform:scaleX(-1); }
.harvest-hero { position:relative; isolation:isolate; overflow:hidden; background:#f5f3e9; }
.daylight { position:absolute; inset:-30%; z-index:-1; pointer-events:none;
  background:radial-gradient(ellipse at 65% 50%,#dce8bb 0,transparent 39%),radial-gradient(ellipse at 26% 42%,#ffedc2 0,transparent 35%);
  animation:daylight-drift 16s ease-in-out infinite alternate; }
.harvest-hero::after { content:""; position:absolute; inset:0; pointer-events:none; z-index:-1; opacity:.2;
  background-image:repeating-radial-gradient(ellipse at 100% 120%,transparent 0 44px,#919e7329 45px 46px,transparent 47px 70px); }
.harvest-hero-inner { max-width:var(--site-width); margin:auto; display:grid; grid-template-columns:1.04fr 1fr; align-items:center; gap:34px; padding:64px 24px 24px; }
.harvest-copy { min-width:0; }
.site .eyebrow { display:flex; gap:10px; align-items:center; font-size:12px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:#58703f; margin-bottom:22px; }
.eyebrow>span { width:7px; height:7px; background:#718844; border-radius:50%; }
.harvest-copy h1 { font-size:clamp(44px,4.6vw,67px); letter-spacing:-.058em; line-height:1.08; margin-bottom:24px; }
.harvest-copy h1 em { display:block; font-family:Georgia,"Times New Roman",serif; font-weight:400; color:#6d803e; }
.hero-lede { font-size:17px; line-height:1.8; max-width:49ch; margin-bottom:22px!important; }
.hero-actions { gap:12px; margin:24px 0 12px; }
.site .hero-note { color:#69715f; font-size:12px; margin-bottom:24px; }
.hero-detail { display:flex; gap:14px; align-items:center; border-top:1px solid #ced6be; padding-top:20px; max-width:470px; }
.hero-detail>span { font-size:30px; color:#7a8b4c; }
.hero-detail p { font-size:13px; line-height:1.7; margin:0; color:#59644d; }
.hero-bottom { max-width:var(--site-width); margin:auto; padding:20px 24px 25px; display:flex; justify-content:space-between; gap:16px; align-items:center; }
.hero-bottom p { margin:0; color:#626e54; font-size:12px; }
.motion-toggle { border:1px solid #c6cebb; background:transparent; color:#43583a; border-radius:20px; font:inherit; font-size:11px; padding:8px 14px; min-height:36px; cursor:pointer; flex-shrink:0; }
.field-art { position:relative; min-width:0; }
.field-landscape { width:100%; height:auto; display:block; filter:drop-shadow(0 24px 24px #203c241b); }
.field-label { position:absolute; display:flex; gap:12px; align-items:center; background:#fffdf4; border:1px solid #e9e8d5; border-radius:12px; box-shadow:0 12px 32px #213c2420; padding:14px 18px; font-size:12px; }
.field-label-top { top:15%; inset-inline-end:0; }
.status-dot { height:8px; width:8px; background:#758b48; border-radius:50%; box-shadow:0 0 0 5px #e7eddb; }
.field-label-bottom { bottom:10%; inset-inline-start:0; }
.field-label strong { display:block; font-size:14px; font-weight:600; }
.field-label small { display:block; color:#657057; margin-top:2px; }
.field-check { border-radius:50%; background:#e4ebd3; font-size:20px; padding:2px 10px; color:#4c6a39; }
.art-caption { position:absolute; bottom:0; inset-inline-end:7%; font-size:10px; color:#69735e; }
.field-scan { animation:field-scan 10s ease-in-out infinite alternate; }
.field-pulse { transform-origin:141px 298px; animation:field-pulse 4s ease-out infinite; }
@keyframes daylight-drift { to { transform:translate3d(6%,3%,0) rotate(8deg); } }
@keyframes field-scan { from { transform:translateY(-130px); } to { transform:translateY(155px); } }
@keyframes field-pulse { 0% { transform:scale(.6); opacity:.9; } 100% { transform:scale(1.7); opacity:0; } }
/* What comes together, as chips: a row of separate things, each one a
   capability, five or so to a line so a wrapped line is never one orphan. */
.capability-strip { padding:20px max(24px, calc((100% - 900px) / 2)); display:flex; flex-wrap:wrap; justify-content:center; gap:10px;
  border-block:1px solid var(--border); background:#fffdf6; }
.capability-strip span { font-size:13px; font-weight:600; color:#2c4528; display:flex; gap:8px; align-items:center; white-space:nowrap;
  padding:7px 15px 7px 12px; border:1px solid #e2e6d6; border-radius:999px; background:#fff; box-shadow:0 1px 2px #2c452808; }
.capability-strip i { font-style:normal; font-size:11px; color:#8fa05f; }
.band { padding:72px 24px; }
.section-heading { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; margin-bottom:30px; }
.section-heading .band-lede { margin-bottom:3px; }
.band-title { font-size:clamp(29px,3.1vw,43px); max-width:25ch; margin-bottom:16px!important; }
.band-lede { font-size:16px; max-width:65ch; }
.section-heading .eyebrow { margin-bottom:16px; }
/* Three steps as three cards, an arrow in each gap: a sequence reads as a
   sequence. The big pale number is the step's place, not its title. */
.steps { gap:28px; margin-top:34px; }
.step { position:relative; padding:28px 28px 30px; background:#fffef9; border-radius:18px; border:1px solid #e0e5d4;
  box-shadow:0 22px 34px -30px #2c4a2a59; }
.step:first-child { padding-inline-start:28px; border:1px solid #e0e5d4; }
.step:not(:last-child)::after { content:"→"; position:absolute; top:46px; inset-inline-end:-22px; width:16px; text-align:center;
  font-size:16px; color:#9db07f; }
[dir="rtl"] .step:not(:last-child)::after { content:"←"; }
.step-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
.step-symbol { width:48px; height:48px; display:grid; place-items:center; border:1px solid #d3ddc3; border-radius:14px; background:#eef3e4; color:#476a2c; font-size:24px; }
.step-index { color:#e2e8d6; font-size:44px; font-weight:700; letter-spacing:-.04em; line-height:1; font-variant-numeric:tabular-nums; }
.step h3 { font-size:22px; margin-bottom:12px; }
.step p { color:var(--text-secondary); font-size:15px; margin-bottom:0; }
/* The tour. Six real screens, each in a plain window and large enough to
   read: the tabs are one segmented row (scrolling sideways on a phone rather
   than wrapping), the copy names what to look at, and the screen is straight,
   because a tilted screenshot is a picture of a product and not the product. */
.feature-section { background:#eaf0df; }
.feature-tabs { display:flex; flex-wrap:nowrap; gap:4px; margin-top:30px; padding:5px; width:max-content; max-width:100%;
  overflow-x:auto; scrollbar-width:none; background:#dde7cf; border-radius:14px; box-shadow:inset 0 0 0 1px #cfdcc0; }
.feature-tabs::-webkit-scrollbar { display:none; }
.feature-tabs button { font:inherit; font-size:14px; display:flex; align-items:center; gap:10px; flex:0 0 auto; white-space:nowrap;
  border:0; border-radius:10px; background:transparent; color:#4b5d41; padding:10px 16px; min-height:44px; cursor:pointer;
  transition:background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.feature-tabs button span { font-size:11px; opacity:.7; font-variant-numeric:tabular-nums; }
.feature-tabs button:hover { background:#eef3e6; color:#214a32; }
.feature-tabs button[aria-selected="true"] { background:#214a32; color:#fff; box-shadow:0 6px 14px -6px #214a3299; }
.feature-tabs button:focus-visible { outline:2px solid #214a32; outline-offset:2px; }
.feature-panel { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:56px; align-items:center; padding:40px 0 4px; }
.feature-panel[hidden] { display:none; }
.feature-copy { max-width:470px; }
.feature-kicker { font-size:12px; color:#6b7d5e; letter-spacing:.08em; font-variant-numeric:tabular-nums; }
.feature-kicker b { color:#214a32; font-weight:600; }
.feature-copy h3 { font-size:30px; letter-spacing:-.03em; margin:12px 0 14px; }
.feature-copy p { font-size:16px; color:#43553f; }
.tour-points { list-style:none; margin:20px 0 22px; padding:0; display:grid; gap:10px; }
.tour-points li { display:flex; gap:12px; align-items:flex-start; font-size:15px; color:#2f402b; line-height:1.5; }
.tour-points li::before { content:"✓"; flex:0 0 22px; height:22px; border-radius:50%; display:grid; place-items:center;
  font-size:12px; font-weight:700; color:#fff; background:#5e8a3a; margin-top:1px; }
.feature-copy .feature-detail { font-size:14px; padding-inline-start:16px; border-inline-start:2px solid #9fad7e; color:#55684b; }
.feature-copy .sitelink { padding-inline-start:0; }
.feature-preview { margin:0; width:100%; min-width:0; }
.app-window { border-radius:14px; overflow:hidden; background:#f8f8f6; border:1px solid #cad7bc;
  box-shadow:0 34px 60px -28px #1f3d2a73, 0 10px 22px -12px #1f3d2a33; }
.app-window-bar { display:flex; align-items:center; gap:6px; padding:10px 14px; background:#f3f6ec; border-bottom:1px solid #dde5d2; direction:ltr; }
.app-window-bar>span { width:9px; height:9px; border-radius:50%; background:#cfd8c3; }
.app-window-bar>span:first-child { background:#e8b9a8; } .app-window-bar>span:nth-child(2) { background:#ecd49a; } .app-window-bar>span:nth-child(3) { background:#b9d3a2; }
.app-window-bar b { margin-inline:auto; font-size:11px; font-weight:500; color:#6f7d65; background:#fff; border:1px solid #e1e7d7;
  border-radius:999px; padding:4px 16px; max-width:70%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* The crop ends where the screen goes on; a short fade says so instead of a hard edge. */
.app-window-shot { display:block; position:relative; }
.app-window-shot img { display:block; width:100%; height:auto; aspect-ratio:1400/986; }
.app-window-shot::after { content:""; position:absolute; inset:auto 0 0; height:16%; pointer-events:none;
  background:linear-gradient(to bottom, #f8f8f600, #f8f8f6); }
.feature-preview figcaption { color:#59684e; font-size:11px; margin-top:14px; text-align:center; }
.is-enhanced .feature-panel:not([hidden]) .feature-copy > * { animation:tour-rise .45s ease both; }
.is-enhanced .feature-panel:not([hidden]) .feature-copy > :nth-child(2) { animation-delay:.04s; }
.is-enhanced .feature-panel:not([hidden]) .feature-copy > :nth-child(n+3) { animation-delay:.08s; }
.is-enhanced .feature-panel:not([hidden]) .app-window { animation:tour-in .5s ease both; }
@keyframes tour-rise { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes tour-in { from { opacity:0; transform:translateY(14px) scale(.985); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce) { .is-enhanced .feature-panel .feature-copy > *, .is-enhanced .feature-panel .app-window { animation:none!important; } }
/* Real ground: three parcels the product has actually imaged.

   Square tiles on one row, because the three are an argument read together —
   a delta of smallholdings, an irrigated basin, pivots on desert — and a
   carousel would hide two thirds of it. The frame is dark so the imagery,
   which is mostly earth tones, is not competing with a pale page. */
.ground-section { background:#16301f; color:#f3f1e4; }
.ground-section .band-title { color:#fffdf4; }
.ground-section .eyebrow { color:#cbd79b; }
.ground-section .eyebrow>span { background:#cbd79b; }
.ground-section .band-lede { color:#d6dfcd; }
.groundgrid { display:grid; gap:22px; grid-template-columns:repeat(3,1fr); margin-top:30px; }
.groundshot { margin:0; min-width:0; }
.groundshot-frame { position:relative; border-radius:12px; overflow:hidden;
  border:1px solid #ffffff24; background:#0d1f14; }
/* 4:3, not square. Three square tiles across the band were ~376px tall each
   and the section took a screen and a half to scroll past; the imagery is
   evidence for a claim, not a gallery, and it reads at this height. The crop
   is centred, which is where the fields are in all three. */
.groundshot-frame img { display:block; width:100%; height:auto;
  aspect-ratio:4/3; object-fit:cover; object-position:center; }
/* The acquisition date on the picture, because a satellite image without one
   is a picture of nowhere in particular. */
.groundshot-date { position:absolute; inset-block-end:10px; inset-inline-start:10px;
  background:#0b1a11cc; color:#eef3e4; font-size:11px; letter-spacing:.04em;
  padding:5px 9px; border-radius:6px; backdrop-filter:blur(4px); }
.groundshot figcaption h3 { font-size:19px; margin:16px 0 6px; color:#fffdf4; }
.groundshot figcaption p { font-size:14px; line-height:1.7; color:#cdd8c6; margin:0; }
.groundfacts { display:flex; gap:26px; margin:14px 0 0; }
.groundfacts dt { font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:#9fb094; margin-bottom:2px; }
.groundfacts dd { margin:0; font-size:17px; font-weight:600; color:#f1efe2;
  font-variant-numeric:tabular-nums; }
.ground-section .groundnote { color:#a8b79e; font-size:12px; margin-top:28px;
  max-width:74ch; }
[lang="ar"] .groundshot figcaption h3 { line-height:1.55; }
[lang="ar"] .groundfacts dt { letter-spacing:0; }

/* The sensor platforms, as wordmarks rather than logos — the comment in
   `landing.html` says why. A tile is a name and how it reaches us, which is
   the only thing a reader needs to know before asking whether theirs is
   there. */
.platformblock { margin-top:40px; border-top:1px solid var(--border); padding-top:26px; }
/* Four columns, not five. Each tile carries a mark, a name and a line of
   detail, and at a fifth of the band none of the three had room to be set —
   the marks shrank to illegibility and the names wrapped mid-word. */
.platformgrid { list-style:none; margin:0; padding:0; display:grid; gap:1px;
  grid-template-columns:repeat(4,1fr); background:#dfe5d5;
  border:1px solid #dfe5d5; border-radius:12px; overflow:hidden; }
.platformgrid > :last-child:nth-child(4n+1) { grid-column:1 / -1; }
.platformgrid > :last-child:nth-child(4n+2) { grid-column:span 3; }
.platformgrid > :last-child:nth-child(4n+3) { grid-column:span 2; }
.platformtile { background:#fffef9; padding:20px 18px; display:flex;
  flex-direction:column; gap:3px; justify-content:flex-end; min-width:0;
  min-height:112px; }
/* One cap height for every mark, and the row is reserved whether a tile has
   one or not — so a row of logos and names keeps its baselines in a line.
   34px because 26 left the Davis wordmark, which is wide and fine-stroked,
   below the size it can be read at. `object-fit:contain` keeps a wide
   wordmark and a square symbol at the same optical weight. */
.platform-mark { display:block; width:auto; max-width:min(100%, 150px);
  height:34px; object-fit:contain; object-position:left center;
  margin-bottom:12px; }
[dir="rtl"] .platform-mark { object-position:right center; }
/* The name sits under the mark, so it is the second thing read rather than
   the first — smaller and quieter than a tile that has no mark, where it is
   all there is. */
.platform-name { font-size:15px; font-weight:600; color:var(--text-primary);
  letter-spacing:-.012em; line-height:1.3; }
.platformtile:has(.platform-mark) .platform-name { font-size:13px;
  font-weight:500; color:var(--text-secondary); }
.platform-how { font-size:11.5px; color:var(--text-muted); line-height:1.45; }
.platformnote { font-size:12px; margin-top:16px; max-width:80ch; }

/* The feature catalogue. One hairline grid rather than nine floating cards:
   the entries are a list of what the product does, and a list reads as a list.
   The 1px gap over a border-coloured background is the rule drawn between
   them — no per-card border, so no doubled lines where two cards meet. */
.features-section { background:#fffef9; }
.featuregrid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:16px;
  background:#dfe5d5; border:1px solid #dfe5d5; border-radius:14px; overflow:hidden; }
/* A group whose last row is short would show the border colour through the
   empty cells, so its last card takes the rest of the row instead. */
.featuregrid > :last-child:nth-child(3n+1) { grid-column:1 / -1; }
.featuregrid > :last-child:nth-child(3n+2) { grid-column:span 2; }
/* The groups: a heading and one line, then that group's cards. */
.featuregroup { margin-top:44px; }
.featuregroup:first-of-type { margin-top:30px; }
.featuregroup-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 20px; }
.site .featuregroup-head h3 { font-size:15px; letter-spacing:.04em; text-transform:uppercase; color:#55663f; margin:0; }
.featuregroup-head p { color:var(--text-muted); font-size:14px; margin:0; }
.featurecard { background:#fffef9; padding:30px 28px; }
.feature-num { display:block; font-size:11px; letter-spacing:.1em; color:#7c8a66; margin-bottom:16px; }
.featurecard h4 { font-size:20px; font-weight:600; line-height:1.2; letter-spacing:-.02em; margin:0 0 10px; text-wrap:balance; }
.featurecard p { color:var(--text-secondary); font-size:14.5px; line-height:1.75; margin:0; }
.alsoblock { margin-top:40px; border-top:1px solid var(--border); padding-top:26px; }
.site .also-label { margin-bottom:18px; }
.alsolist { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px 56px; }
.alsolist li { display:flex; gap:12px; align-items:baseline; font-size:14px; color:var(--text-secondary); }
.alsolist i { font-style:normal; font-size:11px; color:#9a9e6a; flex-shrink:0; }
[lang="ar"] .featurecard h4 { letter-spacing:0; line-height:1.55; }
[lang="ar"] .site .featuregroup-head h3,[lang="tr"] .site .featuregroup-head h3 { text-transform:none; letter-spacing:0; }
[lang="ar"] .featurecard p,[lang="ar"] .alsolist li { line-height:1.95; }
.audience-section { background:#f3f5ec; }
.cards { gap:20px; margin-top:8px; }
.sitecard { border:1px solid #dfe5d3; border-radius:18px; background:#fffef9; padding:26px 26px 28px;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.sitecard:hover { transform:translateY(-2px); border-color:#cbd8b8; box-shadow:0 24px 36px -28px #2c4a2a66; }
.audience-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.audience-icon { width:46px; height:46px; border-radius:14px; display:grid; place-items:center; background:#e8f0dc; color:#3f6a2a; }
.audience-index { font-size:12px; color:#8a9878; letter-spacing:.1em; font-variant-numeric:tabular-nums; }
.sitecard h3 { font-size:20px; margin-bottom:10px; }
.sitecard p { color:var(--text-secondary); font-size:15px; margin:0; }
#paths { background:#1e3f2d; }
#paths .eyebrow { color:#d0d8a4; }
#paths .band-lede { color:#d4dfcb; }
#paths .pathcard { background:linear-gradient(160deg,#ffffff14,#ffffff05 60%); color:#fffdf3; border:1px solid #ffffff2e; border-radius:18px; padding:32px;
  display:flex; flex-direction:column; align-items:flex-start; }
#paths .pathcard p { flex:1 0 auto; }
#paths .pathcard .sitelink { color:#f1dfae; padding-inline-start:0; margin-top:10px; }
#paths .pathcard .sitelink:hover { color:#fff6dc; }
.path-icon { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; font-size:20px; color:#e8cf8e; background:#ffffff12; border:1px solid #ffffff26; }
.pathcard h3 { font-size:25px; margin:8px 0; }
.pathcard p { color:#d7e1d1; font-size:15px; margin-bottom:20px; }
.pathcard .btn { background:transparent; color:#fffdf4; border-color:#7a9478; }
.pathcard .btn-accent { background:#efd08c; color:#233722; border-color:transparent; }
.pathcard .btn:hover { color:#193b2b; background:#f4dcaa; }
.faq-layout { display:grid; grid-template-columns: .85fr 1.2fr; gap:100px; }
.faq-layout>.band-title { max-width:15ch; }
@media(min-width:861px) { .faq-layout>div:first-child { position:sticky; top:110px; align-self:start; } }
.faq { padding:18px 4px; border-bottom:1px solid #e1e4d6; }
.faq:first-child { border-top:1px solid #e1e4d6; }
.faq>summary { display:flex; gap:20px; justify-content:space-between; align-items:center; font-size:16px; cursor:pointer; transition:color .2s ease; }
.faq>summary:hover, .faq[open]>summary { color:#214a32; }
.faq>summary::-webkit-details-marker { display:none; }
.faq>summary span { flex:0 0 30px; height:30px; border-radius:50%; display:grid; place-items:center; font-size:19px; font-weight:400;
  border:1px solid #d4dcc6; color:#476a2c; transition:transform .25s ease, background-color .2s ease, color .2s ease; }
.faq[open]>summary span { transform:rotate(45deg); background:#214a32; border-color:#214a32; color:#fff; }
.faq p { padding-top:12px; font-size:15px; line-height:1.75; color:var(--text-secondary); max-width:64ch; margin:0; }
.band-demo { background:#efeede; color:var(--text-primary); }
.band-demo .band-lede,.band-demo .muted { color:#56634d; }
.band-demo .fieldlabel { color:#29412d; }
.band-demo .demo-optional summary { color:#3d5f33; }
.band-demo .band-title { max-width:none; }
.band-demo a { color:#2f5d34; }
.demo-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:56px; align-items:start; }
.demo-steps { list-style:none; margin:26px 0 0; padding:0; display:grid; gap:14px; }
.demo-steps li { display:flex; gap:14px; align-items:flex-start; font-size:15px; line-height:1.6; color:#33452f; }
.demo-steps li span { flex:0 0 28px; height:28px; border-radius:50%; display:grid; place-items:center; font-size:13px; font-weight:700;
  color:#fff; background:#214a32; margin-top:-1px; }
.demo-main .demoform, .demo-main .notice { margin:0; }
.demo-main .demoform { background:#fffef8; border:1px solid #d9dfcb; border-radius:20px; padding:30px; box-shadow:0 30px 50px -40px #2c4a2a80; }
.authfield,.phonecountry { border-color:#becbb2; background:#fffef8; }
.demoform { gap:18px; }
.demoform>.btn { justify-self:start; }
.demoform .muted { font-size:12px; }
/* Footer: what the product is and who owns it, the two documents beside
   them, and the rights line across the bottom. */
.sitefooter { background:#f8f6ef; padding-block:52px 26px; }
.sitefooter-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px 56px; align-items:start; }
.sitefooter-cols { gap:48px; }
.sitefooter p { font-size:14px; margin:6px 0 0; max-width:46ch; }
.sitefooter-product > p:first-of-type { color:var(--text-primary); font-weight:600; }
.sitefooter-legal { flex-direction:column; margin:0; gap:0; }
.sitefooter-rights { grid-column:1 / -1; margin:6px 0 0; max-width:none!important; font-size:13px!important; }
/* Arabic gets its own reading rhythm, without Latin tracking or italic glyphs. */
/* Identical to the application's Arabic stack (`app.css`). This asked for
   Tahoma first — legible, which is why it was picked, and to an Arabic reader
   the visual signature of 1994 Windows software. It also meant the marketing
   site and the product were set in two different Arabic faces, so the brand
   had no consistent voice in its primary language. Tahoma stays last, where
   it is a genuine fallback rather than the default. */
html[lang="ar"] { --sans:"IBM Plex Sans Arabic","Noto Sans Arabic","Segoe UI",system-ui,Tahoma,sans-serif; }
[lang="ar"] .site { line-height:1.95; }
[lang="ar"] .harvest-copy h1 { font-size:clamp(39px,4.1vw,59px); line-height:1.45; letter-spacing:0; font-weight:700; }
[lang="ar"] .harvest-copy h1 em { font-family:inherit; font-style:normal; font-weight:700; }
[lang="ar"] .eyebrow,[lang="ar"] .brand-name,[lang="ar"] .site h2,[lang="ar"] .feature-copy h3,[lang="ar"] .feature-kicker { letter-spacing:0; }
[lang="ar"] .feature-copy h3 { line-height:1.5; } [lang="ar"] .tour-points li { line-height:1.8; }
[lang="ar"] .band-title { line-height:1.5; font-size:clamp(28px,2.7vw,38px); }
[lang="ar"] .site h3 { line-height:1.55; }
[lang="ar"] .hero-lede { font-size:17px; line-height:2; }
[lang="tr"] .eyebrow { text-transform:none; letter-spacing:.035em; }
@media(min-width:861px) { .feature-panel { min-height:420px; } }
@media(max-width:1100px) { .siteheader-inner { gap:16px; min-height:72px; } .public-mobile-menu { padding-inline:24px; } .harvest-copy h1 { font-size:50px; } .section-heading { gap:36px; } .feature-panel { gap:36px; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); } .featuregrid { grid-template-columns:1fr 1fr; } .alsolist { gap:12px 32px; }
  .featuregrid > :last-child:nth-child(n) { grid-column:auto; } .featuregrid > :last-child:nth-child(odd) { grid-column:1 / -1; }
  .platformgrid { grid-template-columns:repeat(3,1fr); }
  .platformgrid > :last-child:nth-child(n) { grid-column:auto; } .platformgrid > :last-child:nth-child(3n+1) { grid-column:1 / -1; } .platformgrid > :last-child:nth-child(3n+2) { grid-column:span 2; }
  .demo-layout { gap:40px; } }
@media(max-width:860px) {
  .harvest-hero-inner { gap:20px; padding-top:38px; grid-template-columns:1fr; }
  .harvest-copy { max-width:620px; } .harvest-copy h1 { font-size:52px; max-width:17ch; }
  .field-art { width:min(100%,470px); margin:auto; } .hero-detail { max-width:100%; }
  .section-heading { grid-template-columns:1fr; gap:4px; }
  .steps,.cards { grid-template-columns:1fr; gap:16px; }
  .step:not(:last-child)::after { content:"↓"; top:auto; bottom:-17px; inset-inline-end:auto; inset-inline-start:34px; }
  [dir="rtl"] .step:not(:last-child)::after { content:"↓"; }
  .demo-layout { grid-template-columns:1fr; gap:28px; }
  .sitefooter-inner { grid-template-columns:1fr; } .sitefooter-legal { flex-direction:row; gap:4px 20px; }
  .step-top { margin-bottom:16px; } .feature-panel { grid-template-columns:1fr; gap:24px; }
  .feature-copy { max-width:none; } .feature-preview { width:100%; }
  .faq-layout { grid-template-columns:1fr; gap:24px; } .band { padding-block:48px; }
  .featuregrid { grid-template-columns:1fr; } .featuregrid > :last-child:nth-child(n) { grid-column:auto; } .alsolist { grid-template-columns:1fr; }
  .featuregroup { margin-top:34px; }
  .groundgrid { grid-template-columns:1fr; gap:22px; }
  .platformgrid { grid-template-columns:1fr 1fr; } .platformgrid > :last-child:nth-child(n) { grid-column:auto; } .platformgrid > :last-child:nth-child(odd) { grid-column:1 / -1; }
  .groundshot-frame img { aspect-ratio:16/10; }
}
@media(max-width:540px) {
  .siteheader-inner { padding:10px 16px; gap:8px; flex-wrap:wrap; }
  .brand-name { font-size:20px; } .brand-mark { width:25px; }
  .siteactions { gap:0; } .siteactions>.btn { display:none; } .siteactions .sitelink { font-size:12px; padding-inline:8px; }
  .locale>summary { font-size:12px; padding-inline:8px; }
  .public-mobile-menu { padding-inline:16px; font-size:13px; border-top:1px solid #e3e6d8; }
  .public-mobile-menu summary { min-height:40px; padding-block:7px; }
  .harvest-hero-inner { padding:32px 20px 12px; }
  .harvest-copy h1 { font-size:44px; letter-spacing:-.05em; }
  .site .eyebrow { font-size:10px; letter-spacing:.07em; margin-bottom:18px; }
  .hero-lede { font-size:15px; line-height:1.85; }
  .hero-actions { gap:6px; } .hero-actions .btn { padding-inline:15px; font-size:13px; }
  .hero-actions .sitelink { font-size:13px; padding-inline:8px; }
  .hero-note { font-size:11px!important; } .hero-detail p { font-size:12px; }
  .hero-bottom { padding:16px 20px 22px; flex-wrap:wrap; gap:12px; } .hero-bottom p { font-size:11px; }
  .field-label { padding:10px 12px; font-size:10px; gap:8px; } .field-label strong { font-size:11px; } .field-label small { font-size:9px; }
  /* One row that slides sideways, faded at its ends, instead of six wrapped lines. */
  .capability-strip { flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; scrollbar-width:none; gap:8px; padding:16px 20px;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 20px,#000 calc(100% - 20px),transparent); mask-image:linear-gradient(90deg,transparent,#000 20px,#000 calc(100% - 20px),transparent); }
  .capability-strip::-webkit-scrollbar { display:none; }
  .capability-strip span { font-size:12px; gap:6px; padding:6px 12px 6px 10px; }
  .demo-main .demoform { padding:22px 18px; border-radius:16px; } .step { padding:24px; } .step:first-child { padding-inline-start:24px; }
  .sitecard { padding:22px; }
  .band { padding-inline:20px; } .band-title { font-size:31px; } .band-lede { font-size:15px; }
  .feature-tabs { gap:2px; border-radius:12px; } .feature-tabs button { padding:9px 12px; font-size:13px; gap:7px; min-height:42px; }
  /* The row scrolls; faded ends say there is more of it. */
  .feature-tabs { -webkit-mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent); mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent); }
  .feature-copy h3 { font-size:26px; } .feature-copy p { font-size:15px; }
  .tour-points li { font-size:14px; } .app-window { border-radius:10px; } .app-window-bar { padding:8px 10px; }
  .featurecard { padding:24px 20px; } .featurecard h4 { font-size:19px; } .featurecard p { font-size:14px; }
  .groundshot figcaption h3 { font-size:18px; } .groundfacts dd { font-size:16px; }
  .platformgrid { grid-template-columns:1fr; } .platformtile { padding:14px 16px; }
  .alsoblock { margin-top:30px; } .alsolist li { font-size:13.5px; }
  #paths .pathcard { padding:24px; } .pathcard h3 { font-size:23px; }
  .sitefooter { padding-block:40px 22px; }
  [lang="ar"] .harvest-copy h1 { font-size:37px; line-height:1.5; }
  [lang="ar"] .hero-lede { font-size:15px; }
}
.motion-paused .daylight,.motion-paused .field-scan,.motion-paused .field-pulse,
.motion-offscreen .daylight,.motion-offscreen .field-scan,.motion-offscreen .field-pulse { animation-play-state:paused; }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .daylight,.field-scan,.field-pulse { animation:none!important; } .site .btn { transition:none; } }
