/* ============================================================
   SIGNAL / 05 — cognitive frequency tuner
   All rules are scoped to #signal. Loaded after styles.css.
   ============================================================ */

#signal{
  --sig-bg:#050505;
  --sig-panel:#0b0b0a;
  --sig-cream:#f2f0e6;
  --sig-ink:#f5f3ea;
  --sig-soft:#c9c8be;
  --sig-dim:#a7a79e;
  --sig-mute:#8b8b82;
  --sig-line:rgba(255,255,255,.16);
  --sig-line-strong:rgba(255,255,255,.34);
  --sig-red:#ff3b30;
  --sig-cyan:#4af6dc;
  --sig-violet:#9a86ff;
  --sig-acid:#d8ff45;
  --sig-dial:clamp(280px,26vw,380px);
  position:relative;
  height:100vh;
  min-height:720px;
  overflow:hidden;
  background:var(--sig-bg);
  color:var(--sig-ink);
  font-family:var(--mono);
  isolation:isolate;
}
#signal.active{display:flex;flex-direction:column}

#signal::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 42% 48% at 76% 44%,rgba(255,59,48,.12),transparent 70%),
    radial-gradient(ellipse 34% 36% at 12% 78%,rgba(74,246,220,.07),transparent 72%);
}

/* ---------- generated signal background ---------- */
#signal .signal-canvas{display:none}
#signal .signal-waves{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  pointer-events:none;
  opacity:.95;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.16) 24%,#000 58%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.16) 24%,#000 58%,#000 100%);
}
#signal .signal-scan{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:.2;
  background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.05) 3px 4px);
  mix-blend-mode:screen;
}
#signal .signal-vignette{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(ellipse 66% 72% at 68% 50%,transparent 32%,rgba(5,5,5,.5) 76%,rgba(5,5,5,.8) 100%),
    linear-gradient(180deg,rgba(5,5,5,.78),transparent 18% 82%,rgba(5,5,5,.85));
}
#signal .signal-sweep{
  position:absolute;
  inset:0;
  z-index:2;
  overflow:hidden;
  pointer-events:none;
}
#signal .signal-sweep i{
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:min(16vw,200px);
  opacity:0;
  transform:translateX(-30vw);
  background:linear-gradient(90deg,transparent,rgba(74,246,220,.08) 30%,rgba(74,246,220,.5) 49%,rgba(74,246,220,.5) 51%,rgba(74,246,220,.08) 70%,transparent);
  filter:blur(.5px);
}
#signal .signal-sweep i::after{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  bottom:0;
  width:1px;
  background:rgba(255,255,255,.85);
  box-shadow:0 0 18px 4px rgba(74,246,220,.55);
}
#signal.is-retuning .signal-sweep i{animation:sigSweep .8s cubic-bezier(.3,.7,.2,1)}
@keyframes sigSweep{
  0%{opacity:0;transform:translateX(-25vw)}
  12%{opacity:.9}
  100%{opacity:0;transform:translateX(calc(100vw + 30vw))}
}

