/* ==========================================================================
   ARYA — Design System
   Palette: night-sky navy + warm brass + steel blue, functional status colors
   Type: Fraunces (display) / IBM Plex Sans (body + data)
   Motif: horizon line (artificial-horizon instrument, reinterpreted)
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --navy-950:#0B1420;
  --navy-900:#0E1B2B;
  --navy-800:#16273B;
  --navy-700:#223a56;
  --steel:#3E5C76;
  --steel-light:#7C96AC;
  --paper:#F2F1EC;
  --paper-dim:#E7E4DA;
  --brass:#B8823A;
  --brass-light:#D9AE72;
  --ink:#161B1F;
  --green:#4C7A5E;
  --green-bg:#E4EDE7;
  --amber:#B8823A;
  --amber-bg:#F3E9D8;
  --red:#A6503C;
  --red-bg:#F1E3DD;
  --grey:#6B6E72;
  --grey-bg:#E9E8E4;
  --radius:2px;
  --max:1120px;
  --serif:'Fraunces', Georgia, serif;
  --sans:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --mono:'IBM Plex Mono', monospace;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;margin:0 0 .5em;line-height:1.15;letter-spacing:-0.01em;}
p{margin:0 0 1em;max-width:62ch;}
.container{max-width:var(--max);margin:0 auto;padding:0 24px;}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}

/* ---------- Horizon divider (signature motif) ---------- */
.horizon{
  position:relative;
  height:1px;
  background:linear-gradient(90deg, transparent, var(--steel-light) 15%, var(--steel-light) 85%, transparent);
  margin:0 auto;
  max-width:var(--max);
}
.horizon::before{
  content:'';
  position:absolute; left:50%; top:-3px; transform:translateX(-50%);
  width:6px; height:6px; border-radius:50%; background:var(--brass);
}

/* ---------- Header / Nav ---------- */
.site-header{
  background:var(--navy-900);
  color:var(--paper);
  position:sticky; top:0; z-index:50;
  border-bottom:1px solid var(--navy-700);
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 24px; max-width:var(--max); margin:0 auto;
}
.brand{
  font-family:var(--serif); font-size:1.4rem; color:var(--paper);
  text-decoration:none; letter-spacing:0.01em; display:flex; align-items:baseline; gap:8px;
}
.brand span{font-family:var(--sans); font-size:0.62rem; color:var(--brass-light); letter-spacing:0.14em; font-weight:600;}
.nav-links{display:flex; gap:28px; list-style:none; margin:0; padding:0; font-size:0.92rem;}
.nav-links a{text-decoration:none; color:var(--steel-light); transition:color .15s;}
.nav-links a:hover, .nav-links a.active{color:var(--paper);}
.nav-toggle{display:none; background:none; border:1px solid var(--navy-700); color:var(--paper); padding:8px 10px; border-radius:var(--radius); font-size:1rem;}
@media (max-width:860px){
  .nav-links{
    display:none; position:absolute; top:100%; left:0; right:0;
    background:var(--navy-900); flex-direction:column; padding:16px 24px 24px; gap:16px;
    border-bottom:1px solid var(--navy-700);
  }
  .nav-links.open{display:flex;}
  .nav-toggle{display:block;}
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 24px; border-radius:var(--radius);
  font-family:var(--sans); font-weight:600; font-size:0.94rem;
  text-decoration:none; cursor:pointer; border:1px solid transparent;
  transition:transform .12s ease, background .15s ease;
}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--brass); color:var(--navy-950);}
.btn-primary:hover{background:var(--brass-light);}
.btn-ghost{background:transparent; border-color:var(--steel-light); color:var(--paper);}
.btn-ghost:hover{border-color:var(--paper);}
.btn-dark{background:var(--navy-900); color:var(--paper);}
.btn-dark:hover{background:var(--navy-800);}
.btn-outline{background:transparent; border-color:var(--navy-700); color:var(--navy-900);}
.btn-outline:hover{background:var(--navy-900); color:var(--paper);}
.btn-sm{padding:9px 16px; font-size:0.85rem;}

