@font-face{font-family:"Barlow";src:url(../fonts/barlow-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Barlow";src:url(../fonts/barlow-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Barlow";src:url(../fonts/barlow-latin-800-normal.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url(../fonts/barlow-condensed-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url(../fonts/barlow-condensed-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --desk:#1a1721;
  --desk-hi:#24202d;
  --panel:#211d29;
  --well:#0f0d14;
  --edge:#383146;
  --legend:#d8d2e6;
  --dim:#a39cb6;
  --ink-dark:#120f18;
  --ch1:#f23a3f;
  --ch2:#ff8a00;
  --ch3:#ffd200;
  --ch4:#16a83d;
  --ch5:#1f62e6;
  --ch6:#7b2fd0;
  --focus:#ffd200;
  --cond:"Barlow Condensed","Arial Narrow",sans-serif;
  --body:"Barlow",system-ui,sans-serif;
  --gutter:clamp(16px,3.2vw,48px);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;scrollbar-color:var(--edge) var(--desk)}
body{margin:0;background:var(--desk);color:var(--legend);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--ch6);color:#fff}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}
h1,h2,h3{margin:0;text-wrap:balance}
p{margin:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:var(--gutter);top:-60px;background:var(--focus);color:var(--ink-dark);padding:10px 16px;font-weight:600;z-index:10}
.skip:focus{top:12px}

/* engraved panel legend */
.legend,.strip__grp,.strip__stat,.status dt,.ch__grp,.ch__no,.links a,.plate__model{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em}

/* ---------- switch strip (header) ---------- */
.switch{background:linear-gradient(#2c2836,#221e2b);border-bottom:1px solid #000;box-shadow:0 1px 0 #ffffff0d inset,0 6px 18px #0006;position:sticky;top:0;z-index:20}
.switch__inner{display:flex;align-items:center;gap:clamp(16px,2.4vw,36px);padding:12px var(--gutter);flex-wrap:wrap}
.plate{display:flex;flex-direction:column;text-decoration:none;line-height:1.1;padding-right:clamp(12px,2vw,28px);border-right:1px solid var(--edge)}
.plate__name{font:700 1.5rem/1 var(--cond);letter-spacing:.06em;text-transform:uppercase;color:#fff}
.plate__model{font-size:.75rem;color:var(--dim);margin-top:4px;font-weight:500}
.ports{display:flex;gap:6px;padding:6px;background:var(--well);border-radius:4px;box-shadow:inset 0 2px 4px #000}
.port{position:relative;display:grid;justify-items:center;gap:3px;width:38px;padding:5px 0 3px;text-decoration:none;border-radius:2px}
.port__jack{position:relative;width:26px;height:20px;background:#08070b;border:1px solid #3d3748;clip-path:polygon(0 0,100% 0,100% 72%,78% 72%,78% 100%,22% 100%,22% 72%,0 72%)}
.port__jack::before,.port__jack::after{content:"";position:absolute;top:2px;width:5px;height:3px;border-radius:1px;background:#2a2630}
.port__jack::before{left:2px;background:var(--c)}
.port__jack::after{right:2px;background:#57d36a;animation:act 1.7s steps(1) infinite;animation-delay:calc(var(--i,0) * -0.37s)}
.port:nth-child(2){--i:1}.port:nth-child(3){--i:2}.port:nth-child(4){--i:3}.port:nth-child(5){--i:4}.port:nth-child(6){--i:5}
.port__no{font:700 .75rem/1 var(--cond);color:var(--dim)}
.port:hover .port__no,.port[aria-current="true"] .port__no{color:#fff}
.port[aria-current="true"]{background:#ffffff10}
@keyframes act{0%,100%{opacity:1}12%{opacity:.15}20%{opacity:1}46%{opacity:.2}52%{opacity:1}71%{opacity:.25}}
.links{display:flex;gap:clamp(14px,2vw,28px);margin-left:auto}
.links a{text-decoration:none;font-weight:700;font-size:.9375rem;color:var(--legend);padding:6px 0;border-bottom:2px solid transparent}
.links a:hover{color:#fff;border-bottom-color:var(--ch3)}
.status{display:flex;gap:18px;margin:0;padding-left:clamp(12px,2vw,28px);border-left:1px solid var(--edge)}
.status div{display:grid;line-height:1.2}
.status dt{font-size:.6875rem;color:var(--dim);font-weight:500}
.status dd{margin:0;font:700 1rem/1.3 var(--cond);color:#fff;display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums}
.led{display:inline-block;width:8px;height:8px;border-radius:50%;background:#3a3440;flex:none}
.led--lock{background:#57d36a;box-shadow:inset 0 -2px 0 #0004}

/* ---------- desk ---------- */
.desk{padding:clamp(20px,3vw,40px) var(--gutter);background:radial-gradient(120% 80% at 50% 0%,#2a2534 0%,transparent 60%),var(--desk)}
.chassis{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(340px,1fr);background:linear-gradient(#272330,#1f1b27);border:1px solid var(--edge);border-radius:12px;box-shadow:inset 0 1px 0 #ffffff12,0 18px 40px -14px #000c;overflow:hidden}
.master{order:2;display:flex;flex-direction:column;gap:20px;border-left:2px solid #0d0b11;box-shadow:inset 1px 0 0 #ffffff0d;padding:clamp(20px,2.4vw,32px)}
.sticker{display:block;width:min(100%,300px);height:auto;background:#fff;border-radius:6px;padding:6px 12px;box-shadow:0 6px 14px -4px #000c,0 1px 2px #0008}
.master h1{font:800 clamp(2.125rem,3.3vw,3.25rem)/1.04 var(--body);letter-spacing:-.02em;color:#fff}
.master p{color:var(--legend);max-width:40ch}

.talk{display:inline-flex;align-items:stretch;align-self:flex-start;text-decoration:none;border-radius:6px;overflow:hidden;background:#100e15;border:1px solid var(--edge);font-weight:600;transition:border-color .2s}
.talk>span{padding:12px 16px}
.talk__key{font:700 .9375rem/1.3 var(--cond);text-transform:uppercase;letter-spacing:.14em;background:linear-gradient(#f2eef8,#b7b0c6);color:var(--ink-dark);display:flex;align-items:center;transition:background .15s,color .15s,box-shadow .15s}
.talk:hover{border-color:var(--ch3)}
.talk:hover .talk__key,.talk:focus-visible .talk__key{background:var(--ch3);box-shadow:inset 0 0 12px #fff8}
.talk:active .talk__key{transform:translateY(1px)}

.strips{order:1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;background:#141119;padding:12px;box-shadow:inset 0 2px 10px #000a}
.strip{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(#26222f,#1e1a26);border:1px solid #2f2a3a;border-radius:6px;padding:12px 6px 8px;transition:background .25s,border-color .25s}
.strip.is-sel{border-color:var(--c);background:linear-gradient(color-mix(in oklab,var(--c) 14%,#26222f),#1e1a26)}
.strip__grp{font-size:.6875rem;font-weight:700;color:var(--dim);white-space:nowrap}
.strip--bridge .strip__grp{color:var(--legend)}
.strip__stat{display:flex;white-space:nowrap;align-items:center;gap:6px;font-size:.75rem;font-weight:500;color:var(--dim);border:1px solid var(--edge);border-radius:3px;padding:3px 8px;background:#15121b}
.strip__ro{font:700 .875rem/1 var(--cond);letter-spacing:.06em;white-space:nowrap;font-variant-numeric:tabular-nums;background:#07060a;border-radius:3px;padding:6px 8px 5px;min-width:64px;text-align:center;box-shadow:inset 0 1px 3px #000}
.strip[data-kind="ping"] .strip__ro,.strip[data-kind="both"] .strip__ro{color:#7fe08c}
.strip[data-kind="pegel"] .strip__ro{color:#ffc04d}
.led--link{background:var(--c);box-shadow:inset 0 -2px 0 #0004}
.led--phantom{background:#f23a3f;box-shadow:inset 0 -2px 0 #0004}
.strip__track{display:flex;gap:10px;align-items:stretch;height:clamp(200px,25vw,380px)}
.meter{display:flex;flex-direction:column-reverse;gap:3px;width:9px}
.meter i{flex:1;border-radius:1.5px;background:#ffffff10;transition:background .06s}
.meter i.on{background:var(--c)}
.meter i.on.pk{background:#fff}

.fader{writing-mode:vertical-lr;direction:rtl;-webkit-appearance:none;appearance:none;width:34px;height:100%;margin:0;background:transparent;cursor:ns-resize}
.fader::-webkit-slider-runnable-track{width:6px;background:#07060a;border-radius:3px;box-shadow:inset 0 0 0 1px #000,0 1px 0 #ffffff12}
.fader::-moz-range-track{width:6px;background:#07060a;border-radius:3px}
.fader::-webkit-slider-thumb{-webkit-appearance:none;width:34px;height:20px;margin-left:-14px;border-radius:3px;border:0;background:linear-gradient(#f0edf5 0 40%,#121015 40% 56%,#c4bdd2 56%);box-shadow:0 4px 6px -1px #000c}
.fader::-moz-range-thumb{width:34px;height:20px;border-radius:3px;border:0;background:linear-gradient(#f0edf5 0 40%,#121015 40% 56%,#c4bdd2 56%);box-shadow:0 4px 6px -1px #000c}
.fader:focus-visible{outline-offset:0}

.sel{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;padding:0;margin:0;background:none;border:0;color:inherit;font:inherit;cursor:pointer;border-radius:4px}
.sel__key{font:700 .8125rem/1 var(--cond);text-transform:uppercase;letter-spacing:.14em;color:var(--legend);background:linear-gradient(#3a3446,#2a2533);border:1px solid #0008;border-radius:4px;padding:9px 0;width:min(100%,64px);text-align:center;box-shadow:0 2px 0 #0009,inset 0 1px 0 #ffffff1a;transition:background .15s,color .15s,box-shadow .15s}
.sel:hover .sel__key{color:#fff;background:linear-gradient(#463f54,#2f2a3a)}
.sel:hover .scribble{box-shadow:inset 0 0 0 2px #fff8}
.sel[aria-pressed="true"] .sel__key{background:var(--c);color:var(--ink);box-shadow:inset 0 1px 0 #fff6,0 1px 0 #0009;transform:translateY(1px)}
.scribble{display:block;width:100%;background:var(--c);color:var(--ink);border-radius:3px;padding:6px 4px 5px;text-align:center;font:700 .9375rem/1.15 var(--cond);text-transform:uppercase;letter-spacing:.04em;overflow-wrap:break-word;hyphens:auto;box-shadow:inset 0 0 0 1px #0003}
.scribble b{display:block;font-size:.75rem}

/* ---------- channel display ---------- */
.display{padding:0 var(--gutter) clamp(40px,6vw,80px)}
.display__screen{background:var(--well);border:1px solid var(--edge);border-radius:10px;padding:clamp(20px,3vw,40px);box-shadow:inset 0 0 0 6px #17141d,inset 0 8px 30px #000;display:grid;gap:40px}
.js .display__screen{min-height:250px}
.ch{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);column-gap:clamp(20px,4vw,56px);row-gap:10px;align-items:start}
.ch[hidden]{display:none}
.ch>:not(header){grid-column:2}
.ch header{grid-row:1/span 3;display:grid;gap:8px;border-top:6px solid var(--c);padding-top:12px}
.ch__no{font:700 clamp(2.25rem,3vw,3rem)/1 var(--cond);letter-spacing:.02em;color:#fff;font-variant-numeric:tabular-nums}
.ch h3{font:800 clamp(1.5rem,2.4vw,2.25rem)/1.1 var(--body);color:#fff;letter-spacing:-.01em}
.ch p{max-width:65ch;font-size:1.125rem}
.tags{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tags li{font:500 .875rem/1 var(--cond);text-transform:uppercase;letter-spacing:.1em;padding:7px 10px 6px;border:1px solid color-mix(in oklab,var(--c) 60%,var(--edge));border-radius:3px;color:var(--legend)}
.js .ch.is-in{animation:cut .32s cubic-bezier(.16,1,.3,1)}
@keyframes cut{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}

/* ---------- about + contact ---------- */
.rack{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:clamp(14px,1.6vw,22px);padding:0 var(--gutter) clamp(48px,7vw,96px)}
.about,.contact{--screw:radial-gradient(circle,#7a7288 0 2px,#4a4456 3px,#14111a 5px,transparent 6px);position:relative;border:1px solid var(--edge);border-radius:6px;box-shadow:inset 0 1px 0 #ffffff12,0 18px 40px -14px #000c;padding:clamp(40px,4vw,56px) clamp(32px,4vw,56px);
  background:var(--screw) 10px 10px/14px 14px no-repeat,var(--screw) right 10px top 10px/14px 14px no-repeat,var(--screw) left 10px bottom 10px/14px 14px no-repeat,var(--screw) right 10px bottom 10px/14px 14px no-repeat,linear-gradient(#272330,#1f1b27)}
.about{display:grid;gap:28px;align-content:start}
.contact{align-self:start}
.about h2,.contact h2{font:700 clamp(1.75rem,3vw,2.75rem)/1 var(--cond);text-transform:uppercase;letter-spacing:.04em;color:var(--legend);background:#131017;border-radius:4px;padding:14px 18px 12px;box-shadow:inset 0 2px 5px #000c,0 1px 0 #ffffff12;justify-self:stretch}
.about__body{display:grid;gap:22px;font-size:1.1875rem;max-width:62ch}
.pride{padding-top:22px;position:relative}
.pride::before{content:"";position:absolute;top:0;left:0;width:min(100%,264px);height:6px;background:linear-gradient(90deg,var(--ch1) 0 16.66%,var(--ch2) 0 33.33%,var(--ch3) 0 50%,var(--ch4) 0 66.66%,var(--ch5) 0 83.33%,var(--ch6) 0)}
.contact{display:grid;justify-items:start;align-content:start;gap:20px}
.contact p{max-width:52ch;font-size:1.125rem}
.talk--big{font-size:clamp(1.0625rem,2vw,1.375rem)}
.talk--big>span{padding:16px 22px}

/* ---------- footer ---------- */
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;padding:24px var(--gutter);border-top:1px solid var(--edge);background:#121017;color:var(--dim);font-size:.9375rem}
.foot nav{display:flex;gap:24px}
.foot a{color:var(--legend)}
.foot a:hover{color:#fff}

/* ---------- legal pages ---------- */
.legal{padding:clamp(32px,5vw,72px) var(--gutter) clamp(48px,7vw,96px);max-width:calc(72ch + 2 * var(--gutter))}
.legal h1{font:700 clamp(2.25rem,5vw,4rem)/1 var(--cond);text-transform:uppercase;letter-spacing:.02em;color:#fff;margin-bottom:clamp(24px,4vw,40px)}
.legal h2{font:700 1.375rem/1.2 var(--body);color:#fff;margin:2.4em 0 .6em}
.legal h3{font:600 1.125rem/1.3 var(--body);color:#fff;margin:1.8em 0 .5em}
.legal p,.legal ul{margin:0 0 1em}
.legal ul{padding-left:1.2em}
.legal address{font-style:normal}
.ph{background:#ffd20026;color:#ffe680;padding:0 .25em;border-radius:2px;font-weight:600}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .chassis{grid-template-columns:1fr}
  .master{order:0;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:28px;align-items:center;border-left:0;box-shadow:none;border-bottom:2px solid #0d0b11}
  .sticker{grid-row:1/span 3;width:220px}
  .rack{grid-template-columns:1fr}
}
@media (max-width:760px){
  html{scroll-padding-top:200px}
  .switch__inner{gap:10px 16px}
  .plate{border-right:0;padding-right:0}
  .ports{order:3;width:100%;justify-content:space-between}
  .port{flex:1}
  .links{margin-left:auto}
  .status{order:4;width:100%;border-left:0;padding-left:0;justify-content:space-between}
  .status div{display:flex;align-items:baseline;gap:8px}
  .master{display:flex}
  .sticker{width:min(100%,240px)}
  .strips{grid-template-columns:repeat(3,minmax(0,1fr))}
  .strip__track{height:150px}
  .about{grid-template-columns:1fr}
  .ch{grid-template-columns:1fr}
  .ch>:not(header){grid-column:auto}
  .ch header{grid-row:auto;grid-template-columns:auto 1fr;align-items:baseline;gap:14px}
}
@media (max-width:420px){
  .plate__model{display:none}
  .links{gap:14px}
  .links a{font-size:.875rem}
  .strip__stat{padding:3px 5px;letter-spacing:.06em}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