/* ---------- header ---------- */
#signal .signal-head{
  position:relative;
  z-index:6;
  flex:0 0 64px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:18px;
  padding:0 clamp(18px,2.4vw,34px);
  border-bottom:1px solid var(--sig-line);
  background:linear-gradient(180deg,rgba(5,5,5,.92),rgba(5,5,5,.52));
  -webkit-backdrop-filter:blur(7px);
  backdrop-filter:blur(7px);
}
#signal .signal-wordmark{
  font:900 16px/1 var(--display);
  letter-spacing:-.06em;
  white-space:nowrap;
}
#signal .signal-wordmark span{color:var(--sig-red);margin:0 .05em}
#signal .signal-headline{
  display:flex;
  align-items:center;
  gap:9px;
  margin:0;
  color:var(--sig-dim);
  font:500 8px/1 var(--mono);
  letter-spacing:.18em;
  white-space:nowrap;
}
#signal .signal-headline i{
  width:5px;
  height:5px;
  flex:none;
  border-radius:50%;
  background:var(--sig-red);
  box-shadow:0 0 9px var(--sig-red);
  animation:sigBeat 2.8s ease-in-out infinite;
}
@keyframes sigBeat{0%,100%{opacity:.45}50%{opacity:1}}
#signal .signal-actions{justify-self:end;display:flex;align-items:center;gap:7px}
#signal .signal-actions button{
  height:30px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:0 10px;
  border:1px solid var(--sig-line-strong);
  background:rgba(9,9,8,.72);
  color:var(--sig-soft);
  font:500 8px/1 var(--mono);
  letter-spacing:.12em;
  cursor:pointer;
  transition:color .2s,border-color .2s,background .2s;
}
#signal .signal-actions button:hover{color:var(--sig-ink);border-color:rgba(255,255,255,.7);background:rgba(22,22,20,.9)}
#signal .signal-actions button:focus-visible{outline:2px solid var(--sig-cyan);outline-offset:2px}
#signal .sig-eq{display:inline-flex;align-items:flex-end;gap:2px;width:13px;height:11px;flex:none}
#signal .sig-eq b{width:2px;height:35%;background:currentColor;opacity:.6}
#signal .sig-eq b:nth-child(2){height:70%}
#signal .sig-eq b:nth-child(3){height:100%}
#signal.sound-on #signalMute{color:var(--sig-cyan);border-color:rgba(74,246,220,.62)}
#signal.sound-on .sig-eq b{opacity:1;animation:sigEq .85s ease-in-out infinite alternate}
#signal.sound-on .sig-eq b:nth-child(2){animation-delay:.18s}
#signal.sound-on .sig-eq b:nth-child(3){animation-delay:.36s}
@keyframes sigEq{from{transform:scaleY(.35)}to{transform:scaleY(1)}}
#signal .sig-focus-icon{
  position:relative;
  width:12px;
  height:12px;
  flex:none;
  border:1px solid currentColor;
  border-radius:50%;
}
#signal .sig-focus-icon::after{content:"";position:absolute;inset:3px;border-radius:50%;background:currentColor}
#signal.focus-mode #signalFocus{background:var(--sig-red);border-color:var(--sig-red);color:#080808}

/* ---------- main deck ---------- */
#signal .signal-main{
  position:relative;
  z-index:3;
  flex:1 1 auto;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(330px,.94fr);
  align-items:center;
  gap:clamp(18px,3.5vw,64px);
  padding:clamp(18px,4vh,48px) clamp(20px,4vw,58px) clamp(14px,2.4vh,26px);
}
#signal .signal-hero{position:relative;inset:auto;min-width:0;max-width:760px}
#signal .signal-hero-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  max-width:670px;
}
#signal .signal-index{
  display:flex;
  align-items:center;
  gap:5px;
  color:var(--sig-red);
  font:500 9px/1 var(--mono);
  letter-spacing:.17em;
}
#signal .signal-index b{font-weight:500;color:var(--sig-ink)}
#signal .signal-index i{font-style:normal;color:var(--sig-mute)}
#signal .signal-band{font:400 8px/1 var(--mono);letter-spacing:.16em;color:var(--sig-mute);white-space:nowrap}
#signal .signal-hero h1{
  margin:clamp(14px,2.4vh,26px) 0 clamp(20px,3vh,34px);
  color:var(--sig-ink);
  font:900 clamp(98px,13.6vw,204px)/.62 var(--display);
  letter-spacing:-.125em;
  white-space:nowrap;
}
#signal .signal-hero h1>span{display:inline-block}
#signal .signal-outline{
  color:transparent;
  -webkit-text-stroke:2px var(--sig-ink);
}
#signal .signal-hero h1>b{
  color:var(--sig-red);
  text-shadow:0 0 34px rgba(255,59,48,.45);
}
#signal .signal-lock{
  width:min(372px,100%);
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:7px 12px;
  padding:11px 13px 10px;
  border:1px solid var(--sig-line);
  border-left:2px solid var(--sig-red);
  background:linear-gradient(100deg,rgba(10,10,9,.94),rgba(10,10,9,.45));
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
  transition:border-color .3s;
}
#signal .signal-lock.retuning{border-left-color:var(--sig-cyan)}
#signal .signal-lock-label{
  display:flex;
  align-items:center;
  gap:7px;
  font:500 8px/1.2 var(--mono);
  letter-spacing:.13em;
  color:var(--sig-soft);
  text-shadow:0 0 8px #050505;
}
#signal .signal-lock-label i{
  width:5px;
  height:5px;
  flex:none;
  border-radius:50%;
  background:var(--sig-cyan);
  box-shadow:0 0 8px var(--sig-cyan);
}
#signal .signal-lock.retuning .signal-lock-label i{background:var(--sig-red);box-shadow:0 0 8px var(--sig-red)}
#signal .signal-lock>b{
  color:var(--sig-cyan);
  font:800 18px/1 var(--display);
  letter-spacing:-.05em;
  font-variant-numeric:tabular-nums;
  text-align:right;
}
#signal .signal-quality-track{
  position:relative;
  grid-column:1/-1;
  display:block;
  height:7px;
  overflow:hidden;
  background:rgba(255,255,255,.08);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
