  :root{ --panel: rgba(10,12,16,0.70); --ink:#e9ecf3; --muted:#98a2b3; --accent:#cbd0d8; }
  *{box-sizing:border-box;}
  html,body{margin:0;height:100%;background:#04050a;color:var(--ink);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,sans-serif;overflow:hidden;}
  #stage{position:fixed;inset:0;}
  canvas{display:block;width:100%;height:100%;cursor:crosshair;}
  #panel{position:fixed;top:16px;left:16px;width:304px;max-width:calc(100vw - 32px);
    max-height:calc(100vh - 32px);overflow:auto;
    background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    border:1px solid rgba(255,255,255,0.09);border-radius:14px;padding:15px 16px 14px;
    box-shadow:0 12px 44px rgba(0,0,0,0.55);user-select:none;-webkit-user-select:none;}
  #panel h1{font-size:15px;margin:0 0 3px;font-weight:600;letter-spacing:0.3px;}
  #panel .sub{font-size:11px;color:var(--muted);margin:15px 0 14px;line-height:1.45;}
  #panel .sub b{color:var(--ink);font-weight:600;}
  .sec{font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:1.1px;
    margin:14px 0 8px;padding-top:11px;border-top:1px solid rgba(255,255,255,0.08);}
  .sec:first-of-type{border-top:none;padding-top:0;margin-top:6px;}
  .row{margin:9px 0;}
  .row label{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted);
    margin-bottom:5px;text-transform:uppercase;letter-spacing:0.5px;}
  .row label .val{color:var(--accent);font-variant-numeric:tabular-nums;}
  input[type=range]{width:100%;-webkit-appearance:none;appearance:none;height:3px;border-radius:3px;
    background:rgba(255,255,255,0.16);outline:none;margin:0;}
  input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;
    background:var(--accent);cursor:pointer;box-shadow:0 0 8px rgba(203,208,216,0.6);}
  input[type=range]::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:50%;
    background:var(--accent);cursor:pointer;box-shadow:0 0 8px rgba(203,208,216,0.6);}
  select{width:100%;background:rgba(255,255,255,0.06);color:var(--ink);border:1px solid rgba(255,255,255,0.14);
    border-radius:8px;padding:7px 8px;font-size:12px;outline:none;}
  .btnrow{display:flex;gap:6px;}
  .btn{padding:8px 6px;border:1px solid rgba(203,208,216,0.32);
    background:rgba(203,208,216,0.08);color:var(--accent);border-radius:9px;font-size:11px;
    font-weight:600;cursor:pointer;letter-spacing:0.2px;flex:1;white-space:nowrap;
    display:inline-flex;align-items:center;justify-content:center;gap:5px;}
  .btn:hover{background:rgba(203,208,216,0.16);}
  .btn.on{background:var(--accent);color:#14161c;border-color:var(--accent);}
  .btn .ico{display:inline-flex;align-items:center;}
  .btn .play{display:block;}
  .btn .pause{display:none;}
  .btn.on .play{display:none;}
  .btn.on .pause{display:block;}
  .hint{font-size:10px;color:var(--muted);margin-top:14px;line-height:1.5;
    border-top:1px solid rgba(255,255,255,0.08);padding-top:10px;}
  .hint b{color:var(--ink);font-weight:600;}
  #collapse{cursor:pointer;color:var(--muted);font-size:18px;line-height:1;font-weight:600;flex:none;}
  #collapse:hover{color:var(--ink);}
  .collapsed .body{display:none;}
  #fps{position:fixed;left:16px;bottom:14px;font:11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
    color:var(--muted);background:rgba(10,12,16,0.6);padding:5px 8px;border-radius:7px;
    border:1px solid rgba(255,255,255,0.08);user-select:none;pointer-events:none;}
  #info{cursor:pointer;color:var(--muted);font-size:11px;line-height:1;font-weight:700;
    border:1px solid var(--muted);border-radius:50%;width:18px;height:18px;flex:none;
    display:flex;align-items:center;justify-content:center;}
  #info:hover{color:var(--ink);border-color:var(--ink);}
  .modal-bg{position:fixed;inset:0;background:rgba(2,3,6,0.68);backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;
    z-index:50;padding:22px;}
  .modal-bg.open{display:flex;}
  .modal{max-width:452px;max-height:calc(100vh - 52px);overflow:auto;position:relative;
    background:rgba(15,17,23,0.97);border:1px solid rgba(255,255,255,0.12);border-radius:15px;
    padding:24px 24px 20px;box-shadow:0 24px 80px rgba(0,0,0,0.65);}
  .modal h2{font-size:16.5px;margin:0 0 14px;font-weight:600;letter-spacing:0.2px;}
  .modal p{font-size:12.5px;line-height:1.58;color:var(--ink);margin:0 0 11px;}
  .modal p.dim{color:var(--muted);}
  .modal b{font-weight:600;}
  .modal-x{position:absolute;top:13px;right:16px;font-size:22px;line-height:1;
    color:var(--muted);cursor:pointer;}
  .modal-x:hover{color:var(--ink);}

  .head{display:flex;align-items:center;gap:9px;margin-bottom:14px;}
  #panel .head h1{margin:0;}
  .head-btns{margin-left:auto;display:flex;align-items:center;gap:11px;}
  .logo{flex:none;display:inline-flex;color:var(--ink);}
  .logo svg{display:block;}
  #panel.hidden{display:none;}
  #launcher{position:fixed;top:16px;left:16px;display:none;align-items:center;gap:8px;cursor:pointer;
    background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    border:1px solid rgba(255,255,255,0.09);border-radius:12px;padding:9px 11px;
    box-shadow:0 12px 44px rgba(0,0,0,0.55);color:var(--ink);font-size:12px;font-weight:600;
    letter-spacing:0.3px;user-select:none;-webkit-user-select:none;z-index:20;}
  #launcher:hover{border-color:rgba(255,255,255,0.18);}
  #launcher.show{display:inline-flex;}
  #launcher .ltxt{opacity:0.85;}
