/* ================================================================
   nnitiwe.io — shared stylesheet
   Tokens, base, components. Light default + dark via html.dark.
   ================================================================ */
:root{
  --bg:#EFEEEB; --surface:#E7E5E0; --ink:#1A1A1A; --muted:#6B6B66;
  --hair:#DAD8D2; --accent:#0076e2; --accent-ink:#015fb8; --paper:#F6F5F2;
}
html.dark{
  --bg:#0E0F0D; --surface:#1B1C15; --ink:#ECEAE4; --muted:#9A988F;
  --hair:#2E2F28; --accent:#3B9EFF; --accent-ink:#86C4FF; --paper:#191A12;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Inter",system-ui,sans-serif; font-weight:400;
  line-height:1.55; letter-spacing:-0.01em;
  font-feature-settings:"cv05","ss01"; -webkit-font-smoothing:antialiased;
  transition:background .4s ease, color .4s ease;
}
.wrap{max-width:1200px;margin:0 auto;padding-left:28px;padding-right:28px}
.narrow{max-width:820px}
.mono{font-family:"Fragment Mono",ui-monospace,monospace;letter-spacing:0}
.display{font-family:"Funnel Display",sans-serif;font-weight:600;line-height:0.98;letter-spacing:-0.03em}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0}
.hair{border:0;border-top:1px solid var(--hair)}
.accent{color:var(--accent)}