#signal .signal-quality-track>em{
  display:block;
  height:100%;
  background:linear-gradient(90deg,rgba(74,246,220,.75),var(--sig-cyan));
  box-shadow:0 0 14px rgba(74,246,220,.45);
  transition:width .55s cubic-bezier(.2,.8,.2,1);
}
#signal .signal-lock.retuning .signal-quality-track>em{animation:sigMeter .65s ease-out}
@keyframes sigMeter{0%{filter:brightness(2)}100%{filter:brightness(1)}}
#signal .signal-quality-ticks{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:repeating-linear-gradient(90deg,transparent 0 8px,rgba(5,5,5,.62) 8px 9px);
}
#signal .signal-lock>small{
  grid-column:1/-1;
  color:var(--sig-dim);
  font:400 8px/1.3 var(--mono);
  letter-spacing:.1em;
}
#signal .signal-quote{
  margin:18px 0 0;
  max-width:370px;
  color:var(--sig-soft);
  font:400 12px/1.65 var(--mono);
  text-shadow:0 0 10px #050505,0 0 3px #050505;
}
#signal .signal-quote b{color:var(--sig-cyan);font-weight:500}
#signal .signal-cue{
  display:flex;
  align-items:center;
  gap:7px;
  margin:22px 0 0;
  color:var(--sig-mute);
  font:500 7.5px/1 var(--mono);
  letter-spacing:.12em;
  white-space:nowrap;
  text-shadow:0 0 8px #050505,0 0 3px #050505;
}
#signal .signal-cue span{
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  flex:none;
  border:1px solid var(--sig-line-strong);
  border-radius:50%;
  color:var(--sig-soft);
  font-size:6.5px;
}
#signal .signal-cue i{width:12px;height:1px;flex:none;background:var(--sig-line-strong)}

/* ---------- dial console ---------- */
#signal .signal-console{
  position:relative;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
