:root{
  --bg:#fffaf5; --fg:#1c1917; --muted:#57534e; --card:#ffffff; --line:#e7e0d8;
  --accent:#c2410c; --accent-fg:#fff7ed; --dark:#1c1917;
}
@media (prefers-color-scheme: dark){
  :root{--bg:#14110f; --fg:#f5efe8; --muted:#a8a29e; --card:#1e1a17; --line:#332d28; --accent:#fb923c; --accent-fg:#1c1917; --dark:#0c0a09}
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:17px/1.6 Inter,system-ui,sans-serif}
h1,h2,h3,.brand{font-family:Archivo,Inter,sans-serif;line-height:1.05;margin:0 0 .5em}
h1{font-size:clamp(3rem,10vw,7rem);font-weight:900;letter-spacing:-.03em}
h2{font-size:clamp(2rem,5vw,3rem);font-weight:800;letter-spacing:-.02em}
h3{font-size:1.3rem;font-weight:800}
p{margin:0 0 1em}
a{color:inherit}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--accent);color:var(--accent-fg);padding:.5rem 1rem;z-index:10}
.wrap{max-width:1040px;margin:0 auto;padding:4rem 1.25rem}
.nav{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:.9rem 1.25rem;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{font-weight:900;text-decoration:none;font-size:1.2rem;margin:0}
.nav nav{display:flex;gap:1.1rem;flex-wrap:wrap;font-size:.92rem;font-weight:500}
.nav nav a{text-decoration:none;color:var(--muted)}.nav nav a:hover{color:var(--accent)}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:600;color:var(--accent);margin-bottom:.75rem}
.hero{max-width:1040px;margin:0 auto;padding:6rem 1.25rem 5rem}
.hero-photo{display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;align-items:center}
.portrait{width:100%;height:auto;border-radius:22px;border:1px solid var(--line);box-shadow:0 20px 50px -20px rgba(0,0,0,.4)}
@media (max-width:760px){.hero-photo{grid-template-columns:1fr;gap:2rem;padding-top:3rem}.portrait{max-width:420px}}
.lead{font-size:1.3rem;max-width:34rem;color:var(--muted)}
.cta{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.75rem}
.btn{display:inline-block;background:var(--accent);color:var(--accent-fg);padding:.85rem 1.4rem;border-radius:999px;font-weight:600;text-decoration:none;border:2px solid var(--accent);transition:transform .15s}
.btn:hover{transform:translateY(-2px)}
.btn.ghost{background:transparent;color:var(--fg);border-color:var(--fg)}
.btn.light{background:#fff7ed;color:#7c2d12;border-color:#fff7ed}
.feature-utah{background:linear-gradient(135deg,#7c2d12,#c2410c 55%,#ea580c);color:#fff7ed}
.feature-utah .eyebrow{color:#fed7aa}
.feature-utah p{max-width:34rem;font-size:1.15rem}
.stats{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;padding:0;margin:2rem 0 0}
.stats li{background:rgba(255,255,255,.12);border-radius:14px;padding:1rem 1.25rem}
.stats strong{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:#fed7aa}
.stats span{font-family:Archivo,sans-serif;font-weight:800;font-size:1.3rem}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}
.card,.project{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.75rem}
.card h2{font-size:2rem}
.projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;margin-top:1.5rem}
.project{transition:transform .15s,border-color .15s}.project:hover{transform:translateY(-3px);border-color:var(--accent)}
.project p{color:var(--muted)}
.link{color:var(--accent);font-weight:600;text-decoration:none}.link:hover{text-decoration:underline}
.contact{text-align:center;border-top:1px solid var(--line)}
footer{text-align:center;color:var(--muted);font-size:.9rem;padding:2rem 1rem 3rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.nav nav a[aria-current="page"]{color:var(--accent);font-weight:600}
.page-head{max-width:1040px;margin:0 auto;padding:4.5rem 1.25rem 1rem}
.page-head h1{font-size:clamp(2.5rem,8vw,5rem)}
.about{font-size:1.2rem;max-width:40rem;color:var(--muted)}
.wrap h2{margin-bottom:.6em}
.feature-utah .wrap{padding-top:3rem;padding-bottom:3rem}
.feature-utah{margin-top:2rem}

.tag{display:inline-block;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.2rem .7rem}
.stats span{display:block}

.tracker{margin:1.5rem 0 .75rem;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--card)}
.tracker iframe{display:block;width:100%;height:min(70vh,600px);min-height:420px;border:0}
.updates{list-style:none;padding:0;margin:1.5rem 0 0;max-width:40rem}
.updates li{border-left:3px solid var(--accent);padding:.1rem 0 .1rem 1rem;margin-bottom:1.75rem}
.updates li.empty{color:var(--muted);border-color:var(--line)}
.updates time{display:block;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}
.updates h3{margin:.2rem 0 .3rem}
.updates p{margin:0;color:var(--muted)}

#trk-map{height:min(70vh,560px);min-height:400px}
.trk-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:1.25rem 0}
.trk-stats>div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.8rem 1rem}
.trk-stats strong{display:block;font-family:Archivo,sans-serif;font-weight:800;font-size:1.5rem;line-height:1.2}
.trk-stats span{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.bar{display:block;height:6px;border-radius:99px;background:var(--line);margin-top:.5rem;overflow:hidden}.bar b{display:block;height:100%;width:0;background:var(--accent);transition:width .6s}
.face{width:56px;height:56px;border-radius:50%;border:3px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.45);overflow:hidden;background:#fff;position:relative}
.face img{position:absolute;width:78px;height:104px;left:-18px;top:-8px;max-width:none;display:block}
.face.live{box-shadow:0 0 0 0 rgba(194,65,12,.6),0 4px 14px rgba(0,0,0,.45);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 18px rgba(194,65,12,0),0 4px 14px rgba(0,0,0,.45)}100%{box-shadow:0 0 0 0 rgba(194,65,12,0),0 4px 14px rgba(0,0,0,.45)}}
@media (prefers-reduced-motion:reduce){.face.live{animation:none}}
.fine{font-size:.85rem;color:var(--muted);margin-top:1rem}
.tracker-wrap .cta{margin-top:1rem}
[hidden]{display:none!important}
.btn.ghost-light{background:transparent;color:#fff7ed;border-color:#fff7ed}