/* ---------- Hero ---------- */
.hero{
  background:var(--navy-900); color:var(--paper);
  padding:96px 0 72px; 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-eyebrow{color:var(--brass-light); font-size:0.8rem; letter-spacing:0.06em; margin-bottom:14px;}
.hero h1{font-size:clamp(2.6rem, 5vw, 4.1rem); color:var(--paper); margin-bottom:0.2em;}
.hero .lede{font-size:1.15rem; color:var(--steel-light); max-width:46ch; margin-bottom:2em;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap;}

/* animated instrument dial, pure CSS/SVG, no external images */
.dial-wrap{display:flex; align-items:center; justify-content:center;}
.dial{width:min(340px, 100%); aspect-ratio:1;}
.dial-horizon{transform-origin:170px 170px; animation:tilt 7s ease-in-out infinite;}
@keyframes tilt{ 0%,100%{transform:rotate(-3deg);} 50%{transform:rotate(3deg);} }

/* ---------- Sections ---------- */
section{padding:72px 0;}
.section-head{max-width:640px; margin-bottom:40px;}
.section-head .kicker{color:var(--brass); font-weight:600; font-size:0.85rem; margin-bottom:8px;}
.section-head h2{font-size:clamp(1.7rem,3vw,2.3rem);}
.section-head p{color:var(--grey);}

.dark-section{background:var(--navy-900); color:var(--paper);}
.dark-section .section-head p{color:var(--steel-light);}
.dark-section h2{color:var(--paper);}

/* ---------- Feature grid (homepage) ---------- */
.feature-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1px; background:var(--paper-dim); border:1px solid var(--paper-dim);}
.feature-card{background:var(--paper); padding:28px; text-decoration:none; color:var(--ink); transition:background .15s;}
.feature-card:hover{background:#fff;}
.feature-card .num{font-family:var(--mono); font-size:0.75rem; color:var(--brass); display:block; margin-bottom:10px;}
.feature-card h3{font-size:1.05rem; margin-bottom:8px;}
.feature-card p{font-size:0.9rem; color:var(--grey); margin:0;}

/* ---------- Cards / status ---------- */
.card{background:#fff; border:1px solid var(--paper-dim); padding:24px; border-radius:var(--radius);}
.status-card{border-left:4px solid var(--grey); padding:18px 22px; background:#fff; margin-bottom:12px;}
.status-card.status-green{border-color:var(--green);}
.status-card.status-amber{border-color:var(--amber);}
.status-card.status-red{border-color:var(--red);}
.status-card.status-grey{border-color:var(--grey);}
.status-label{font-family:var(--mono); font-size:0.72rem; letter-spacing:0.05em; padding:3px 8px; border-radius:2px; display:inline-block; margin-bottom:8px;}
.status-green .status-label{background:var(--green-bg); color:var(--green);}
.status-amber .status-label{background:var(--amber-bg); color:var(--amber);}
.status-red .status-label{background:var(--red-bg); color:var(--red);}
.status-grey .status-label{background:var(--grey-bg); color:var(--grey);}
.status-card h4{margin:0 0 6px; font-family:var(--sans); font-weight:600; font-size:1rem;}
.status-card p{margin:0; font-size:0.92rem; color:var(--grey); max-width:70ch;}

/* ---------- Forms ---------- */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media (max-width:640px){ .form-grid{grid-template-columns:1fr;} }
.field{display:flex; flex-direction:column; gap:6px;}
.field label{font-size:0.85rem; font-weight:600; color:var(--navy-800);}
.field .hint{font-size:0.78rem; color:var(--grey); font-weight:400;}
input[type=text], input[type=number], input[type=email], select{
  font-family:var(--sans); font-size:16px; padding:11px 12px;
  border:1px solid var(--paper-dim); border-radius:var(--radius); background:#fff; color:var(--ink);
}
input:focus, select:focus{border-color:var(--brass);}
fieldset{border:none; padding:0; margin:0;}
legend{font-family:var(--serif); font-size:1.3rem; margin-bottom:6px; padding:0;}

/* ---------- Table ---------- */
.data-table{width:100%; border-collapse:collapse; font-size:0.92rem;}
.data-table th, .data-table td{text-align:left; padding:12px 14px; border-bottom:1px solid var(--paper-dim); vertical-align:top;}
.data-table th{font-family:var(--mono); font-size:0.72rem; letter-spacing:0.04em; color:var(--grey); font-weight:500; text-transform:uppercase;}
.table-wrap{overflow-x:auto; border:1px solid var(--paper-dim);}

/* ---------- Source / verified tag ---------- */
.verify-tag{
  display:flex; flex-wrap:wrap; gap:16px; font-family:var(--mono); font-size:0.75rem;
  color:var(--grey); border-top:1px dashed var(--paper-dim); padding-top:12px; margin-top:14px;
}
.verify-tag a{color:var(--steel);}

/* ---------- Progress ---------- */
.progress-bar{height:8px; background:var(--paper-dim); border-radius:99px; overflow:hidden;}
.progress-fill{height:100%; background:var(--brass); border-radius:99px; transition:width .4s ease;}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-950); color:var(--steel-light); padding:56px 0 32px; margin-top:80px;}
.footer-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:32px; margin-bottom:40px;}
@media (max-width:720px){ .footer-grid{grid-template-columns:1fr 1fr;} }
.footer-grid h5{color:var(--paper); font-family:var(--sans); font-size:0.85rem; margin-bottom:14px;}
.footer-grid ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; font-size:0.87rem;}
.footer-grid a{text-decoration:none; color:var(--steel-light);}
.footer-grid a:hover{color:var(--paper);}
.footer-bottom{border-top:1px solid var(--navy-800); padding-top:24px; font-size:0.78rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;}
.disclaimer-strip{background:var(--navy-800); color:var(--steel-light); font-size:0.8rem; padding:10px 0;}

/* ---------- Utility ---------- */
.eyebrow-none{ } /* placeholder to avoid unused-class lint noise */
.mt-0{margin-top:0;}
.center{text-align:center;}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:40px;}
@media (max-width:780px){ .two-col{grid-template-columns:1fr;} }
.pill{display:inline-block; padding:4px 12px; border-radius:99px; font-size:0.78rem; font-family:var(--mono); background:var(--grey-bg); color:var(--grey);}
.checklist-item{display:flex; align-items:flex-start; gap:12px; padding:16px 0; border-bottom:1px solid var(--paper-dim);}
.checklist-item input[type=checkbox]{width:20px; height:20px; margin-top:2px; accent-color:var(--brass);}
.checklist-item.done h4{text-decoration:line-through; color:var(--grey);}
.page-hero{background:var(--navy-900); color:var(--paper); padding:64px 0 48px;}
.page-hero h1{font-size:clamp(2rem,4vw,2.8rem); color:var(--paper);}
.page-hero p{color:var(--steel-light); max-width:60ch;}
.results-panel{display:none;}
.results-panel.visible{display:block;}