/* ---- nav ---- */
header.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 86%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--hair)}
.navrow{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{font-family:"Fragment Mono",monospace;font-size:15px;letter-spacing:0.02em;font-weight:400}
.brand b{font-weight:400}
.brand .dot{color:var(--accent)}
.navlinks{display:flex;gap:30px;align-items:center}
.navlinks a{font-family:"Fragment Mono",monospace;font-size:12.5px;color:var(--muted);transition:color .2s}
.navlinks a:hover,.navlinks a.active{color:var(--ink)}
.navactions{display:flex;align-items:center;gap:14px}
.btn{font-family:"Fragment Mono",monospace;font-size:12.5px;display:inline-flex;align-items:center;gap:8px;
  padding:10px 16px;border:1px solid var(--ink);border-radius:2px;transition:all .2s;background:transparent;color:var(--ink);cursor:pointer}
.btn:hover{background:var(--ink);color:var(--bg)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
html.dark .btn-primary{color:#07140F}
.btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}
html.dark .btn-primary:hover{color:#07140F}
.toggle{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--hair);border-radius:2px;background:transparent;cursor:pointer;color:var(--ink)}
.toggle:hover{border-color:var(--ink)}
/* mobile menu button + panel */
.menubtn{display:none;width:40px;height:40px;border:1px solid var(--hair);border-radius:4px;background:transparent;cursor:pointer;flex-direction:column;gap:4px;align-items:center;justify-content:center;padding:0}
.menubtn span{width:18px;height:2px;background:var(--ink);display:block;transition:transform .25s ease,opacity .2s ease}
.menubtn[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menubtn[aria-expanded="true"] span:nth-child(2){opacity:0}
.menubtn[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mobilemenu{display:none;flex-direction:column;padding:8px 28px 22px;border-top:1px solid var(--hair);background:var(--bg)}
.mobilemenu a{font-family:"Fragment Mono",monospace;font-size:15px;color:var(--ink);padding:14px 0;border-bottom:1px solid var(--hair)}
.mobilemenu a.active{color:var(--accent)}
.mobilemenu a.btn{border:1px solid var(--accent);justify-content:center;border-radius:2px;margin-top:14px}
.mobilemenu.open{display:flex}
@media(min-width:901px){.mobilemenu{display:none !important}}

/* ---- eyebrow/label ---- */
.ey{font-family:"Fragment Mono",monospace;font-size:12px;color:var(--muted);display:inline-flex;gap:10px;align-items:center}
.ey::before{content:"";width:22px;height:1px;background:var(--accent);display:inline-block}

/* ---- hero ---- */
.hero{padding:104px 0 88px;position:relative;overflow:hidden}
.herogrid{display:grid;grid-template-columns:1.45fr .8fr;gap:52px;align-items:center}
.hero h1{font-size:clamp(32px,4.3vw,58px);max-width:17ch;letter-spacing:-0.035em}
.hero .sub{font-size:clamp(16px,1.6vw,19px);color:var(--muted);max-width:50ch;margin-top:24px;line-height:1.55}
.heroportrait{justify-self:end}
.heroportrait img{width:100%;max-width:340px;aspect-ratio:4/5;object-fit:cover;border-radius:4px;
  border:1px solid var(--hair);background:var(--surface);display:block;
  filter:grayscale(1) contrast(1.03);transition:filter .5s ease}
.heroportrait:hover img{filter:grayscale(0) contrast(1)}
.hero .cta{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.microproof{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:46px;font-family:"Fragment Mono",monospace;font-size:12px;color:var(--muted)}
.microproof span{display:inline-flex;gap:9px;align-items:center}
.microproof span::before{content:"";width:5px;height:5px;background:var(--accent);border-radius:50%}

/* subtle binary ripple canvas */
#ripple{position:absolute;inset:0;width:100%;height:100%;opacity:.5;pointer-events:none;z-index:-1}

/* ---- generic section ---- */
section{padding:84px 0}
.shead{font-size:clamp(26px,3.4vw,38px);max-width:22ch;margin-top:20px;line-height:1.08}
.lead{color:var(--muted);max-width:60ch;margin-top:20px;font-size:17px;line-height:1.55}
section > .ey + .shead, section .ey + .shead{margin-top:20px}

/* ---- band ---- */
.band{background:var(--paper);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.problem p{font-size:clamp(22px,3vw,32px);max-width:24ch;line-height:1.32;font-family:"Funnel Display",sans-serif;font-weight:300;letter-spacing:-0.02em}
.problem p b{font-weight:600}

/* ---- metrics strip ---- */
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--hair)}
.metric{padding:28px 24px;border-right:1px solid var(--hair)}
.metric:last-child{border-right:0}
.metric .n{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:40px;letter-spacing:-0.03em;line-height:1}
.metric .l{font-family:"Fragment Mono",monospace;font-size:11.5px;color:var(--muted);margin-top:12px;line-height:1.4}

/* ---- pipeline / architecture diagram ---- */
.diagram{border:1px solid var(--hair);border-radius:4px;background:var(--paper);padding:30px 26px;margin-top:40px;overflow:hidden}
.pipe-svg{width:100%;height:auto;display:block}
.pflow{stroke:var(--hair);stroke-width:2;fill:none;transition:stroke .35s}
.pflow.lit{stroke:var(--accent);stroke-dasharray:5 7;animation:dash 1s linear infinite}
.parrow{fill:var(--hair);transition:fill .35s}
.parrow.lit{fill:var(--accent)}
.pcard{fill:var(--bg);stroke:var(--hair);stroke-width:1.5;transition:stroke .35s,fill .35s}
.pcard.lit{stroke:var(--accent);fill:color-mix(in srgb,var(--accent) 7%,var(--bg))}
.ptitle{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:15px;fill:var(--ink);letter-spacing:-0.02em}
.psub{font-family:"Fragment Mono",monospace;font-size:9.5px;fill:var(--muted);transition:fill .35s}
.pcard.lit ~ .psub, .psub.lit{fill:var(--accent)}
.pnum{font-family:"Fragment Mono",monospace;font-size:9px;fill:var(--muted);transition:fill .35s}
.pnum.lit{fill:var(--accent)}
.chip{fill:var(--surface);stroke:var(--hair);stroke-width:1;transition:stroke .35s,fill .35s}
.chip.lit{stroke:var(--accent)}
.clabel{font-family:"Fragment Mono",monospace;font-size:9px;fill:var(--muted);transition:fill .35s}
.clabel.lit{fill:var(--ink)}
.cwire{stroke:var(--hair);stroke-width:1.25;fill:none;transition:stroke .35s}
.cwire.lit{stroke:var(--accent)}
.pill{fill:var(--bg);stroke:var(--hair);stroke-width:1;transition:stroke .35s,fill .35s}
.pill.lit{stroke:var(--accent)}
.plbl{font-family:"Fragment Mono",monospace;font-size:8.5px;fill:var(--muted);transition:fill .35s}
.plbl.lit{fill:var(--ink)}
.plane{fill:none;stroke:var(--hair);stroke-width:1.25;stroke-dasharray:3 4}
.planelbl{font-family:"Fragment Mono",monospace;font-size:9.5px;fill:var(--muted)}
.tick{stroke:var(--hair);stroke-width:1;transition:stroke .35s}
.tick.lit{stroke:var(--accent)}
.colhead{font-family:"Fragment Mono",monospace;font-size:8.5px;fill:var(--muted);letter-spacing:.05em}
.stagerow{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);border-top:0}
.srw{background:var(--bg);padding:20px 20px;cursor:default;transition:background .25s}
.srw:hover,.srw.active{background:var(--paper)}
.srw .num{font-family:"Fragment Mono",monospace;font-size:11px;color:var(--muted);transition:color .25s}
.srw:hover .num,.srw.active .num{color:var(--accent)}
.srw h4{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:17px;margin-top:10px;letter-spacing:-0.02em}
.srw p{color:var(--muted);font-size:13px;margin-top:8px;line-height:1.45}
@keyframes dash{to{stroke-dashoffset:-24}}

/* ---- router ---- */
.routes{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:14px}
.route{border:1px solid var(--hair);padding:24px 26px;border-radius:3px}
.route .k{font-family:"Fragment Mono",monospace;font-size:12px;color:var(--accent)}
.route h4{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:19px;margin-top:10px;letter-spacing:-0.02em}
.route p{color:var(--muted);font-size:14px;margin-top:8px}
.fixgrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:34px}
.fix{background:var(--bg);padding:22px 24px;transition:background .2s;cursor:pointer;color:inherit;display:block}
.fix:hover{background:var(--paper)}
.fix .q{font-size:16px;font-weight:500}
.fix .a{font-family:"Fragment Mono",monospace;font-size:11.5px;color:var(--muted);margin-top:10px;display:flex;align-items:center;gap:8px}
.fix:hover .a{color:var(--accent)}
.callout{border:1px solid var(--hair);border-radius:4px;background:var(--paper);padding:28px 30px;margin-top:30px;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap}
.callout .ct{max-width:52ch}
.callout h4{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:21px;letter-spacing:-0.02em;margin-top:12px}
.callout p{color:var(--muted);font-size:14.5px;margin-top:8px}
.callout .btn{white-space:nowrap}

/* ---- work cards ---- */
.works{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.work{border:1px solid var(--hair);border-radius:3px;overflow:hidden;background:var(--paper);transition:border-color .25s, transform .25s;color:inherit;display:block}
.work:hover{border-color:var(--accent)}
.work .thumb{aspect-ratio:16/10;background:var(--surface);width:100%;object-fit:cover;display:block;border-bottom:1px solid var(--hair)}
.sthumb{aspect-ratio:16/10;width:100%;display:block;border-bottom:1px solid var(--hair);background:var(--paper);overflow:hidden}
.sthumb svg{width:100%;height:100%;display:block}
.sdoc{fill:var(--bg);stroke:var(--hair);stroke-width:2}
.sline{stroke:var(--muted);stroke-width:2.4;opacity:.55;stroke-linecap:round}
.sline.acc{stroke:var(--accent);opacity:.9}
.sarrow{stroke:var(--hair);stroke-width:2;fill:none}
.sarrowhead{fill:var(--muted)}
.ring-bg{fill:none;stroke:var(--hair);stroke-width:5}
.ring-fg{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round;stroke-dasharray:163;stroke-dashoffset:163;transform:rotate(-90deg);transform-origin:center}
.scheck{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30}
.sscan{stroke:var(--accent);stroke-width:2.4;opacity:.85}
@keyframes scanmove{0%{transform:translateX(0)}100%{transform:translateX(78px)}}
@keyframes dupfade{0%,100%{opacity:.5}50%{opacity:.1}}
@keyframes ringfill{0%{stroke-dashoffset:163}60%,100%{stroke-dashoffset:52}}
@keyframes checkdraw{0%,45%{stroke-dashoffset:30}75%,100%{stroke-dashoffset:0}}
@keyframes sparkpulse{0%,100%{opacity:.35;transform:translateY(0) scale(.9)}50%{opacity:1;transform:translateY(-2px) scale(1.08)}}
.anim-scan{animation:scanmove 3.2s ease-in-out infinite alternate}
.anim-dup{animation:dupfade 2.8s ease-in-out infinite}
.anim-ring{animation:ringfill 3.2s ease-in-out infinite alternate}
.anim-check{animation:checkdraw 3.2s ease-in-out infinite}
.anim-spark{transform-box:fill-box;transform-origin:center;animation:sparkpulse 2.4s ease-in-out infinite}
.work .body{padding:22px}
.work .tag{font-family:"Fragment Mono",monospace;font-size:11px;color:var(--accent)}
.work h4{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:19px;margin-top:12px;letter-spacing:-0.02em;line-height:1.15}
.work p{color:var(--muted);font-size:14px;margin-top:10px}

/* ---- engagements ---- */
.eng{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px}
.eng .card{border-top:2px solid var(--ink);padding-top:18px}
.eng .card h4{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:18px;letter-spacing:-0.02em}
.eng .card p{color:var(--muted);font-size:13.5px;margin-top:10px}
.eng .card .o{font-family:"Fragment Mono",monospace;font-size:11px;color:var(--muted);margin-top:14px;display:block}

/* ---- products ---- */
.prods{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.prod{border:1px solid var(--hair);border-radius:3px;overflow:hidden;background:var(--paper)}
.prod img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;border-bottom:1px solid var(--hair);background:var(--surface)}
.prod .pb{padding:22px}
.prod .s{font-family:"Fragment Mono",monospace;font-size:11px;color:var(--muted)}
.prod h4{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:19px;margin-top:8px}
.prod p{color:var(--muted);font-size:14px;margin-top:10px}
.prod a.link{font-family:"Fragment Mono",monospace;font-size:12px;color:var(--accent);margin-top:14px;display:inline-block}

/* ---- writing / blog ---- */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.post{border:1px solid var(--hair);border-radius:3px;overflow:hidden;background:var(--paper);transition:border-color .25s;display:flex;flex-direction:column}
.post:hover{border-color:var(--accent)}
.post img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border-bottom:1px solid var(--hair);background:var(--surface)}
.post .pbody{padding:20px;display:flex;flex-direction:column;flex:1}
.post .date{font-family:"Fragment Mono",monospace;font-size:11px;color:var(--muted)}
.post h4{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:17px;margin-top:10px;letter-spacing:-0.02em;line-height:1.22}
.post .more{font-family:"Fragment Mono",monospace;font-size:11.5px;color:var(--accent);margin-top:auto;padding-top:14px}

/* ---- affiliations ---- */
.logos{display:flex;align-items:center;gap:40px;flex-wrap:wrap;margin-top:22px}
.logos span{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:19px;color:var(--muted);letter-spacing:-0.01em;opacity:.8}

/* ---- testimonials ---- */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
.quote{border-left:2px solid var(--accent);padding:4px 0 4px 22px}
.quote p{font-size:16px;line-height:1.5}
.quote .who{font-family:"Fragment Mono",monospace;font-size:11.5px;color:var(--muted);margin-top:16px}

/* ---- human / about block ---- */
.human{display:grid;grid-template-columns:220px 1fr;gap:44px;align-items:start}
.human img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px;background:var(--surface);border:1px solid var(--hair)}
.human p{font-size:18px;max-width:52ch;color:var(--ink)}
.human .meta{font-family:"Fragment Mono",monospace;font-size:12px;color:var(--muted);margin-top:20px;line-height:1.8}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.tag-chip{font-family:"Fragment Mono",monospace;font-size:11.5px;color:var(--muted);border:1px solid var(--hair);border-radius:999px;padding:6px 13px}
.about-foot{display:flex;align-items:center;gap:20px;margin-top:28px;flex-wrap:wrap}
.cert-only img{height:60px;width:auto;display:block}
.social-icons{display:flex;gap:10px;align-items:center}
.social-icons a{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--hair);border-radius:5px;color:var(--muted);transition:border-color .2s,color .2s}
.social-icons a:hover{border-color:var(--accent);color:var(--accent)}
.social-icons svg{width:17px;height:17px;display:block;fill:currentColor}

