html,body{margin:0;height:100%;overflow:hidden;background:#0c0f14;font-family:Inter,system-ui,sans-serif}
#wrap{position:fixed;inset:0;display:grid;place-items:center}
canvas{width:min(92vmin,980px);height:min(92vmin,980px);display:block;touch-action:none}
#ui{position:fixed;top:14px;left:14px;z-index:5;color:#edf2ff;background:rgba(16,20,28,.82);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:12px 14px;box-shadow:0 10px 30px rgba(0,0,0,.32);min-width:300px}
#ui b{font-size:15px}
#ui .muted{font-size:12px;color:#aeb8cb;line-height:1.35;margin-top:4px}
.controls{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.control-row{display:flex;gap:10px;align-items:center;width:100%}
.control-row.single{display:block}
.button-stack{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.button-pair{display:grid;grid-template-columns:1fr 1fr;gap:7px;width:100%}
.download-group{display:flex;flex-direction:column;gap:5px;margin-top:4px}
.download-heading{font-size:11px;color:#aeb8cb;text-transform:uppercase;letter-spacing:.08em}
.download-triple{grid-template-columns:1fr 1fr 1fr}
button,select,input{font:inherit}
button{width:100%;border:1px solid #34445f;background:#1c2534;color:white;border-radius:9px;padding:8px 10px;cursor:pointer;text-align:center}
button:hover{background:#27344a}
label{font-size:12px;color:#d1d8e6;display:flex;align-items:center;gap:7px;width:100%}
label span.label-text{min-width:52px}
input[type="range"]{accent-color:#7aa2ff;flex:1;min-width:140px}
input[type="color"]{width:38px;height:30px;padding:0;border:none;background:transparent;flex:0 0 auto}
.mobius-group{display:flex;flex-direction:column;gap:6px;width:100%}
#mobiusPicker{width:100%;height:150px;border-radius:9px;border:1px solid #34445f;cursor:crosshair;display:block;background:#0d121b}
.mobius-label{font-size:12px;color:#d1d8e6;display:flex;justify-content:space-between}
.color-group{display:flex;flex-direction:column;gap:7px;width:100%}
#colorField{width:100%;height:72px;border-radius:9px;border:1px solid #34445f;cursor:crosshair;display:block;background:#111}
.xy-row{display:flex;align-items:center;gap:8px;width:100%}
.xy-row .axis{width:16px;font-size:11px;color:#9eabc0}
.xy-row input[type="range"]{flex:1}
#status{position:fixed;right:14px;bottom:72px;color:#cbd5e1;font-size:12px;background:rgba(16,20,28,.72);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:8px 10px}
#seedbar{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);z-index:8;width:min(900px,calc(100vw - 28px));display:flex;gap:7px;align-items:center;background:rgba(16,20,28,.88);border:1px solid rgba(255,255,255,.12);border-radius:11px;padding:8px;box-sizing:border-box}
#seedbar input{flex:1;min-width:0;background:#0c111a;color:#dce6f7;border:1px solid #34445f;border-radius:7px;padding:8px 9px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}
#seedbar button{width:auto;flex:0 0 auto;padding:8px 11px}
#seedMode{background:#0c111a;color:#dce6f7;border:1px solid #34445f;border-radius:7px;padding:8px 9px;min-width:130px}