#signal .signal-focus-note{display:none;flex-direction:column;align-items:center;gap:4px;margin-bottom:12px;text-align:center}
#signal .signal-focus-note span{color:var(--sig-red);font:500 7.5px/1 var(--mono);letter-spacing:.26em}
#signal .signal-focus-note b{font:800 18px/1 var(--display);letter-spacing:-.05em}
#signal .signal-focus-note small{color:var(--sig-dim);font:400 8px/1 var(--mono);letter-spacing:.1em}
#signal .signal-session{
  position:relative;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
}
#signal .signal-session::before{
  content:"";
  position:absolute;
  inset:-12px -24px -8px;
  z-index:0;
  pointer-events:none;
  background:radial-gradient(ellipse at 50% 46%,rgba(5,5,5,.82) 0,rgba(5,5,5,.58) 52%,transparent 78%);
}
#signal .signal-session>*{position:relative;z-index:1}
#signal .frequency-dial{
  position:relative;
  inset:auto;
  width:var(--sig-dial);
  height:var(--sig-dial);
  flex:none;
  display:grid;
  place-items:center;
  margin:2px auto 0;
}
#signal .dial-aura{
  position:absolute;
  inset:7%;
  border-radius:50%;
  pointer-events:none;
  background:radial-gradient(circle,rgba(255,59,48,.26),rgba(255,59,48,0) 66%);
  filter:blur(12px);
  transition:background .5s;
}
#signal .dial-ticks{
  position:absolute;
  inset:-14px;
  border-radius:50%;
  pointer-events:none;
  opacity:.42;
  background:repeating-conic-gradient(from -90deg,rgba(255,255,255,.72) 0deg .55deg,transparent .55deg 6deg);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 1px),#000 calc(100% - 1px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 1px),#000 calc(100% - 1px));
  transition:opacity .3s;
}
#signal .frequency-dial:hover .dial-ticks{opacity:.72}
#signal.is-retuning .dial-ticks{animation:sigTicks .8s cubic-bezier(.2,.8,.2,1)}
@keyframes sigTicks{0%{transform:rotate(-16deg);opacity:.85}100%{transform:rotate(0);opacity:.42}}
#signal .dial-quality,
#signal .dial-progress{
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
#signal .dial-quality{
  inset:0;
  background:conic-gradient(from -90deg,var(--sig-cyan) calc(var(--quality) * 1%),rgba(255,255,255,.08) 0);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));
  transition:background .5s;
}
#signal .dial-progress{
  inset:7.5%;
  background:conic-gradient(from -90deg,var(--sig-acid) calc(var(--progress) * 1%),rgba(255,255,255,.06) 0);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));
}
#signal .frequency-dial>button{
  position:absolute;
  inset:17%;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:50%;
  background:radial-gradient(circle at 38% 30%,#ff7468 0,var(--sig-red) 48%,#cf2117 100%);
  color:#080808;
  cursor:pointer;
  box-shadow:0 0 74px rgba(255,59,48,.34),inset 0 0 30px rgba(255,255,255,.1);
  transition:transform .2s,background .45s,box-shadow .45s,color .3s;
}
#signal .frequency-dial>button::before{
  content:"";
  position:absolute;
  inset:5px;
  border-radius:50%;
  border:1px solid rgba(8,8,8,.16);
  pointer-events:none;
}
#signal .frequency-dial>button:hover{transform:scale(1.025);box-shadow:0 0 92px rgba(255,59,48,.45),inset 0 0 34px rgba(255,255,255,.13)}
#signal .frequency-dial>button:active{transform:scale(.985)}
#signal .frequency-dial>button:focus-visible{outline:2px solid var(--sig-ink);outline-offset:5px}
#signal .frequency-dial>button span{
  margin-bottom:6px;
  font:500 7.5px/1 var(--mono);
  letter-spacing:.3em;
  opacity:.66;
}
#signal .frequency-dial>button b{
  font:900 clamp(32px,3.6vw,55px)/1 var(--display);
  letter-spacing:-.09em;
  font-variant-numeric:tabular-nums;
}
#signal .frequency-dial>button em{
  margin-top:9px;
  font:600 7.5px/1 var(--mono);
  font-style:normal;
  letter-spacing:.13em;
  opacity:.78;
}
#signal .frequency-dial.playing>button{
  background:radial-gradient(circle at 38% 30%,#a5fff1 0,var(--sig-cyan) 45%,#0e9f8e 100%);
  box-shadow:0 0 90px rgba(74,246,220,.42),inset 0 0 30px rgba(255,255,255,.2);
}
#signal .frequency-dial.playing .dial-aura{
  background:radial-gradient(circle,rgba(74,246,220,.28),rgba(74,246,220,0) 66%);
  animation:sigAura 3.4s ease-in-out infinite;
}
@keyframes sigAura{0%,100%{opacity:.55;transform:scale(.97)}50%{opacity:1;transform:scale(1.04)}}
#signal .frequency-dial.finished>button{
  background:radial-gradient(circle at 38% 30%,#fffdf3 0,var(--sig-cream) 58%,#c9c3ae 100%);
  box-shadow:0 0 55px rgba(242,240,230,.22),inset 0 0 30px rgba(255,255,255,.35);
}
#signal.timer-urgent .frequency-dial.playing>button{animation:sigUrgent 1.05s ease-in-out infinite}
@keyframes sigUrgent{0%,100%{box-shadow:0 0 60px rgba(255,59,48,.35),inset 0 0 26px rgba(255,255,255,.15)}50%{box-shadow:0 0 115px rgba(255,59,48,.62),inset 0 0 36px rgba(255,255,255,.24)}}
#signal .signal-dial-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:min(100%,calc(var(--sig-dial) + 16px));
  max-width:372px;
  margin-top:13px;
  padding-bottom:8px;
  border-bottom:1px dashed var(--sig-line);
  font:500 8.5px/1 var(--mono);
  letter-spacing:.1em;
  text-shadow:0 0 8px #050505;
}
#signal .signal-dial-meta span{color:var(--sig-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#signal .signal-dial-meta b{color:var(--sig-red);font-weight:500;white-space:nowrap}
#signal .signal-dial-status{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:17px;
  margin:9px 0 0;
  color:var(--sig-dim);
  font:500 8px/1.25 var(--mono);
  letter-spacing:.11em;
  text-align:center;
  text-shadow:0 0 9px #050505,0 0 3px #050505;
}
#signal .signal-dial-status i{
  width:5px;
  height:5px;
  flex:none;
  border-radius:50%;
  background:var(--sig-mute);
}
#signal .signal-dial-status[data-state="running"]{color:var(--sig-cyan)}
#signal .signal-dial-status[data-state="running"] i{background:var(--sig-cyan);box-shadow:0 0 8px var(--sig-cyan);animation:sigBeat 1.6s ease-in-out infinite}
#signal .signal-dial-status[data-state="idle"] i{background:var(--sig-cyan);box-shadow:0 0 7px var(--sig-cyan)}
#signal .signal-dial-status[data-state="paused"]{color:var(--sig-soft)}
#signal .signal-dial-status[data-state="paused"] i{background:#ffc233;box-shadow:0 0 7px #ffc233}
#signal .signal-dial-status[data-state="searching"]{color:var(--sig-red)}
#signal .signal-dial-status[data-state="searching"] i{background:var(--sig-red);box-shadow:0 0 8px var(--sig-red)}
#signal .signal-dial-status[data-state="finished"]{color:var(--sig-cream)}
#signal .signal-dial-status[data-state="finished"] i{background:var(--sig-cream);box-shadow:0 0 8px rgba(242,240,230,.7)}
#signal .signal-dial-controls{display:flex;align-items:center;gap:8px;margin-top:10px}
#signal .signal-presets{display:flex;border:1px solid var(--sig-line)}
#signal .signal-presets button{
  height:25px;
  min-width:38px;
  padding:0 8px;
  border:0;
  border-right:1px solid var(--sig-line);
  background:transparent;
  color:var(--sig-mute);
  font:500 8px/1 var(--mono);
  letter-spacing:.08em;
  cursor:pointer;
  transition:color .18s,background .18s;
}
#signal .signal-presets button:last-child{border-right:0}
#signal .signal-presets button:hover{color:var(--sig-ink);background:rgba(255,255,255,.07)}
#signal .signal-presets button.active{background:var(--sig-cream);color:#090908}
#signal .signal-presets button:focus-visible,
#signal .signal-reset:focus-visible{outline:2px solid var(--sig-cyan);outline-offset:2px}
#signal .signal-reset{
  width:28px;
  height:27px;
  border:1px solid var(--sig-line);
  background:transparent;
  color:var(--sig-dim);
  font:400 13px/1 var(--mono);
  cursor:pointer;
  transition:color .18s,border-color .18s,background .18s;
}
#signal .signal-reset:hover{color:var(--sig-ink);border-color:var(--sig-line-strong);background:rgba(255,255,255,.06)}

