html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--green);
  color: #fff;
  font-family: "Mona Sans", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

h1, h2 { text-wrap: balance; }
p { text-wrap: pretty; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button { font: inherit; }
[hidden] { display: none !important; }

.wrap { width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 var(--gutter); }

.button {
  display: inline-block;
  text-decoration: none;
  font-size: 16px;
  font-weight: 600;
  padding: 15px 22px;
  border-radius: 8px;
  border: 0;
  cursor: pointer;
}
.button--light { background: var(--mint); color: var(--green); }
.button--light:hover { background: #c1fbd8; }
.button--dark { background: var(--green); color: #fff; }
.button--dark:hover { background: var(--green-line); }
.text-link { font-size: 16px; font-weight: 500; text-decoration: none; }
.text-link:hover { text-decoration: underline; }

/* Status chips, as the control room draws them */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 26px;
  padding: 0 9px;
  border-radius: 6px;
  font-family: "Geist", sans-serif;
  font-size: 12.5px;
  font-weight: 500;
  white-space: nowrap;
}
.chip svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.chip--live { background: #e0f2fe; color: #0073ac; }
.chip--warning { background: #fff4e1; color: #b75200; }
.chip--warning svg { color: #e56900; }
.chip--danger { background: #fde8e8; color: #a30036; }
.chip--danger svg { color: #ff466b; }
.chip--success { background: #dffed8; color: #2d8014; }
.chip--success svg { color: #36a50d; }
.chip--default { background: #f6f6f6; color: var(--body); }

.bar { position: relative; flex: 1; min-width: 40px; height: 6px; border-radius: 3px; background: #ebebeb; }
.bar i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 3px; background: #0073ac; transition: width 500ms ease, background 300ms ease; }

.live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 4px rgba(96, 252, 174, 0.3); flex: none; }
.live-dot--small { width: 7px; height: 7px; box-shadow: none; }

/* Header */
.header { position: absolute; top: 0; left: 0; right: 0; z-index: 5; }
.header__inner { height: 96px; display: flex; align-items: center; gap: 40px; }
.lockup { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.lockup__mark { color: #fff; flex: none; }
.lockup__name { margin-left: -4px; font-size: 22px; font-weight: 700; font-stretch: 112.5%; letter-spacing: -0.01em; }
.lockup__rule { width: 1px; height: 22px; background: var(--green-line); }
.lockup__by { display: flex; align-items: center; gap: 7px; font-size: 13px; color: var(--green-muted); }
.nav { margin-left: auto; display: flex; gap: 28px; font-size: 15px; color: var(--green-muted); }
.nav a { text-decoration: none; }
.nav a:hover { color: #fff; }
.header__demo { font-size: 15px; padding: 11px 18px; }

/* Hero */
.hero { position: relative; min-height: 880px; overflow: hidden; background: var(--graphite); }
.hero__media { position: absolute; inset: 0; z-index: 0; }
.hero__media video { width: 100%; height: 100%; object-fit: cover; transition: opacity 450ms linear; }
.hero__media video.is-cut { opacity: 0; }
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(12, 14, 13, 0.9) 0%, rgba(12, 14, 13, 0.62) 42%, rgba(12, 14, 13, 0.25) 75%),
    linear-gradient(0deg, rgba(12, 14, 13, 0.7) 0%, rgba(12, 14, 13, 0) 40%);
  pointer-events: none;
}
.hero__inner { position: relative; z-index: 3; padding-top: 190px; padding-bottom: 120px; }
.hero__inner > * { max-width: 600px; }
.eyebrow { margin: 0 0 20px; font-size: 15px; font-weight: 500; color: var(--green-muted); }
.hero h1 { margin: 0 0 28px; font-size: clamp(38px, 4.2vw, 60px); line-height: 1.08; font-weight: 650; font-stretch: 100%; letter-spacing: -0.02em; }
.lead { margin: 0 0 36px; font-size: clamp(17px, 1.3vw, 19px); line-height: 1.6; color: var(--green-soft); max-width: 42ch; }
.actions { display: flex; align-items: center; gap: 24px; }

/* Our goal, and the modules */
.ioms { background: #fff; color: var(--ink); padding: 104px 0 96px; }
.ioms .wrap { display: flex; flex-direction: column; gap: 72px; }
.ioms__goal { display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: 48px; padding-bottom: 72px; border-bottom: 1px solid var(--rule); }
.ioms__label { margin: 0; padding-top: 10px; font-size: 15px; font-weight: 600; color: var(--quiet); }
.ioms__statement { margin: 0; max-width: 40ch; font-size: clamp(22px, 2.1vw, 30px); line-height: 1.4; font-weight: 500; letter-spacing: -0.01em; }
.ioms__intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: start; }
.ioms__intro p { margin: 0; max-width: 52ch; font-size: clamp(17px, 1.35vw, 19px); line-height: 1.5; color: var(--body); }

.records { display: flex; flex-direction: column; gap: 32px; padding: 24px 0 0; color: var(--ink); font-family: "Geist", sans-serif; }
.records__map { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 240px minmax(0, 1fr); grid-template-rows: 1fr auto 1fr; grid-template-areas: "desk . driver" "desk hub driver" "desk planned driver"; column-gap: 112px; row-gap: 32px; align-items: center; }
.records__dots { position: absolute; top: -32px; left: -40px; width: calc(100% + 80px); height: calc(100% + 64px); pointer-events: none; }
.records__lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.records__side--desk { grid-area: desk; }
.records__side--driver { grid-area: driver; }
.records__hub { grid-area: hub; position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 36px 20px; border-radius: 20px; background: #fff; border: 1px solid #d9dcd7; text-align: center; transition: box-shadow 500ms ease, border-color 500ms ease; }
.records__hub b { font-family: "Mona Sans", sans-serif; font-size: 20px; font-weight: 650; }
.records__hub span { font-size: 14px; color: var(--quiet); }
.records__hub.is-receiving { border-color: var(--accent); box-shadow: 0 0 0 6px rgba(21, 162, 103, 0.1), 0 0 40px rgba(21, 162, 103, 0.14); }
.records__planned { grid-area: planned; align-self: start; position: relative; z-index: 1; padding: 16px; border: 1px dashed #c4c8c2; border-radius: 16px; background: #fff; }
.records h3 { margin: 0 0 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-family: "Mona Sans", sans-serif; font-size: 15px; font-weight: 600; color: var(--quiet); }
.records__planned h3 { justify-content: center; }
.records__status { position: absolute; top: -9px; right: 14px; font-family: "Geist", sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.04em; line-height: 1; color: #4a4d4a; background: #e6e8e5; border-radius: 5px; padding: 3px 6px; }
.records ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.records__planned ul { flex-direction: row; justify-content: center; }
.records__module { position: relative; z-index: 1; width: 100%; display: flex; flex-direction: column; gap: 4px; padding: 12px 16px; text-align: left; background: #fff; color: var(--ink); border: 1px solid #e1e4df; border-radius: 12px; cursor: pointer; transition: border-color 600ms ease, background 600ms ease; }
.records__module b { font-size: 15px; font-weight: 600; }
.records__module span { font-size: 14px; line-height: 1.45; color: var(--quiet); }
.records__planned .records__module { width: auto; background: transparent; border-style: dashed; border-color: #c4c8c2; color: var(--quiet); }
.records__module:hover { border-color: #b4b9b3; }
.records__caption { display: none; }

.records__line { fill: none; stroke: #d3d6d1; stroke-width: 1.5; transition: stroke 700ms ease; }
.records__line--planned { stroke-dasharray: 3 5; }
.records__joint { fill: #fff; stroke: #b4b9b3; stroke-width: 1.5; }
.records__pulse { fill: var(--accent); transition: opacity 300ms ease; }
.records__glow { fill: rgba(21, 162, 103, 0.18); transition: opacity 300ms ease; }

/* On wide screens with script, a module shows its name, and the caption under the map says what happens between two of them */
@media (min-width: 1081px) {
  .js .records__module span { display: none; }
  .js .records__caption { display: flex; flex-direction: column; align-items: center; gap: 6px; min-height: 4.4em; margin: 0; padding-top: 24px; border-top: 1px solid var(--rule); text-align: center; font-size: 17px; line-height: 1.6; color: var(--body); }
  .records__route { font-size: 13px; font-weight: 600; letter-spacing: 0.02em; color: var(--accent); }
  .records__line.is-active { stroke: rgba(21, 162, 103, 0.55); }
  .records__module.is-sending, .records__module.is-active { border-color: var(--accent); }
  .records__module.is-arrived { border-color: var(--accent); background: #f1faf5; }
  .records__line:not(.records__line--planned) { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1600ms cubic-bezier(0.65, 0, 0.35, 1), stroke 700ms ease; transition-delay: calc(var(--order) * 90ms), 0ms; }
  .records.is-drawn .records__line { stroke-dashoffset: 0; }
  .records__line--planned { opacity: 0; transition: opacity 800ms ease 1400ms; }
  .records.is-drawn .records__line--planned { opacity: 1; }
}

/* Section headings shared by the sections below */
.ioms h2, .morning h2, .drivers h2, .hours h2 { margin: 0 0 20px; font-size: clamp(32px, 3.4vw, 48px); line-height: 1.1; font-weight: 650; font-stretch: 100%; letter-spacing: -0.02em; }
.morning__say p, .drivers__say p, .hours__say p { margin: 0; font-size: clamp(17px, 1.3vw, 19px); line-height: 1.6; }

/* A morning: the static layout, used on narrow screens and with reduced motion */
.morning { background: var(--ground); color: var(--ink); }
.morning__stage { padding: 88px var(--gutter); }
.morning__canvas { max-width: 1312px; margin: 0 auto; display: flex; flex-direction: column; gap: 32px; }
.morning__say { max-width: 640px; }
.morning__say p { color: var(--body); }
.morning__say--after { order: 3; }
.morning__hint { display: none; }
.desk { order: 2; display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.board--morning { order: 4; }

.scrap { width: var(--w); max-width: 100%; transform: rotate(calc(var(--rot) * 0.5)); font-family: "Geist", sans-serif; font-size: 13.5px; color: var(--ink); }
.scrap__body { display: flex; flex-direction: column; gap: 8px; }
.scrap--voicemail, .scrap--recents, .scrap--sheet, .scrap--paper { background: #fff; box-shadow: 0 14px 30px -16px rgba(0, 0, 0, 0.25); }
.scrap--voicemail { border-radius: 14px; padding: 12px 16px; }
.scrap__meta { font-size: 13px; color: var(--ink-muted); }
.wave { display: flex; gap: 3px; align-items: center; height: 22px; }
.wave i { width: 3px; background: var(--ink); border-radius: 2px; }
.wave i.is-left { background: #c2c2c2; }
.scrap--texts { font-size: 14px; }
.scrap--texts .scrap__body { gap: 6px; }
.bubble { align-self: flex-start; background: #ececea; border-radius: 16px; padding: 8px 12px; }
.bubble small { color: var(--ink-muted); }
.scrap--recents { border-radius: 14px; overflow: hidden; }
.scrap--recents .scrap__body { gap: 0; }
.recent { display: flex; justify-content: space-between; padding: 9px 14px; border-bottom: 1px solid #ebebeb; }
.recent:last-child { border-bottom: 0; }
.recent span + span { color: var(--ink-muted); }
.recent.is-missed span:first-child { color: var(--sign-red); }
.scrap--sheet { border-radius: 8px; overflow: hidden; font-size: 13px; }
.scrap--sheet .scrap__body { gap: 0; }
.sheet__title { padding: 7px 12px; background: #f6f6f6; border-bottom: 1px solid #ebebeb; color: var(--ink-muted); }
.sheet__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; padding: 6px 12px; }
.sheet__grid .is-over { background: #fde8e8; color: #a30036; padding: 0 4px; justify-self: start; }
.scrap--paper { background: #fbfaf6; border-radius: 2px; padding: 10px 14px; }
.scrap--paper .scrap__body { gap: 4px; }
.paper__meta { font-size: 12px; color: var(--ink-muted); }
.pen { color: #c0392b; font-size: 16px; }

.board { background: #fff; color: var(--ink); border: 1px solid #dfdfdf; border-radius: 12px; overflow: hidden; font-family: "Geist", sans-serif; }
.board__bar { height: 44px; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 0 20px; border-bottom: 1px solid #ebebeb; font-size: 13px; color: var(--ink-muted); }
.board__bar b { color: var(--ink); font-weight: 600; }
.board__tools { display: flex; align-items: center; gap: 16px; }
.board__clock { display: flex; align-items: center; gap: 8px; font-variant-numeric: tabular-nums; }
.player { display: flex; gap: 2px; padding: 3px; background: var(--ink); border-radius: 999px; font-size: 12px; color: #fff; }
.player span { padding: 4px 8px; }
.player .player__play { color: var(--ink); background: #fff; border-radius: 999px; padding: 4px 10px; font-weight: 600; }
.player .is-on { box-shadow: inset 0 0 0 1px #8a8f8c; border-radius: 999px; }
.board__head, .board__row { display: grid; grid-template-columns: 300px 200px 260px minmax(0, 1fr); gap: 16px; align-items: center; padding: 0 20px; }
.board__head { height: 34px; border-bottom: 1px solid #ebebeb; font-size: 12px; color: var(--ink-muted); }
.board__row { height: 64px; border-bottom: 1px solid #f0f0f0; font-size: 14px; }
.board__row:last-child { border-bottom: 0; }
.board__row b { font-weight: 600; }
.board__status { position: relative; height: 26px; }
.board__status .slot { display: none; position: absolute; left: 0; top: 9px; width: 110px; height: 8px; border-radius: 4px; background: #ebebeb; }
.board__status .chip { position: absolute; left: 0; top: 0; }
.board__driver { color: var(--ink-muted); }
.board__instead { color: var(--ink); font-size: 13px; }

/* A morning: the pinned scroll, on wide screens with motion allowed */
.morning.is-animated { height: 360vh; }
.is-animated .morning__stage { position: sticky; top: 0; height: 100vh; padding: 0; overflow: hidden; }
.is-animated .morning__canvas {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1440px;
  max-width: none;
  height: 960px;
  display: block;
  transform: translate(-50%, -50%) scale(var(--fit, 1));
}
.is-animated .morning__say { position: absolute; left: 64px; top: 72px; width: 560px; }
.is-animated .morning__say--after { width: 640px; opacity: 0; }
.is-animated .morning__hint { display: block; position: absolute; left: 64px; top: 340px; margin: 0; font-size: 15px; color: var(--quiet); }
.is-animated .desk { display: block; }
.is-animated .scrap { position: absolute; left: var(--x); top: var(--y); max-width: none; transform-origin: center; transform: rotate(var(--rot)); }
.is-animated .board--morning { position: absolute; left: 64px; top: 470px; width: 1312px; opacity: 0; }
.is-animated .board__status .slot { display: block; }
.is-animated .board__status .chip,
.is-animated .board__driver,
.is-animated .board__instead,
.is-animated .player { opacity: 0; }

/* The driver's app */
.drivers { position: relative; overflow: hidden; background: var(--green); }
.drivers__photo { position: absolute; left: 0; top: 0; width: 100%; height: 600px; object-fit: cover; object-position: center 58%; filter: brightness(1.3) contrast(1.05); }
.drivers::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 600px; z-index: 1; background: linear-gradient(180deg, rgba(0, 28, 11, 0.25) 0%, rgba(0, 28, 11, 0.6) 55%, var(--green) 100%); }
.drivers__inner { position: relative; z-index: 2; padding-top: 168px; padding-bottom: 96px; display: flex; flex-direction: column; gap: 64px; }
.drivers h2 { max-width: 16ch; }
.drivers__say p { color: var(--green-soft); max-width: 40ch; }
.drivers__body { display: flex; gap: 72px; align-items: center; }

.phone { width: 280px; height: 584px; flex: none; border-radius: 46px; background: var(--green-deep); padding: 11px; box-shadow: 0 0 0 1px var(--green-line), 0 40px 80px -40px rgba(0, 0, 0, 0.8); }
.phone__screen { width: 258px; height: 562px; border-radius: 36px; overflow: hidden; background: #f3f5f2; }
.phone__inner { position: relative; width: 402px; height: 874px; transform: scale(0.6418); transform-origin: top left; background: #f3f5f2; color: var(--ink); font-family: "Geist", sans-serif; }
.phone__inner img { max-width: none; }

.drivers__desk { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.board--drivers { border: 0; }
.board--drivers .board__bar { padding: 0 18px; }
.board--drivers .board__bar b { color: var(--ink); }
.board__head--drivers, .board__row--drivers { grid-template-columns: 220px 170px minmax(0, 1fr) 150px; padding: 0 18px; }
.board__head--drivers { height: auto; padding-top: 10px; padding-bottom: 10px; }
.board__row--drivers { height: auto; padding-top: 12px; padding-bottom: 12px; border-bottom: 0; border-top: 1px solid #f0f0f0; }
.board__row--drivers.is-context { color: var(--quiet); }
.board__row--drivers.is-focus { padding-top: 14px; padding-bottom: 14px; background: #f6f6f4; box-shadow: inset 3px 0 0 var(--accent); }
.board__row--drivers.is-focus > span:last-child { color: var(--body); }
.board__progress { display: flex; align-items: center; gap: 10px; font-size: 12.5px; color: var(--ink-muted); }
.board__progress > span:last-child { min-width: 92px; }
.board__note { padding: 12px 18px; border-top: 1px solid #ebebeb; font-size: 13px; color: var(--body); background: #f6f6f4; }

.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.steps button {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 18px 18px 0 0;
  text-align: left;
  color: var(--green-muted);
  background: transparent;
  border: 0;
  border-top: 3px solid var(--green-line);
  cursor: pointer;
  transition: border-color 300ms ease, color 300ms ease;
}
.steps__time { font-family: "Geist", sans-serif; font-size: 14px; font-variant-numeric: tabular-nums; }
.steps b { font-size: 18px; font-weight: 600; }
.steps button > span:last-child { font-size: 14px; line-height: 1.4; }
.steps button.is-done { border-top-color: var(--quiet); }
.steps button.is-done b { color: #fff; }
.steps button[aria-current="step"] { border-top-color: var(--mint); color: #fff; }
.steps button[aria-current="step"] .steps__time { color: var(--mint); }
.steps button:hover b { color: #fff; }

/* Driver hours */
.hours { background: #fff; color: var(--ink); padding: 88px 0; }
.hours .wrap { display: flex; flex-direction: column; gap: 56px; }
.hours__top { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 64px; align-items: end; }
.hours h2 { max-width: 19ch; }
.hours__say p { color: var(--body); max-width: 44ch; }
.signs { margin: 0; display: flex; flex-direction: column; gap: 14px; align-items: flex-end; }
.signs__row { display: flex; gap: 16px; align-items: flex-end; }
.sign {
  width: 128px;
  padding: 14px 8px 16px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: center;
  font-stretch: 82%;
  background: #fff;
  color: var(--ink);
  border-radius: 10px;
  box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 6px var(--ink), 0 16px 28px -18px rgba(0, 0, 0, 0.3);
}
.sign span { font-size: 15px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.sign b { font-size: 80px; line-height: 0.9; font-weight: 800; }
.sign--hit { box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 6px var(--ink), 0 0 0 4px #fff, 0 0 0 6px var(--sign-red), 0 16px 28px -18px rgba(0, 28, 11, 0.45); }
.signs figcaption { font-family: "Geist", sans-serif; font-size: 13px; color: var(--quiet); }

.picker { background: #fff; color: var(--ink); border: 1px solid var(--rule); border-radius: 16px; padding: 26px 30px 14px; font-family: "Geist", sans-serif; box-shadow: 0 30px 60px -40px rgba(0, 28, 11, 0.35); }
.picker__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding-bottom: 18px; border-bottom: 1px solid var(--rule); }
.picker__head b { font-size: 18px; font-weight: 600; }
.picker__head span { font-size: 14px; color: var(--quiet); }
.picker__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 56px; }
.picker__col { display: flex; flex-direction: column; }
.picker__col--refused { border-left: 1px solid var(--rule); padding-left: 56px; margin-left: -28px; }
.picker__group { margin: 0; padding: 16px 0 6px; font-size: 13px; color: var(--quiet); }
.picker__row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 14px; align-items: center; padding: 14px 0; border-top: 1px solid var(--rule-soft); }
.picker__row--refused { grid-template-columns: 30px minmax(0, 1fr); }
.picker__who { display: flex; flex-direction: column; gap: 3px; font-size: 13.5px; color: var(--quiet); }
.picker__who b { font-size: 16px; font-weight: 600; color: var(--ink); }
.picker__row--refused .picker__who b { color: var(--quiet); }
.picker__who .is-refused { color: #a30036; }
.left-chip { font-size: 13px; background: #def8e7; color: #085c38; border-radius: 6px; padding: 4px 8px; white-space: nowrap; }
.choose { font-size: 14px; font-weight: 600; color: #fff; background: var(--ink); border: 0; border-radius: 8px; padding: 9px 16px; cursor: pointer; min-width: 88px; }
.choose:hover { background: #2e302f; }
.choose[aria-pressed="true"] { background: #def8e7; color: #085c38; }
.picker__toast { margin: 0; min-height: 20px; padding: 2px 0 8px; font-size: 13px; color: #085c38; }
.mini-sign { width: 26px; height: 32px; border: 1.5px solid var(--ink); border-radius: 4px; display: grid; place-items: center; font-family: "Mona Sans", sans-serif; font-stretch: 82%; font-size: 14px; font-weight: 800; color: var(--ink); box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--sign-red); }
.mini-trip { width: 26px; height: 26px; border-radius: 50%; background: #eeeeec; display: grid; place-items: center; color: var(--quiet); }
.mini-trip svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Close */
.close { position: relative; overflow: hidden; background: var(--green); }
.close__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; filter: grayscale(0.75) brightness(0.8); }
.close::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(0, 28, 11, 0.94) 0%, rgba(0, 28, 11, 0.62) 50%, rgba(0, 28, 11, 0.86) 100%); }
.close__inner { position: relative; z-index: 2; padding-top: 104px; padding-bottom: 72px; display: flex; justify-content: space-between; align-items: flex-start; gap: 64px; }
.close__say { padding-top: 16px; max-width: 600px; }
.close h2 { margin: 0 0 24px; font-size: clamp(36px, 4vw, 56px); line-height: 1.08; font-weight: 650; letter-spacing: -0.02em; }
.close__say p { margin: 0; font-size: clamp(17px, 1.3vw, 19px); line-height: 1.6; color: var(--green-soft); max-width: 40ch; }

.form { width: 480px; flex: none; display: flex; flex-direction: column; gap: 14px; padding: 28px; border-radius: 14px; background: #fff; color: var(--ink); font-family: "Geist", sans-serif; }
.form__title { font-size: 18px; font-weight: 600; }
.form label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--body); }
.form input, .form select, .form textarea { font: inherit; font-size: 15px; color: var(--ink); padding: 11px 12px; border: 1px solid #c2c2c2; border-radius: 8px; background: #fff; }
.form textarea { resize: none; }
.form input:focus-visible, .form select:focus-visible, .form textarea:focus-visible { outline: 2px solid var(--accent); outline-offset: 0; border-color: var(--accent); }
.form [aria-invalid="true"] { border-color: #a30036; }
.form__pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.form .button { margin-top: 4px; padding: 15px; border-radius: 10px; }
.form__status { margin: 0; font-size: 13px; color: var(--body); }
.form__status:empty { display: none; }

.footer { position: relative; z-index: 2; display: flex; align-items: center; gap: 12px; padding-top: 20px; padding-bottom: 32px; font-size: 13px; color: var(--green-muted); }
.footer::before { content: ""; position: absolute; left: var(--gutter); right: var(--gutter); top: 0; border-top: 1px solid var(--green-line); }
.footer__company { display: flex; align-items: center; gap: 12px; text-decoration: none; color: #fff; font-weight: 700; font-stretch: 112.5%; }
.footer > span { margin-left: auto; }

/* Narrow screens */
@media (max-width: 1180px) {
  .nav { display: none; }
  .header__demo { margin-left: auto; }
  .drivers__body { gap: 48px; }
  .board__head--drivers, .board__row--drivers { grid-template-columns: 200px 150px minmax(0, 1fr) 100px; }
}

@media (max-width: 1080px) {
  .hero { min-height: 0; }
  .hero__inner { padding-top: 140px; padding-bottom: 96px; }

  .board__head { display: none; }
  .board__row { height: auto; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; padding: 14px 16px; }
  .board__row > :first-child { grid-column: 1 / -1; }
  .board__status { height: 26px; min-width: 120px; }
  .board__driver { grid-column: 1 / -1; grid-row: 2; }
  .board__status { grid-column: 2; grid-row: 2; }
  .board__instead { grid-column: 1 / -1; }
  .board__instead::before { content: "Instead of "; color: var(--ink-muted); }
  .board__tools .player { display: none; }

  .drivers__body { flex-direction: column; align-items: stretch; }
  .phone { align-self: center; }
  .board__row--drivers { grid-template-columns: minmax(0, 1fr) auto; }
  .board__row--drivers > :nth-child(1) { grid-column: 1; grid-row: 1; }
  .board__row--drivers > :nth-child(2) { grid-column: 2; grid-row: 1; }
  .board__row--drivers > :nth-child(3) { grid-column: 1 / -1; grid-row: 2; }
  .board__row--drivers > :nth-child(4) { display: none; }
  .board__row--drivers.is-context > :nth-child(3) { display: none; }

  .ioms__goal, .ioms__intro { grid-template-columns: 1fr; gap: 20px; }
  .records__map { grid-template-columns: 1fr; grid-template-rows: none; grid-template-areas: "desk" "hub" "driver" "planned"; row-gap: 24px; }
  .records__lines, .records__dots { display: none; }
  .records { padding: 8px 0 0; }
  .records__hub { align-self: stretch; padding: 24px 20px; }
  .records__planned ul { flex-direction: column; }
  .records__planned .records__module { width: 100%; }

  .hours__top { grid-template-columns: 1fr; gap: 40px; }
  .signs { align-items: flex-start; }

  .close__inner { flex-direction: column; padding-top: 88px; }
  .form { width: 100%; max-width: 560px; }
}

@media (max-width: 720px) {
  .header__inner { height: 72px; gap: 16px; }
  .lockup__rule, .lockup__by { display: none; }
  .header__demo { padding: 10px 14px; font-size: 14px; }
  .hero__inner { padding-top: 112px; }
  .eyebrow, .hero h1, .lead { margin-bottom: 20px; }
  .actions { flex-wrap: wrap; gap: 16px 24px; }

  .morning__stage { padding: 64px var(--gutter); }
  .desk { gap: 14px; }
  .scrap { transform: none; }

  .drivers__photo, .drivers::before { height: 420px; }
  .drivers__inner { padding-top: 120px; padding-bottom: 72px; gap: 40px; }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 24px; }
  .steps b { font-size: 20px; }

  .ioms { padding: 64px 0; }
  .ioms .wrap { gap: 48px; }
  .ioms__goal { padding-bottom: 48px; }

  .hours { padding: 64px 0; }
  .hours .wrap { gap: 40px; }
  .signs { align-items: stretch; }
  .signs__row { gap: 10px; }
  .sign { width: auto; flex: 1; min-width: 0; max-width: 128px; padding: 12px 6px 14px; }
  .sign span { font-size: 12px; }
  .sign b { font-size: 60px; }
  .picker { padding: 20px 18px 8px; }
  .picker__cols { grid-template-columns: 1fr; }
  .picker__col--refused { border-left: 0; padding-left: 0; margin-left: 0; }
  .picker__row { grid-template-columns: minmax(0, 1fr) auto; }
  .picker__row .left-chip { grid-column: 1; justify-self: start; grid-row: 2; }
  .picker__row .choose { grid-row: 1 / span 2; grid-column: 2; }
  .picker__row--refused { grid-template-columns: 30px minmax(0, 1fr); }

  .close__inner { padding-top: 72px; padding-bottom: 56px; gap: 40px; }
  .form { padding: 22px 18px; }
  .form__pair { grid-template-columns: 1fr; }
  .footer { flex-wrap: wrap; }
  .footer > span { margin-left: 0; flex-basis: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .records__line { transition: none !important; stroke-dashoffset: 0 !important; }
  .records__line--planned { opacity: 1 !important; }
  .records__pulse, .records__glow { display: none; }
  .bar i, .steps button { transition: none; }
}
