@font-face{
  font-family:"Sora";
  src:url("/assets/fonts/Sora-VariableFont_wght.ttf") format("truetype");
  font-weight:400 700;
  font-display:swap;
}
@font-face{
  font-family:"General Sans";
  src:url("/assets/fonts/GeneralSans-Variable.ttf") format("truetype");
  font-weight:300 700;
  font-display:swap;
}
:root{
  --forest:#07110D; --forest-2:#0a140f; --panel-a:rgba(38,44,38,.34); --panel-b:rgba(11,18,13,.55);
  --ivory:#F4EFE2; --ivory-dim:#bdb39e; --ivory-faint:#9f9685;
  --gold:#C69B4A; --gold-bright:#e3c277; --gold-deep:#9c7536; --olive:#77835A;
  --ok:#9eb987; --ok-glow:rgba(158,185,135,.32);
  --warn:#d8b15f; --warn-glow:rgba(216,177,95,.34);
  --down:#be735f; --down-glow:rgba(190,115,95,.34);
  --muted:#6b726a;
  --line:rgba(59,53,39,.62); --line-soft:rgba(244,239,226,.10);
  --display:"Sora",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --body:"General Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --radius:12px;
  --radius-sm:12px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{
  font-family:var(--body); color:var(--ivory); background-color:var(--forest);
  background-image:url("/assets/images/backgrounds/vault-one_bg_master.png");
  background-size:cover; background-position:center; background-repeat:no-repeat;
  background-attachment:fixed; min-height:100vh; min-height:100dvh; line-height:1.5;
  padding:clamp(14px,2.5vh,28px) clamp(18px,5vw,40px) clamp(18px,2.5vh,28px);
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;
  background:linear-gradient(180deg, rgba(7,17,13,.18), rgba(9,11,9,.42));
}
@media (orientation:portrait){
  body{background-image:url("/assets/images/backgrounds/vault-one_bg_master.png")}
}
.wrap{max-width:680px;margin:0 auto;position:relative;display:flex;flex-direction:column;gap:0;
  min-height:calc(100dvh - clamp(28px,5vh,56px));justify-content:center;
  padding-top:clamp(48px,11vh,120px);padding-bottom:clamp(20px,5vh,56px)}
a{color:var(--gold);text-decoration:none}
a:hover{color:var(--gold-bright)}
::selection{background:rgba(198,155,74,.28);color:var(--ivory)}

/* ── Masthead ─────────────────────────────── */
.masthead{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;
  padding-bottom:14px;border-bottom:1px solid var(--line-soft);margin-bottom:16px}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand-symbol{width:46px;height:46px;object-fit:contain;flex:none;
  filter:drop-shadow(0 8px 20px rgba(198,155,74,.22))}
.brand-lockup{display:flex;flex-direction:column;gap:5px;min-width:0}
.brand-wordmark{display:block;width:136px;height:auto}
.brand-sub{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);opacity:.92}
.refresh{font-family:var(--display);font-size:12px;font-weight:500;letter-spacing:0;
  color:var(--ivory-dim);background:rgba(244,239,226,.05);border:1px solid var(--line-soft);
  border-radius:999px;padding:8px 15px 8px 13px;cursor:pointer;display:flex;align-items:center;gap:7px;
  transition:border-color .2s,color .2s,background .2s,box-shadow .2s}
.refresh:hover{color:var(--ivory);border-color:rgba(198,155,74,.28);background:rgba(244,239,226,.08);
  box-shadow:0 0 0 1px rgba(198,155,74,.08)}
.refresh:disabled{cursor:wait;opacity:.78}
.refresh:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.refresh svg{width:13px;height:13px}
.refresh.spin svg{animation:spin .8s linear infinite}

/* ── Hero status ──────────────────────────── */
.hero{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;flex:none;
  padding:clamp(16px,2.2vh,22px) clamp(18px,2.5vw,24px);border-radius:var(--radius-sm);overflow:hidden;
  border:1px solid rgba(244,239,226,.13);
  background:linear-gradient(180deg,rgba(38,44,38,.58),rgba(8,12,10,.78));
  box-shadow:0 18px 42px rgba(0,0,0,.32),0 0 0 1px rgba(255,255,255,.04),inset 0 1px 0 rgba(255,255,255,.10)}
.hero::before{content:"";position:absolute;inset:0;opacity:.65;pointer-events:none;
  background:radial-gradient(circle at 50% 0%,var(--accent-glow,transparent),transparent 52%)}
.hero-badge{position:relative;flex:none;width:42px;height:42px;border-radius:50%;
  display:grid;place-items:center;border:1.5px solid var(--accent,var(--muted));
  color:var(--accent,var(--muted));box-shadow:0 0 0 4px rgba(255,255,255,.015),0 0 20px var(--accent-glow,transparent)}
