/* audiotesthq.com: Wayfinding. Airport signage: yellow decision bands, black signs, white pictograms. */
@font-face{font-family:'Fira Sans';src:url(/assets/fonts/FiraSans-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Fira Sans';src:url(/assets/fonts/FiraSans-500.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Fira Sans';src:url(/assets/fonts/FiraSans-600.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Fira Sans';src:url(/assets/fonts/FiraSans-700.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Fira Sans Condensed';src:url(/assets/fonts/FiraSansCondensed-600.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Fira Sans Condensed';src:url(/assets/fonts/FiraSansCondensed-700.woff2) format('woff2');font-weight:700;font-display:swap}

/* Metric-matched fallbacks so text keeps its line breaks while Fira Sans loads (no layout shift) */
@font-face{font-family:'Fira Fallback';src:local('Arial'),local('ArialMT'),local('Liberation Sans'),local('Helvetica');font-weight:400;size-adjust:102%;ascent-override:91.7%;descent-override:26%;line-gap-override:0%}
@font-face{font-family:'Fira Fallback';src:local('Arial'),local('ArialMT'),local('Liberation Sans'),local('Helvetica');font-weight:500;size-adjust:101%;ascent-override:92.6%;descent-override:26.2%;line-gap-override:0%}
@font-face{font-family:'Fira Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('Helvetica Bold');font-weight:600;size-adjust:96%;ascent-override:97.4%;descent-override:27.6%;line-gap-override:0%}
@font-face{font-family:'Fira Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('Helvetica Bold');font-weight:700;size-adjust:94.8%;ascent-override:98.6%;descent-override:28%;line-gap-override:0%}
:root{
  --y:#ffd100;--y-hi:#ffe14d;--y-wash:#fff3b8;
  --blk:#111111;--k0:#000000;--k1:#1a1a1a;--k2:#2b2b2b;--kl:#3d3d3d;
  --on:#ffffff;--on2:#d0d0d0;--on3:#9c9c9c;
  --bg:#f2f2ef;--paper:#ffffff;--ink:#111111;--mut:#5e5a4c;--rule:#d9d6cc;
  --ok:#1b7a43;--ok-bg:#e6f4ea;--ok-on:#5fd394;--bad:#c3221c;--bad-bg:#fdecea;--bad-on:#ff7a70;--amb:#f0c14b;
  --sans:'Fira Sans','Fira Fallback',system-ui,-apple-system,'Segoe UI',sans-serif;
  --cond:'Fira Sans Condensed','Fira Sans','Fira Fallback',system-ui,sans-serif;
  --wrap:1320px;
  --sky:var(--on2);--ink-on:#fff; /* --sky: secondary text inside black signs (kept for inline styles) */
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-color:var(--blk) var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.55 var(--sans);font-variant-numeric:tabular-nums}
::selection{background:var(--y);color:#000}
img,svg,canvas{max-width:100%}
a{color:inherit;text-underline-offset:3px}
h1,h2,h3{margin:0;line-height:1.2;text-wrap:balance}
p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--blk);outline-offset:3px;border-radius:2px}
.top :focus-visible,.foot :focus-visible,.panel :focus-visible,.check :focus-visible,.signs :focus-visible,.band :focus-visible,.opt :focus-visible{outline-color:var(--y)}
input,select,button{font-family:var(--sans)}
input{caret-color:var(--y)}
.sheet input,.dbadd input{caret-color:var(--ink)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.skip{position:absolute;left:-999px;top:8px;background:var(--y);color:#000;padding:8px 12px;z-index:10;font-weight:700}
.skip:focus{left:8px}

/* header */
.top{background:var(--blk);color:#fff}
.top .wrap{display:flex;align-items:center;gap:32px;min-height:64px}
.logo{font:700 21px/1 var(--sans);letter-spacing:-.01em;text-decoration:none;white-space:nowrap;color:#fff}
.logo span{background:var(--y);color:#000;padding:2px 6px;margin-left:2px;border-radius:2px}
.nav{display:flex;gap:2px;flex-wrap:wrap}
.nav a{font:500 15.5px var(--sans);color:#d8d8d8;text-decoration:none;padding:8px 10px;border-bottom:3px solid transparent}
.nav a:hover{color:var(--y)}
.nav a[aria-current=page]{color:#fff;border-bottom-color:var(--y)}
.top .note{margin-left:auto;font:500 14px var(--sans);color:#b9b9b9;white-space:nowrap}
.menu-btn{display:none;margin-left:auto;background:none;border:2px solid #8f8f8f;color:#fff;border-radius:3px;font:600 14px var(--sans);padding:7px 12px;cursor:pointer}
.menu-btn[aria-expanded=true]{background:var(--y);border-color:var(--y);color:#000}

/* hero + tool layout */
.hero{padding:30px 0 36px}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:40px;align-items:start}
.crumbs{font:500 14.5px var(--sans);color:var(--mut);margin-bottom:10px}
.crumbs a{color:var(--ink);text-decoration-color:var(--y);text-decoration-thickness:3px}
h1{font:700 clamp(36px,4.4vw,54px)/1.05 var(--sans);letter-spacing:-.025em}
h1 .hl{background:var(--y);padding:0 .12em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.lede{font-size:19.5px;line-height:1.5;color:var(--mut);margin:12px 0 0;max-width:46ch}
.facts{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:16px 0 0;font:600 14px var(--sans);color:var(--ink)}
.facts li{border:2px solid var(--blk);border-radius:2px;padding:3px 10px 3px 8px;display:inline-flex;align-items:center;gap:7px}
.facts li::before{content:"";width:8px;height:8px;background:var(--y);outline:1.5px solid var(--blk)}

/* control panel: a black sign with a yellow decision band on top */
.panel{background:var(--k1);color:var(--on);border-radius:4px;padding:0 22px 22px;margin-top:24px;overflow:hidden}
.panel>:first-child:not(h2){margin-top:22px}
.panel h2{margin:0 -22px 18px;background:var(--y);color:#000;padding:13px 22px;font:700 19px/1.25 var(--sans);letter-spacing:-.005em}
.panel+.panel{margin-top:14px}
.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.keys.k2{grid-template-columns:repeat(2,1fr)}.keys.k4{grid-template-columns:repeat(4,1fr)}
.key{min-height:80px;border-radius:3px;border:3px solid var(--y);background:transparent;color:#fff;cursor:pointer;font:700 21px/1.15 var(--sans);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px;transition:background .15s ease-out,color .15s ease-out}
.key small{font:500 13px var(--sans);color:var(--on2)}
.key:hover{background:rgba(255,209,0,.12)}
.key:active{transform:translateY(1px)}
.key.solid{background:var(--y);color:#000}.key.solid small{color:#3b3200}
.key.solid:hover{background:var(--y-hi)}
.key[aria-pressed=true],.key.on{background:#fff;border-color:#fff;color:#000}
.key[aria-pressed=true] small,.key.on small{color:#444}
.key:disabled{opacity:.4;cursor:not-allowed}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:16px;font:500 14.5px var(--sans);color:var(--on2)}
.row .push{margin-left:auto}
.seg{display:inline-flex;flex-wrap:wrap;gap:4px}
.seg button{border:1.5px solid #7a7a7a;background:none;color:#ddd;font:600 14px var(--sans);padding:6px 12px;cursor:pointer;border-radius:2px;white-space:nowrap}
.seg button:hover{border-color:var(--y)}
.seg button[aria-pressed=true]{background:var(--y);color:#000;border-color:var(--y)}
label.vol{display:inline-flex;align-items:center;gap:10px}
input[type=range]{accent-color:var(--y);width:150px;height:24px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 22px;border-radius:3px;border:3px solid var(--y);background:var(--y);color:#000;font:700 16.5px var(--sans);text-decoration:none;cursor:pointer;transition:background .15s ease-out}
.btn:hover{background:var(--y-hi);border-color:var(--y-hi)}
.btn.ghost{background:transparent;border:2px solid #8f8f8f;color:#fff}
.btn.ghost:hover{border-color:var(--y);color:var(--y)}
.btn.small{min-height:38px;padding:5px 14px;font-size:14.5px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.status{font:500 15px var(--sans);color:var(--on2);margin-top:14px;min-height:1.6em}
.status.warn{color:var(--y)}.status.err{color:var(--bad-on)}
.status b{color:#fff}

/* meters + readouts */
.meters{display:grid;grid-template-columns:auto 1fr auto;gap:8px 12px;align-items:center;margin-top:14px;font:600 13.5px var(--sans);color:var(--on2)}
.bar{height:14px;background:var(--k0);border-radius:2px;overflow:hidden;border:1px solid var(--kl);position:relative}
.bar i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,#5fd394 0 70%,#f0c14b 70% 88%,#ff6b62 88%);transition:width .06s linear}
.bar b{position:absolute;top:-2px;bottom:-2px;width:2px;background:#fff;left:0}
.big-read{font:700 52px/1 var(--cond);color:#fff}
.big-read small{font:600 16px var(--sans);color:var(--on2);margin-left:6px}
.grid-read,.stats3,.stats4,.out4{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--kl);border:1px solid var(--kl);border-radius:3px;overflow:hidden;margin-top:14px}
.stats3{grid-template-columns:repeat(3,1fr)}.out4{grid-template-columns:repeat(2,1fr)}
.grid-read div,.stats3 div,.stats4 div,.out4 div{background:var(--k1);padding:10px 12px;font:600 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--on2)}
.grid-read b,.stats3 b,.stats4 b,.out4 b{display:block;font:700 22px var(--cond);letter-spacing:0;text-transform:none;color:#fff;margin-top:2px}
.ladder{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.ladder button{min-height:48px;border-radius:2px;border:1.5px solid #7a7a7a;background:none;color:#fff;font:700 16px var(--cond);cursor:pointer}
.ladder button:hover{border-color:var(--y)}
.ladder button[aria-pressed=true]{background:var(--y);border-color:var(--y);color:#000}
.ask{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.ask button{border:2px solid #8f8f8f;background:none;color:#fff;border-radius:2px;padding:8px 14px;font:600 15px var(--sans);cursor:pointer}
.ask button:hover{border-color:var(--y)}
.ask button[aria-pressed=true]{background:#fff;color:#000;border-color:#fff}
.ask .q{width:100%;font:700 16px var(--sans);color:#fff}

/* result card: a white sign plate with a black departure-board strip */
.qsl{background:var(--paper);color:var(--ink);border:3px solid var(--blk);border-radius:4px;padding:0 22px 18px;position:relative;margin:0;box-shadow:0 18px 36px -24px rgba(0,0,0,.45)}
.qsl .call{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 -22px;background:var(--blk);color:#fff;padding:12px 22px}
.qsl .call b{font:700 34px/1 var(--cond);color:var(--y);white-space:nowrap;letter-spacing:.01em}
.qsl .call span{font:500 12px/1.5 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:#cfcfcf;text-align:right}
.qsl .call span [data-title]{color:#fff;font-weight:700}
.qsl .to{font:500 15px var(--sans);margin:14px 0 12px;color:var(--mut)}
.qsl .to strong{color:var(--ink)}
.qf{display:grid;grid-template-columns:repeat(4,1fr);border:2px solid var(--blk)}
.qf div{padding:8px 10px;border-right:2px solid var(--blk);min-width:0}
.qf div:last-child{border-right:0}
.qf small,.qr small{display:block;font:600 11px var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}
.qf b{font:700 18px var(--cond);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.qr{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.qr div{border:2px solid var(--rule);border-radius:2px;padding:9px 11px;min-width:0}
.qr b{display:block;font:700 19px/1.25 var(--cond);color:var(--ink);margin-top:2px}
.qr .ok{border-color:var(--ok);background:var(--ok-bg)}.qr .ok b{color:var(--ok)}
.qr .bad{border-color:var(--bad);background:var(--bad-bg)}.qr .bad b{color:var(--bad)}
.qr .wait b{color:#77735f}
.stamp{position:static;display:none;margin-top:12px;opacity:0;transform:translateY(-6px);background:var(--y);border:3px solid var(--blk);color:#000;font:700 17px var(--cond);letter-spacing:.08em;padding:3px 12px;border-radius:2px;transition:opacity .3s ease-out,transform .4s cubic-bezier(.16,1,.3,1)}
.stamp.bad{background:var(--bad);border-color:var(--bad);color:#fff}
.qsl.done .stamp{display:inline-block;opacity:1;transform:none;animation:stampin .4s cubic-bezier(.16,1,.3,1)}
@keyframes stampin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.qsl .qfoot{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;align-items:center;margin-top:14px;font:500 13.5px var(--sans);color:var(--mut)}
.qsl .acts{display:flex;gap:8px}
.qsl .acts button{border:2px solid var(--blk);background:#fff;color:var(--ink);border-radius:2px;padding:6px 12px;font:600 13.5px var(--sans);cursor:pointer}
.qsl .acts button:hover:not(:disabled){background:var(--y)}
.qsl .acts button:disabled{opacity:.4;cursor:not-allowed}
.qsl .note{font:500 13px var(--sans);color:var(--mut);margin:10px 0 0}
.qsl h2{font:700 22px var(--sans)}

/* content sheets */
main{display:block}
.sheet-wrap{padding:8px 0 56px}
.sheet{background:var(--paper);color:var(--ink);border-radius:4px;padding:40px 48px 44px}
.sheet h2{font:700 30px/1.2 var(--sans);letter-spacing:-.015em;margin:48px 0 12px}
.sheet h2:first-child{margin-top:0}
.sheet h3{font:700 20px/1.3 var(--sans);margin:30px 0 8px}
.sheet p,.sheet li{max-width:72ch}
.sheet a{color:var(--ink);font-weight:600;text-decoration-color:var(--y);text-decoration-thickness:3px;text-underline-offset:3px}
.sheet a:hover{background:var(--y);text-decoration-color:var(--blk)}
.sheet ul,.sheet ol{padding-left:1.3em;margin:0 0 1em}
.sheet li{margin:.3em 0}
.sheet .answer{font-size:19px;line-height:1.55;background:var(--y-wash);border-radius:3px;padding:16px 20px;margin-bottom:1.4em;max-width:none}
.sheet table{width:100%;border-collapse:collapse;margin:12px 0 18px;font-size:15.5px}
.sheet th{font:600 12.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--mut);text-align:left;padding:10px 12px;border-bottom:3px solid var(--blk)}
.sheet td{padding:11px 12px;border-bottom:1px solid var(--rule);vertical-align:top}
.tablebox{overflow-x:auto;position:relative}
.sheet .ft-list,.sheet .hubgrid,.sheet .presets{padding-left:0}
.sheet code{overflow-wrap:anywhere;font-size:.92em}
.sheet .fine{font-size:14.5px;color:var(--mut)}
.callout{background:var(--bg);border-radius:3px;padding:16px 18px;margin:16px 0}
.callout b:first-child{display:block;margin-bottom:2px}
details.faq{border-bottom:1px solid var(--rule);padding:4px 0}
details.faq summary{cursor:pointer;font:600 18px/1.4 var(--sans);padding:12px 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";flex:none;width:28px;height:28px;display:grid;place-items:center;background:var(--blk);color:var(--y);font:700 20px/1 var(--sans);border-radius:2px}
details.faq[open] summary::after{content:"−"}
details.faq p{margin-bottom:14px}
.steps{counter-reset:s;list-style:none;padding:0!important}
.steps li{counter-increment:s;position:relative;padding-left:46px;margin:14px 0!important}
.steps li::before{content:counter(s);position:absolute;left:0;top:-1px;width:30px;height:30px;border-radius:2px;background:var(--blk);color:var(--y);font:700 16px/30px var(--cond);text-align:center}
.updated{font:500 14px var(--sans);color:var(--mut);margin-top:28px}
.ad{margin:24px 0;min-height:100px}

/* signs: problem-first routing to every test */
.onair{padding:26px 0 52px}
.onair h2{font:700 15px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:12px}
.signs{display:grid;grid-template-columns:1fr 1fr;gap:10px;list-style:none;padding:0;margin:0}
.signs a{background:var(--blk);color:#fff;display:grid;grid-template-columns:56px minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:14px 18px;border-radius:3px;text-decoration:none;height:100%;transition:outline-color .15s ease-out}
.signs a{outline:3px solid transparent;outline-offset:0}
.signs a:hover{outline-color:var(--y)}
.signs .ic{width:56px;height:56px;background:#fff;border-radius:2px;display:grid;place-items:center;flex:none}
.signs .ic svg{width:34px;height:34px}
.signs b{font:600 20px/1.3 var(--sans);display:block}
.signs small{display:block;font:400 15px/1.4 var(--sans);color:#c4c4c4;margin-top:2px}
.signs .t{font:700 24px/1.05 var(--cond);color:var(--y);text-align:right;white-space:nowrap}
.signs .t span{display:block;font:500 11.5px var(--sans);color:#bdbdbd;letter-spacing:.06em;text-transform:uppercase;margin-top:2px}
.signs .ar{font:700 28px/1 var(--sans);color:var(--y)}
.signs .ar svg{width:24px;height:24px;display:block}

/* home: the yellow decision band */
.home-top{padding:32px 0 0}
.home-top h1{font-size:clamp(40px,4.6vw,56px)}
.home-top .lede{margin-top:8px;font-size:20px}
.band{background:var(--y);margin-top:24px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;padding:22px 26px;border-radius:4px 4px 0 0}
.pic{width:76px;height:76px;background:var(--blk);border-radius:3px;display:grid;place-items:center}
.pic svg{width:48px;height:48px}
.band h2{font:700 34px/1.15 var(--sans);letter-spacing:-.015em;color:#000}
.band p{font:500 17px/1.4 var(--sans);margin:4px 0 0;color:#000}
.band .keys{display:flex;gap:10px}
.band .key{height:84px;min-width:132px;border:3px solid var(--blk);background:var(--y);color:#000;font:700 23px var(--sans);flex-direction:row;gap:10px}
.band .key svg{width:26px;height:26px}
.band .key:hover{background:var(--y-hi)}
.band .key.solid{background:var(--blk);color:var(--y)}
.band .key.solid:hover{background:#2b2b2b}
.band .key[aria-pressed=true]{background:#fff;color:#000;border-color:var(--blk)}
.opt{background:var(--blk);color:#e8e8e8;border-radius:0 0 4px 4px;padding:12px 26px 14px}
.opt .row{margin-top:0}
.opt .status{margin-top:8px}
.opt .ask{margin-top:10px}
.home-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:26px;margin-top:36px;align-items:start}
.home-grid h2.j{font:700 15px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:12px}
.home-grid .signs{grid-template-columns:1fr}
.full{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:26px 0 0;border:3px solid var(--blk);padding:18px 24px;border-radius:3px;font:700 22px/1.3 var(--sans);text-decoration:none;color:var(--ink);background:transparent;width:100%;cursor:pointer;text-align:left}
.full span{font:500 16px var(--sans);color:var(--mut);white-space:nowrap}
.full:hover{background:var(--y)}.full:hover span{color:#000}

/* wizard */
.check{padding:22px 0 10px}
.check .wrap>div{background:var(--k1);color:#fff;border-radius:4px;padding:0 26px 26px;overflow:hidden}
.check h2{margin:0 -26px 0;background:var(--y);color:#000;padding:14px 26px;font:700 24px/1.2 var(--sans)}
.check .sub{color:var(--on2)!important;margin:16px 0 0!important}
.wsteps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0 0;list-style:none;padding:0}
.wsteps li{min-width:0;border:2px solid var(--kl);border-radius:3px;padding:12px 14px;font:500 15px var(--sans);color:var(--on2)}
.wsteps li b{display:block;color:#fff;font-size:17px;font-weight:700}
.wsteps li.now{border-color:var(--y)}
.wsteps li.done{border-color:var(--ok-on)}
.wsteps li.done b::after{content:" ✓";color:var(--ok-on)}
.wbody{margin-top:16px}
.wbody p{color:var(--on2)}

/* stage plot (surround) */
.plot{position:relative;background:var(--k0);border:1.5px solid var(--kl);border-radius:3px;aspect-ratio:1.35/1;margin-top:6px}
.plot .spk{position:absolute;transform:translate(-50%,-50%);min-width:62px;min-height:46px;border-radius:3px;border:2px solid #fff;background:var(--k1);color:#fff;font:700 14px/1.2 var(--sans);cursor:pointer;padding:4px 8px}
.plot .spk:hover{border-color:var(--y)}
.plot .spk small{display:block;font:500 11.5px var(--sans);color:var(--on2)}
.plot .spk[aria-pressed=true]{background:var(--y);border-color:var(--y);color:#000}
.plot .spk[aria-pressed=true] small{color:#3b3200}
.plot .spk.heard{border-color:var(--ok-on)}
.plot .you{position:absolute;left:50%;top:62%;transform:translate(-50%,-50%);font:600 13px var(--sans);color:var(--on2);text-align:center}
.plot .you i{display:block;width:30px;height:30px;border-radius:50%;border:2px solid var(--on2);margin:0 auto 4px}

/* free tools + misc */
.ft-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ft-card{display:flex;gap:12px;border:2px solid var(--rule);border-radius:3px;padding:14px;text-decoration:none!important;color:var(--ink)!important;font-weight:400!important;height:100%;background:none!important}
.ft-card:hover{border-color:var(--blk)}
.ft-g{flex:none;width:40px;height:40px;border-radius:2px;background:var(--blk);color:var(--y);display:grid;place-items:center;font:700 16px var(--sans)}
.ft-t{min-width:0;overflow-wrap:anywhere}
.ft-t b{display:block;font-size:16px}
.ft-t span{display:block;font-size:14px;color:var(--mut)}
.ft-t small{display:block;margin-top:4px;color:var(--ink);font:600 14px var(--sans);text-decoration:underline;text-decoration-color:var(--y);text-decoration-thickness:2px}
.downloads{min-width:720px}
.downloads td:last-child{white-space:nowrap}

/* footer */
.foot{background:var(--blk);color:#bdbdbd;padding:36px 0 30px;font-size:15px;margin-top:0}
.foot .wrap{display:grid;grid-template-columns:1.25fr 1.9fr .95fr .9fr;gap:28px}
.foot .ftests ul{columns:2;column-gap:28px}
.foot .ftests li{break-inside:avoid;margin:0 0 9px}
.foot .ftests li:first-child{margin-top:0}
.foot .hq{background:var(--y);color:#000;padding:1px 5px;margin-left:1px;border-radius:2px;font-weight:700}
.foot .brand{font:700 20px var(--sans);color:#fff}
.foot .brand span{background:var(--y);color:#000;padding:1px 5px;margin-left:2px;border-radius:2px}
.foot p{margin:10px 0 0;max-width:36ch}
.foot h2{font:700 15px var(--sans);color:#fff;margin:0 0 10px}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin:6px 0}
.foot a{color:#d0d0d0;text-decoration:none}
.foot a:hover{color:var(--y);text-decoration:underline}
.foot p a,.foot .legal a{text-decoration:underline;text-decoration-color:#777;text-underline-offset:3px}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.tablebox:focus-visible{outline:3px solid var(--blk);outline-offset:2px}
.foot .legal{grid-column:1/-1;border-top:1px solid #333;padding-top:18px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:14px}

@media (max-width:1100px){
  .signs{grid-template-columns:1fr}
  .wsteps{grid-template-columns:1fr 1fr}
  .ft-list{grid-template-columns:1fr 1fr}
  .band{grid-template-columns:auto minmax(0,1fr)}
  .band .keys{grid-column:1/-1}
  .band .key{flex:1;min-width:0}
  .home-grid{grid-template-columns:1fr}
}
@media (max-width:900px){
  .hero .wrap{grid-template-columns:minmax(0,1fr);gap:26px}
  .nav{display:none;width:100%;padding-bottom:10px}
  .nav.open{display:flex}
  .top .wrap{flex-wrap:wrap}
  .top .note{display:none}
  .menu-btn{display:inline-block}
  .foot .wrap{grid-template-columns:1fr 1fr}
  .foot .wrap>div:first-child,.foot .ftests{grid-column:1/-1}
  .sheet{padding:28px 22px 32px}
  .ladder{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:560px){
  body{font-size:16.5px}
  .wrap{padding:0 16px}
  .keys{gap:8px}.key{min-height:70px;font-size:19px}
  .keys.k4{grid-template-columns:repeat(2,1fr)}
  .panel{padding:0 16px 18px}.panel h2{margin:0 -16px 16px;padding:12px 16px;font-size:18px}
  .signs a{grid-template-columns:44px minmax(0,1fr) auto;gap:12px;padding:12px 14px}
  .signs .ic{width:44px;height:44px}.signs .ic svg{width:28px;height:28px}
  .signs .ar{display:none}
  .signs b{font-size:18px}.signs small{font-size:14px}.signs .t{font-size:20px}
  .wsteps,.ft-list{grid-template-columns:minmax(0,1fr)}
  .qf{grid-template-columns:1fr 1fr}.qf div:nth-child(2){border-right:0}.qf div:nth-child(-n+2){border-bottom:2px solid var(--blk)}
  .qr{grid-template-columns:1fr 1fr 1fr;gap:6px}.qr div{padding:8px}.qr b{font-size:16px}
  .qsl{padding:0 16px 16px}.qsl .call{margin:0 -16px;padding:12px 16px}.qsl .call b{font-size:28px}
  .qr small,.qf small{letter-spacing:.03em;font-size:10.5px;overflow-wrap:anywhere}
  .grid-read,.stats4{grid-template-columns:1fr 1fr}
  .ladder{grid-template-columns:repeat(3,1fr)}
  .foot .wrap{grid-template-columns:1fr 1fr;gap:24px 18px}
  .foot .ftests ul{column-gap:18px}
  input[type=range]{width:120px}
  .sheet h2{font-size:25px}
  .band{padding:18px 16px;gap:14px 16px}
  .pic{width:56px;height:56px}.pic svg{width:36px;height:36px}
  .band h2{font-size:26px}.band p{font-size:15.5px}
  .band .key{height:68px;font-size:19px;gap:6px}.band .key svg{width:20px;height:20px}
  .opt{padding:12px 16px 14px}
  .full{font-size:18px;padding:16px 18px;flex-wrap:wrap}
  .check .wrap>div{padding:0 16px 18px}.check h2{margin:0 -16px;padding:12px 16px;font-size:21px}
}
@media (max-width:420px){
  .wsteps{grid-template-columns:minmax(0,1fr)!important}
  .band .key svg{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}

/* pitch detector */
.pitchbox{display:grid;grid-template-columns:auto 1fr;gap:6px 22px;align-items:center;margin-top:16px}
.pnote{font:700 96px/1 var(--cond);color:#fff;min-width:2.1ch}
.pnote sub{font:700 30px var(--sans);color:var(--on2);vertical-align:baseline;margin-left:4px}
.pread{font:700 22px var(--cond)}
.pread span{display:block;font:500 15px var(--sans);color:var(--on2);margin-top:4px}
.tune{position:relative;height:30px;margin-top:14px;border-radius:2px;background:linear-gradient(90deg,rgba(240,193,75,.25),rgba(95,211,148,.35) 40% 60%,rgba(240,193,75,.25));border:1px solid var(--kl)}
.tune::before{content:"";position:absolute;left:50%;top:-4px;bottom:-4px;width:2px;background:#fff;transform:translateX(-1px)}
.tune i{position:absolute;top:3px;bottom:3px;width:6px;border-radius:2px;background:#fff;left:50%;transform:translateX(-3px);transition:left .08s linear}
.tune i.in{background:var(--ok-on)}.tune i.off{background:var(--amb)}
.tune-l{display:flex;justify-content:space-between;font:600 12.5px var(--sans);color:var(--on2);margin-top:4px}
.trace{display:block;width:100%;height:200px;margin-top:14px;background:var(--k0);border:1px solid var(--kl);border-radius:3px}
select.a4,.inp{background:var(--k0);color:#fff;border:1.5px solid #8f8f8f;border-radius:2px;padding:7px 10px;font:600 15px var(--sans)}
select.a4:hover,.inp:hover{border-color:var(--y)}
.inp{width:6.5em}
.notechart td,.notechart th{text-align:right;padding:7px 8px}.notechart td:first-child,.notechart th:first-child{text-align:left}
@media (max-width:560px){.pnote{font-size:70px}.stats3 b{font-size:17px}.trace{height:170px}}

/* decibel meter */
.slmread{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:16px}
.slmread b{font:700 92px/1 var(--cond);color:#fff;min-width:3.4ch}
.slmread span{font:700 18px var(--sans);color:var(--on2)}
.gauge{position:relative;height:16px;margin-top:10px;border-radius:2px;background:linear-gradient(90deg,#5fd394 0 50%,#f0c14b 50% 65%,#ff6b62 65%);border:1px solid var(--kl);overflow:hidden}
.gauge i{position:absolute;inset:0 0 0 auto;width:100%;background:var(--k0);transition:width .2s linear}
.gauge-l{display:flex;justify-content:space-between;font:600 11.5px var(--sans);color:var(--on2);margin-top:3px}
.limits{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin-top:12px;font:500 14px var(--sans);color:var(--on2)}
.limits b{color:#fff}
.calbox{margin-top:14px;border:1px solid var(--kl);border-radius:3px;padding:10px 14px}
.calbox summary{cursor:pointer;font:700 15px var(--sans);color:#fff;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.calstate{font:700 11.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:2px}
.calstate.off{background:var(--y);color:#000}.calstate.on{background:var(--ok-on);color:#000}
.calbox p{color:var(--on2);font-size:14px;margin:10px 0}
.clipwarn{margin-top:10px;background:#ff6b62;color:#000;border-radius:2px;padding:6px 10px;font:700 13.5px var(--sans)}
@media (max-width:560px){.slmread b{font-size:68px}.limits{grid-template-columns:1fr}}

/* classroom noise meter */
.stage{background:var(--k0);border:1px solid var(--kl);border-radius:3px;padding:22px;margin-top:14px;text-align:center;position:relative}
.stage:fullscreen,.stage:-webkit-full-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:0;width:100%;height:100%}
.stage.stage-max{position:fixed;inset:0;z-index:1000;border-radius:0;display:flex;flex-direction:column;justify-content:center;align-items:center}
.light{width:min(46vw,260px);aspect-ratio:1;border-radius:50%;margin:0 auto;background:#2a2a2a;box-shadow:inset 0 0 0 10px rgba(255,255,255,.06);transition:background .3s}
.stage:fullscreen .light,.stage.stage-max .light{width:min(60vh,60vw)}
.light[data-state=green]{background:#2fbf71}.light[data-state=amber]{background:#f0b429}.light[data-state=red]{background:#e0302a}
.qmsg{font:700 42px/1.1 var(--sans);color:#fff;margin-top:16px}
.stage:fullscreen .qmsg,.stage.stage-max .qmsg{font-size:min(9vw,76px)}
.qnum{font:700 24px var(--cond);color:var(--on2);margin-top:6px}
.qstats{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;margin-top:14px;font:600 13px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--on2)}
.qstats b{display:block;font:700 24px var(--cond);letter-spacing:0;text-transform:none;color:#fff}
.stage [data-exit]{display:none;position:absolute;top:14px;right:14px}
.stage.stage-max [data-exit],.stage:fullscreen [data-exit]{display:inline-flex}
.qset{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:12px;font:500 14px var(--sans);color:var(--on2)}
.qset label{display:flex;gap:6px;align-items:center}

/* exposure calculator + decibel adder */
.drow{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px;font:500 14.5px var(--sans);color:var(--on2)}
.drow label{display:flex;gap:6px;align-items:center}
.out4 b{font-size:24px}
.verdict{margin-top:12px;padding:10px 12px;border-radius:2px;font-size:15px;color:#111;background:#e8e8e8}
.verdict.ok{background:#bfeccf}.verdict.warn{background:#ffe9a3}.verdict.bad{background:#ffc9c4}
.dbadd{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font:600 15px var(--sans)}
.dbadd input{width:6em;border:2px solid var(--blk);border-radius:2px;padding:7px 10px;font:600 15px var(--sans)}
.dbadd output{font:700 24px var(--cond);color:var(--ink);background:var(--y);padding:0 8px;border-radius:2px}
.hubgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:18px 0;padding:0;list-style:none}
.hubgrid li{margin:0!important;max-width:none!important}
.sheet .hubgrid a,.hubgrid a{display:block;background:var(--blk);color:#fff!important;border-radius:3px;padding:14px 16px;text-decoration:none;height:100%;outline:3px solid transparent}
.sheet .hubgrid a:hover,.hubgrid a:hover{outline-color:var(--y);background:var(--blk)}
.hubgrid b{display:block;font:600 18px var(--sans);color:#fff}
.hubgrid span{display:block;font-size:14.5px;font-weight:400;color:#c4c4c4;margin-top:4px}

/* tone generator */
.trow{border:1.5px solid var(--kl);border-radius:3px;padding:12px 14px;margin-top:12px}
.trow.sel{border-color:var(--y)}
.tfreq{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;color:var(--on2);font:700 18px var(--sans)}
.tfreq .tf{font:700 46px/1.1 var(--cond);width:5em;padding:4px 10px;color:#fff;background:var(--k0);border:1.5px solid #8f8f8f;border-radius:2px}
.tfreq .tf:focus{border-color:var(--y)}
.tnote{font:700 16px var(--cond);color:#000;background:var(--y);border-radius:2px;padding:3px 9px}
.tfreq [data-rm]{margin-left:auto}
.trow input[type=range][data-sl]{width:100%;margin-top:10px}
.vol span{font:600 12.5px var(--sans);color:var(--on2);min-width:5em}
.sweepread{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:14px}
.sweepread b{font:700 68px/1 var(--cond);color:#fff;min-width:4.5ch}
.sweepread span{font:700 18px var(--sans);color:var(--on2)}
.sprog{height:8px;background:var(--k0);border-radius:2px;overflow:hidden;margin-top:8px;border:1px solid var(--kl)}
.sprog i{display:block;height:100%;width:0;background:var(--y)}
.marks{margin:10px 0 0;padding-left:20px;color:#fff}
.sgrid{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:12px;font:500 14.5px var(--sans);color:var(--on2)}
.sgrid label{display:flex;gap:6px;align-items:center}
.presets{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none}
.presets button{border:2px solid var(--blk);background:#fff;border-radius:2px;padding:7px 12px;font:600 14px var(--sans);color:var(--ink);cursor:pointer}
.presets button:hover{background:var(--y)}
@media (max-width:560px){.tfreq .tf{font-size:36px;width:4.6em}.sweepread b{font-size:48px}}

/* DTMF */
.keypad{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px;max-width:420px;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.keypad button{min-height:64px;border-radius:3px;border:2px solid #8f8f8f;background:var(--k0);color:#fff;font:700 30px/1 var(--cond);cursor:pointer}
.keypad button:hover{border-color:var(--y)}
.keypad button small{display:block;font:600 10.5px var(--sans);color:var(--on2);letter-spacing:.04em;margin-top:2px}
.keypad button.on{background:var(--y);color:#000;border-color:var(--y)}.keypad button.on small{color:#3b3200}
.typed{font:700 24px var(--cond);color:#fff;min-height:1.4em;margin-top:10px;word-break:break-all}
.bars8{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;height:110px;align-items:end;margin-top:14px}
.bars8 div{position:relative;height:100%;background:var(--k0);border-radius:2px;overflow:hidden;border:1px solid var(--kl)}
.bars8 i{position:absolute;left:0;right:0;bottom:0;height:2%;background:var(--ok-on);transition:height .08s linear}
.bars8l{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;font:600 11px var(--sans);color:var(--on2);text-align:center;margin-top:4px}
.dout{font:700 42px/1.1 var(--cond);color:#fff;margin-top:12px;word-break:break-all;min-height:1.1em}
.dlog{columns:2;margin:8px 0 0;padding-left:18px;color:var(--on2);font-size:14px}
.qtab td,.qtab th{text-align:center}

/* AV sync check */
.avsync{display:grid;grid-template-columns:1fr 120px;gap:14px;align-items:center;margin-top:4px}
.avtrack{position:relative;height:44px;border:1px solid var(--kl);border-radius:3px;background:var(--k0);overflow:hidden}
.avtrack b{position:absolute;left:50%;top:6px;bottom:6px;width:2px;margin-left:-1px;background:#fff;opacity:.75}
.avtrack i{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--y);left:50%}
.avflash{height:72px;border-radius:3px;border:1px solid var(--kl);background:var(--k0)}
.avflash.on{background:#fff}
@media (max-width:560px){.avsync{grid-template-columns:1fr 80px}.avflash{height:60px}}
.avslide{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:center;margin-top:14px;color:var(--on2);font-weight:600}
.avslide input{width:100%}
@media (max-width:560px){.avslide{grid-template-columns:auto 1fr auto}.avslide span{grid-column:1/-1}}

/* free tools network: tiresizecalc-style list (name, line, domain link) */
.sheet .ftn{list-style:none;padding:0;margin:8px 0 8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 32px}
.sheet .ftn li{max-width:none;margin:0;padding:14px 0;border-bottom:1px solid var(--rule)}
.sheet .ftn h3{font:600 17px/1.3 var(--sans);margin:0}
.sheet .ftn p{font-size:15px;color:var(--mut);margin:3px 0 4px}
.sheet .ftn a{font-size:15px;overflow-wrap:anywhere}
@media (max-width:900px){.sheet .ftn{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.sheet .ftn{grid-template-columns:minmax(0,1fr)}}
