<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Municorn — data and operations consulting for city government</title>
<meta name="description" content="Municorn works with cities, counties and utilities on vendor and contract oversight, operations review, migrations, reporting and custom tools. Cambridge, MA and Dallas, TX.">
<link rel="icon" href="bronze_logo.png" type="image/png">
<link rel="apple-touch-icon" href="bronze_logo.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,300;0,400;1,300;1,400&family=Public+Sans:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap" rel="stylesheet">
<style>
:root{
  --brick:#8B3A2E;
  --mortar:#C9BCA9;
  --lime:#EDE6D9;
  --lime-dk:#DCD2C0;
  --paper:#FAF8F4;
  --ink:#151210;
  --ink-2:#1E1A17;
  --ink-soft:#5C5751;
  --faint:#8E877F;
  --brass:#8A6A34;
  --brass-lt:#D8B278;
  --rule:#DAD4C8;

  --serif:'Crimson Pro',Georgia,serif;
  --sans:'Public Sans',system-ui,sans-serif;
  --mono:'IBM Plex Mono',monospace;

  --max:78rem;
  --gut:clamp(1.15rem,4.5vw,4rem);
  --brickimg:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='128'%20height='64'%3E%3Crect%20width='128'%20height='64'%20fill='%23C9BCA9'/%3E%3Crect%20x='2'%20y='2'%20width='60'%20height='28'%20fill='%238B3A2E'/%3E%3Crect%20x='66'%20y='2'%20width='60'%20height='28'%20fill='%23934236'/%3E%3Crect%20x='-30'%20y='34'%20width='60'%20height='28'%20fill='%23803329'/%3E%3Crect%20x='34'%20y='34'%20width='60'%20height='28'%20fill='%238B3A2E'/%3E%3Crect%20x='98'%20y='34'%20width='60'%20height='28'%20fill='%23974C3B'/%3E%3C/svg%3E");
  --soldier:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='72'%20height='34'%3E%3Crect%20width='72'%20height='34'%20fill='%23C9BCA9'/%3E%3Crect%20x='2'%20y='2'%20width='14'%20height='30'%20fill='%23803329'/%3E%3Crect%20x='20'%20y='2'%20width='14'%20height='30'%20fill='%238B3A2E'/%3E%3Crect%20x='38'%20y='2'%20width='14'%20height='30'%20fill='%23934236'/%3E%3Crect%20x='56'%20y='2'%20width='14'%20height='30'%20fill='%23843729'/%3E%3C/svg%3E");
  --bricksize:128px 64px;
}

.mark__logo{height:1.6rem;width:auto;display:block;flex-shrink:0}
.hero__title{display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem;margin-bottom:clamp(1.6rem,3.5vw,2.8rem)}
.hero__title__row{display:flex;align-items:center;gap:clamp(1.2rem,2.8vw,2rem);flex-wrap:wrap}
.hero__logo{width:clamp(4.5rem,8vw,7rem);height:auto;display:block;flex-shrink:0;transform:translateY(-0.08em);opacity:0;animation:fade .8s cubic-bezier(.22,1,.36,1) .3s both}
.hero__sub{font-family:var(--serif);font-size:clamp(1.8rem,3.5vw,2.4rem);line-height:1.3;letter-spacing:-.01em;color:var(--brass-lt);margin:0;opacity:0;animation:fade .8s cubic-bezier(.22,1,.36,1) .35s both}
@media(max-width:700px){
  .hero__logo{width:3.5rem}
  .hero__sub{max-width:100%;font-size:clamp(1.3rem,5.6vw,1.7rem);line-height:1.25}
  .hero__title{gap:.85rem}
  .win__lintel{margin:0 -10px}
  .win__sill{margin:0 -12px}
  .win__apron{margin:0 -6px}
}
@media(max-width:700px){:root{--bricksize:106px 53px}}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:64px}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300;
  font-size:clamp(.96rem,.35vw + .89rem,1.04rem);line-height:1.62;-webkit-font-smoothing:antialiased;
  overflow-x:hidden}
h1,h2,h3{font-family:var(--serif);font-weight:300;line-height:1.02;letter-spacing:-.02em}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}
.tag{font-family:var(--sans);font-weight:600;font-size:.63rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--brass);display:block;margin-bottom:1.1rem}