/* ---------- channel strip ---------- */
#signal .channel-strip{
  position:relative;
  inset:auto;
  z-index:4;
  flex:0 0 112px;
  height:112px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--sig-line-strong);
  background:rgba(6,6,6,.9);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}
#signal .channel{
  position:relative;
  min-width:0;
  display:grid;
  grid-template-columns:26px minmax(0,1fr) auto;
  grid-template-rows:auto auto 1fr;
  column-gap:10px;
  row-gap:3px;
  padding:13px 16px 11px;
  border:0;
  border-right:1px solid var(--sig-line);
  background:transparent;
  color:var(--sig-dim);
  text-align:left;
  cursor:pointer;
  transition:background .2s,color .2s,opacity .2s;
}
#signal .channel:last-child{border-right:0}
#signal .channel:hover{background:rgba(255,255,255,.055);color:var(--sig-ink)}
#signal .channel:focus-visible{outline:2px solid var(--sig-cyan);outline-offset:-3px}
#signal .channel-no{grid-column:1;grid-row:1;color:var(--sig-mute);font:400 8.5px/1 var(--mono);padding-top:4px}
#signal .channel-copy{grid-column:2;grid-row:1/3;min-width:0;display:flex;flex-direction:column;gap:4px}
#signal .channel-copy b{
  color:var(--sig-ink);
  font:800 14.5px/1.05 var(--display);
  letter-spacing:-.04em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#signal .channel-copy i{
  color:var(--sig-mute);
  font:400 9px/1 var(--mono);
  font-style:normal;
  letter-spacing:.06em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#signal .channel-q{
  grid-column:3;
  grid-row:1;
  justify-self:end;
  color:var(--sig-soft);
  font:700 14px/1 var(--display);
  letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;
}
#signal .channel-q small{margin-left:1px;font:400 7px/1 var(--mono);opacity:.6}
#signal .channel-meter{
  position:relative;
  grid-column:1/-1;
  grid-row:3;
  align-self:end;
  height:5px;
  margin-top:9px;
  overflow:hidden;
  background:rgba(255,255,255,.08);
}
#signal .channel-meter em{
  display:block;
  width:var(--q);
  height:100%;
  background:var(--sig-red);
  box-shadow:0 0 10px rgba(255,59,48,.3);
  transition:width .5s cubic-bezier(.2,.8,.2,1);
}
#signal .channel-meter::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:repeating-linear-gradient(90deg,transparent 0 8px,rgba(6,6,6,.78) 8px 9px);
}
#signal .channel.active{background:var(--sig-cream);color:#090908;box-shadow:inset 0 2px 0 var(--sig-red)}
#signal .channel.active:hover{background:#fffdf2}
#signal .channel.active .channel-no{color:#8a8a80}
#signal .channel.active .channel-copy b{color:#090908}
#signal .channel.active .channel-copy i{color:#66665f}
#signal .channel.active .channel-q{color:#090908}
#signal .channel.active .channel-meter{background:rgba(9,9,8,.12)}
#signal .channel.active .channel-meter em{background:var(--sig-red);box-shadow:none}
#signal .channel.active .channel-meter::after{background:repeating-linear-gradient(90deg,transparent 0 8px,rgba(242,240,230,.82) 8px 9px)}
#signal .channel.active:focus-visible{outline-color:#090908}