/* ---- final cta ---- */
.final{background:var(--ink);color:var(--bg)}
html.dark .final{background:#000}
.final h2{color:var(--bg);font-size:clamp(30px,5vw,60px);max-width:16ch}
html.dark .final h2{color:var(--ink)}
.final .lead{color:color-mix(in srgb,var(--bg) 70%,transparent)}
html.dark .final .lead{color:var(--muted)}
.final .btn{border-color:var(--bg);color:var(--bg)}
.final .btn:hover{background:var(--bg);color:var(--ink)}
html.dark .final .btn{border-color:var(--ink);color:var(--ink)}
html.dark .final .btn:hover{background:var(--ink);color:#000}

/* ---- footer ---- */
footer{border-top:1px solid var(--hair);padding:56px 0 40px}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:28px}
footer .col h5{font-family:"Fragment Mono",monospace;font-size:11px;color:var(--muted);text-transform:none;font-weight:400;margin-bottom:14px}
footer .col a{display:block;font-size:14px;color:var(--ink);margin-bottom:10px;opacity:.8}
footer .col a:hover{opacity:1;color:var(--accent)}
.fpromise{font-family:"Funnel Display",sans-serif;font-weight:300;font-size:19px;max-width:30ch;letter-spacing:-0.02em}
.fbottom{display:flex;justify-content:space-between;margin-top:46px;font-family:"Fragment Mono",monospace;font-size:11.5px;color:var(--muted);flex-wrap:wrap;gap:12px}

/* ---- reveal ---- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}

/* ================================================================
   Inner-page components
   ================================================================ */
/* page header (sub-pages) */
.pagehead{padding:92px 0 10px}
.pagehead h1{font-size:clamp(34px,5vw,62px);max-width:18ch;margin-top:18px}
.pagehead .lead{font-size:clamp(17px,1.8vw,20px);max-width:56ch}

/* readable prose */
.prose p{font-size:17px;color:var(--ink);max-width:68ch;margin:0 0 18px}
.prose p.muted{color:var(--muted)}
.prose h3{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:24px;letter-spacing:-0.02em;margin:40px 0 14px}

/* split: media + text */
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.split.narrowimg{grid-template-columns:360px 1fr}
.split img{width:100%;border-radius:4px;border:1px solid var(--hair);display:block;object-fit:cover}
.split .cap{font-family:"Fragment Mono",monospace;font-size:11px;color:var(--muted);margin-top:10px}

/* timeline / journey */
.timeline{margin-top:30px;border-left:2px solid var(--hair);padding-left:26px;display:flex;flex-direction:column;gap:26px}
.tl-item .when{font-family:"Fragment Mono",monospace;font-size:11.5px;color:var(--accent)}
.tl-item h4{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:18px;margin-top:6px;letter-spacing:-0.02em}
.tl-item p{color:var(--muted);font-size:14.5px;margin-top:6px;max-width:62ch}

/* responsive youtube */
.videoembed{position:relative;width:100%;aspect-ratio:16/9;border-radius:4px;overflow:hidden;border:1px solid var(--hair);background:var(--surface);margin-top:30px}
.videoembed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* click-to-play video facade (custom cover thumbnail) */
.vidfacade{position:relative;width:100%;aspect-ratio:16/9;border-radius:4px;overflow:hidden;border:1px solid var(--hair);background:var(--surface);cursor:pointer;display:block}
.vidfacade img{width:100%;height:100%;object-fit:cover;display:block}
.vidfacade .play{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.22);transition:background .25s}
.vidfacade:hover .play,.vidfacade:focus-visible .play{background:rgba(0,0,0,.34)}
.vidfacade .play svg{width:64px;height:45px;filter:drop-shadow(0 2px 10px rgba(0,0,0,.45));transition:transform .25s}
.vidfacade:hover .play svg{transform:scale(1.06)}
.vidfacade iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vidcap{font-family:"Fragment Mono",monospace;font-size:11px;color:var(--muted);margin-top:12px}

