/* FactoryVision. Tokens per spec section 2. */
:root{
  --ground:#14130F; --surface:#1E1C17; --line:#3A372E;
  --ink:#F1ECE0; --ink-soft:#ADA795;
  --ok:#3FCB6B; --warn:#F5C518; --bad:#F0473A;
  --ease-out:cubic-bezier(0.23,1,0.32,1);
  --rail-h:64px;
  --gutter:clamp(1rem,4vw,4rem);
  --measure:62ch;
}
@media (min-width:860px){ :root{ --rail-h:56px; } }

@font-face{ font-family:'Archivo'; src:url('/assets/fonts/archivo-latin-wdth-normal.woff2') format('woff2'); font-weight:100 900; font-stretch:62% 125%; font-display:swap; unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face{ font-family:'Archivo'; src:url('/assets/fonts/archivo-latin-ext-wdth-normal.woff2') format('woff2'); font-weight:100 900; font-stretch:62% 125%; font-display:swap; unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7,U+02CC,U+02CE,U+02D7,U+02DD,U+02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-U+20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face{ font-family:'JetBrains Mono'; src:url('/assets/fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2'); font-weight:400; font-display:swap; unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face{ font-family:'JetBrains Mono'; src:url('/assets/fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2'); font-weight:500; font-display:swap; unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face{ font-family:'JetBrains Mono'; src:url('/assets/fonts/jetbrains-mono-latin-ext-400-normal.woff2') format('woff2'); font-weight:400; font-display:swap; unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7,U+02CC,U+02CE,U+02D7,U+02DD,U+02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EFF,U+2020,U+20A0-20AB,U+20AD-U+20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face{ font-family:'JetBrains Mono'; src:url('/assets/fonts/jetbrains-mono-latin-ext-500-normal.woff2') format('woff2'); font-weight:500; font-display:swap; unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7,U+02CC,U+02CE,U+02D7,U+02DD,U+02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EFF,U+2020,U+20A0-20AB,U+20AD-U+20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
body{
  margin:0; background:var(--ground); color:var(--ink);
  font-family:'Archivo',sans-serif; font-size:1.0625rem; line-height:1.6;
  text-wrap:pretty; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--ink);color:var(--ground)}
:root{caret-color:var(--ink)}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}
body{scrollbar-color:var(--line) var(--ground);scrollbar-width:thin}
a{color:var(--ink);text-decoration-thickness:1px;text-underline-offset:3px}
h1,h2,h3{text-wrap:balance;font-stretch:115%;font-weight:750;letter-spacing:-0.015em;line-height:1.05}
h2{font-size:clamp(2rem,4.5vw,3.2rem);margin:0 0 .75em}
h3{font-size:clamp(1.1rem,2vw,1.35rem);margin:2em 0 .4em}
p{margin:0 0 1em}
.mono{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums}
.soft{color:var(--ink-soft)}
.wrap{max-width:1360px;margin:0 auto;padding:clamp(3rem,8vw,6rem) var(--gutter)}
.wrap-full{max-width:none;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.caption{color:var(--ink-soft);font-size:.9rem;margin-top:2rem}
.grain{
  position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
}
.btn{
  display:inline-block;border-radius:2px;border:1px solid var(--line);
  padding:.7em 1.4em;font:inherit;font-weight:600;text-decoration:none;
  color:var(--ink);background:transparent;cursor:pointer;
  transition:transform .14s var(--ease-out),background-color .14s var(--ease-out),color .14s var(--ease-out);
}
.btn-primary{background:var(--ink);color:var(--ground);border-color:var(--ink)}
@media (hover:hover) and (pointer:fine){
  .btn:hover{transform:translateY(-1px)}
}
.btn:active{transform:scale(.97)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.aria-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Reveal: hidden only when JS is on */
.js .reveal{opacity:0;transform:translateY(12px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.js .reveal.seen{opacity:1;transform:none}

/* Top nav: part of the hero, scrolls away with it */
.topnav{
  position:absolute;top:0;left:0;right:0;z-index:10;
  display:flex;justify-content:space-between;align-items:center;
  padding:1rem var(--gutter);
}
.wordmark{font-weight:800;font-stretch:120%;text-decoration:none;letter-spacing:-0.01em}
.topnav-right{display:flex;gap:1rem;align-items:center}
.langlink{text-decoration:none;font-weight:600}

/* Hero */
.hero{height:180vh;position:relative}
.hero-stage{position:sticky;top:0;height:100vh;overflow:hidden}
/* Frame wrapper covers the full hero stage while keeping 16:9 footage intact. */
.hero-frame{
  position:absolute;left:50%;top:50%;
  width:max(100vw,177.78vh);height:max(100vh,56.25vw);
  transform:translate(-50%,-50%);
  background:#000;
}
/* Video at full contrast: no filter, no opacity, no transform */
.hero-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:30% 70%;
}
/* Single scrim: radial gradient anchored bottom right for copy contrast */
.hero-band{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,rgba(20,19,15,.94) 0%,rgba(20,19,15,.8) 36%,rgba(20,19,15,0) 62%);
  -webkit-mask-image:linear-gradient(to right,transparent 22%,#000 44%);mask-image:linear-gradient(to right,transparent 22%,#000 44%);
}
/* Small top band for the nav only */
.hero-band-top{
  position:absolute;left:0;right:0;top:0;height:14rem;pointer-events:none;z-index:2;
  background:linear-gradient(to bottom,rgba(20,19,15,.85),transparent);
}
/* Annotations live inside the frame wrapper, locked to the footage */
.hero-anno{position:absolute;inset:0;pointer-events:none}
.hero-lens{position:absolute;inset:0;pointer-events:none}
.anno-lamp{position:absolute;display:flex;align-items:center;gap:.5rem}
.anno-lamp.is-offscreen{display:none}
.anno-lamp.flip{flex-direction:row-reverse;transform:translateX(-100%)}
.anno-dot{width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 2px rgba(20,19,15,.8)}
.anno-label{
  background:var(--ground);border:1px solid var(--line);border-radius:2px;
  font-family:'JetBrains Mono',monospace;font-size:.8rem;padding:.15em .5em;color:var(--ink);
  white-space:nowrap;
}
.anno-lamp::before{content:"";width:1px;height:14px;background:rgba(255,255,255,.7);align-self:flex-end;margin-left:4.5px}
.anno-lamp.flip::before{margin-left:0;margin-right:4.5px}
.anno-countline{position:absolute;left:48%;top:62%;width:14%;pointer-events:none}
.countline-line{display:block;width:100%;height:2px;background:#fff}
.countline-label{
  position:absolute;left:calc(100% + .5rem);top:50%;transform:translateY(-50%);
  font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--ink);
  background:var(--ground);border:1px solid var(--line);border-radius:2px;padding:.15em .5em;
  white-space:nowrap;
}
.lens-tick{position:absolute;width:14px;height:14px;border:1px solid rgba(255,255,255,.8)}
.lens-tick.tl{top:6%;left:6%;border-right:0;border-bottom:0}
.lens-tick.tr{top:6%;right:6%;border-left:0;border-bottom:0}
.lens-tick.bl{bottom:8%;left:6%;border-right:0;border-top:0}
.lens-tick.br{bottom:8%;right:6%;border-left:0;border-top:0}
.lens-label{
  position:absolute;bottom:calc(8% + 1px);right:calc(6% + 22px);
  font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--ink);
  background:rgba(20,19,15,.5);padding:.1em .4em;border-radius:2px;
}
/* Copy block: lower right on desktop, anchored by its bottom edge */
.hero-copy{
  position:absolute;left:var(--gutter);bottom:calc(var(--rail-h) + 1.5rem);z-index:5;
}
.hero-copy h1{font-size:clamp(2rem,7vw,2.6rem);margin:0 0 .5em;line-height:1.06}
.hero-copy h1 .h1-s{display:inline}
.hero-sub{font-size:1rem;color:var(--ink);max-width:var(--measure);margin:0}
.hero-row{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center}

/* Lamp travel overlay */
.lamptravel{position:fixed;inset:0;pointer-events:none;z-index:30;opacity:0;visibility:hidden}
.travel-lamp{position:absolute;display:flex;align-items:center;gap:.5rem;will-change:transform}
.travel-lamp .anno-label{transition:opacity .2s linear}

/* Problem: clears the fixed rail, copy centred above it */
.problem{
  background:var(--ground);min-height:calc(100vh - var(--rail-h));
  display:flex;align-items:center;position:relative;
}
.problem .wrap{width:100%;padding-top:clamp(2rem,6vw,4rem);padding-bottom:calc(var(--rail-h) + 2rem)}
.problem-l1{
  font-stretch:118%;font-weight:780;letter-spacing:-0.02em;line-height:1.05;
  font-size:clamp(2.2rem,5.5vw,5.5rem);max-width:20ch;margin:0 0 .6em;
}
.problem-l2{font-size:clamp(1.15rem,1.8vw,1.6rem);color:var(--ink-soft);max-width:var(--measure);margin:0}
.js .problem .reveal:nth-child(2){transition-delay:.12s}

/* Count */
.count{position:relative}
.count-stage{padding-top:clamp(2rem,5vw,4rem);padding-bottom:calc(var(--rail-h) + 2rem)}
.count-grid{display:grid;gap:2.5rem;min-width:0}
.legend{font-size:.9rem;color:var(--ink-soft);margin-bottom:1.2rem}
.count-board{display:flex;flex-direction:column;min-width:0;min-height:0}
.brow-wrap{display:grid;grid-template-rows:repeat(4,1fr);border-top:1px solid var(--line);flex:1;min-height:0}
.brow{
  display:grid;grid-template-columns:22px 1fr auto;grid-template-areas:"lamp name count" "lamp bar bar" "lamp proj proj";
  align-items:center;gap:.4rem 1rem;min-width:0;
  background:transparent;border:0;
  padding:1rem .5rem;color:var(--ink);font:inherit;text-align:left;cursor:pointer;
  border-radius:2px;
}
.brow:last-of-type{border-bottom:1px solid var(--line)}
@media (hover:hover) and (pointer:fine){ .brow:hover{background:var(--surface)} }
.brow[aria-pressed="true"]{background:var(--surface)}
.lamp{width:22px;height:22px;border-radius:50%;background:var(--ok);display:inline-block;grid-area:lamp;transition:background-color .16s linear}
.rail .lamp,.orderline .lamp,.totals .lamp{width:10px;height:10px}
.brow .lamp{width:22px;height:22px}
.brow-name{grid-area:name;font-weight:700;font-stretch:112%;font-size:1.5rem;line-height:1.15}
.brow-count{grid-area:count;font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;font-size:1.25rem;color:var(--ink)}
.brow-bar{grid-area:bar;position:relative;height:6px;background:var(--surface);border-radius:2px;overflow:visible;display:block}
.bar-fill{position:absolute;left:0;top:0;bottom:0;background:var(--ink);border-radius:2px;width:0}
.bar-tick{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink-soft);left:0}
.brow-proj{grid-area:proj;font-size:.85rem;color:var(--ink-soft)}
.sample-note{margin-top:1.2rem;font-size:.9rem}
.sample-label-phone{margin-top:.5rem;font-size:.9rem;color:var(--ink-soft)}
.orderline{display:flex;align-items:center;gap:.6rem;margin-top:2rem;font-size:.9rem}
.machine-detail{font-size:.85rem;color:var(--ink-soft);margin-top:.6rem;min-height:1.2em}

/* Inspect */
.inspect{height:200vh;position:relative}
.inspect-stage{position:sticky;top:0;height:100vh;overflow:hidden}
.inspect-frame{position:absolute;inset:0;background:#000;overflow:hidden}
.inspect-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.inspect-scrim{
  position:absolute;left:0;right:0;bottom:0;height:70%;pointer-events:none;
  background:linear-gradient(to top,rgba(20,19,15,.96) 0%,rgba(20,19,15,.9) 42%,rgba(20,19,15,0) 100%);
}
.inspect-copy{position:absolute;left:var(--gutter);bottom:calc(var(--rail-h) + 2rem);max-width:34rem}
.inspect-copy h2{margin:0 0 .4em;padding-top:2rem}
.inspect-copy p{color:var(--ink)}
.measure{position:absolute;left:50%;top:45%;pointer-events:none;opacity:0;transition:opacity .5s linear}
.measure.on{opacity:1}
.measure-line{display:block;width:38%;height:2px;background:#fff}
.measure-label{display:inline-block;margin-top:.5rem;font-size:.8rem;background:var(--ground);border:1px solid var(--line);border-radius:2px;padding:.15em .5em;max-width:44vw}

/* Ledger */
.ledger-section{background:var(--ground);padding:clamp(3rem,7vw,5rem) 0 calc(var(--rail-h) + 3rem)}
.ledger-wrap{padding-top:clamp(3rem,7vw,5rem);padding-bottom:clamp(3rem,7vw,5rem)}
.ledger{display:flex;flex-direction:column;border-top:2px solid var(--ink)}
.ledger-row{
  display:grid;gap:.35rem 2rem;padding:1.4rem 0;border-bottom:1px solid var(--line);
}
.ledger-name{font-size:.85rem;color:var(--ink-soft);font-weight:400}
.ledger-q{font-size:clamp(1.3rem,2.2vw,2rem);font-weight:750;font-stretch:112%;line-height:1.2}
.ledger-m,.ledger-p{font-size:1rem}

/* Drift */
.drift{height:320vh;position:relative}
.drift-stage{
  position:sticky;top:0;height:calc(100vh - var(--rail-h));overflow:hidden;display:flex;flex-direction:column;
  padding:var(--rail-h) var(--gutter) .5rem;
}
/* Overlapping grid: all copy lines stack in row 1, line 3 sits in row 2 */
.drift-copy{
  display:grid;grid-template-columns:minmax(0,1fr);row-gap:.75rem;padding:1rem 0;
  flex:0 0 auto;position:relative;
}
.drift-big,.drift-line[data-line="0"],.drift-line[data-line="1"]{
  grid-row:1;grid-column:1;align-self:start;
}
.drift-line[data-line="2"]{
  grid-row:2;grid-column:1;align-self:start;
  font-size:clamp(1.1rem,1.8vw,1.5rem);font-weight:600;
}
.drift-line{
  margin:0;font-size:clamp(1.8rem,3.6vw,3.6rem);font-weight:750;font-stretch:112%;
  line-height:1.12;opacity:0;transition:opacity .25s linear;max-width:60ch;
}
.drift-line.on{opacity:1}
.drift-big{
  margin:0;font-size:clamp(2.4rem,5.4vw,5.6rem);font-weight:750;font-stretch:115%;
  line-height:1.08;opacity:0;transition:opacity .25s linear;max-width:60ch;
}
.drift-big.on{opacity:1}
.drift-big strong{font-weight:900;color:inherit}
/* Chart fills the full content width of the stage, down to the rail top */
.drift-chart-wrap{flex:1;min-height:0;width:100%;display:flex;align-items:stretch;justify-content:stretch}
.drift-chart{width:100%;height:100%;display:block}
.drift-caption{text-align:center;color:var(--ink-soft);font-size:.9rem;margin:.5rem 0 0}

/* Setup */
.setup{background:var(--ground);padding:clamp(4rem,9vw,7rem) 0 calc(var(--rail-h) + 3rem)}
.timeline{display:grid;gap:1.6rem;border-left:1px solid var(--line);padding-left:1.5rem;position:relative}
.step{position:relative;min-width:0}
.step::before{
  content:"";position:absolute;left:calc(-1.5rem - 4.5px);top:.55rem;
  width:8px;height:8px;background:var(--ink);border-radius:50%;
}
.step-name{display:block;font-weight:750;font-stretch:112%;font-size:1.3rem;line-height:1.2;margin-bottom:.2rem}
.step-body{display:block;color:var(--ink-soft);font-size:1.0625rem}

/* Limits */
.limits{background:var(--surface);color:var(--ink);padding:clamp(4rem,9vw,7rem) 0 calc(var(--rail-h) + 3rem)}
.limits .wrap{padding-top:0;padding-bottom:0}
.limits-grid{display:grid;gap:2rem}
.limits-list{list-style:none;padding:0;margin:0}
.limits-list li{padding:.8rem 0;border-top:1px solid var(--line);font-size:1.125rem}
.limits-list li:last-child{border-bottom:1px solid var(--line)}

/* Close */
.close{background:var(--ground);padding:clamp(4rem,9vw,7rem) 0 calc(var(--rail-h) + 5rem)}
.totals-h3{margin-top:0}
.totals{width:100%;border-collapse:collapse;font-size:.9rem;margin-bottom:3rem}
.totals th,.totals td{text-align:left;padding:.6rem .8rem;border-top:1px solid var(--line)}
.totals th{color:var(--ink-soft);font-weight:400}
.totals tbody tr:last-child td{border-bottom:1px solid var(--line)}
.totals .lamp{width:10px;height:10px;vertical-align:middle;border-radius:50%}
.close-grid{display:grid;gap:3rem}
.pilot-form{display:grid;gap:1rem;grid-template-columns:1fr}
.field{display:flex;flex-direction:column;gap:.35rem;font-size:1rem;min-width:0}
.field>span,.radios legend{color:var(--ink-soft)}
.field input[type="text"],.field input[type="email"],.field input[type="number"],.field textarea{
  background:var(--surface);border:1px solid #6E6957;border-radius:2px;
  color:var(--ink);font:inherit;padding:.6em .8em;width:100%;
}
.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.radios{border:0;padding:0;margin:0}
.radios label{display:flex;gap:.5rem;align-items:center;margin:.35rem 0;font-size:1rem}
.check{flex-direction:row;align-items:flex-start;gap:.6rem}
.check input{margin-top:.35em}
.hp{position:absolute;left:-9999px}
.btn-submit{align-self:flex-start;margin-top:.5rem}
.form-msg{min-height:1.4em;font-size:.9rem;margin:0}
.form-msg.ok{color:var(--ok)}
.form-msg.err{color:var(--bad)}

/* Footer */
.footer{background:var(--ground);border-top:1px solid var(--line);padding:2rem 0 calc(var(--rail-h) + 2rem)}
.footer-grid{display:flex;flex-wrap:wrap;gap:1.5rem;padding-top:0;padding-bottom:0;font-size:.9rem;color:var(--ink-soft)}

/* Rail */
.rail{
  position:fixed;left:0;right:0;bottom:0;height:var(--rail-h);z-index:40;
  background:var(--surface);border-top:1px solid var(--line);
  display:flex;align-items:center;gap:1rem;padding:0 var(--gutter);
  opacity:0;transition:opacity .3s linear;min-width:0;
}
.rail.on{opacity:1}
.rail-clock{font-size:1rem;font-weight:700;min-width:4.2em}
.rail-sample{font-size:.8125rem;color:var(--ink-soft);display:none}
.rail-stations{display:flex;gap:.9rem;flex:1;min-width:0;overflow:hidden}
.rail-station{display:flex;align-items:center;gap:.45rem;color:var(--ink-soft);font-size:.8125rem;white-space:nowrap}
.rail-name,.rail-count{display:none}
.rail-anchors{display:none;gap:1rem}
.rail-anchors a{font-size:.8125rem;color:var(--ink-soft);text-decoration:none;white-space:nowrap}
@media (hover:hover) and (pointer:fine){ .rail-anchors a:hover{color:var(--ink)} }

@media (max-width:499px){
  .rail-sample{display:none}
  .rail-anchors{display:none}
}
@media (min-width:500px){
  .rail-anchors{display:flex}
  .rail-name{display:inline;font-family:'Archivo',sans-serif}
}

/* Phone hero */
@media (max-width:859px){
  .hero-band{-webkit-mask-image:none;mask-image:none;background:linear-gradient(to top,rgba(20,19,15,.96) 0%,rgba(20,19,15,.88) 58%,rgba(20,19,15,0) 82%)}
  .hero-copy{left:var(--gutter);right:var(--gutter);top:auto;bottom:calc(var(--rail-h) + 1rem);max-width:none}
  .anno-label,.anno-plate,.anno-countline,.countline-label{display:none}
  .is-offscreen{display:none}
}

/* Desktop hero */
@media (min-width:860px){
  .hero-copy{
    position:absolute;left:46vw;right:6rem;top:auto;bottom:max(32px,6vh);z-index:5;
  }
  .hero-copy h1{font-size:clamp(2.4rem,3.4vw,3.4rem)}
  .hero-copy h1 .h1-s{display:inline}
  .hero-row{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
  .hero-sub{max-width:28ch;flex:1 1 0}
  .count-grid{grid-template-columns:2fr 1fr;gap:4rem;height:calc(100vh - 56px)}
  .count-stage{height:calc(100vh - 56px);padding-top:0;padding-bottom:0;display:flex;align-items:stretch}
  .count-grid{width:100%}
  .ledger-row{grid-template-columns:minmax(9rem,1fr) 3fr 1.5fr 1.5fr;align-items:baseline}
  .timeline{grid-template-columns:repeat(6,1fr);border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:2.2rem;gap:1.2rem}
  .step::before{left:0;top:calc(-2.2rem - 4.5px)}
  .step:first-child::before{left:0}
  .limits-grid{grid-template-columns:1fr 1.4fr}
  .close-grid{grid-template-columns:1fr 1.2fr}
  .pilot-form{grid-template-columns:1fr 1fr}
  .field-full{grid-column:1 / -1}
  .rail-sample{display:inline}
  .rail-count{display:inline}
  .sample-label-phone{display:none}
}

@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none;transition:none}
  .drift{height:auto}
  .drift-stage{position:static;height:auto;min-height:100vh;overflow:visible}
  .drift-copy{display:flex;flex-direction:column;min-height:0}
  .drift-line,.drift-big{opacity:1;grid-area:auto}
  .drift-line[data-line="0"]{order:0}
  .drift-line[data-line="1"]{order:1}
  .drift-big{order:2}
  .drift-line[data-line="2"]{order:3}
  .drift-chart-wrap{flex:none;height:60vh}
  .rail{opacity:1}
  .measure{opacity:1}
  .hero-video{transform:none!important}
  .lamptravel{opacity:0!important;visibility:hidden!important}
}

@media (max-width:480px){.inspect-copy h2{font-size:clamp(1.6rem,6.6vw,2rem)}}

@media (max-width:480px){.topnav-right .btn,.topnav-right a.btn{white-space:nowrap;padding:.55em .8em;font-size:.85rem}.topnav-right{gap:.6rem}}