/* ---------- footer ---------- */
#signal .signal-footer{
  position:relative;
  inset:auto;
  z-index:6;
  flex:0 0 34px;
  height:34px;
  display:flex;
  align-items:center;
  gap:clamp(12px,2.4vw,32px);
  padding:0 clamp(14px,2vw,24px);
  background:var(--sig-red);
  color:#070707;
  font:500 8px/1 var(--mono);
  letter-spacing:.08em;
}
#signal .signal-footer span{white-space:nowrap}
#signal .signal-footer #signalFooterText{overflow:hidden;text-overflow:ellipsis}
#signal .signal-footer b{margin-left:auto;font-weight:600;white-space:nowrap}

/* ---------- focus mode ---------- */
#signal.focus-mode .signal-main{grid-template-columns:1fr;padding-top:clamp(10px,2.2vh,22px)}
#signal.focus-mode .signal-hero{display:none}
#signal.focus-mode .signal-focus-note{display:flex}
#signal.focus-mode .frequency-dial{width:clamp(300px,30vw,420px);height:clamp(300px,30vw,420px)}
#signal.focus-mode .frequency-dial>button b{font-size:clamp(36px,4.2vw,62px)}
#signal.focus-mode .signal-waves{opacity:.55}
#signal.focus-mode .signal-scan{opacity:.1}
#signal.focus-mode .channel:not(.active){opacity:.52}
#signal.focus-mode .channel:not(.active):hover,#signal.focus-mode .channel:not(.active):focus-visible{opacity:1}

