.pedal-chassis{position:relative;border-radius:14px;--ivory: #f0e6d2;box-shadow:inset 0 2px 3px #ffffff2e,inset 0 -6px 14px #00000080,0 18px 40px #0009,0 4px 10px #00000080}.pedal-chassis.skin-hammer-green{background:radial-gradient(circle at 25% 20%,rgba(255,255,255,.1),transparent 45%),radial-gradient(circle at 80% 75%,rgba(0,0,0,.35),transparent 55%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.05 0 0 0 0 0.28 0 0 0 0 0.10 0 0 0 0.35 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E"),linear-gradient(160deg,#2f6d3c,#1e4a29 55%,#16371e)}.pedal-chassis.skin-hammer-blue{background:radial-gradient(circle at 25% 20%,rgba(255,255,255,.1),transparent 45%),radial-gradient(circle at 80% 75%,rgba(0,0,0,.35),transparent 55%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.04 0 0 0 0 0.18 0 0 0 0 0.30 0 0 0 0.35 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E"),linear-gradient(160deg,#2b4a72,#1c3452 55%,#142640)}.pedal-chassis.skin-cream{background:radial-gradient(circle at 25% 20%,rgba(255,255,255,.5),transparent 45%),radial-gradient(circle at 80% 75%,rgba(0,0,0,.12),transparent 55%),linear-gradient(160deg,#efe8d8,#ded3bc 55%,#cfc2a6);--ivory: #4a4238}.screw{position:absolute;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e8e8e8,#9a9a9a 55%,#5f5f5f);box-shadow:inset 0 -1px 2px #0009,0 1px 2px #00000080}.screw:after{content:"";position:absolute;left:50%;top:50%;width:11px;height:2.5px;background:#3d3d3d;transform:translate(-50%,-50%) rotate(var(--r, 25deg));border-radius:1px}.screw.tl{top:10px;left:10px;--r: 20deg}.screw.tr{top:10px;right:10px;--r: -35deg}.screw.bl{bottom:10px;left:10px;--r: 70deg}.screw.br{bottom:10px;right:10px;--r: -10deg}.dc-jack{position:absolute;top:14px;left:50%;transform:translate(-50%);width:26px;height:10px;border-radius:3px;background:#0c0d0e;box-shadow:0 0 0 2px #14161a,inset 0 1px 2px #333}.pedal-brand{position:absolute;top:26px;left:0;right:0;text-align:center;color:var(--ivory);font-family:Georgia,Times New Roman,serif;letter-spacing:3px}.pedal-brand .model{font-size:26px;font-weight:700;text-shadow:0 1px 1px rgba(0,0,0,.6)}.pedal-brand .sub{font-size:10px;letter-spacing:5px;opacity:.85;margin-top:2px}.knob-unit{position:absolute;display:flex;flex-direction:column;align-items:center;gap:6px}.knob-label{color:var(--ivory);font-size:12px;letter-spacing:2px;font-family:Georgia,serif;text-shadow:0 1px 1px rgba(0,0,0,.6)}.knob-wrap{position:relative;width:84px;height:84px;cursor:ns-resize;touch-action:none}.knob-ticks{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:repeating-conic-gradient(from -135deg,rgba(240,230,210,.9) 0deg .8deg,transparent .8deg 30deg);-webkit-mask:radial-gradient(circle,transparent 0 37px,#000 37px 42px);mask:radial-gradient(circle,transparent 0 37px,#000 37px 42px);opacity:.8}.knob-dial{position:absolute;top:10px;right:10px;bottom:10px;left:10px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#6a6f75,#3a3e43 45%,#17191c);box-shadow:inset 0 2px 3px #ffffff40,inset 0 -3px 6px #000000b3,0 4px 8px #0000008c}.knob-dial:after{content:"";position:absolute;left:50%;top:7%;width:3px;height:30%;transform:translate(-50%);background:var(--ivory);border-radius:2px;box-shadow:0 0 2px #000c}.knob-value{font-size:10px;color:#9aa1a8;font-variant-numeric:tabular-nums}.led-unit{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px}.led{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#5a1518,#2a0507 70%);box-shadow:inset 0 1px 2px #000c,0 0 0 3px #101210,0 0 0 4px #0006;transition:box-shadow .12s,background .12s}.led.on{background:radial-gradient(circle at 40% 35%,#ffb3b6,#ff2228 55%,#8a0509);box-shadow:inset 0 0 2px #fff9,0 0 0 3px #101210,0 0 14px 4px #ff282dbf}.footswitch-unit{position:absolute;display:flex;flex-direction:column;align-items:center;gap:10px}.footswitch{width:92px;height:92px;border-radius:50%;border:none;cursor:pointer;background:radial-gradient(circle at 38% 30%,#f2f2f2,#b9bcc0 40%,#7c8085 65%,#4a4d51);box-shadow:0 0 0 7px #23262a,0 0 0 9px #3c4045,inset 0 -4px 8px #00000059,0 6px 12px #0009;transition:transform .06s,box-shadow .06s;position:relative}.footswitch:after{content:"";position:absolute;top:26px;right:26px;bottom:26px;left:26px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#dfe2e5,#9ea2a7 60%,#6f7377);box-shadow:inset 0 2px 4px #fff6,inset 0 -3px 5px #0006}.footswitch:active{transform:translateY(2px);box-shadow:0 0 0 7px #23262a,0 0 0 9px #3c4045,inset 0 -2px 5px #00000080,0 3px 6px #00000080}.fs-label{color:var(--ivory);font-size:10px;letter-spacing:3px;font-family:Georgia,serif;opacity:.85}.jack{position:absolute;bottom:30px;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#4c5054,#26282b 55%,#0c0d0e);box-shadow:0 0 0 4px #14161a,inset 0 2px 4px #ffffff1f,0 2px 5px #00000080}.jack.in{left:26px}.jack.out{right:26px}.jack-label{position:absolute;bottom:14px;width:34px;text-align:center;color:var(--ivory);font-size:9px;letter-spacing:1px;font-family:Georgia,serif;opacity:.8}.jack-label.in{left:26px}.jack-label.out{right:26px}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background:linear-gradient(180deg,#1b1c20,#17181b 55%,#141519);font-family:Segoe UI,system-ui,sans-serif;color:#cfd4d9;-webkit-user-select:none;user-select:none}a{color:#d9b867;text-decoration:none}a:hover{text-decoration:none}.topbar{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:20px;padding:18px 28px;background:#1415199e;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.topbar .logo{font-family:Georgia,Songti SC,serif;font-size:17px;letter-spacing:5px;color:#f2efe8}.topbar .logo i{font-style:normal;color:#d9b867}.topbar nav{display:flex;gap:28px;margin-left:auto}.topbar nav a{color:#9a9da3;font-size:12.5px;letter-spacing:2.5px;transition:color .2s}.topbar nav a:hover{color:#e8e5de}.topbar nav a.router-link-active{color:#d9b867}.page{max-width:1100px;margin:0 auto;padding:88px 20px 60px}.btn{background:#2a2e33;color:#dfe4e9;border:1px solid #454b52;border-radius:6px;padding:7px 14px;font-size:13px;cursor:pointer;transition:background .15s}.btn:hover{background:#363b41}.btn.active{background:#4a7c59;border-color:#5d9970}.btn.primary{background:#3d6d4a;border-color:#4d8560}.btn.danger{background:#6d3d3d;border-color:#85504d}.card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:16px}.console{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px 16px}.hint{font-size:12px;color:#8a9199}.status{font-size:12px;color:#8a9199;min-width:120px}.err{color:#e07a6a;font-size:13px}.ok{color:#7fb98a;font-size:13px}.board-row{display:flex;gap:20px;align-items:flex-start;overflow-x:auto;padding:20px 4px}.board-pedal{position:relative;flex-shrink:0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.pedal-card{display:flex;flex-direction:column;gap:8px}.pedal-card .title{font-family:Georgia,serif;color:#f0e6d2;font-size:17px;letter-spacing:1px}.pedal-card .tags{display:flex;gap:6px;flex-wrap:wrap}.tag{font-size:11px;color:#8a9199;border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:1px 7px}.report{font-size:13px;line-height:1.7}.report .warn{color:#d8b56a}.report .error{color:#e07a6a}.report pre{background:#00000059;padding:10px;border-radius:6px;overflow:auto;font-size:12px;color:#9fb8a5}
