:root{
  --ink:#11151C;
  --ink-soft:#565C63;
  --ink-faint:#9CA1A6;
  --paper:#EEF1EC;
  --paper-raised:#FFFFFF;
  --line:#DBDFD9;
  --line-strong:#C3C9C1;
  --blue:#0E6E86;
  --blue-dark:#0A5468;
  --blue-soft:#DFEFF1;
  --green:#1E8F5F;
  --green-soft:#E3F1EA;
  --amber:#B8791E;
  --amber-soft:#FBF0DE;
  --red:#C0392B;
  --red-soft:#F5E4E1;
  --radius:14px;
  --radius-sm:8px;
  --shadow: 0 1px 2px rgba(17,21,28,0.04), 0 8px 24px -12px rgba(17,21,28,0.12);
  --ff-display:'Space Grotesk', sans-serif;
  --ff-body:'Inter', sans-serif;
  --ff-mono:'IBM Plex Mono', monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--ff-body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--ff-display);margin:0;letter-spacing:-0.01em}
p{margin:0}
a{color:inherit}
button{font-family:inherit;cursor:pointer}
.mono{font-family:var(--ff-mono)}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.eyebrow{
  font-family:var(--ff-mono);
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ink-soft);
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:currentColor}

/* ---------- disclosure bar ---------- */
.disclosure{background:var(--ink);color:rgba(255,255,255,0.72);font-size:12.5px;text-align:center;padding:8px 16px}
.disclosure strong{color:#fff}
.disclosure a{color:#fff;text-decoration:underline}

/* ---------- trace divider, the signature motif ---------- */
.trace-divider{width:100%;height:34px;display:block;color:var(--line-strong)}
.trace-divider path{fill:none;stroke:currentColor;stroke-width:1.4}

/* ---------- header ---------- */
header.site{
  position:sticky;top:0;z-index:40;
  background:rgba(238,241,236,0.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1120px;margin:0 auto}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--ff-display);font-weight:700;font-size:19px;text-decoration:none;color:var(--ink)}
.brand svg{width:22px;height:22px;color:var(--blue)}
.brand small{font-family:var(--ff-mono);font-weight:500;font-size:11px;color:var(--ink-faint);letter-spacing:0.04em;margin-left:2px}
.nav-links{display:flex;align-items:center;gap:28px;font-size:14.5px;font-weight:500}
.nav-links a{text-decoration:none;color:var(--ink-soft);transition:color .15s}
.nav-links a:hover{color:var(--ink)}
.nav-cta{
  background:var(--ink);color:#fff;border:none;border-radius:999px;
  padding:10px 18px;font-size:14px;font-weight:600;text-decoration:none;
  display:inline-flex;align-items:center;gap:6px;
}
.nav-cta:hover{background:var(--blue-dark)}
.nav-mobile-hide{display:flex}
@media (max-width:760px){.nav-mobile-hide{display:none}}

/* ---------- hero ---------- */
.hero{padding:56px 0 40px;position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:48px;align-items:center}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}}
.hero h1{font-size:clamp(2.1rem,4vw,3rem);font-weight:700;line-height:1.08;margin:18px 0 16px;max-width:20ch}
.hero-sub{color:var(--ink-soft);font-size:17px;max-width:46ch;margin-bottom:28px}

.search-card{
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:6px;
  box-shadow:var(--shadow);
  display:flex;gap:6px;
}
.search-card input{
  flex:1;border:none;background:transparent;outline:none;
  padding:14px 16px;font-size:16px;font-family:var(--ff-body);color:var(--ink);
  width: 100%;
}
.search-card input::placeholder{color:var(--ink-faint)}
.search-card button{
  background:var(--ink);color:#fff;border:none;border-radius:var(--radius-sm);
  padding:0 22px;font-weight:600;font-size:14.5px;white-space:nowrap;
}
.search-card button:hover{background:var(--blue-dark)}
.search-note{font-size:12.5px;color:var(--ink-faint);margin-top:8px;min-height:16px}
.search-note.active{color:var(--blue-dark);font-weight:500}

.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{
  border:1px solid var(--line-strong);background:var(--paper-raised);
  border-radius:999px;padding:7px 14px;font-size:13.5px;font-weight:500;
  color:var(--ink-soft);transition:all .15s;
}
.chip:hover{border-color:var(--blue);color:var(--blue-dark)}
.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}