/* ---------- medium desktop ---------- */
@media (max-width:1100px) and (min-width:851px){
  #signal .signal-main{grid-template-columns:minmax(0,1fr) 300px;gap:24px;padding-left:30px;padding-right:30px}
  #signal .signal-hero h1{font-size:clamp(88px,11.6vw,150px)}
  #signal .signal-band,#signal .signal-cue{display:none}
  #signal .signal-quote{font-size:11px}
  #signal .channel{padding:12px 10px 9px;grid-template-columns:18px minmax(0,1fr) auto;column-gap:7px}
  #signal .channel-no{font-size:7px}
  #signal .channel-copy b{font-size:12px}
  #signal .channel-copy i{font-size:7.5px}
  #signal .channel-q{font-size:12px}
  #signal .frequency-dial{width:min(300px,29vw);height:min(300px,29vw)}
}

/* ---------- tablet / compact rail ---------- */
@media (max-width:850px){
  #signal{height:auto;min-height:calc(100vh - 64px);overflow:hidden}
  #signal .signal-waves{
    -webkit-mask-image:linear-gradient(180deg,transparent 0 12%,rgba(0,0,0,.2) 34%,#000 62%,#000 100%);
    mask-image:linear-gradient(180deg,transparent 0 12%,rgba(0,0,0,.2) 34%,#000 62%,#000 100%);
  }
  #signal .signal-head{flex-basis:56px;height:56px;padding:0 16px;grid-template-columns:auto 1fr;gap:12px}
  #signal .signal-headline{display:none}
  #signal .signal-actions{justify-self:end}
  #signal .signal-wordmark{font-size:14px}
  #signal .signal-main{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:5px;
    padding:15px 18px 10px;
  }
  #signal .signal-hero{max-width:none}
  #signal .signal-hero-top{max-width:none}
  #signal .signal-band{display:none}
  #signal .signal-hero h1{
    margin:10px 0 14px;
    font-size:clamp(76px,17vw,130px);
    -webkit-text-stroke-width:1.6px;
  }
  #signal .signal-lock{width:min(100%,420px);padding:9px 11px 8px}
  #signal .signal-lock>b{font-size:16px}
  #signal .signal-quote{display:block;margin-top:10px;max-width:none;font-size:10.5px;line-height:1.55}
  #signal .signal-cue{display:none}
  #signal .signal-console{margin-top:4px}
  #signal .frequency-dial{width:clamp(196px,52vw,260px);height:clamp(196px,52vw,260px)}
  #signal .signal-dial-meta{width:min(100%,330px);margin-top:10px}
  #signal .signal-dial-status{font-size:7.5px;margin-top:7px}
  #signal .signal-dial-controls{margin-top:8px}
  #signal .signal-session::before{inset:-10px -16px -6px;background:radial-gradient(ellipse at 50% 48%,rgba(5,5,5,.9) 0,rgba(5,5,5,.62) 55%,transparent 80%)}
  #signal .channel-strip{
    position:relative;
    left:auto;
    right:auto;
    bottom:auto;
    height:auto;
    flex:none;
    grid-template-columns:repeat(2,minmax(0,1fr));
    background:rgba(6,6,6,.94);
  }
  #signal .channel{min-height:74px;padding:9px 12px 8px;grid-template-columns:20px minmax(0,1fr) auto;column-gap:8px}
  #signal .channel:nth-child(2n){border-right:0}
  #signal .channel:nth-child(n+3){border-top:1px solid var(--sig-line)}
  #signal .channel-copy b{font-size:11.5px}
  #signal .channel-copy i{font-size:7.5px}
  #signal .channel-q{font-size:11.5px}
  #signal .channel-meter{height:4px;margin-top:6px}
  #signal .signal-footer{height:34px;flex:0 0 34px;gap:10px;padding:0 14px;font-size:7px}
  #signal .signal-footer span{display:inline}
  #signal .signal-footer span:first-child{display:none}
  #signal .signal-footer #signalFooterText{flex:1;min-width:0;text-align:left}
  #signal .signal-footer b{margin-left:0}
  #signal.focus-mode .signal-main{justify-content:center;padding-top:16px;padding-bottom:16px;flex:1}
  #signal.focus-mode .frequency-dial{width:clamp(220px,58vw,300px);height:clamp(220px,58vw,300px)}
  #signal.focus-mode .signal-focus-note{margin-bottom:10px}
  #signal.focus-mode .signal-hero{display:none}
}