/* service detail list */
.svc-list{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:40px}
.svc{border:1px solid var(--hair);border-radius:4px;padding:26px 28px;background:var(--paper)}
.svc .k{font-family:"Fragment Mono",monospace;font-size:11px;color:var(--accent)}
.svc h3{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:21px;margin-top:10px;letter-spacing:-0.02em}
.svc .out{font-size:14.5px;color:var(--ink);margin-top:10px}
.svc .recog{font-family:"Fragment Mono",monospace;font-size:11.5px;color:var(--muted);margin-top:12px}
.svc ul{margin:12px 0 0;padding-left:18px;color:var(--muted);font-size:13.5px}
.svc ul li{margin-bottom:5px}

/* offers table-ish cards */
.offers{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:40px}
.offer{border:1px solid var(--hair);border-radius:4px;padding:26px 28px}
.offer h3{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:19px;letter-spacing:-0.02em}
.offer .scope{color:var(--muted);font-size:14px;margin-top:10px}
.offer .deliver{font-family:"Fragment Mono",monospace;font-size:11.5px;color:var(--accent);margin-top:12px}

/* steps */
.steps{counter-reset:step;margin-top:40px;display:flex;flex-direction:column;gap:2px;border:1px solid var(--hair);border-radius:4px;overflow:hidden}
.step{display:grid;grid-template-columns:54px 1fr;gap:18px;padding:24px 26px;border-bottom:1px solid var(--hair);background:var(--paper)}
.step:last-child{border-bottom:0}
.step .no{font-family:"Fragment Mono",monospace;font-size:13px;color:var(--accent);padding-top:3px}
.step h4{font-family:"Funnel Display",sans-serif;font-weight:600;font-size:18px;letter-spacing:-0.02em}
.step p{color:var(--muted);font-size:14.5px;margin-top:6px;max-width:66ch}