.btn{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;font-family:var(--sans);
  font-weight:600;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;padding:.85rem 1.4rem;
  border:1px solid transparent;transition:background .2s,color .2s,border-color .2s}
.btn--brass{background:var(--brass-lt);color:#1B1712}
.btn--brass:hover{background:#EBCB98}
.btn--ink{background:var(--ink);color:var(--lime);border-color:var(--ink)}
.btn--ink:hover{background:var(--brick);border-color:var(--brick)}
.btn--out{border-color:var(--ink)}
.btn--out:hover{background:var(--lime)}
a:focus-visible,button:focus-visible{outline:2px solid var(--brass-lt);outline-offset:3px}

.brickwall{background-color:var(--mortar);background-image:var(--brickimg);background-size:var(--bricksize)}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;
  justify-content:space-between;gap:1rem;padding:1.1rem var(--gut);
  transition:background .3s,border-color .3s,padding .3s;border-bottom:1px solid transparent}
.nav.stuck{background:rgba(21,18,16,.9);backdrop-filter:blur(9px);
  border-bottom-color:rgba(255,255,255,.1);padding-block:.7rem}
.mark{display:flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--lime)}
.mark span{font-family:var(--serif);font-size:1.3rem;letter-spacing:.01em}
.nav__l{display:flex;gap:1.6rem;align-items:center}
.nav__l a{font-family:var(--sans);font-weight:500;font-size:.67rem;letter-spacing:.16em;
  text-transform:uppercase;text-decoration:none;color:#C0B4A0}
.nav__l a:hover{color:var(--lime)}
.nav__l a.em{color:var(--brass-lt);text-transform:none;letter-spacing:.02em;font-size:.82rem;font-weight:400}
@media(max-width:860px){.nav__l a:not(.em){display:none}}

/* hero */
.hero{position:relative;min-height:92vh;min-height:92svh;display:flex;flex-direction:column;
  justify-content:flex-end;padding:0 var(--gut) clamp(2.4rem,5vw,4.2rem);overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg::before{content:'';position:absolute;inset:0;background-color:var(--mortar);
  background-image:var(--brickimg);background-size:var(--bricksize)}
.hero__bg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(to top,var(--ink) 26%,rgba(21,18,16,.86) 56%,rgba(21,18,16,.34) 82%,rgba(21,18,16,.5) 100%)}
.hero__in{position:relative;z-index:2;max-width:var(--max);margin:0 auto;width:100%}
.hero h1{font-size:clamp(3rem,12vw,9.5rem);line-height:1;color:var(--lime);margin:0}
.hero h1 .l{display:block;overflow:hidden}
.hero h1 .l>i{display:inline-block;font-style:normal;
  animation:up 1.1s cubic-bezier(.22,1,.36,1) .15s both}
.hero h1 .l.it>i{font-style:italic;color:var(--brass-lt);animation-delay:.29s;font-size:.34em;
  letter-spacing:-.01em;line-height:1.16;max-width:20ch}
@keyframes up{from{transform:translateY(112%)}to{transform:translateY(0)}}
.hero__low{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap;
  animation:fade .8s cubic-bezier(.22,1,.36,1) .85s both}
@keyframes fade{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes slideIn{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}
.hero__desc{max-width:46ch;color:#C6BAA6;line-height:1.72;
  text-shadow:0 0 20px rgba(21,18,16,.9),0 0 44px rgba(21,18,16,.8);
  opacity:0;animation:slideIn .8s cubic-bezier(.22,1,.36,1) .95s both}
.hero__cta{display:flex;flex-direction:column;align-items:flex-start;gap:.65rem}
.hero__where{font-family:var(--mono);font-size:.64rem;letter-spacing:.13em;color:#9A8E7C;
  text-shadow:0 0 14px rgba(21,18,16,.9)}

/* ticker */
.tick{background:var(--ink);color:#8E8375;overflow:hidden;padding:.6rem 0;
  border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.tick__t{display:flex;width:max-content;animation:mq 42s linear infinite}
.tick:hover .tick__t{animation-play-state:paused}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tick__r{display:flex;gap:2rem;padding-right:2rem;font-family:var(--mono);font-size:.63rem;
  letter-spacing:.13em;text-transform:uppercase;white-space:nowrap}
.tick__r b{font-weight:400}
.tick__r b em{font-style:normal;color:var(--brass);margin-right:.5rem}

/* dark practice section */
.dark{background:var(--ink);color:#E5DCCC;padding:clamp(3rem,7vw,5.4rem) 0;position:relative;overflow:hidden}
#hex{position:absolute;inset:0;width:100%;height:100%;opacity:.55}
.dark__in{position:relative;z-index:2}
.dark h2{font-size:clamp(1.7rem,4.2vw,3rem);color:#F3ECDD;max-width:22ch}
.dark__lede{color:#A79C8C;max-width:56ch;margin-top:.9rem}
.rows{margin-top:clamp(2rem,4vw,3rem);border-top:1px solid rgba(255,255,255,.13)}
.r{display:grid;gap:.25rem 2rem;padding:1.15rem 0;border-bottom:1px solid rgba(255,255,255,.13);
  align-items:baseline;transition:background .3s,padding-left .3s}
@media(min-width:840px){.r{grid-template-columns:17rem 1fr}}
.r:hover{background:rgba(255,255,255,.035);padding-left:.7rem}
.r b{font-family:var(--serif);font-weight:300;font-size:1.42rem;color:#F3ECDD;letter-spacing:-.01em}
.r span{color:#A79C8C;font-size:.93rem}

/* domain strip */
.strip{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.13);
  margin-top:2.6rem;
  border-top:1px solid rgba(255,255,255,.13);border-bottom:1px solid rgba(255,255,255,.13)}
@media(min-width:720px){.strip{grid-template-columns:repeat(4,1fr)}}
.dm{background:var(--ink);padding:1.05rem 1rem 1.2rem}
@media(min-width:720px){.dm{padding:1.3rem 1.3rem 1.5rem}}
.dm u{text-decoration:none;font-family:var(--serif);font-weight:300;font-size:2.1rem;
  line-height:1;color:var(--brass);display:block;margin-bottom:.5rem;opacity:.75}
.dm b{display:block;font-family:var(--serif);font-weight:300;font-size:1.08rem;color:#F3ECDD;margin-bottom:.3rem}
@media(min-width:720px){.dm b{font-size:1.2rem}}
.dm p{font-size:.82rem;color:#A79C8C;line-height:1.65}
@media(min-width:720px){.dm p{font-size:.87rem}}

/* people on brick */
.people{position:relative;padding:clamp(3rem,6.5vw,5rem) 0}
.people::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(25,15,12,.22),rgba(25,15,12,.06) 32%,rgba(25,15,12,.22))}
.people__in{position:relative;z-index:3}
.people .tag{color:var(--brass-lt)}
.pnl{position:relative;display:inline-block;max-width:56rem;
  background:rgba(21,18,16,.76);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
  border:1px solid rgba(237,230,217,.18);padding:clamp(1.2rem,2.5vw,1.7rem) clamp(1.2rem,2.5vw,1.9rem);
  box-shadow:0 12px 30px rgba(25,12,8,.35)}
.people h2{font-size:clamp(1.7rem,3.8vw,2.7rem);color:var(--lime);max-width:22ch}
.people__lede{color:#D8CCB8;max-width:50ch;margin-top:.7rem}
.wins{display:grid;gap:clamp(2rem,4vw,3rem);margin-top:clamp(2.2rem,4vw,3.2rem)}
@media(min-width:620px){.wins{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.wins{grid-template-columns:repeat(3,1fr)}}
.win{max-width:24rem;width:100%;margin:0 auto}

/* window assembly */
.win__lintel{height:30px;background-image:var(--soldier);background-size:72px 34px;
  margin:0 -14px;border:1px solid rgba(60,35,25,.35);box-shadow:0 3px 8px rgba(25,12,8,.4)}
.win__casing{background:#F2EEE4;padding:11px;border:1px solid #B9AF9B;
  box-shadow:0 14px 30px rgba(25,12,8,.45),0 2px 0 rgba(255,255,255,.5) inset}
.win__sash{background:#FBF8F1;padding:13px 12px 20px;border:1px solid #C6BCA8;
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset}
.win__glass{position:relative;aspect-ratio:5/6;overflow:hidden;background:linear-gradient(165deg,#C9CFCB,#9FA7A3 60%,#8C948F);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 1px rgba(70,60,45,.35),inset 0 10px 26px rgba(20,26,24,.45)}
.win__glass img{width:100%;height:100%;object-fit:cover;display:block;object-position:center top}
.win__glass u{text-decoration:none;font-family:var(--serif);font-size:2.6rem;color:rgba(20,18,16,.34)}
.win__link{display:block;text-decoration:none;color:inherit}
.win__link:hover .win__cap b{color:var(--brass-lt)}
.win__glass::after{content:'';position:absolute;top:-40%;left:-70%;width:46%;height:200%;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.34),rgba(255,255,255,0));
  transform:rotate(15deg);transition:left .95s ease}
.win:hover .win__glass::after{left:140%}
.win__sill{height:12px;background:linear-gradient(180deg,#EDE7DA,#D5CCBA);
  border:1px solid #B0A692;margin:0 -18px;box-shadow:0 5px 12px rgba(25,12,8,.4)}
.win__apron{height:7px;background:#E4DCCC;border:1px solid #B0A692;border-top:0;margin:0 -8px}
.win__cap{margin-top:1.05rem;text-align:center;
  background:rgba(21,18,16,.78);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
  border:1px solid rgba(237,230,217,.18);padding:1rem 1.1rem 1.15rem;
  box-shadow:0 10px 26px rgba(25,12,8,.4)}
.win__cap b{display:block;font-family:var(--serif);font-weight:300;font-size:1.34rem;color:var(--lime)}
.win__cap span{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brass-lt);margin-top:.4rem}
.win__cap p{font-size:.86rem;color:#D5C9B6;line-height:1.55;margin-top:.65rem}

/* contact */
.ct{background:var(--paper);padding:clamp(3rem,6.5vw,5rem) 0}
.ct__grid{display:grid;gap:1.8rem clamp(1.8rem,5vw,4rem)}
@media(min-width:840px){.ct__grid{grid-template-columns:1fr 1fr;align-items:start}}
.ct h2{font-size:clamp(1.9rem,4.4vw,3.2rem);max-width:16ch}
.ct h2 em{font-style:italic;color:var(--brick)}
.ct p{color:var(--ink-soft);max-width:44ch;margin-top:.9rem}
.ct__mail{display:inline-block;margin-top:1.2rem;font-family:var(--serif);font-size:clamp(1.3rem,2.6vw,1.75rem);
  text-decoration:none;border-bottom:1px solid var(--brass)}
.ct__mail:hover{color:var(--brick);border-color:var(--brick)}
.facts dl{border-top:1px solid var(--rule);margin-bottom:1.6rem}
.facts dl>div{display:grid;gap:.15rem .9rem;padding:.7rem 0;border-bottom:1px solid var(--rule)}
@media(min-width:520px){.facts dl>div{grid-template-columns:10.5rem 1fr;align-items:baseline}}
.facts dt{font-family:var(--mono);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--brass)}
.facts dd{font-size:.92rem;color:var(--ink-soft)}
.fine{font-size:.8rem;color:var(--faint)}

/* footer */
.foot{background:var(--ink-2);color:#C6BCAA}
.foot__in{max-width:var(--max);margin:0 auto;padding:2.2rem var(--gut);display:grid;gap:1.2rem}
@media(min-width:720px){.foot__in{grid-template-columns:1.7fr 1fr}}
.foot__name{font-family:var(--serif);font-size:1.55rem;color:#F3ECDD;margin-bottom:.25rem}
.foot__in p{font-size:.9rem;color:#A79C8C}
.foot__links{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-content:start}
.foot__links a{text-decoration:none;font-family:var(--sans);font-weight:500;font-size:.7rem;
  letter-spacing:.14em;text-transform:uppercase}
.foot__links a:hover{color:#fff}
.foot__bar{border-top:1px solid rgba(255,255,255,.1)}
.foot__bar div{max-width:var(--max);margin:0 auto;padding:.85rem var(--gut);display:flex;flex-wrap:wrap;
  gap:.4rem 1.5rem;justify-content:space-between;font-family:var(--mono);font-size:.6rem;
  letter-spacing:.1em;color:#7C7263}

.rise{opacity:0;transform:translateY(16px);transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1)}
.rise.in{opacity:1;transform:none}
.stag>*{opacity:0;transform:translateY(14px);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1)}
.stag.in>*{opacity:1;transform:none}
.stag.in>*:nth-child(2){transition-delay:.08s}
.stag.in>*:nth-child(3){transition-delay:.16s}
.stag.in>*:nth-child(4){transition-delay:.24s}
.stag.in>*:nth-child(5){transition-delay:.32s}
.stag.in>*:nth-child(6){transition-delay:.4s}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero h1 .l>i,.hero__low{animation:none}
  .tick__t{animation:none}
  .win__glass::after{display:none}
  .rise,.stag>*{opacity:1;transform:none;transition:none}
}
</style>
</head>
<body>

<nav class="nav" id="nav">
  <a class="mark" href="#top" aria-label="Municorn.us home">
    <img class="mark__logo" src="white_logo.svg" alt="" />
    <span>Municorn.us</span>
  </a>
  <div class="nav__l">
    <a href="#practice">What we do</a>
    <a href="#people">People</a>
    <a href="/water-loss/">Water loss index</a>
    <a class="em" href="mailto:ammar@municorn.us">ammar@municorn.us</a>
  </div>
</nav>

<header class="hero" id="top">
  <div class="hero__bg" aria-hidden="true"></div>
  <div class="hero__in">
    <div class="hero__title">
      <div class="hero__title__row">
        <img class="hero__logo" src="bronze_logo.png" alt="Municorn.us" />
        <h1>
          <span class="l"><i>Municorn.us</i></span>
          <span class="l it"><i>Data and operations consulting for city government</i></span>
        </h1>
      </div>
    </div>
    <div class="hero__low">
      <p class="hero__desc">We work with cities, counties and utilities on the things that decide whether a department runs well: whether the vendor is delivering, whether the process still makes sense, and whether anyone can trust the numbers coming out of it.</p>
      <div class="hero__cta">
        <a class="btn btn--brass" href="mailto:ammar@municorn.us">Email us
          <svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" aria-hidden="true"><path d="M1.5 6.5h10M8 3l3.5 3.5L8 10"/></svg>
        </a>
        <span class="hero__where">Cambridge, MA · Dallas, TX</span>
      </div>
    </div>
  </div>
</header>

<div class="tick" aria-hidden="true">
  <div class="tick__t">
    <div class="tick__r">
      <b><em>◦</em>SCADA · Modbus · OPC UA · DNP3</b><b><em>◦</em>AMI meter headends</b>
      <b><em>◦</em>ArcGIS · PostGIS · H3</b><b><em>◦</em>CMMS &amp; work orders</b>
      <b><em>◦</em>Permitting &amp; licensing</b><b><em>◦</em>ERP &amp; utility billing</b>
      <b><em>◦</em>ACFR &amp; rate models</b><b><em>◦</em>PCI · ASTM D6433</b>
    </div>
    <div class="tick__r">
      <b><em>◦</em>SCADA · Modbus · OPC UA · DNP3</b><b><em>◦</em>AMI meter headends</b>
      <b><em>◦</em>ArcGIS · PostGIS · H3</b><b><em>◦</em>CMMS &amp; work orders</b>
      <b><em>◦</em>Permitting &amp; licensing</b><b><em>◦</em>ERP &amp; utility billing</b>
      <b><em>◦</em>ACFR &amp; rate models</b><b><em>◦</em>PCI · ASTM D6433</b>
    </div>
  </div>
</div>

<main>

<section class="dark" id="practice">
  <canvas id="hex" aria-hidden="true"></canvas>
  <div class="wrap dark__in">
    <div class="rise">
      <span class="tag">What we do</span>
      <h2>Data and operations work for city government.</h2>
      <p class="dark__lede">Help your team make better decisions with your data and systems. We handle the technical work—evaluation, implementation, integration—so you can focus on service delivery.</p>
    </div>

    <div class="rows stag">
      <div class="r">
        <b>Technology assessment and strategy</b>
        <span>Evaluate your vendor ecosystem and operational gaps. Where will investment matter most? Build vs. buy, integration priorities, vendor evaluation, and capabilities you're missing.</span>
      </div>
      <div class="r">
        <b>Process optimization</b>
        <span>Walk the workflow with your staff. Find unnecessary steps, automation opportunities, and friction. Redesign around what actually needs to happen, not what the software requires.</span>
      </div>
      <div class="r">
        <b>Implementation and adoption</b>
        <span>New systems, new data, new workflows. We lead the launch, training, and first ninety days—the part where people figure out how to actually work with it.</span>
      </div>
      <div class="r">
        <b>Data migration and integration</b>
        <span>Legacy system lock-in. We extract, clean, and re-index records the way your staff searches for them. Full transitions with nothing lost and your team trained to take over.</span>
      </div>
      <div class="r">
        <b>Automated reporting</b>
        <span>State submittals, grant reports, council packets—assembled from your records once, delivered on schedule. Frees up the person you need for strategy, not data entry.</span>
      </div>
      <div class="r">
        <b>Analytics and decision tools</b>
        <span>Custom dashboards and models your directors need to answer real questions. Prioritization for maintenance, scenario modeling for capital planning, data-driven financial analysis. Yours to own.</span>
      </div>
    </div>

    <div class="strip stag">
      <div class="dm"><u>01</u><b>Water &amp; wastewater</b><p>Plant, meter, GIS and billing records reconciled against each other.</p></div>
      <div class="dm"><u>02</u><b>Roads &amp; assets</b><p>Condition and inventory scored consistently, repairs ranked by consequence.</p></div>
      <div class="dm"><u>03</u><b>Permits &amp; service</b><p>Fewer steps to approval, and the history preserved through the move.</p></div>
      <div class="dm"><u>04</u><b>Rates, debt &amp; capital</b><p>Figures traced to their source, scenarios run before the vote.</p></div>
    </div>
  </div>
</section>

<section class="brickwall people" id="people">
  <div class="wrap people__in">
    <div class="rise">
      <div class="pnl">
        <span class="tag">People</span>
        <h2>All three of us work on your job.</h2>
        <p class="people__lede">No account manager, no handoff to a team you haven't met.</p>
      </div>
    </div>
    <div class="wins stag">
      <div class="win">
        <a class="win__link" href="https://www.linkedin.com/in/ammarplumber/" target="_blank" rel="noopener noreferrer">
          <div class="win__lintel"></div>
          <div class="win__casing">
            <div class="win__sash">
              <div class="win__glass">
                <img src="ammar.jpeg" alt="Ammar Cephas Plumber" loading="lazy">
              </div>
            </div>
          </div>
          <div class="win__sill"></div>
          <div class="win__apron"></div>
          <div class="win__cap">
            <b>Ammar Cephas Plumber</b>
            <span>Govtech systems</span>
            <p>Industrial siting, innovation lead for Texas city, built courts and payment software. Penn economics, public capital markets at Chicago.</p>
          </div>
        </a>
      </div>
      <div class="win">
        <a class="win__link" href="https://www.linkedin.com/in/cameron-obrecht/" target="_blank" rel="noopener noreferrer">
          <div class="win__lintel"></div>
          <div class="win__casing"><div class="win__sash"><div class="win__glass"><img src="cameron.jpeg" alt="Cameron Obrecht" loading="lazy"></div></div></div>
          <div class="win__sill"></div>
          <div class="win__apron"></div>
          <div class="win__cap">
            <b>Cameron Obrecht</b>
            <span>Physical infrastructure</span>
            <p>Electrical engineer at Bose, UIUC grad. Boards, firmware and sensing — CAN products, high-voltage assemblies, in-line flow metering.</p>
          </div>
        </a>
      </div>
      <div class="win">
        <a class="win__link" href="https://www.linkedin.com/in/vincent-cavanna/" target="_blank" rel="noopener noreferrer">
          <div class="win__lintel"></div>
          <div class="win__casing"><div class="win__sash"><div class="win__glass"><img src="vincent.jpeg" alt="Vincent Cavanna" loading="lazy"></div></div></div>
          <div class="win__sill"></div>
          <div class="win__apron"></div>
          <div class="win__cap">
            <b>Vincent Cavanna</b>
            <span>Business process &amp; data governance</span>
            <p>Full-stack engineer for Word on Fire. Portals, CRM, and data-quality systems in production; Amazon before that.</p>
          </div>
        </a>
      </div>
    </div>
  </div>
</section>

<section class="ct" id="talk">
  <div class="wrap ct__grid rise">
    <div>
      <span class="tag">Get in touch</span>
      <h2>Tell us what's <em>costing you</em> the most time.</h2>
      <p>A short call is usually enough to say whether we're the right people for it.</p>
      <a class="ct__mail" href="mailto:ammar@municorn.us">ammar@municorn.us</a>
    </div>
  </div>
</section>

</main>

<footer class="foot">
  <div class="foot__in">
    <div>
      <div class="foot__name">Municorn.us</div>
      <p>Data and operations consulting for city government.<br>Cambridge, MA · Dallas, TX</p>
    </div>
    <div class="foot__links">
      <a href="#practice">What we do</a>
      <a href="#people">People</a>
      <a href="/water-loss/">Water loss index</a>
      <a href="mailto:ammar@municorn.us">Email</a>
    </div>
  </div>
  <div class="foot__bar"><div>
    <span>© 2026 Municorn.us</span>
    <span>Cities · Counties · Utilities · Regional agencies</span>
  </div></div>
</footer>

<script>
(function(){
var reduce=matchMedia('(prefers-reduced-motion: reduce)').matches;

/* nav state */
var nav=document.getElementById('nav');
function onScroll(){nav.classList.toggle('stuck',scrollY>40);}
addEventListener('scroll',onScroll,{passive:true});onScroll();

/* reveals */
var rv=[].slice.call(document.querySelectorAll('.rise,.stag'));
if('IntersectionObserver' in window && !reduce){
  var io=new IntersectionObserver(function(es){es.forEach(function(e){
    if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target);}});},
    {rootMargin:'0px 0px -8% 0px',threshold:.05});
  rv.forEach(function(el){io.observe(el);});
}else{rv.forEach(function(el){el.classList.add('in');});}

/* hex field */
var cv=document.getElementById('hex');
if(cv && !reduce){
  var ctx=cv.getContext('2d'),w=0,h=0,t=0,R=27,cells=[],run=false;
  function build(){
    var p=cv.parentNode.getBoundingClientRect(),d=Math.min(devicePixelRatio||1,2);
    w=p.width;h=p.height;cv.width=w*d;cv.height=h*d;ctx.setTransform(d,0,0,d,0,0);
    cells=[];
    var dx=R*1.5,dy=R*Math.sqrt(3);
    for(var col=0;col*dx<w+R*2;col++)
      for(var row=0;row*dy<h+R*2;row++)
        cells.push({x:col*dx,y:row*dy+(col%2?dy/2:0),s:Math.random()*6.28});
  }
  function hex(x,y,r){
    ctx.beginPath();
    for(var i=0;i<6;i++){
      var a=Math.PI/180*(60*i),px=x+r*Math.cos(a),py=y+r*Math.sin(a);
      i?ctx.lineTo(px,py):ctx.moveTo(px,py);
    }
    ctx.closePath();
  }
  function draw(){
    if(!run)return;
    ctx.clearRect(0,0,w,h);
    var sweep=(t*0.15)%(w+560)-280;
    for(var i=0;i<cells.length;i++){
      var c=cells[i],d=Math.abs(c.x-sweep),lit=d<210?(1-d/210):0,
          base=0.03+0.018*Math.sin(t/95+c.s);
      ctx.strokeStyle='rgba(233,222,201,'+(base+lit*0.15).toFixed(3)+')';
      ctx.lineWidth=1;hex(c.x,c.y,R-3);ctx.stroke();
      if(lit>0.74){
        ctx.fillStyle='rgba(200,140,80,'+((lit-0.74)*0.55).toFixed(3)+')';
        ctx.beginPath();ctx.arc(c.x,c.y,1.8,0,6.283);ctx.fill();
      }
    }
    t++;requestAnimationFrame(draw);
  }
  build();addEventListener('resize',build);
  if('IntersectionObserver' in window){
    new IntersectionObserver(function(es){
      es.forEach(function(e){
        if(e.isIntersecting){if(!run){run=true;draw();}}else{run=false;}
      });
    },{threshold:0}).observe(cv.parentNode);
  } else{run=true;draw();}
}

})();
</script>
</body>
</html>