@media (min-width:640px) and (max-width:850px){
  #signal .signal-main{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(270px,.95fr);
    align-items:center;
    gap:24px;
    padding:24px 32px 12px;
  }
  #signal .signal-head{grid-template-columns:1fr auto 1fr}
  #signal .signal-headline{display:flex;font-size:7px;letter-spacing:.14em}
  #signal .signal-hero h1{font-size:clamp(96px,15vw,130px)}
  #signal .signal-quote{font-size:11px}
  #signal .signal-cue{display:flex;margin-top:14px;font-size:7px}
  #signal .frequency-dial{width:clamp(260px,35vw,310px);height:clamp(260px,35vw,310px)}
  #signal .channel-strip{grid-template-columns:repeat(4,minmax(0,1fr));height:104px;flex:0 0 104px}
  #signal .channel{min-height:0;padding:12px 14px 10px}
  #signal .channel:nth-child(2n){border-right:1px solid var(--sig-line)}
  #signal .channel:nth-child(4n){border-right:0}
  #signal .channel:nth-child(n+3){border-top:0}
  #signal .channel-copy b{font-size:12px}
  #signal .channel-copy i{font-size:8px}
  #signal.focus-mode .signal-main{display:flex;flex-direction:column;justify-content:center;padding:16px 24px}
  #signal.focus-mode .signal-hero{display:none}
  #signal.focus-mode .frequency-dial{width:clamp(260px,36vw,330px);height:clamp(260px,36vw,330px)}
}

/* ---------- phone ---------- */
@media (max-width:600px){
  #signal .signal-head{grid-template-columns:1fr auto;padding:0 14px;gap:8px}
  #signal .signal-wordmark{font-size:13px}
  #signal .signal-actions{gap:5px}
  #signal .signal-actions button{height:34px;padding:0 9px;font-size:7.5px;gap:5px}
  #signal .signal-main{padding:12px 16px 6px;gap:2px}
  #signal .signal-index{font-size:8px;letter-spacing:.13em}
  #signal .signal-hero h1{margin:8px 0 12px;font-size:clamp(76px,19.5vw,96px)}
  #signal .signal-lock{gap:6px 10px;padding:8px 10px 7px}
  #signal .signal-lock-label{font-size:7.5px}
  #signal .signal-lock>b{font-size:15px}
  #signal .signal-lock>small{font-size:7.5px}
  #signal .signal-quote{font-size:10px;line-height:1.5;margin-top:8px}
  #signal .signal-quote br{display:none}
  #signal .signal-console{margin-top:2px}
  #signal .frequency-dial{width:clamp(196px,52vw,218px);height:clamp(196px,52vw,218px)}
  #signal .frequency-dial>button b{font-size:clamp(31px,8.4vw,38px)}
  #signal .frequency-dial>button span{font-size:7px;margin-bottom:5px}
  #signal .frequency-dial>button em{font-size:7px;margin-top:7px}
  #signal .signal-dial-meta{width:min(100%,310px);font-size:8px;margin-top:8px;padding-bottom:6px}
  #signal .signal-dial-status{font-size:7.5px;margin-top:6px;letter-spacing:.07em}
  #signal .signal-dial-controls{margin-top:7px}
  #signal .signal-presets button{height:30px;min-width:36px;font-size:7.5px}
  #signal .signal-reset{height:32px;width:30px}
  #signal .channel{min-height:72px;padding:8px 10px 7px;grid-template-columns:18px minmax(0,1fr) auto;column-gap:7px}
  #signal .channel-no{font-size:7px;padding-top:3px}
  #signal .channel-copy b{font-size:10.5px}
  #signal .channel-copy i{font-size:7.5px}
  #signal .channel-q{font-size:10.5px}
  #signal .channel-meter{margin-top:5px}
  #signal .signal-footer{font-size:7.5px;gap:8px;padding:0 12px;height:32px;flex-basis:32px}
  #signal.focus-mode .signal-main{padding:14px 16px}
  #signal.focus-mode .frequency-dial{width:clamp(224px,62vw,260px);height:clamp(224px,62vw,260px)}
  #signal.focus-mode .signal-focus-note b{font-size:16px}
}

@media (prefers-reduced-motion:reduce){
  #signal *,#signal *::before,#signal *::after{animation:none!important;transition-duration:.01ms!important}
}