/* status readout card */
.status-card{
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:28px;
  box-shadow:var(--shadow);
  position:relative;
}
.status-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.status-pill{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--ff-mono);font-size:12px;font-weight:600;
  letter-spacing:0.06em;text-transform:uppercase;
  padding:6px 12px;border-radius:999px;
}
.status-pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.status-pill.ok{background:var(--green-soft);color:var(--green)}
.status-pill.warn{background:var(--amber-soft);color:var(--amber)}
.status-pill.down{background:var(--red-soft);color:var(--red)}
.status-updated{font-family:var(--ff-mono);font-size:12px;color:var(--ink-faint)}
.status-provider{font-family:var(--ff-display);font-size:22px;font-weight:700;margin-bottom:4px}
.status-line{font-size:15px;color:var(--ink-soft);margin-bottom:20px}
.trace-svg{width:100%;height:76px;display:block}
.trace-svg path.fill{fill:url(#traceFill);stroke:none}
.trace-svg path.line{fill:none;stroke-width:2}
.status-foot{display:flex;justify-content:space-between;margin-top:14px;font-family:var(--ff-mono);font-size:12px;color:var(--ink-faint)}

/* ---------- stat strip ---------- */
.stats{padding:8px 0 48px}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:760px){.stat-grid{grid-template-columns:repeat(2,1fr)}}
.stat{
  background:var(--paper-raised);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:18px 20px;
}
.stat-n{font-family:var(--ff-display);font-size:28px;font-weight:700}
.stat-l{font-size:13px;color:var(--ink-soft);margin-top:4px}

/* ---------- section headers ---------- */
.section{padding:46px 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;gap:16px;flex-wrap:wrap}
.section-head h2{font-size:22px;font-weight:700}
.section-head .desc{color:var(--ink-soft);font-size:14.5px}

/* ---------- two column: feed + areas ---------- */
.two-col{display:grid;grid-template-columns:1.3fr 1fr;gap:20px}
@media (max-width:860px){.two-col{grid-template-columns:1fr}}
.panel{
  background:var(--paper-raised);border:1px solid var(--line);
  border-radius:var(--radius);padding:22px;
}
.panel h3{font-size:15px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}
.live-tag{
  font-family:var(--ff-mono);font-size:10.5px;letter-spacing:0.08em;
  background:var(--red);color:#fff;padding:3px 8px;border-radius:4px;
  animation:pulseTag 2.2s ease-in-out infinite;
}
@keyframes pulseTag{0%,100%{opacity:1}50%{opacity:0.55}}
.report-row{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.report-row:first-of-type{border-top:none;padding-top:0}
.report-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex-shrink:0}
.report-body{flex:1;min-width:0}
.report-loc{font-weight:600;font-size:14.5px}
.report-issue{color:var(--ink-soft);font-size:13.5px;margin-top:2px}
.report-time{font-family:var(--ff-mono);font-size:12px;color:var(--ink-faint);white-space:nowrap;margin-top:6px}

.area-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:11px 12px;border-radius:8px;margin-bottom:6px;background:var(--paper);
}
.area-name{font-size:14px;font-weight:600}
.area-state{font-size:12px;color:var(--ink-faint);margin-left:6px;font-weight:400}
.area-bar-track{height:4px;background:var(--line);border-radius:4px;margin-top:6px;width:120px;overflow:hidden}
.area-bar{height:100%;background:var(--red)}
.area-count{font-family:var(--ff-mono);font-size:13px;color:var(--red);font-weight:600}

/* ---------- issue breakdown ---------- */
.breakdown-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:760px){.breakdown-grid{grid-template-columns:1fr}}
.breakdown-card{
  background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:20px;display:flex;align-items:center;gap:16px;
}
.breakdown-ring{position:relative;width:56px;height:56px;flex-shrink:0}
.breakdown-ring svg{width:56px;height:56px;transform:rotate(-90deg)}
.breakdown-ring circle{fill:none;stroke-width:5}
.breakdown-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--ff-mono);font-size:13px;font-weight:600}
.breakdown-label{font-size:13.5px;color:var(--ink-soft);font-weight:600}
.breakdown-sub{font-size:12px;color:var(--ink-faint);margin-top:2px}

/* ---------- faq ---------- */
.faq-item{border-top:1px solid var(--line)}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-q{
  width:100%;background:none;border:none;text-align:left;
  padding:18px 4px;display:flex;justify-content:space-between;align-items:center;
  font-size:15.5px;font-weight:600;color:var(--ink);
}
.faq-q .icon{width:18px;height:18px;flex-shrink:0;transition:transform .2s;color:var(--ink-faint)}
.faq-item.open .faq-q .icon{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease}
.faq-a p{padding:0 4px 18px;color:var(--ink-soft);font-size:14.5px;max-width:64ch}

/* ---------- Report Modal ---------- */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(17,21,28,0.6); backdrop-filter: blur(4px);
  z-index: 100; display: flex; align-items: center; justify-content: center; padding: 24px;
  opacity: 0; visibility: hidden; transition: all 0.3s ease;
}
.modal-overlay.open { opacity: 1; visibility: visible; }
.modal {
  background: var(--paper-raised); border-radius: var(--radius); width: 100%; max-width: 440px;
  padding: 32px; box-shadow: var(--shadow); position: relative;
  transform: translateY(20px); transition: transform 0.3s ease;
}
.modal-overlay.open .modal { transform: translateY(0); }
.modal-close {
  position: absolute; top: 20px; right: 20px; background: none; border: none; font-size: 24px; color: var(--ink-faint);
}
.modal-close:hover { color: var(--ink); }
.modal h3 { font-size: 20px; margin-bottom: 24px; }
.form-group { margin-bottom: 20px; }
.form-group label { display: block; font-size: 13.5px; font-weight: 600; margin-bottom: 8px; }
.form-group input, .form-group textarea, .form-group select {
  width: 100%; padding: 12px 16px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm);
  font-family: var(--ff-body); font-size: 15px; color: var(--ink); outline: none; background: var(--paper);
}
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { border-color: var(--blue); }
.modal-submit {
  width: 100%; background: var(--blue); color: #fff; border: none; border-radius: var(--radius-sm);
  padding: 14px; font-size: 15px; font-weight: 600; margin-top: 8px; transition: background 0.2s;
}
.modal-submit:hover { background: var(--blue-dark); }
.modal-success { text-align: center; display: none; padding: 20px 0; }
.modal-success svg { color: var(--green); width: 48px; height: 48px; margin-bottom: 16px; }

/* ---------- footer ---------- */
footer.site{border-top:1px solid var(--line);padding:44px 0 32px;margin-top:20px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr 1fr}}
footer.site h4{font-size:12.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:12px;font-weight:600}
footer.site ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
footer.site a{text-decoration:none;color:var(--ink-soft);font-size:14px}
footer.site a:hover{color:var(--blue-dark)}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:38px;padding-top:20px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-faint)}
