:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color-scheme:dark;
  --bg:#090b0e;--panel:#11151a;--panel2:#171c22;--panel3:#1d232b;
  --text:#f4f7fb;--muted:#98a3b2;--line:#2b333d;--line-strong:#44505f;
  --accent:#9dc4ff;--accent-soft:#1c3049;--inactive:#0e1115;--key:#20262d;--key2:#2a323c;
  --danger:#ffb4ab;--shadow:0 26px 80px rgba(0,0,0,.34)
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;min-width:320px;background:
  radial-gradient(circle at 50% -12%,rgba(76,116,167,.22),transparent 34rem),
  linear-gradient(180deg,#0b0e12 0%,var(--bg) 34rem);color:var(--text)}
button,input{font:inherit}
button{touch-action:manipulation}
a{color:inherit}
code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.shell{width:min(1440px,100%);margin:0 auto;padding:clamp(18px,3vw,42px) clamp(14px,3vw,34px) 56px}
.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;margin-bottom:clamp(22px,4vw,42px)}
.eyebrow{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:760}
h1{font-size:clamp(2rem,6vw,4.9rem);letter-spacing:-.055em;line-height:.9;margin:.42rem 0 .9rem;max-width:10ch}
.lede{margin:0;color:var(--muted);max-width:72ch;line-height:1.6;font-size:clamp(.95rem,1.5vw,1.08rem)}
.hero-facts{display:grid;grid-template-columns:repeat(3,auto);gap:1px;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:var(--line)}
.fact{background:rgba(16,20,25,.94);padding:12px 14px;min-width:104px}
.fact strong{display:block;font-size:1.05rem;letter-spacing:-.03em}
.fact span{display:block;color:var(--muted);font-size:.68rem;margin-top:3px;text-transform:uppercase;letter-spacing:.08em}
.toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end;margin-bottom:14px}
.family{display:flex;flex-wrap:wrap;gap:7px}
.family-label{width:100%;font-size:.67rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:8px 0 1px}
.layer-button{border:1px solid var(--line);background:rgba(17,21,26,.88);color:var(--text);padding:8px 11px;border-radius:999px;cursor:pointer;transition:.16s ease}
.layer-button:hover{border-color:var(--line-strong);transform:translateY(-1px)}
.layer-button[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 1px rgba(157,196,255,.16) inset}
.switches{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.switch{display:flex;gap:7px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:rgba(17,21,26,.88);font-size:.82rem;white-space:nowrap}
.stage{position:relative;border:1px solid var(--line);border-radius:24px;background:
  linear-gradient(180deg,rgba(24,29,35,.96),rgba(12,15,19,.98));padding:clamp(13px,2.5vw,24px);overflow:hidden;box-shadow:var(--shadow)}
.stage::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.028),transparent 33%)}
.stage-head{position:relative;display:flex;gap:16px;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.layer-title{font-size:clamp(1.35rem,2.8vw,2.05rem);font-weight:790;letter-spacing:-.035em}
.layer-role{font-size:.88rem;color:var(--muted);margin-top:4px;line-height:1.45}
.layer-number{font:700 .8rem ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--accent);border:1px solid var(--line);border-radius:9px;padding:7px 9px;background:#10151b}
.keyboard-wrap{position:relative;display:flex;justify-content:center;padding:clamp(10px,2vw,20px) 0 6px}
.keyboard{
  --u:clamp(43px,5.35vw,68px);
  display:grid;grid-template-columns:auto clamp(18px,2vw,38px) auto;gap:0;align-items:start;justify-content:center;width:100%;
}
.split-gap{width:100%;height:1px}
.half{
  position:relative;width:calc(var(--u)*6.15);height:calc(var(--u)*4.75);
  transform-origin:center center;isolation:isolate
}
.half.right{transform:scaleX(-1)}
.half-board{
  position:absolute;inset:0;z-index:-1;border:1px solid #313b46;
  background:linear-gradient(155deg,#171c22,#0d1116 64%);
  clip-path:polygon(2% 27%,29% 1%,71% 9%,96% 20%,100% 80%,78% 96%,49% 88%,20% 100%,0 76%);
  filter:drop-shadow(0 16px 18px rgba(0,0,0,.32))
}
.half-board::after{content:"";position:absolute;inset:5px;border:1px solid rgba(157,196,255,.09);clip-path:inherit}
.key{
  position:absolute;width:calc(var(--u)*.9);height:calc(var(--u)*.9);
  border:1px solid #3a4450;border-bottom-color:#596575;border-radius:calc(var(--u)*.14);
  background:linear-gradient(180deg,var(--key2),var(--key));color:var(--text);padding:calc(var(--u)*.07);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  cursor:pointer;line-height:1.02;box-shadow:0 calc(var(--u)*.05) calc(var(--u)*.11) rgba(0,0,0,.28);
  transition:transform .13s ease,border-color .13s ease,opacity .13s ease
}
.key:hover{border-color:#6b7d91;z-index:6}
.key:focus-visible{outline:2px solid var(--accent);outline-offset:2px;z-index:7}
.key.transparent{opacity:.24;background:var(--inactive);box-shadow:none}
.key.disabled{opacity:.07;cursor:default}
.key.alpha-hidden .primary{font-size:0}
.key.alpha-hidden .primary::after{content:"·";font-size:1rem;color:#727c88}
.primary{font-weight:760;font-size:clamp(.53rem,1vw,.78rem);overflow-wrap:anywhere;max-width:100%}
.secondary{font-size:clamp(.42rem,.72vw,.59rem);color:var(--accent);margin-top:4px;max-width:100%;overflow-wrap:anywhere}
.right .key-face,.right .module-inner{transform:scaleX(-1)}
.slot-c4-r0{left:calc(var(--u)*0);top:calc(var(--u)*1.25)}
.slot-c4-r1{left:calc(var(--u)*0);top:calc(var(--u)*2.25)}
.slot-c4-r2{left:calc(var(--u)*0);top:calc(var(--u)*3.25)}
.slot-c3-r0{left:calc(var(--u)*1);top:calc(var(--u)*.5)}
.slot-c3-r1{left:calc(var(--u)*1);top:calc(var(--u)*1.5)}
.slot-c3-r2{left:calc(var(--u)*1);top:calc(var(--u)*2.5)}
.slot-c2-r0{left:calc(var(--u)*2);top:0}
.slot-c2-r1{left:calc(var(--u)*2);top:calc(var(--u)*1)}
.slot-c2-r2{left:calc(var(--u)*2);top:calc(var(--u)*2)}
.slot-c1-r0{left:calc(var(--u)*3);top:calc(var(--u)*.5)}
.slot-c1-r1{left:calc(var(--u)*3);top:calc(var(--u)*1.5)}
.slot-c1-r2{left:calc(var(--u)*3);top:calc(var(--u)*2.5)}
.slot-c0-r0{left:calc(var(--u)*4);top:calc(var(--u)*.75)}
.slot-c0-r1{left:calc(var(--u)*4);top:calc(var(--u)*1.75)}
.slot-c0-r2{left:calc(var(--u)*4);top:calc(var(--u)*2.75)}
.slot-thumb-outer{left:calc(var(--u)*3.28);top:calc(var(--u)*3.55);transform:rotate(15deg)}
.slot-thumb-inner{left:calc(var(--u)*4.22);top:calc(var(--u)*3.28);transform:rotate(30deg)}
.right .slot-thumb-outer{transform:rotate(15deg)}
.right .slot-thumb-inner{transform:rotate(30deg)}
.module-shell{
  position:absolute;left:calc(var(--u)*5.12);top:calc(var(--u)*1.14);width:calc(var(--u)*.82);height:calc(var(--u)*1.76);
  border:1px solid #3a4652;border-radius:calc(var(--u)*.1);background:#080b0f;padding:calc(var(--u)*.055);
  box-shadow:0 10px 20px rgba(0,0,0,.38)
}
.module-screen{position:relative;width:100%;height:100%;border-radius:calc(var(--u)*.055);overflow:hidden;background:#05080c}
.module-screen img{width:100%;height:100%;display:block;object-fit:cover}
.tft-overlay{position:absolute;inset:0;padding:10% 9%;display:flex;flex-direction:column;justify-content:flex-start;pointer-events:none;text-shadow:0 1px 2px #000}
.tft-layer{font:800 clamp(.48rem,.75vw,.66rem)/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--tft-accent,var(--accent));margin-top:7%}
.tft-name{font:750 clamp(.34rem,.55vw,.48rem)/1.1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#f7fbff;margin-top:auto;margin-bottom:13%}
.encoder-module{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#252c35 0 34%,#0a0d11 36% 100%)}
.encoder-knob{width:72%;aspect-ratio:1;border-radius:50%;border:2px solid #4a5664;background:radial-gradient(circle at 42% 37%,#353e49,#14191f 58%,#090c10);box-shadow:0 7px 15px rgba(0,0,0,.45);position:relative}
.encoder-knob::after{content:"";position:absolute;left:50%;top:10%;width:2px;height:22%;background:var(--accent);border-radius:2px}
.module-caption{position:absolute;left:calc(var(--u)*5.02);top:calc(var(--u)*3.03);width:calc(var(--u)*1.02);font-size:clamp(.39rem,.55vw,.52rem);line-height:1.15;text-align:center;color:var(--muted)}
.right .module-caption{transform:scaleX(-1)}
.keyboard-note{display:flex;justify-content:center;color:var(--muted);font-size:.69rem;margin:2px 0 12px;text-align:center}
.hardware-strip{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);gap:12px;margin-top:10px}
.encoders{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.encoder{border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(21,26,32,.78)}
.encoder-name{font-size:.69rem;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);margin-bottom:9px}
.encoder-map{display:grid;grid-template-columns:1fr 42px 1fr;gap:8px;align-items:center;text-align:center}
.encoder-map .key{position:relative;left:auto;top:auto;width:100%;height:46px;border-radius:9px}
.dial{width:38px;height:38px;border:2px solid #5b6471;border-radius:50%;margin:auto;position:relative;background:#11161c}
.dial::after{content:"";position:absolute;width:2px;height:11px;background:var(--accent);left:17px;top:4px}
.module-summary{border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(21,26,32,.78);display:grid;grid-template-columns:1fr 1fr;gap:10px}
.module-summary .module-stat{min-width:0}
.module-stat span{display:block;color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}
.module-stat strong{display:block;margin-top:5px;font-size:.82rem;overflow-wrap:anywhere}
.legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;color:var(--muted);font-size:.7rem}
.legend span{border:1px solid var(--line);padding:5px 7px;border-radius:7px;background:#101419}
.status{margin-top:10px;font-size:.73rem;color:var(--muted)}
.error{color:var(--danger)}
.detail{margin-top:14px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);gap:12px}
.card{border:1px solid var(--line);border-radius:15px;padding:15px;background:rgba(17,21,26,.9)}
.card h2{font-size:.72rem;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);margin:0 0 9px}
.detail-main{font-size:1.05rem;font-weight:760}
.raw{font:.78rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);overflow-wrap:anywhere}
@media(max-width:980px){
  .hero{grid-template-columns:1fr}.hero-facts{justify-self:start}
  .toolbar{grid-template-columns:1fr}.switches{justify-content:flex-start}
  .keyboard{--u:clamp(40px,5.9vw,58px)}
  .hardware-strip{grid-template-columns:1fr}
}
@media(max-width:700px){
  .shell{padding-inline:12px}
  .hero-facts{width:100%;grid-template-columns:repeat(3,1fr)}.fact{min-width:0}
  .stage{border-radius:18px}
  .keyboard{--u:min(14.4vw,61px);grid-template-columns:1fr;justify-items:center;gap:12px}
  .split-gap{display:none}
  .half{width:calc(var(--u)*6.15);height:calc(var(--u)*4.75)}
  .half.right{margin-top:2px}
  .primary{font-size:clamp(.5rem,2vw,.72rem)}.secondary{font-size:clamp(.39rem,1.55vw,.54rem)}
  .module-caption{font-size:clamp(.38rem,1.25vw,.48rem)}
  .tft-layer{font-size:clamp(.46rem,1.8vw,.62rem)}.tft-name{font-size:clamp(.32rem,1.25vw,.44rem)}
  .encoders,.detail{grid-template-columns:1fr}
  .module-summary{grid-template-columns:1fr}
}
@media(max-width:440px){
  .layer-button{padding:7px 9px;font-size:.76rem}
  .switch{font-size:.75rem}
  .keyboard{--u:min(14.8vw,58px)}
  .fact{padding:9px}.fact strong{font-size:.9rem}.fact span{font-size:.58rem}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important}
  .module-screen img{display:none}
  .module-screen{background:linear-gradient(180deg,#07101a,#090b0f)}
}
