.control-panel,.control-launcher{--panel-accent:#7fc8d7;font-family:Segoe UI Variable,Segoe UI,system-ui,sans-serif}.control-panel{position:fixed;z-index:30;top:12px;right:12px;bottom:12px;display:grid;width:min(318px,calc(100vw - 24px));grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid rgba(192,231,239,.16);border-radius:16px;color:#dbe9ed;background:#060f17db;box-shadow:inset 0 1px #ffffff0f,-12px 18px 48px #00070c57;backdrop-filter:blur(22px) saturate(135%);-webkit-backdrop-filter:blur(22px) saturate(135%);transform:translate(0);transition:transform .18s ease,opacity .18s ease}.control-panel.is-closed{transform:translate(calc(100% + 24px));opacity:0;pointer-events:none}.control-panel__header{display:flex;align-items:center;justify-content:space-between;padding:17px 16px 14px;border-bottom:1px solid rgba(192,231,239,.11)}.control-panel__header small{color:var(--panel-accent);font:650 9px/1 ui-monospace,monospace;letter-spacing:.16em}.control-panel__header h1{margin:5px 0 0;color:#eef7f8;font-size:17px;font-weight:590;letter-spacing:-.02em}.control-panel__close{width:30px;height:30px;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#dbe9ed;background:transparent;font-size:20px;line-height:1;cursor:pointer}.control-panel__close:hover{background:#ffffff12}.control-panel__close:active,.control-action:active,.control-reset:active,.control-launcher:active{transform:scale(.98)}.control-panel__scroll{overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(127,200,215,.28) transparent}.control-phase{border-bottom:1px solid rgba(192,231,239,.09)}.control-phase summary{display:flex;gap:10px;align-items:center;min-height:44px;padding:0 16px;color:#c5d7dc;font-size:12px;font-weight:620;cursor:pointer;list-style:none}.control-phase summary::-webkit-details-marker{display:none}.control-phase summary:after{content:"+";margin-left:auto;color:#69868d;font-size:16px;font-weight:400}.control-phase[open] summary:after{content:"−"}.control-phase summary>span{display:grid;width:22px;height:22px;place-items:center;border-radius:7px;color:#061119;background:var(--panel-accent);font:700 9px/1 ui-monospace,monospace}.control-phase__body{padding:2px 16px 16px 48px}.control-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px 10px;margin-top:12px;color:#9eb2b8;font-size:11px}.control-row output,.control-spec strong{color:#e3eff1;font:570 10px/1 ui-monospace,monospace}.control-row input{grid-column:1/-1;width:100%;height:14px;margin:0;accent-color:var(--panel-accent);cursor:ew-resize}.control-spec{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-top:11px;color:#829aa1;font-size:10px}.control-spec strong{text-align:right;font-weight:500}.control-action,.control-reset,.gravity-grid button{border:1px solid rgba(192,231,239,.15);border-radius:8px;color:#c8dde1;background:#ffffff0b;font:600 10px/1 Segoe UI Variable,system-ui,sans-serif;cursor:pointer}.control-action{width:100%;min-height:32px;margin-top:12px}.control-action:hover,.gravity-grid button:hover{border-color:#7fc8d766;background:#7fc8d717}.control-action--primary{color:#07151b;background:var(--panel-accent);border-color:transparent}.control-actions{display:grid;grid-template-columns:1.15fr 1fr;gap:7px}.gravity-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.gravity-grid button{min-height:29px}.control-panel footer{padding:12px 16px;border-top:1px solid rgba(192,231,239,.1);display:grid;gap:7px}.control-reset,.control-save,.control-load{width:100%;height:34px;background:transparent}.control-save{color:var(--panel-accent);border-color:#7fc8d74d}.control-save:hover{border-color:#7fc8d780;background:#7fc8d717}.control-launcher{position:fixed;z-index:29;top:12px;right:12px;width:52px;height:36px;border:1px solid rgba(192,231,239,.2);border-radius:10px;color:#d9e9ec;background:#060f17c7;opacity:0;pointer-events:none;backdrop-filter:blur(16px);cursor:pointer;transition:opacity .16s ease}.control-launcher.is-visible{opacity:1;pointer-events:auto}body.clean .control-panel,body.clean .control-launcher{display:none}@media (max-width:720px){.control-panel{inset:auto 8px 8px;width:auto;max-height:min(72dvh,620px)}.control-panel.is-closed{transform:translateY(calc(100% + 16px))}.control-launcher{top:auto;right:10px;bottom:max(10px,env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.control-panel,.control-launcher{transition:none}}@media (prefers-reduced-transparency:reduce){.control-panel,.control-launcher{background:#0a1620;backdrop-filter:none;-webkit-backdrop-filter:none}}.color-grid,.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.color-grid label{display:flex;align-items:center;justify-content:space-between;gap:7px;color:#9eb2b8;font-size:10px}.color-grid input{width:32px;height:25px;padding:1px;border:1px solid rgba(192,231,239,.16);border-radius:7px;background:transparent}.preset-grid{grid-template-columns:repeat(3,1fr)}.preset-grid button{min-height:29px;border:1px solid rgba(192,231,239,.15);border-radius:8px;color:#c8dde1;background:#ffffff0b;font:600 10px/1 inherit;cursor:pointer}.preset-grid button:hover{border-color:#7fc8d766;background:#7fc8d717}.control-switch,.gravity-readout{display:flex;align-items:center;justify-content:space-between;margin-top:11px;color:#9eb2b8;font-size:10px}.control-switch input{accent-color:var(--panel-accent)}.gravity-readout output{color:#e3eff1;font:500 9px/1 ui-monospace,monospace}.control-explainer{margin-top:16px;padding-top:13px;border-top:1px solid rgba(192,231,239,.07)}.control-explainer:first-child{margin-top:5px;padding-top:0;border-top:0}.control-explainer p{margin:0;color:#789098;font-size:10px;line-height:1.55}.control-explainer .control-row{margin-top:7px}.macro-shape-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.macro-shape-upload,.macro-shape-controls button{display:grid;min-height:31px;place-items:center;border:1px solid rgba(192,231,239,.15);border-radius:8px;color:#c8dde1;background:#ffffff0b;font:600 10px/1 inherit;cursor:pointer}.macro-shape-upload:hover,.macro-shape-controls button:hover{border-color:#7fc8d766;background:#7fc8d717}.macro-shape-upload input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.macro-shape-controls small{grid-column:1/-1;color:#789098;font-size:9px;line-height:1.4}.macro-color{grid-template-columns:1fr}
