/* ============================================================
   KINDRA CLEAN — business system for Australian cleaning companies
   Design system is the product's own, taken from the brief:
   Fix Teal #17C7A6 on light, #5FF0D2 on dark. Figtree throughout,
   weight contrast rather than a second family. Mono only on
   burned-in evidence timestamps. FLAT — no gradients on buttons,
   no drop shadows. Radii on a 12/16/20/24 scale.
   Light #F4F4EE base; the dark #161D1B appears only where the
   cleaner app does, because the work is nocturnal.
   ============================================================ */
@font-face{font-family:'Figtree';src:url('assets/fonts/Figtree-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Figtree';src:url('assets/fonts/Figtree-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Figtree';src:url('assets/fonts/Figtree-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Figtree';src:url('assets/fonts/Figtree-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Figtree';src:url('assets/fonts/Figtree-ExtraBold.woff2') format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:'Figtree';src:url('assets/fonts/Figtree-Black.woff2') format('woff2');font-weight:900;font-display:swap}
@font-face{font-family:'Plex';src:url('assets/fonts/IBMPlexMono-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Plex';src:url('assets/fonts/IBMPlexMono-Medium.woff2') format('woff2');font-weight:500;font-display:swap}

:root{
  --paper:#F4F4EE; --white:#FFF; --ink:#161D1B; --ink-2:#1E2724;
  --teal:#17C7A6;        /* on light */
  --teal-d:#5FF0D2;      /* on dark  */
  --teal-wash:#E2F7F2;
  --body:#4A544F; --meta:#7C857F; --line:#E1E1D8; --line-2:#CFCFC4;
  --warn:#B8791A; --warn-wash:#FBF2E1;
  --shell:min(1320px,92vw);
  --r1:12px; --r2:16px; --r3:20px; --r4:24px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);
  font-family:'Figtree',system-ui,sans-serif;font-size:17px;line-height:1.6;
  overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--teal);color:#062621}
.wrap{width:var(--shell);margin:0 auto}

/* ── type: weight contrast, one family ──────── */
h1,h2,h3,h4{font-family:'Figtree',sans-serif;letter-spacing:-.03em;line-height:1.02;font-weight:800}
h1{font-size:clamp(2.6rem,5.6vw,5.1rem);font-weight:900;letter-spacing:-.04em}
h2{font-size:clamp(1.95rem,3.7vw,3.2rem)}
h3{font-size:clamp(1.15rem,1.7vw,1.5rem);font-weight:700;letter-spacing:-.02em}
.lede{font-size:clamp(1.06rem,1.3vw,1.24rem);line-height:1.6;color:var(--body);max-width:58ch;font-weight:400}
p{color:var(--body)}
.mono{font-family:'Plex',monospace}
.tl{color:var(--teal)}
.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--teal);display:flex;align-items:center;gap:.7rem}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--teal);flex:none;
  transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.in .eyebrow::before,.eyebrow.in::before{transform:scaleX(1)}

/* ── nav ────────────────────────────────────── */
.nav{position:fixed;inset:0 0 auto;z-index:60;display:flex;align-items:center;gap:1.2rem;
  padding:1rem max(4vw,calc((100vw - var(--shell))/2));
  background:rgba(244,244,238,.88);backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;transition:.28s}
.nav.small{padding-top:.55rem;padding-bottom:.55rem;background:rgba(244,244,238,.97);border-color:var(--line)}
.nav-lockup{width:132px;transition:width .28s}
.nav.small .nav-lockup{width:112px}
.nav-links{margin-left:auto;display:flex;gap:1.5rem;font-size:.94rem;font-weight:500;color:var(--body)}
.nav-links a{padding:.25rem 0;border-bottom:2px solid transparent;transition:.2s}
.nav-links a:hover{color:var(--teal);border-color:var(--teal)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:inherit;font-weight:700;font-size:1rem;padding:.85rem 1.5rem;border-radius:var(--r1);
  border:2px solid var(--teal);background:var(--teal);color:#062621;cursor:pointer;transition:.18s}
.btn:hover{background:#12B394;border-color:#12B394;transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn-sm{font-size:.9rem;padding:.55rem 1.05rem}

/* ── bands ──────────────────────────────────── */
section{position:relative}
.band{padding:clamp(3.6rem,6.6vw,6.6rem) 0}
.band-ink{background:var(--ink);color:#C6CEC9}
.band-ink h1,.band-ink h2,.band-ink h3{color:var(--paper)}
.band-ink p,.band-ink .lede{color:#98A29C}
.band-ink .eyebrow{color:var(--teal-d)}
.band-ink .eyebrow::before{background:var(--teal-d)}
.band-white{background:var(--white)}
.head{max-width:min(100%,920px)}
.head h2{margin-top:.9rem;max-width:19ch}
.head .lede{margin-top:1.1rem}

/* ── hero ───────────────────────────────────── */
.hero{padding:8.5rem 0 3.5rem}
.hero-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(2rem,4vw,4rem);align-items:center}
.hero h1{margin-top:1rem}
.hero .lede{margin-top:1.3rem}
.hero-cta{display:flex;gap:.7rem;margin-top:2rem;flex-wrap:wrap}
.hero-note{font-size:.88rem;color:var(--meta);margin-top:1.3rem}
.hero-shot{position:relative;display:flex;align-items:flex-end;gap:clamp(.7rem,1.4vw,1.2rem)}
.hero-shot .mac{flex:1 1 auto;min-width:0}
.hero-phone{flex:0 0 auto;width:clamp(98px,12vw,142px);margin-bottom:-1.2rem}

/* ── device frames: flat, per the design system ─ */
.mac{position:relative;border-radius:var(--r2);overflow:hidden;background:var(--white);
  padding:26px 0 0;border:1px solid var(--line-2);cursor:zoom-in;transition:transform .3s,border-color .3s}
.mac::before{content:"";position:absolute;top:9px;left:12px;width:8px;height:8px;border-radius:50%;
  background:var(--line-2);box-shadow:13px 0 0 var(--line-2),26px 0 0 var(--line-2);z-index:2}
.mac .url{position:absolute;top:6px;left:0;right:0;text-align:center;z-index:2;
  font-family:'Plex',monospace;font-size:.62rem;color:var(--meta)}
.mac img{display:block;width:100%}
.mac:hover{transform:translateY(-4px);border-color:var(--teal)}
.iph{position:relative;border-radius:var(--r4);background:var(--ink);padding:6px;max-width:264px;
  margin-inline:auto;border:1px solid var(--ink);cursor:zoom-in;transition:transform .3s,border-color .3s}
.iph::after{content:"";position:absolute;top:12px;left:50%;transform:translateX(-50%);
  width:28%;height:14px;background:var(--ink);border-radius:0 0 9px 9px;z-index:2}
.iph img{border-radius:19px;display:block;width:100%}
.iph:hover{transform:translateY(-4px);border-color:var(--teal)}
.band-ink .mac{background:var(--ink-2);border-color:#2C3733}
.band-ink .mac::before{background:#3A4641;box-shadow:13px 0 0 #3A4641,26px 0 0 #3A4641}
.band-ink .mac .url{color:#7C857F}
.band-ink .iph{border-color:#2C3733}

/* ── the continuity gauge: the signature ────── */
.cont{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.6rem,3.4vw,3.4rem);
  align-items:center;margin-top:2.6rem}
.gauge{background:var(--white);border:1px solid var(--line);border-radius:var(--r4);padding:clamp(1.3rem,2.4vw,2rem)}
.band-ink .gauge{background:var(--ink-2);border-color:#2C3733}
.gauge-top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}
.gauge-top b{font-size:1.15rem;font-weight:800;letter-spacing:-.02em}
.gauge-top span{font-family:'Plex',monospace;font-size:.7rem;color:var(--meta);letter-spacing:.06em}
.band-ink .gauge-top b{color:var(--paper)}
.score{display:flex;align-items:flex-end;gap:1rem;margin-bottom:.4rem}
.score .big{font-size:clamp(3.6rem,8vw,5.6rem);font-weight:900;line-height:.85;letter-spacing:-.05em;
  font-variant-numeric:tabular-nums;transition:color .4s}
.score .big.ok{color:var(--teal)}
.score .big.drift{color:var(--warn)}
.score .lab{padding-bottom:.6rem}
.score .lab b{display:block;font-weight:700;font-size:1rem}
.score .lab span{font-size:.88rem;color:var(--meta)}
.bars{display:flex;align-items:flex-end;gap:6px;height:96px;margin:1.5rem 0 .5rem}
.bars i{flex:1;border-radius:5px 5px 0 0;position:relative;background:var(--teal-wash);
  transition:height .6s cubic-bezier(.22,1,.36,1),background .4s;min-height:9px}
.bars i em{position:absolute;left:0;right:0;top:-1.15rem;text-align:center;font-style:normal;
  font-family:'Plex',monospace;font-size:.6rem;color:var(--meta);opacity:0;transition:opacity .3s}
.bars i.last em{opacity:1;font-weight:500}
.bars:hover i em{opacity:.85}
.bars i.on{background:#9CE3D4}
.bars i.on.last{background:var(--teal)}
.bars i.low{background:#E8C98D}
.bars i.low.last{background:var(--warn)}
.band-ink .bars i{background:#2C3B36}
.band-ink .bars i.on{background:#2E7A6C}
.band-ink .bars i.on.last{background:var(--teal-d)}
.band-ink .bars i.low{background:#6B5528}
.band-ink .bars i.low.last{background:#E0A93C}
.band-ink .bars i em{color:#98A29C}
.bars-x{display:flex;justify-content:space-between;font-family:'Plex',monospace;
  font-size:.64rem;color:var(--meta);letter-spacing:.04em}
.crew{display:grid;gap:.4rem;margin-top:1.3rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.band-ink .crew{border-color:#2C3733}
.face{display:flex;align-items:center;gap:.75rem;padding:.6rem .8rem;border-radius:var(--r1);
  background:var(--paper);transition:background .3s}
.band-ink .face{background:#25322E}
.face.new{background:var(--warn-wash)}
.band-ink .face.new{background:#3A2F18}
.face .av{width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;
  font-weight:700;font-size:.78rem;background:var(--teal-wash);color:#0C6152}
.face.new .av{background:#F0DDBB;color:#7A5210}
.band-ink .face .av{background:#123A33;color:var(--teal-d)}
.band-ink .face.new .av{background:#5C4A28;color:#F0DDBB}
.face .nm{flex:1;min-width:0;font-weight:600;font-size:.95rem}
.band-ink .face .nm{color:var(--paper)}
.face .tag{font-family:'Plex',monospace;font-size:.68rem;color:var(--meta)}
.face.new .tag{color:var(--warn)}
.band-ink .face.new .tag{color:#E0B767}
.swap{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.3rem;align-items:center}
.swap-note{font-size:.88rem;color:var(--meta)}

/* ── ledger: the scope-creep argument ───────── */
.ledger{background:var(--white);border:1px solid var(--line);border-radius:var(--r4);padding:clamp(1.2rem,2.2vw,1.8rem)}
.band-ink .ledger{background:var(--ink-2);border-color:#2C3733}
.led-top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.band-ink .led-top{border-color:#2C3733}
.led-top b{font-size:1.1rem;font-weight:800;letter-spacing:-.02em}
.band-ink .led-top b{color:var(--paper)}
.led-top span{font-family:'Plex',monospace;font-size:.7rem;color:var(--meta);letter-spacing:.06em}
.lrow{display:grid;grid-template-columns:26px minmax(0,1fr) auto auto;gap:.85rem;align-items:center;
  padding:.8rem 0;border-bottom:1px solid var(--line);cursor:pointer}
.band-ink .lrow{border-color:#222C29}
.lrow:last-of-type{border-bottom:0}
.tick{width:22px;height:22px;border-radius:7px;border:2px solid var(--line-2);flex:none;
  display:grid;place-items:center;transition:.18s}
.lrow.on .tick{background:var(--teal);border-color:var(--teal)}
.tick svg{width:12px;height:12px;opacity:0;transition:opacity .18s}
.lrow.on .tick svg{opacity:1}
.lrow .t{font-weight:600;font-size:.98rem}
.band-ink .lrow .t{color:var(--paper)}
.lrow .m{font-size:.84rem;color:var(--meta);margin-top:.1rem}
.lrow .amt{font-family:'Plex',monospace;font-weight:500;font-size:.98rem;text-align:right}
.band-ink .lrow .amt{color:var(--paper)}
.lrow .who{font-family:'Plex',monospace;font-size:.68rem;color:var(--meta);white-space:nowrap}
.led-foot{margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--line);
  display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.band-ink .led-foot{border-color:#2C3733}
.led-foot .lbl{font-family:'Plex',monospace;font-size:.66rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--meta)}
.led-total{font-size:clamp(1.9rem,3.6vw,2.8rem);font-weight:900;line-height:1;color:var(--teal);
  letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.band-ink .led-total{color:var(--teal-d)}
.led-run{text-align:right}
.led-run b{display:block;font-size:1.35rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.band-ink .led-run b{color:var(--paper)}
.led-run span{font-size:.8rem;color:var(--meta)}

/* ── ticker ─────────────────────────────────── */
.ticker{overflow:hidden;border-block:1px solid var(--line);padding:.9rem 0;background:var(--white)}
.band-ink + .ticker{border-color:var(--line)}
.tick-track{display:flex;gap:2.6rem;width:max-content;animation:tk 44s linear infinite}
@keyframes tk{to{transform:translateX(-50%)}}
.tick-track span{font-size:.84rem;font-weight:500;color:var(--meta);white-space:nowrap;
  display:flex;align-items:center;gap:2.6rem}
.tick-track span::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--teal)}

/* ── stages ─────────────────────────────────── */
.stage{padding:clamp(2.4rem,4.4vw,4rem) 0;border-bottom:1px solid var(--line)}
.band-ink .stage{border-color:#222C29}
.stage:last-child{border-bottom:0}
.stage-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(1.6rem,3.4vw,3.4rem);align-items:center}
.stage:nth-child(even) .stage-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
.stage:nth-child(even) .stage-copy{order:2}
.stage-copy{position:relative;padding-left:1.2rem}
.stage-copy::before{content:"";position:absolute;left:0;top:.3rem;bottom:.3rem;width:3px;
  border-radius:2px;background:var(--teal);transform:scaleY(0);transform-origin:top;
  transition:transform .7s cubic-bezier(.22,1,.36,1)}
.stage.in .stage-copy::before{transform:scaleY(1)}
.stage-copy .tag{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--teal);display:flex;align-items:center;gap:.6rem}
.stage-copy .tag i{font-style:normal;font-family:'Plex',monospace;color:var(--meta)}
.stage-copy h3{font-size:clamp(1.45rem,2.5vw,2.1rem);margin:.6rem 0 .55rem}
.stage-copy p{font-size:1.01rem;max-width:52ch}
.stage .mac,.stage .iph{clip-path:inset(0 0 100% 0);
  transition:clip-path .95s cubic-bezier(.19,1,.22,1),transform .3s,border-color .3s}
.stage.in .mac,.stage.in .iph{clip-path:inset(0 0 0 0)}
.stage-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}

/* ── filmstrip ──────────────────────────────── */
.strip-wrap{margin-top:2.4rem;position:relative}
.filmstrip{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:1rem;scrollbar-width:none;cursor:grab}
.filmstrip::-webkit-scrollbar{display:none}
.filmstrip.drag{cursor:grabbing;scroll-snap-type:none}
.cell{flex:0 0 auto;width:min(500px,74vw);scroll-snap-align:center}
.cell.ph{width:min(200px,40vw)}
.cell figcaption{font-size:.78rem;color:var(--meta);margin-top:.55rem;font-weight:500}
.band-ink .cell figcaption{color:#98A29C}
.strip-ctl{display:flex;align-items:center;gap:.9rem;margin-top:.5rem}
.strip-ctl button{width:40px;height:40px;border-radius:var(--r1);background:transparent;
  border:2px solid var(--line-2);color:var(--ink);cursor:pointer;font-size:1.1rem}
.strip-ctl button:hover{border-color:var(--teal);color:var(--teal)}
.band-ink .strip-ctl button{border-color:#3A4641;color:var(--paper)}
.band-ink .strip-ctl button:hover{border-color:var(--teal-d);color:var(--teal-d)}
.strip-bar{flex:1;height:2px;background:var(--line);position:relative}
.band-ink .strip-bar{background:#2C3733}
.strip-bar i{position:absolute;inset:0 auto 0 0;background:var(--teal);width:20%}

/* ── surfaces / cards / counters ────────────── */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:2.6rem;
  background:var(--line);border:1px solid var(--line);border-radius:var(--r2);overflow:hidden}
.card{background:var(--paper);padding:1.6rem}
.band-white .card{background:var(--white)}
.card .n{font-size:.7rem;font-weight:700;letter-spacing:.12em;color:var(--teal);text-transform:uppercase}
.card h3{margin:.6rem 0 .45rem}
.card p{font-size:.95rem}
.band-ink .cards{background:#2C3733;border-color:#2C3733}
.band-ink .card{background:var(--ink)}
.band-ink .card .n{color:var(--teal-d)}
.counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:0;margin-top:2.4rem;
  border-top:2px solid var(--ink)}
.band-ink .counts{border-color:var(--teal-d)}
.cnt{padding:1.4rem 1.2rem 1.4rem 0;border-right:1px solid var(--line)}
.band-ink .cnt{border-color:#2C3733}
.cnt:last-child{border-right:0}
.cnt b{font-size:clamp(2.2rem,4.4vw,3.4rem);font-weight:900;line-height:.9;display:block;
  letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.band-ink .cnt b{color:var(--teal-d)}
.cnt b span{font-size:inherit;color:inherit;display:inline;margin:0;max-width:none}
.cnt > span{display:block;margin-top:.5rem;font-size:.9rem;color:var(--body);max-width:26ch}
.band-ink .cnt > span{color:#98A29C}

/* ── not-this list ──────────────────────────── */
.nots{display:grid;gap:0;margin-top:2.4rem;border-top:1px solid var(--line)}
.not{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;padding:1.15rem 0;
  border-bottom:1px solid var(--line);align-items:baseline}
.not b{font-weight:800;font-size:1.05rem;letter-spacing:-.02em;white-space:nowrap}
.not p{font-size:.97rem}
.band-ink .not{border-color:#222C29}
.band-ink .not b{color:var(--paper)}

/* ── objections ─────────────────────────────── */
.obj{margin-top:2.4rem;border-top:2px solid var(--ink)}
.obj details{border-bottom:1px solid var(--line)}
.obj summary{cursor:pointer;list-style:none;padding:1.25rem 2.5rem 1.25rem 0;position:relative;
  font-weight:800;font-size:1.1rem;letter-spacing:-.02em;line-height:1.3}
.obj summary::-webkit-details-marker{display:none}
.obj summary::after{content:"+";position:absolute;right:.3rem;top:1.05rem;color:var(--teal);
  font-family:'Plex',monospace;font-size:1.35rem;transition:transform .28s}
.obj details[open] summary::after{transform:rotate(45deg)}
.obj .a{padding:0 0 1.4rem;max-width:70ch;font-size:1rem;color:var(--body)}

/* ── photo bands ────────────────────────────── */
.photo{position:relative;overflow:hidden;border-radius:var(--r4);height:clamp(250px,34vw,450px);
  margin-top:2.6rem;background:#1B2422}
.photo img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;will-change:transform}
.photo::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(11,16,15,.04) 44%,rgba(11,16,15,.32) 70%,rgba(11,16,15,.76))}
.photo figcaption{position:absolute;left:1.5rem;right:1.5rem;bottom:1.2rem;z-index:3;
  font-size:.95rem;font-weight:500;color:#fff;max-width:48ch;
  text-shadow:0 1px 3px rgba(11,16,15,.95),0 2px 16px rgba(11,16,15,.75)}
.photo.drawn::before{content:"";position:absolute;inset:0;z-index:1;
  background:repeating-linear-gradient(118deg,transparent 0 22px,rgba(95,240,210,.07) 22px 44px)}

/* ── form ───────────────────────────────────── */
.enq{margin-top:2.4rem;max-width:700px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.05rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r4);
  padding:clamp(1.4rem,2.8vw,2.2rem)}
.band-ink .enq{background:var(--ink-2);border-color:#2C3733}
.enq::before{content:"";grid-column:1/-1;width:40px;height:3px;background:var(--teal);border-radius:2px}
.fld{display:flex;flex-direction:column;gap:.35rem}
.fld.full{grid-column:1/-1}
.fld label{font-size:.74rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--meta)}
.fld label i{font-style:normal;text-transform:none;letter-spacing:0;color:var(--line-2);margin-left:.4rem;font-weight:400}
.fld input{font-family:inherit;font-size:1.02rem;padding:.85rem 1rem;background:var(--paper);
  border:1.5px solid var(--line);border-radius:var(--r1);color:var(--ink);transition:.18s}
.band-ink .fld input{background:#25322E;border-color:#3A4641;color:var(--paper)}
.fld input::placeholder{color:#A5ADA7}
.fld input:focus{outline:none;border-color:var(--teal);background:var(--white)}
.band-ink .fld input:focus{background:#2C3B36}
.f-foot{grid-column:1/-1;display:flex;align-items:center;gap:1.05rem;flex-wrap:wrap}
.f-note{font-size:.87rem;color:var(--meta)}
.f-msg{grid-column:1/-1;font-size:.95rem;padding:.85rem 1rem;border-radius:var(--r1);display:none}
.f-msg.ok{display:block;background:var(--teal-wash);color:#0C6152}
.f-msg.bad{display:block;background:var(--warn-wash);color:var(--warn)}
.hp{position:absolute;left:-9999px}

/* ── footer ─────────────────────────────────── */
.foot{background:var(--ink);color:#98A29C;padding:3.4rem 0 2.2rem}
.foot-top{display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;align-items:flex-start}
.foot-lockup{width:150px}
.foot-links{display:flex;flex-direction:column}
.foot-links a{color:#D6DCD8;min-height:40px;display:inline-flex;align-items:center;font-size:.94rem}
.foot-links a:hover{color:var(--teal-d)}
.parent{margin-top:2.2rem;padding-top:1.4rem;border-top:1px solid #2C3733;display:flex;
  flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.8rem;color:#7C857F}
.parent a{color:#D6DCD8;min-height:40px;display:inline-flex;align-items:center;gap:.4rem}

/* ── lightbox ───────────────────────────────── */
.lb{position:fixed;inset:0;z-index:200;background:rgba(11,16,15,.96);display:none;
  align-items:center;justify-content:center;padding:3vh 3vw}
.lb.on{display:flex}
.lb img{max-width:100%;max-height:86vh;border-radius:var(--r2)}
.lb figcaption{position:absolute;bottom:2vh;left:0;right:0;text-align:center;font-size:.85rem;color:#98A29C}
.lb button{position:absolute;background:transparent;border:2px solid #3A4641;color:var(--paper);
  width:44px;height:44px;border-radius:var(--r1);cursor:pointer;font-size:1.2rem;line-height:1}
.lb button:hover{border-color:var(--teal-d);color:var(--teal-d)}
.lb .x{top:2.5vh;right:3vw}.lb .p{left:2vw;top:50%;transform:translateY(-50%)}
.lb .n{right:2vw;top:50%;transform:translateY(-50%)}

.rv{opacity:0;transform:translateY(16px);transition:opacity .65s,transform .65s cubic-bezier(.22,1,.36,1)}
.rv.in{opacity:1;transform:none}
.ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.ln > i{display:block;font-style:inherit;transform:translateY(104%);opacity:0;
  transition:transform .8s cubic-bezier(.19,1,.22,1),opacity .5s}
.ln.in > i{transform:none;opacity:1}

/* ── responsive ─────────────────────────────── */
@media (max-width:1040px){
  .hero-grid,.cont{grid-template-columns:minmax(0,1fr);gap:2.2rem}
  .stage-grid,.stage:nth-child(even) .stage-grid{grid-template-columns:minmax(0,1fr);gap:1.6rem}
  .stage:nth-child(even) .stage-copy{order:0}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  body{font-size:16px}
  .nav-links{display:none}
  .hero{padding-top:7rem}
  .hero-cta .btn{width:100%}
  .hero-shot{display:block;position:relative}
  .hero-phone{position:absolute;right:0;bottom:-.8rem;width:30%;max-width:106px;margin:0}
  .cards{grid-template-columns:minmax(0,1fr)}
  .enq{grid-template-columns:minmax(0,1fr)}
  .f-foot .btn{width:100%}
  .stage-pair{grid-template-columns:minmax(0,1fr);gap:1.2rem}
  .not{grid-template-columns:minmax(0,1fr);gap:.3rem}
  .lrow{grid-template-columns:26px minmax(0,1fr) auto;row-gap:.3rem}
  .lrow .who{grid-column:2/-1}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .rv{opacity:1;transform:none}
  .ln > i{transform:none;opacity:1}
  .stage .mac,.stage .iph{clip-path:none}
}


/* ════════════════════════════════════════════════════════════
   SCREEN-FIRST LAYOUT
   The first pass reused a layout I had already built four times:
   two-column hero with a small mockup, ticker, alternating
   stages, photo bands. Rebuilt so the app itself carries the
   page — full-bleed screens at a size you can actually read,
   with numbered pins over the real UI.
   ════════════════════════════════════════════════════════════ */

/* ── full-bleed screen slab ──────────────────────────────── */
.slab{position:relative;background:var(--ink);overflow:hidden}
.slab-in{width:min(1680px,96vw);margin:0 auto;padding:clamp(2rem,4vw,4rem) 0 0}
.slab-head{width:var(--shell);margin:0 auto clamp(1.4rem,2.6vw,2.4rem)}
.slab .shot{position:relative;border-radius:var(--r4) var(--r4) 0 0;overflow:hidden;
  border:1px solid #2C3733;border-bottom:0;background:var(--white)}
.slab .shot img{width:100%;display:block}
.slab.crop .shot{max-height:min(70vh,760px)}
.slab.crop .shot img{object-fit:cover;object-position:top center;height:min(70vh,760px);
  transform-origin:top center}

/* ── annotated screens: the new signature ────────────────── */
.annot{position:relative;display:block;border-radius:var(--r3);overflow:hidden;
  border:1px solid var(--line-2);background:var(--white)}
.band-ink .annot{border-color:#2C3733}
.annot > img{width:100%;display:block}
.pin{position:absolute;transform:translate(-50%,-50%);z-index:3;
  width:30px;height:30px;border-radius:50%;border:0;cursor:pointer;
  background:var(--teal);color:#062621;font-family:inherit;font-weight:800;font-size:.86rem;
  display:grid;place-items:center;padding:0;
  box-shadow:0 0 0 0 rgba(23,199,166,.55);animation:ping 2.6s ease-out infinite}
.pin:nth-of-type(2){animation-delay:.35s}.pin:nth-of-type(3){animation-delay:.7s}
.pin:nth-of-type(4){animation-delay:1.05s}.pin:nth-of-type(5){animation-delay:1.4s}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(23,199,166,.5)}
  70%{box-shadow:0 0 0 14px rgba(23,199,166,0)}100%{box-shadow:0 0 0 0 rgba(23,199,166,0)}}
.pin:hover,.pin.on{background:var(--ink);color:var(--teal-d);animation:none;transform:translate(-50%,-50%) scale(1.14)}
.pin-note{position:absolute;z-index:4;max-width:250px;background:var(--ink);color:var(--paper);
  padding:.7rem .85rem;border-radius:var(--r1);font-size:.86rem;line-height:1.45;
  opacity:0;pointer-events:none;transition:opacity .2s;transform:translate(-50%,calc(-100% - 22px))}
.pin-note b{display:block;color:var(--teal-d);font-size:.72rem;letter-spacing:.08em;
  text-transform:uppercase;margin-bottom:.2rem}
.pin-note.below{transform:translate(-50%,22px)}
.pin-note.on{opacity:1}
.legend{display:grid;gap:0;margin-top:1.4rem;border-top:1px solid var(--line)}
.band-ink .legend{border-color:#2C3733}
.legend button{display:grid;grid-template-columns:28px minmax(0,1fr);gap:.8rem;text-align:left;
  background:transparent;border:0;border-bottom:1px solid var(--line);cursor:pointer;
  padding:.85rem .4rem;font-family:inherit;color:inherit;transition:.2s;align-items:start}
.band-ink .legend button{border-color:#2C3733}
.legend button:hover,.legend button.on{background:var(--teal-wash);padding-left:.8rem}
.band-ink .legend button:hover,.band-ink .legend button.on{background:#1E2724}
.legend .num{width:24px;height:24px;border-radius:50%;background:var(--teal);color:#062621;
  font-weight:800;font-size:.8rem;display:grid;place-items:center}
.legend b{display:block;font-weight:700;font-size:.97rem}
.legend span{display:block;font-size:.89rem;color:var(--meta);margin-top:.15rem;line-height:1.45}
.band-ink .legend b{color:var(--paper)}
.annot-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(1.4rem,3vw,3rem);align-items:start;margin-top:2.2rem}

/* ── persona tabs ────────────────────────────────────────── */
.tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:2rem}
.tabs button{font-family:inherit;font-size:.95rem;font-weight:600;padding:.7rem 1.15rem;
  border-radius:999px;border:1.5px solid var(--line-2);background:transparent;color:var(--body);
  cursor:pointer;transition:.18s}
.tabs button:hover{border-color:var(--teal);color:var(--teal)}
.tabs button.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.band-ink .tabs button{border-color:#3A4641;color:#98A29C}
.band-ink .tabs button.on{background:var(--teal-d);border-color:var(--teal-d);color:#062621}
.tabpane{display:none;margin-top:1.8rem}
.tabpane.on{display:block;animation:fadeIn .45s cubic-bezier(.22,1,.36,1)}
@keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.tab-lede{font-size:1.04rem;color:var(--body);max-width:64ch;margin-bottom:1.4rem}
.band-ink .tab-lede{color:#98A29C}
.phone-row{display:flex;gap:clamp(.7rem,1.6vw,1.4rem);overflow-x:auto;padding-bottom:1rem;
  scrollbar-width:none}
.phone-row::-webkit-scrollbar{display:none}
.phone-row figure{flex:0 0 auto;width:min(212px,42vw)}
.phone-row figcaption{font-size:.8rem;color:var(--meta);margin-top:.55rem;font-weight:500;text-align:center}
.band-ink .phone-row figcaption{color:#98A29C}
.desk-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.2rem}
.desk-row figure figcaption{font-size:.82rem;color:var(--meta);margin-top:.5rem;font-weight:500}
.band-ink .desk-row figcaption{color:#98A29C}

@media (max-width:900px){
  .annot-grid{grid-template-columns:minmax(0,1fr)}
  .pin{width:24px;height:24px;font-size:.74rem}
  .pin-note{max-width:200px;font-size:.8rem}
  .slab.crop .shot,.slab.crop .shot img{max-height:none;height:auto}
  .slab.crop .shot img{object-fit:contain}
}
@media (prefers-reduced-motion:reduce){.pin{animation:none}}


/* ════════════════════════════════════════════════════════════
   HERO AND RHYTHM — second pass
   Previously: headline led with the staffing argument rather
   than the product, the device shot was replaced by a floating
   slab with dead space around it, and section widths varied so
   the page read as messy. One column width now, one device
   composition, consistent vertical rhythm.
   ════════════════════════════════════════════════════════════ */
.hero{padding:9rem 0 0}
.hero-copy{max-width:min(920px,92vw);text-align:center;margin-inline:auto}
.hero-copy .eyebrow{justify-content:center}
.hero-copy h1{margin-top:1.1rem}
.hero-copy .lede{margin:1.3rem auto 0;max-width:60ch}
.hero-copy .hero-cta{justify-content:center}
.hero-copy .hero-note{margin-top:1.4rem}

/* the device composition: desktop with the crew phone overlapping */
.hero-stage{margin-top:clamp(2.4rem,5vw,4rem);padding:0 max(4vw,calc((100vw - var(--shell))/2))}
.hero-devices{position:relative;max-width:1180px;margin-inline:auto}
.hero-devices .mac{width:100%}
.hero-devices .iph{position:absolute;right:clamp(-46px,-3vw,-16px);bottom:-2.4rem;
  width:clamp(130px,14vw,178px);max-width:none;margin:0;z-index:3}

/* the three pillars, straight under the hero */
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;
  margin-top:clamp(3.4rem,6vw,5rem);background:var(--line);
  border:1px solid var(--line);border-radius:var(--r3);overflow:hidden}
.pillar{display:block;background:var(--paper);padding:1.5rem 1.5rem 1.6rem;transition:.2s;position:relative}
.pillar::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--teal);
  transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.pillar:hover{background:var(--white)}
.pillar:hover::after{transform:scaleX(1)}
.pillar b{display:block;font-size:1.12rem;font-weight:800;letter-spacing:-.02em}
.pillar b::after{content:" \2192";color:var(--teal);opacity:0;transition:opacity .2s}
.pillar:hover b::after{opacity:1}
.pillar span{display:block;margin-top:.45rem;font-size:.94rem;color:var(--body);line-height:1.5}

/* one column width everywhere, so sections stop wandering */
.annot-grid{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(1.6rem,3vw,3.2rem);
  margin-top:clamp(2rem,3.4vw,3rem)}
.cont{margin-top:clamp(2rem,3.4vw,3rem)}
.band{padding:clamp(4rem,7vw,7.5rem) 0}

/* bigger screens in the persona tabs — two up, not three */
.desk-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:1.6rem}
.phone-row figure{width:min(232px,46vw)}

/* filmstrip: even cells, so the rail stops looking ragged */
.cell{width:min(560px,80vw)}
.cell.ph{width:min(216px,42vw)}
.cell .mac{height:100%}
.cell .mac img{height:340px;object-fit:cover;object-position:top center}
.cell.ph .iph img{height:auto}

@media (max-width:900px){
  .hero{padding-top:7.2rem}
  .hero-copy{text-align:left}
  .hero-copy .eyebrow{justify-content:flex-start}
  .hero-copy .lede{margin-inline:0}
  .hero-copy .hero-cta{justify-content:flex-start}
  .hero-copy .hero-cta .btn{width:100%}
  .hero-devices{padding-right:0}
  .hero-devices .iph{right:-.6rem;bottom:-1.2rem;width:28%;max-width:106px}
  .pillars{grid-template-columns:minmax(0,1fr)}
  .cell .mac img{height:220px}
}


/* the enquiry band ends on the form; no trailing screenshot */
#talk .enq{margin-bottom:0}
#talk{padding-bottom:clamp(3rem,5vw,5rem)}
.foot{padding-top:3rem}
.foot-lockup{width:152px}
