/* NorthReeve company shell: distinct from the GBB product site. Charcoal +
   white + green accent only. Loads after nr.css and overrides the shell. */
:root{--co-ink:#141414;--co-paper:#ffffff;--co-soft:#f7f7f5;--co-line:#e5e5e2;--co-mut:#6b7280;--co-green:#2f9e44}
body.co{background:var(--co-paper);color:var(--co-ink)}
.co h1,.co h2,.co h3,.co .co-mark{font-family:"Bricolage Grotesque",system-ui,-apple-system,sans-serif}
.co h1,.co h2,.co h3{text-wrap:balance;font-weight:700}
.co ::selection{background:var(--co-green);color:#fff}
.co a:focus-visible,.co button:focus-visible{outline:2px solid var(--co-green);outline-offset:2px}
.co .co-head{background:var(--co-paper);border-bottom:1px solid var(--co-line);position:sticky;top:0;z-index:50}
.co .co-head-in{max-width:1100px;margin:0 auto;padding:18px 20px;display:flex;align-items:center;gap:28px}
.co .co-mark{display:flex;align-items:center;gap:10px;font-weight:700;font-size:19px;letter-spacing:-.02em;color:var(--co-ink);text-decoration:none}
.co .co-mark i{width:12px;height:12px;background:var(--co-green);display:inline-block}
.co .co-nav{margin-left:auto;display:flex;gap:22px;align-items:center}
.co .co-nav a{color:var(--co-ink);text-decoration:none;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.co .co-nav a:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px;text-decoration-color:var(--co-green)}
.co .co-nav a.co-cta{border:1px solid var(--co-ink);padding:9px 16px;transition:background .15s ease,color .15s ease}
.co .co-nav a.co-cta:hover{background:var(--co-ink);color:#fff;text-decoration:none}
.co .co-hero{background:var(--co-ink);color:#fff;padding:96px 20px 88px}
.co .co-hero .in{max-width:1100px;margin:0 auto}
.co .co-hero h1{font-size:clamp(34px,5.4vw,62px);line-height:1.04;letter-spacing:-.025em;margin:0;max-width:18ch;font-weight:700;color:#fff}
.co .co-hero p{color:#c9c9c4;font-size:18px;line-height:1.6;max-width:60ch;margin:26px 0 0}
.co .co-hero .acts{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap}
.co .co-btn{display:inline-block;padding:14px 22px;text-decoration:none;font-weight:700;font-size:15px;border:1px solid #fff;color:#fff;transition:background .15s ease,color .15s ease,border-color .15s ease}
.co .co-btn:hover{background:#fff;color:#0a0a0a}
.co .co-btn.solid{background:#15803d;border-color:#15803d;color:#fff}
.co .co-btn.solid:hover{background:#116330;border-color:#116330;color:#fff}
.co .co-sec{padding:76px 20px}
.co .co-sec.soft{background:var(--co-soft);border-top:1px solid var(--co-line);border-bottom:1px solid var(--co-line)}
.co .co-sec .in{max-width:1100px;margin:0 auto}
.co .co-sec h2{font-size:clamp(26px,3.4vw,38px);letter-spacing:-.02em;margin:0 0 10px;max-width:24ch}
.co .co-sub{color:var(--co-mut);max-width:62ch;line-height:1.65;margin:0 0 36px}
.co .co-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.co .co-card{border:1px solid var(--co-line);background:#fff;padding:28px}
.co .co-card .st{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--co-mut);font-weight:700;margin:0 0 14px}
.co .co-card .st i{width:8px;height:8px;border-radius:50%;background:#9ca3af;display:inline-block}
.co .co-card .st.live i{background:var(--co-green)}
.co .co-card h3,.co .co-card h2{margin:0 0 8px;font-size:22px;letter-spacing:-.01em}
.co .co-card p{color:#374151;line-height:1.65;margin:0 0 16px}
.co .co-card .lks a{color:var(--co-ink);font-weight:700;text-decoration:underline;text-underline-offset:3px;margin-right:16px}
.co .co-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:28px}
.co .co-num h3{margin:0 0 8px;font-size:17px}
.co .co-num p{color:#4b5563;line-height:1.6;margin:0;font-size:15px}
.co .co-foot{background:var(--co-ink);color:#c9c9c4;padding:48px 20px;font-size:14px}
.co .co-foot .in{max-width:1100px;margin:0 auto;display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between}
.co .co-foot a{color:#fff;text-decoration:none;margin-right:18px}
.co .co-foot .legal a{color:#9ca3af;font-size:13px}
@media(max-width:720px){.co .co-head-in{flex-wrap:wrap;gap:12px}.co .co-nav{margin-left:0;flex-wrap:wrap;gap:14px}}

/* ── scroll-craft hero: four independent planes ───────────────────────────── */
.co .nr-stage{position:relative;overflow:hidden;background:#0a0a0a;padding:110px 20px 140px;min-height:78vh}
.co .nr-plane{will-change:transform}
.co .nr-bg{position:absolute;inset:-12% -5%;z-index:0;
  background:radial-gradient(900px 480px at 18% 12%, rgba(47,158,68,.14), transparent 60%)}
.co .nr-bg svg{position:absolute;inset:0;width:100%;height:100%}
.co .nr-ghost{position:absolute;top:8%;left:-2%;z-index:1;font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:700;font-size:clamp(90px,16vw,230px);
  letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.07);user-select:none;white-space:nowrap}
.co .nr-subject{position:relative;z-index:2;max-width:1100px;margin:0 auto}
.co .nr-stage h1{color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.55)}
.co .nr-sub{color:#d6d6d0;font-size:18px;line-height:1.6;max-width:56ch;margin:26px 0 0}
.co .nr-fore{position:absolute;right:4%;top:20%;z-index:3;display:flex;flex-direction:column;gap:16px}
.co .nr-tile{display:block;width:250px;background:#111;border:1px solid #2c2c2c;
  padding:16px 18px;text-decoration:none;color:#fff;box-shadow:0 18px 40px rgba(0,0,0,.5);
  transition:border-color .2s ease,transform .2s ease}
.co .nr-tile:hover{border-color:#52525b;transform:translateY(-3px)}
.co .nr-tile b{display:block;font-size:17px;margin:0 0 4px}
.co .nr-tile .m{color:#9ca3af;font-size:13px}
.co .nr-tile .st{display:flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#9ca3af;font-weight:700;margin-top:10px}
.co .nr-tile .st i{width:7px;height:7px;border-radius:50%;background:#6b7280;display:inline-block}
.co .nr-tile .st.live i{background:var(--co-green)}
.co .nr-tile.t2{margin-left:34px}
/* products: rise + border-draw reveal (device 2) */
.co .nr-reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.co .nr-cards .co-card{opacity:0;transform:translateY(26px);transition:opacity .55s ease,transform .55s ease,border-color .8s ease}
.co .nr-on,.co .nr-cards.nr-on .co-card{opacity:1;transform:none}
.co .nr-cards.nr-on .co-card{border-color:#cfcfca}
.co .nr-cards.nr-on .co-card:nth-child(2){transition-delay:.15s}
/* how we work: progress line + sequential light-up (device 3, scrub-linked) */
.co .nr-work .in{position:relative}
.co .nr-steps{position:relative;padding-left:22px}
.co .nr-steps:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--co-line)}
.co .nr-steps:after{content:"";position:absolute;left:0;top:6px;width:2px;height:calc(var(--nr-work,0)*100%);max-height:calc(100% - 12px);background:var(--co-green)}
.co .nr-steps .co-num{opacity:.35;transition:opacity .4s ease}
.co .nr-steps .co-num.lit{opacity:1}
/* CTA: clip wipe (device 4) */
.co .nr-wipe{clip-path:inset(0 0 100% 0);transition:clip-path .9s cubic-bezier(.2,.7,.2,1)}
.co .nr-wipe.nr-on{clip-path:inset(0 0 0 0)}
/* mobile art direction: tiles become static row below headline, lighter grid */
@media(max-width:820px){
  .co .nr-stage{padding:72px 16px 64px;min-height:auto}
  .co .nr-ghost{font-size:120px;top:4%;opacity:.6}
  .co .nr-fore{position:static;flex-direction:row;gap:12px;margin-top:34px;flex-wrap:wrap}
  .co .nr-tile{width:calc(50% - 6px);min-width:200px;box-shadow:none}
  .co .nr-tile.t2{margin-left:0}
}
/* reduced motion: full static composition, everything visible */
@media(prefers-reduced-motion:reduce){
  .co .nr-plane{transform:none!important}
  .co .nr-tile{transition:none}
  .co .nr-reveal,.co .nr-cards .co-card{opacity:1;transform:none;transition:none}
  .co .nr-steps .co-num{opacity:1}
  .co .nr-wipe{clip-path:none;transition:none}
}
