  /* controls */
  .gen-controls{
    display:flex;
    gap:12px;
    align-items:center;
    flex-wrap:wrap;
    margin-bottom:20px;
  }
  .slider-row{flex:1;min-width:220px;display:flex;flex-direction:column;gap:10px;}
  .slider-row label{font-size:12.5px;color:var(--text-tertiary);font-family:var(--ui);font-weight:500;}
  input[type=range]{
    -webkit-appearance:none;
    width:100%;height:4px;
    background:var(--surface-3);
    border-radius:2px;
    outline:none;
  }
  input[type=range]::-webkit-slider-thumb{
    -webkit-appearance:none;
    width:16px;height:16px;
    border-radius:50%;
    background:var(--accent);
    cursor:pointer;
    border:none;
    box-shadow:var(--shadow-sm);
	box-shadow:var(--shadow-sm), 0 0 0 3px var(--accent-halo);
  }
  input[type=range]::-moz-range-thumb{
    width:16px;height:16px;
    border-radius:50%;
    background:var(--accent);
    cursor:pointer;
    border:none;
    box-shadow:var(--shadow-sm);
	box-shadow:var(--shadow-sm), 0 0 0 3px var(--accent-halo);
  }
  .num-input{
    width:170px;
    font-family:var(--mono);
    font-size:16px;
    font-weight:500;
    background:var(--surface-2);
    border:none;
    color:var(--text);
    padding:12px 10px;
    text-align:center;
    border-radius:0;
    transition:background .25s;
  }
  .num-input:focus{outline:none;}
  .num-input.shake{animation:shake .4s ease;}
  @keyframes shake{
    0%{background:var(--danger-wash);}
    30%,50%,70%{transform:translateX(-3px);}
    40%,60%{transform:translateX(3px);}
    10%,90%{transform:translateX(-1px);}
    20%,80%{transform:translateX(2px);}
    100%{background:transparent;transform:translateX(0);}
  }
  .stepper{
    display:flex;
    align-items:stretch;
    border:1px solid var(--border);
    border-radius:10px;
    overflow:hidden;
    background:var(--surface-2);
  }
  .stepper:focus-within{border-color:var(--border-strong);}
  .step-btn{
    font-family:var(--ui);
    font-size:16px;
    font-weight:600;
    background:transparent;
    color:var(--text-secondary);
    border:none;
    border-radius:0;
    padding:0 16px;
    cursor:pointer;
    transition:color .15s, background .15s;
  }
  .step-btn:hover{color:var(--text);background:var(--surface-3);}
  .step-btn:active{color:var(--accent);}
  button{
    font-family:var(--ui);
    font-size:13.5px;
    font-weight:500;
    background:var(--surface-2);
    color:var(--text-secondary);
    border:1px solid var(--border);
    border-radius:10px;
    padding:11px 18px;
    cursor:pointer;
    transition:border-color .15s, color .15s, background .15s;
    white-space:nowrap;
  }
  button:hover{border-color:var(--border-strong);color:var(--text);background:var(--surface-3);}
  button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600;}
  button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink);}
  .quick-jumps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px;}
  .quick-jumps button{padding:7px 14px;font-size:12.5px;background:transparent;border-color:var(--border);}
  .quick-jumps button:hover{background:var(--surface-2);}
