
  *{box-sizing:border-box;margin:0;padding:0;}
  :root{
    --bg:#0d0e10; --panel:#17181b; --line:#2a2c31;
    --text:#d6d8dc; --dim:#6e7178; --amber:#ff9f1c; --green:#2ecc71; --red:#ff3b30; --cyan:#35d0ba;
  }
  body{background:radial-gradient(1200px 800px at 50% -10%,#23242a 0%,var(--bg) 60%,#0a0b0c 100%);min-height:100vh;
    font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--text);display:flex;align-items:flex-start;justify-content:center;padding:24px 12px 80px;}
  .unit{width:1080px;max-width:100%;background:linear-gradient(160deg,#1e1f23,#17181b 50%,#121316);border-radius:16px;padding:20px 18px;border:1px solid #2e3036;box-shadow:0 28px 55px rgba(0,0,0,.55);}
  .head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px;}
  .head h1{font-size:16px;letter-spacing:3px;color:#fff;font-weight:800;}
  .head h1 span{color:var(--red);}
  .head .sub{font-size:9px;letter-spacing:2px;color:var(--dim);text-transform:uppercase;}
  .io{display:flex;gap:12px;margin-bottom:14px;flex-wrap:wrap;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;}
  .loop{flex:1;min-width:260px;height:44px;background:#0e0f11;border:1px solid #000;border-radius:6px;position:relative;overflow:hidden;cursor:pointer;}
  .loop canvas{width:100%;height:100%;display:block;}
  .loop .playhead{position:absolute;top:0;bottom:0;width:2px;background:var(--red);}
  .btn{background:linear-gradient(180deg,#2c2e33,#1b1d21);border:1px solid #3c3e44;color:var(--text);border-radius:7px;padding:8px 12px;font-size:10px;letter-spacing:1px;cursor:pointer;text-transform:uppercase;font-weight:700;}
  .btn:hover{filter:brightness(1.15);} .btn:active{transform:translateY(1px);}
  .btn.on{background:linear-gradient(180deg,#ff9433,#e06900);color:#221000;}
  .btn.green{background:linear-gradient(180deg,#3dd68c,#1d9e5e);color:#04260f;}
  .btn.red{background:linear-gradient(180deg,#ff5c4d,#d62f20);color:#2b0d00;}
  .btn.hold:active,.btn.hold.on{background:linear-gradient(180deg,#ff5c4d,#d62f20);color:#2b0d00;transform:translateY(1px);}
  .fxgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;}
  .fxbtn{height:86px;border-radius:12px;background:linear-gradient(180deg,#24262b,#16171a);border:1px solid #3a3c42;cursor:pointer;position:relative;user-select:none;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 4px 8px rgba(0,0,0,.4);transition:transform .03s,box-shadow .03s;}
  .fxbtn .fx-name{font-size:13px;font-weight:800;letter-spacing:2px;color:#c9cbd0;}
  .fxbtn .fx-sub{font-size:8px;color:var(--dim);letter-spacing:1px;text-transform:uppercase;}
  .fxbtn .fx-led{position:absolute;top:8px;right:10px;width:9px;height:9px;border-radius:50%;background:#1c1c1f;box-shadow:inset 0 1px 2px #000;}
  .fxbtn.active{background:linear-gradient(180deg,#ff5c4d,#c02417);border-color:#ff8a7e;box-shadow:0 0 18px rgba(255,59,48,.35);}
  .fxbtn.active .fx-name{color:#fff;}
  .fxbtn.active .fx-led{background:var(--red);box-shadow:0 0 8px var(--red);}
  .fxbtn.engaged{transform:translateY(3px);box-shadow:0 0 22px rgba(255,159,28,.45);}
  .params{display:flex;gap:14px;align-items:center;margin-bottom:14px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;}
  .knob-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;}
  .knob{width:56px;height:56px;border-radius:50%;position:relative;cursor:ns-resize;
    background:radial-gradient(circle at 35% 30%,#4a4c52,#26272b 65%,#151619);box-shadow:0 3px 6px rgba(0,0,0,.5),inset 0 1px 1px rgba(255,255,255,.2);}
  .knob::before{content:"";position:absolute;top:3px;left:50%;width:3px;height:16px;margin-left:-1.5px;border-radius:2px;background:var(--red);transform-origin:50% 25px;}
  .knob-label{font-size:8px;color:var(--dim);letter-spacing:1px;text-transform:uppercase;}
  .knob-val{font-size:10px;color:var(--red);font-family:"SF Mono",Menlo,monospace;min-height:12px;}
  .master{display:flex;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;flex-wrap:wrap;}
  .vu{flex:1;min-width:200px;height:20px;background:#0b0c0d;border:1px solid #000;border-radius:4px;position:relative;overflow:hidden;}
  .vu .bar{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#2ecc71,#ffd23d 70%,#ff3b30 90%);width:0%;}
  .footer{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding-top:12px;}
  .dropzone{border:1px dashed #4a4e56;border-radius:8px;padding:8px 12px;font-size:10px;color:var(--dim);cursor:pointer;text-align:center;flex:1;min-width:150px;}
  .dropzone:hover{border-color:var(--red);color:var(--red);}
  .hint{font-size:9px;color:var(--dim);margin-left:auto;text-align:right;line-height:1.6;}
  .status{font-size:10px;font-family:"SF Mono",Menlo,monospace;color:var(--dim);}
  select,input[type=range]{accent-color:var(--red);}
  select{background:#101115;color:var(--text);border:1px solid #33363e;border-radius:6px;padding:4px 7px;font-size:10px;}