.hero-badge svg{width:20px;height:20px}
.hero-text{position:relative;min-width:0;max-width:28ch}
.hero-title{font-family:var(--display);font-weight:700;font-size:clamp(19px,2.6vw,23px);
  letter-spacing:-.01em;line-height:1.1;text-shadow:0 8px 20px rgba(0,0,0,.24)}
.hero-sub{color:var(--ivory-dim);font-size:12.5px;font-weight:400;margin-top:1px;max-width:34ch;margin-inline:auto}
.hero-sub b{color:var(--ivory);font-weight:600;font-variant-numeric:tabular-nums}

/* ── Notice (manual incident/maintenance banner) ── */
.notice{margin-top:14px;padding:13px 17px;border-radius:var(--radius-sm);font-size:13.5px;
  border:1px solid var(--warn);background:rgba(216,177,95,.08);color:var(--ivory)}
.notice b{color:var(--warn-strong,#f0b659);font-weight:600}

/* ── Components ───────────────────────────── */
.components{margin-top:16px;flex:none}
.components-head{display:flex;align-items:baseline;justify-content:space-between;
  margin:0 4px 10px}
.components-head h2{font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold);opacity:.88}
.legend{font-size:11.5px;color:var(--ivory-faint)}
.list{list-style:none;border-radius:var(--radius);overflow:hidden;border:1px solid rgba(244,239,226,.13);
  background:linear-gradient(180deg,rgba(38,44,38,.34),rgba(11,18,13,.52));
  box-shadow:0 18px 42px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.06)}
.row{display:flex;align-items:center;gap:12px;padding:13px clamp(14px,2.5vw,20px);
  border-top:1px solid rgba(244,239,226,.08)}
.row:first-child{border-top:none}
.dot{flex:none;width:11px;height:11px;border-radius:50%;background:var(--accent,var(--muted));
  box-shadow:0 0 0 4px rgba(107,114,106,.18)}
.row[data-state="operational"] .dot{box-shadow:0 0 0 4px rgba(158,185,135,.18),0 0 12px rgba(158,185,135,.24)}
.row[data-state="degraded"] .dot,
.row[data-state="partial"] .dot{box-shadow:0 0 0 4px rgba(216,177,95,.18),0 0 12px rgba(216,177,95,.22)}
.row[data-state="down"] .dot{box-shadow:0 0 0 4px rgba(217,104,120,.18),0 0 12px rgba(217,104,120,.24)}
.row[data-state="operational"] .dot{animation:pulse 2.6s ease-in-out infinite}
.row-main{flex:1;min-width:0}
.row-name{display:block;font-family:var(--display);font-weight:600;font-size:14px;color:var(--ivory)}
.row-desc{display:block;font-size:12px;color:var(--ivory-faint);margin-top:1px;
  font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-meta{flex:none;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.row-latency{font-size:12px;color:var(--ivory-faint);font-variant-numeric:tabular-nums}
.row-state{font-family:var(--display);font-size:12px;font-weight:500;color:var(--accent,var(--muted));
  letter-spacing:0}

/* state → accent mapping */
[data-state="operational"]{--accent:var(--ok);--accent-glow:var(--ok-glow)}
[data-state="degraded"]{--accent:var(--warn);--accent-glow:var(--warn-glow)}
[data-state="partial"]{--accent:var(--warn);--accent-glow:var(--warn-glow)}
[data-state="down"]{--accent:var(--down);--accent-glow:var(--down-glow)}
[data-state="checking"]{--accent:var(--muted);--accent-glow:transparent}
[data-state="checking"] .dot{animation:blink 1.1s ease-in-out infinite}

/* ── Footer ───────────────────────────────── */
footer{margin-top:16px;flex:none;text-align:center;color:var(--ivory-faint);font-size:11.5px;font-weight:400;
  line-height:1.55}
footer .sep{opacity:.4;margin:0 7px}

@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes blink{0%,100%{opacity:.35}50%{opacity:.9}}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:480px){
  .row-desc{display:none}
  .hero-title{font-size:18px}
  .hero{gap:8px;padding:14px 16px}
  .masthead{flex-wrap:wrap}
  .brand-symbol{width:40px;height:40px}
  .brand-wordmark{width:118px}
}
@media (max-height:760px){
  body{padding-block:12px}
  .masthead{margin-bottom:12px;padding-bottom:12px}
  .components{margin-top:12px}
  .row{padding-block:11px}
  footer{margin-top:12px;font-size:11px;line-height:1.45}
  .hero{padding:14px 18px;gap:8px}
  .hero-badge{width:38px;height:38px}
  .hero-badge svg{width:18px;height:18px}
}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
