
/* rotor-scene-editor.css */
.aradiu-rotor-runtime{position:absolute;inset:0;z-index:88;pointer-events:none;line-height:0}.aradiu-rotor-artwork,.aradiu-rotor-needle,.aradiu-rotor-needle-fallback{position:absolute;display:block;max-width:none;pointer-events:none;transform-origin:center;object-fit:contain}.aradiu-rotor-artwork{z-index:1}.aradiu-rotor-needle{z-index:3}.aradiu-rotor-needle-fallback{z-index:3;width:1.5%;height:10%;border-radius:999px;background:linear-gradient(90deg,#ffcf72,#d36a13 48%,#ffcf72);box-shadow:0 0 4px #ff8c24;transform-origin:50% 50%}.aradiu-rotor-control-zone{position:absolute;z-index:4;aspect-ratio:1/1;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;pointer-events:auto;cursor:crosshair;touch-action:none;-webkit-tap-highlight-color:transparent}.aradiu-rotor-control-zone.rotor-inactive{pointer-events:none}.aradiu-rotor-control-zone:focus-visible{outline:2px solid #36d9ff;outline-offset:2px}.rotor-editor-guides{position:absolute;z-index:120;inset:0;display:none;pointer-events:none}.rotor-editor-guides.active{display:block}.rotor-editor-guide{position:absolute;min-width:12px;min-height:12px;border:1px dashed #7ee7ff;background:#22c5ff14;transform:translate(-50%,-50%);pointer-events:auto;cursor:move;box-shadow:0 0 0 1px #032534aa}.rotor-editor-guide.selected{border:2px solid #fff;background-color:#28caff2d;box-shadow:0 0 0 3px #0878c9,0 0 15px #23caffaa}.rotor-editor-guide[data-object="controlZone"]{aspect-ratio:1/1;border-radius:50%;background:#35cfff24}.rotor-editor-guide[data-object="rotor"],.rotor-editor-guide[data-object="needle"]{background-position:center;background-repeat:no-repeat;background-size:100% 100%}.rotor-editor-handle{position:absolute;right:-7px;bottom:-7px;width:13px;height:13px;border:1px solid #07222f;background:#8ceaff;cursor:nwse-resize}.rotor-editor-panel{position:fixed;z-index:9500;right:14px;top:84px;width:min(310px,calc(100vw - 28px));max-height:calc(100dvh - 100px);overflow:auto;border:1px solid #4dcaf2;border-radius:12px;background:linear-gradient(145deg,#0e2e3dF2,#061821F2);color:#e7f8ff;box-shadow:0 22px 70px #000b;font:700 9px monospace;backdrop-filter:blur(12px)}.rotor-editor-panel[hidden]{display:none!important}.rotor-editor-panel header{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;border-bottom:1px solid #28566a;cursor:move}.rotor-editor-panel header small,.rotor-editor-panel header b{display:block}.rotor-editor-panel header small{color:#56d5ff;letter-spacing:.14em;font-size:7px}.rotor-editor-panel header button{border:0;background:transparent;color:#a8eaff;font-size:20px;cursor:pointer}.rotor-editor-panel nav,.rotor-editor-objects{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:8px 10px;border-bottom:1px solid #28566a}.rotor-editor-panel nav button,.rotor-editor-objects button,.rotor-editor-panel footer button,.rotor-small-button{min-height:28px;border:1px solid #2d6a83;border-radius:5px;background:#0c3041;color:#bdefff;padding:6px;font:800 8px monospace;cursor:pointer}.rotor-editor-panel nav button.active,.rotor-editor-objects button.active{border-color:#65d9ff;background:#146586;color:#fff;box-shadow:0 0 12px #19bfea38}.rotor-editor-objects{grid-template-columns:repeat(3,1fr)}.rotor-editor-panel main{display:grid;gap:8px;padding:12px}.rotor-editor-panel main label{display:grid;grid-template-columns:1fr auto;gap:4px;align-items:center;color:#8db3c5}.rotor-editor-panel main label>span{grid-column:1}.rotor-editor-panel main output{grid-column:2;color:#7ee4ff}.rotor-editor-panel main input[type=range]{grid-column:1/-1;width:100%;height:26px;accent-color:#1cb7ed}.rotor-file{display:grid!important;grid-template-columns:1fr!important;gap:5px!important;padding:8px;border:1px solid #28566a;border-radius:6px}.rotor-file input{width:100%;font-size:8px}.rotor-file small{color:#68d6ff;font-size:7px}.rotor-small-button{width:100%;font-size:7px}.rotor-small-button:disabled{opacity:.45;cursor:not-allowed}.rotor-editor-panel footer{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:9px 10px;border-top:1px solid #28566a}.rotor-editor-panel footer button:last-child{border-color:#35bde9;background:#0e6686}@media(max-width:700px){.rotor-editor-panel{top:auto;right:8px;bottom:10px;width:calc(100vw - 16px);max-height:46dvh}.rotor-editor-handle{width:15px;height:15px}}
/* Keep intrinsic PNG proportions and editor visibility independent of scene CSS. */
/* The complete instrument forms one stack below every microphone (z=6/7).
   Its needle stays above its own ON/OFF face, never above a microphone. */
.aradiu-rotor-runtime{z-index:5}
.aradiu-rotor-artwork{transition:opacity .42s ease,filter .42s ease}
.rotor-editor-panel{max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
.rotor-sound-preview{width:100%;height:34px}
.aradiu-rotor-runtime[hidden],.aradiu-rotor-runtime [hidden],.rotor-editor-panel [hidden]{display:none!important}
.aradiu-rotor-artwork,.aradiu-rotor-needle{height:auto!important;max-height:none!important;object-fit:contain!important}
.rotor-editor-guides.preview{display:none!important}
.rotor-editor-guide{min-width:0!important;min-height:0!important;touch-action:none;user-select:none;-webkit-user-select:none;z-index:2}
.rotor-editor-guide[data-object="controlZone"]{z-index:1}
.rotor-editor-guide.selected{z-index:8}
.rotor-editor-guide.locked{cursor:default}
.rotor-editor-guide.locked .rotor-editor-handle{display:none}
.rotor-editor-panel header{touch-action:none;user-select:none;-webkit-user-select:none}
.rotor-editor-panel [data-status]{min-height:14px;margin:5px 12px;line-height:1.4;color:#76e8a7}
.rotor-editor-panel [data-status].error{color:#ff8989}
.rotor-file img{width:100%;height:76px;object-fit:contain;background:#061621;border-radius:4px}
.rotor-editor-panel label.rotor-toggle{display:flex;justify-content:flex-start;gap:7px}
.rotor-editor-panel label.rotor-toggle input{margin:0;accent-color:#36caff}
.aradiu-rotor-step{position:absolute;z-index:5;transform:translate(-50%,-50%);padding:0;border:0;border-radius:3px;background:transparent;pointer-events:auto;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.aradiu-rotor-step:disabled{pointer-events:none;cursor:default}
.aradiu-rotor-step img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:contain!important;pointer-events:none;filter:none;transition:filter .08s}
.aradiu-rotor-step.pressed img{filter:brightness(.75)}
.rotor-hold-note{line-height:1.5;color:#8db3c5}
.rotor-editor-panel [data-group-move].active{border-color:#87f5c0;background:#157b64;color:#fff;box-shadow:0 0 14px #1bd99a55}
.rotor-editor-panel .rotor-motor-volume input[type=range]{accent-color:#f2b94b}


/* pwa-install.css */
.pwa-install-widget {
  position: fixed;
  z-index: 100000;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  width: min(320px, calc(100dvw - 28px));
  max-height: calc(100dvh - 16px);
  min-height: 72px;
  padding: 12px 12px 12px 13px;
  border: 1px solid rgba(255, 213, 83, .72);
  border-radius: 18px;
  background:
    radial-gradient(circle at 20% 0%, rgba(255, 219, 89, .24), transparent 38%),
    linear-gradient(145deg, rgba(8, 24, 37, .94), rgba(11, 47, 70, .9));
  box-shadow: 0 18px 48px rgba(0, 0, 0, .36), 0 0 24px rgba(255, 205, 55, .32), inset 0 1px 0 rgba(255, 255, 255, .18);
  color: #f4fbff;
  font-family: inherit;
  cursor: grab;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
  backdrop-filter: blur(18px) saturate(1.2);
}

.pwa-install-widget.is-dragging { cursor: grabbing; }

.pwa-install-widget img {
  width: 44px;
  height: 44px;
  border-radius: 13px;
  object-fit: cover;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .28), 0 0 16px rgba(80, 204, 255, .42);
}

.pwa-install-widget span {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.pwa-install-widget small {
  color: #7be1ff;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .18em;
}

.pwa-install-widget b {
  overflow: hidden;
  color: #fff;
  font-size: 13px;
  line-height: 1.05;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pwa-install-widget em {
  overflow: hidden;
  color: #c6d9e7;
  font-size: 10px;
  font-style: normal;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pwa-install-widget button {
  border: 0;
  font: inherit;
  cursor: pointer;
}

.pwa-install-widget .pwa-install-widget__action {
  align-self: stretch;
  min-width: 76px;
  padding: 0 8px;
  border-radius: 12px;
  background: linear-gradient(180deg, #ffd75a, #f0a818);
  color: #16202a;
  box-shadow: 0 0 18px rgba(255, 203, 52, .35), inset 0 1px 0 rgba(255, 255, 255, .45);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1;
  white-space: nowrap;
}

.pwa-install-widget__close {
  position: absolute;
  top: -9px;
  right: -9px;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border-radius: 50%;
  background: rgba(8, 20, 32, .96);
  color: #f6fbff;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .2), 0 8px 18px rgba(0, 0, 0, .38);
  font-size: 16px;
  line-height: 1;
}

.pwa-install-widget p {
  grid-column: 1 / -1;
  margin: 2px 0 0;
  padding: 8px 10px;
  border: 1px solid rgba(117, 220, 255, .35);
  border-radius: 12px;
  background: rgba(5, 21, 34, .62);
  color: #d8eefb;
  font-size: 11px;
  line-height: 1.35;
}

body.pcp-theme-light .pwa-install-widget {
  background:
    radial-gradient(circle at 20% 0%, rgba(255, 219, 89, .38), transparent 42%),
    linear-gradient(145deg, rgba(236, 248, 255, .96), rgba(204, 231, 244, .94));
  color: #102d42;
  box-shadow: 0 18px 44px rgba(39, 95, 126, .24), 0 0 24px rgba(255, 205, 55, .34), inset 0 1px 0 rgba(255, 255, 255, .78);
}

body.pcp-theme-light .pwa-install-widget b { color: #102d42; }
body.pcp-theme-light .pwa-install-widget em { color: #587284; }
body.pcp-theme-light .pwa-install-widget p { background: rgba(255, 255, 255, .68); color: #24465b; }

@media (max-width: 700px) {
  .pwa-install-widget {
    width: min(304px, calc(100dvw - 20px));
  }
}

