/* QuietWave Labs — shared styles
   Palette derives from ECG chart paper (the red-orange grid) and instrument housings.
   Accent (--signal) is spent only on the trace, rules and focus states. */

:root{
  --ink:#12181F;
  --ground:#F7F8F9;
  --paper:#FFFFFF;
  --muted:#5C6672;
  --rule:#E2E6EA;
  --signal:#C8442E;
  --grid:rgba(200,68,46,.10);

  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --col:37rem;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ink:#E8ECEF;
    --ground:#0D1117;
    --paper:#151B22;
    --muted:#8B95A1;
    --rule:#232B34;
    --signal:#E8674E;
    --grid:rgba(232,103,78,.13);
  }
}
:root[data-theme="dark"]{
  --ink:#E8ECEF;
  --ground:#0D1117;
  --paper:#151B22;
  --muted:#8B95A1;
  --rule:#232B34;
  --signal:#E8674E;
  --grid:rgba(232,103,78,.13);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:var(--col);margin:0 auto;padding:0 1.5rem}
.skip{
  position:absolute;left:-9999px;
  background:var(--paper);color:var(--ink);
  padding:.6rem 1rem;border:1px solid var(--rule);
}
.skip:focus{left:1.5rem;top:1rem;z-index:10}

/* ---------- masthead ---------- */
header{padding:3.5rem 0 0}
.masthead{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.mark{
  font-family:var(--serif);
  font-size:1.375rem;font-weight:500;letter-spacing:-.01em;
  margin:0;
}
.mark a{color:inherit;text-decoration:none}
.mark em{font-style:normal;color:var(--signal)}
nav{display:flex;gap:1.375rem}
nav a{
  font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted);text-decoration:none;
  padding:.15rem 0;border-bottom:1px solid transparent;
}
nav a:hover,nav a:focus-visible{color:var(--ink);border-bottom-color:var(--signal)}

/* ---------- hero ---------- */
.hero{padding:4.5rem 0 0}
h1{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(2rem,6.2vw,2.9rem);
  line-height:1.16;letter-spacing:-.02em;
  text-wrap:balance;margin:0 0 1.25rem;
}
h1 strong{font-weight:500;font-style:italic}
.standfirst{font-size:1.0625rem;color:var(--muted);max-width:32rem;margin:0}

/* ---------- signal band ---------- */
.signal{
  margin:3rem 0 0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  background:var(--paper);
}
.signal canvas{display:block;width:100%;height:120px}
.caption{
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-family:var(--mono);font-size:.6875rem;letter-spacing:.05em;
  text-transform:uppercase;color:var(--muted);padding:.7rem 0 0;
}

/* ---------- sections ---------- */
section{padding:4.5rem 0 0}
.eyebrow{
  font-family:var(--mono);font-size:.6875rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);
  margin:0 0 1.75rem;padding-bottom:.7rem;border-bottom:1px solid var(--rule);
}
h2{font-family:var(--serif);font-weight:400;font-size:1.5rem;letter-spacing:-.01em;margin:0 0 .6rem}
h3{font-family:var(--sans);font-weight:500;font-size:1rem;margin:2rem 0 .4rem}
p{margin:0 0 1rem}
p:last-child{margin-bottom:0}
a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--signal);text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
ul.plain{padding-left:1.1rem;margin:0 0 1rem}
ul.plain li{margin:.3rem 0}

/* ---------- product index ---------- */
.index{list-style:none;margin:0;padding:0}
.index li{border-bottom:1px solid var(--rule);padding:1.75rem 0}
.index li:first-child{border-top:1px solid var(--rule)}
.row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.status{
  font-family:var(--mono);font-size:.6875rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--muted);white-space:nowrap;
  display:flex;align-items:center;gap:.5rem;
}
.dot{width:5px;height:5px;border-radius:50%;background:var(--signal);flex:none}
.desc{color:var(--muted);margin:.5rem 0 0;max-width:30rem}
.meta{font-family:var(--mono);font-size:.75rem;color:var(--muted);margin:.9rem 0 0}

/* ---------- notice ---------- */
.notice{
  border-left:2px solid var(--signal);
  padding:.15rem 0 .15rem 1.1rem;
  color:var(--muted);font-size:.9375rem;
}

/* ---------- legal pages ---------- */
.legal{padding:3rem 0 0}
.legal h1{font-size:clamp(1.75rem,5vw,2.25rem);margin-bottom:.5rem}
.legal .updated{font-family:var(--mono);font-size:.75rem;color:var(--muted);margin:0 0 2.5rem}
.legal p,.legal li{color:var(--ink)}
.legal h2{font-size:1.1875rem;margin:2.75rem 0 .6rem}

/* ---------- footer ---------- */
footer{margin-top:4.5rem;border-top:1px solid var(--rule);padding:2rem 0 4rem}
.flinks{display:flex;gap:1.375rem;flex-wrap:wrap;margin:0 0 1.25rem}
.flinks a{
  font-family:var(--mono);font-size:.75rem;letter-spacing:.05em;
  color:var(--muted);text-decoration:none;border-bottom:1px solid transparent;
}
.flinks a:hover,.flinks a:focus-visible{color:var(--ink);border-bottom-color:var(--signal)}
.colophon{font-family:var(--mono);font-size:.6875rem;line-height:1.9;color:var(--muted);margin:0}

a:focus-visible,button:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