/* ---- responsive ---- */
@media(max-width:900px){
  .navlinks{display:none}
  .menubtn{display:flex}
  .navcta{display:none}
  .herogrid{grid-template-columns:1fr;gap:30px}
  .heroportrait{justify-self:start}
  .heroportrait img{max-width:200px}
  .stagerow{grid-template-columns:1fr 1fr}
  .metrics{grid-template-columns:1fr 1fr}
  .metric:nth-child(2){border-right:0}
  .metric:nth-child(1),.metric:nth-child(2){border-bottom:1px solid var(--hair)}
  .works,.eng,.prods,.posts,.quotes,.routes,.fixgrid,.svc-list,.offers,.split,.split.narrowimg{grid-template-columns:1fr}
  .eng{gap:26px}
  .human{grid-template-columns:1fr}
  .human img{width:100%;max-width:220px}
  .fgrid{grid-template-columns:1fr 1fr}
  .callout{flex-direction:column;align-items:flex-start}
  .diagram{padding:20px 14px}
  .metric .n{font-size:34px}
}
@media(max-width:560px){
  .wrap{padding-left:20px;padding-right:20px}
  section{padding:60px 0}
  .hero{padding:72px 0 64px}
  .hero h1{font-size:clamp(28px,8vw,40px)}
  .pagehead{padding:70px 0 6px}
  .pagehead h1{font-size:clamp(30px,8.5vw,44px)}
  .stagerow{grid-template-columns:1fr}
  .metrics{grid-template-columns:1fr}
  .metric{border-right:0;border-bottom:1px solid var(--hair)}
  .metric:last-child{border-bottom:0}
  .fgrid{grid-template-columns:1fr}
  .microproof{gap:8px 18px}
  .timeline{padding-left:18px}
  .fbottom{justify-content:flex-start}
  .navrow{height:60px}
}
@media(prefers-reduced-motion:reduce){
  .rv{transition:none;opacity:1;transform:none}
  .anim-scan,.anim-dup,.anim-ring,.anim-check,.anim-spark,.pflow.lit{animation:none}
  .ring-fg{stroke-dashoffset:52}.anim-check{stroke-dashoffset:0}
  *{scroll-behavior:auto !important}
}

/* ================================================================
   Nnitiwe system loader — "WHAT ARE YOUR COMMANDS?" style boot
   White/black field, pulsing blue triangle, per-page prompts.
   ================================================================ */
@font-face{font-family:"MagdaCleanMono";
  src:url("/assets/fonts/MagdaCleanMono.woff2") format("woff2"),
      url("/assets/fonts/MagdaCleanMono.woff") format("woff"),
      url("/assets/fonts/magdacleanmono.ttf") format("truetype");
  font-weight:400 700;font-display:swap;}
@font-face{font-family:"ShareTechMono";
  src:url("/assets/fonts/ShareTechMono-Regular.woff2") format("woff2"),
      url("/assets/fonts/ShareTechMono-Regular.ttf") format("truetype");
  font-weight:400;font-display:swap;}
:root{--nl-fs:clamp(30px,6.6vw,72px);--nl-accent:#0076e2;
  --loader-mono:"MagdaCleanMono","Share Tech Mono","ShareTechMono",ui-monospace,"Courier New",monospace;}
html.dark{--nl-accent:#2f90ff;}
#nloader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;
  background:#fff;color:#0a0a0a;font-family:var(--loader-mono);text-transform:uppercase;
  transition:opacity .8s ease;}
html.dark #nloader{background:#0E0F0D;color:#ECEAE4;}
#nloader.gone{opacity:0;pointer-events:none;}
#nloader .nl-group{display:flex;flex-direction:column;align-items:center;transform:translateY(-4%)}
#nloader .nl-word{font-weight:700;font-size:var(--nl-fs);line-height:1;letter-spacing:.06em;
  padding:0 0 .16em;margin:0 0 .22em;border-bottom:2px solid currentColor;white-space:nowrap;min-height:1em}
#nloader .nl-word.scr{opacity:.5}
#nloader .nl-tri{width:0;height:0;
  border-left:calc(var(--nl-fs)*.355) solid transparent;
  border-right:calc(var(--nl-fs)*.355) solid transparent;
  border-bottom:calc(var(--nl-fs)*.615) solid var(--nl-accent);opacity:0}
#nloader .nl-tri.pulse{animation:nlPulse var(--nl-dur,540ms) ease-out forwards}
@keyframes nlPulse{0%{opacity:0;transform:translateY(5px) scale(.92)}14%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(0) scale(1)}}
html.nl-active,html.nl-active body{overflow:hidden !important}
@media (prefers-reduced-motion:reduce){#nloader .nl-tri{opacity:1 !important;animation:none !important}#nloader .nl-word.scr{opacity:1}}
