:root{--ui-bg: rgba(255, 255, 255, .126);--ui-border: rgba(0, 0, 0, .12);--ui-text: #111}*{box-sizing:border-box;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}html,body{margin:0;padding:0;height:100%;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:#0f1115;color:var(--ui-text)}#scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}.ui{position:fixed;top:12px;left:12px;right:12px;display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:12px 14px;border-radius:14px;background:var(--ui-bg);border:1px solid var(--ui-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 6px 22px #0003;max-width:min(90vw,860px);max-height:calc(100vh - 24px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;z-index:10;transition:all .3s ease}.ui.collapsed{gap:8px}.ui.collapsed .ui-row:not(.primary){display:none}.ui.collapsed .ui-row.primary{flex-wrap:wrap}.ui-row{display:flex;align-items:center;gap:12px;width:100%}.ui-row.primary{flex-wrap:wrap;gap:12px}.ui-row:not(.primary){padding-top:6px;border-top:1px solid rgba(0,0,0,.08)}.text-input-row{display:flex;align-items:flex-end;gap:12px;flex:1 1 auto;width:100%}.text-input-row label.inline{flex:1 1 auto;min-width:0}.text-input-row .random-toggle,.text-input-row .collapse-toggle{flex:0 0 auto}.ui-section{flex:0 0 auto;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#21262d;background:#0000000f;border-radius:999px;padding:4px 8px}.ui-controls{flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.ui label{font-size:12px;opacity:1;color:inherit}.ui label.inline{display:inline-flex;align-items:center;gap:10px;justify-content:flex-start;flex-wrap:nowrap}.label-chip{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;background:#0f1115eb;color:#f7f9ff;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;white-space:nowrap}.ui label.inline .slider-value{min-width:40px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:#1f2933;line-height:1.1}.ui label.inline input[type=range]{flex:1 1 160px;min-width:140px;margin:0}.ui label.inline.text-entry input[type=text],.ui label.inline select,.ui label.inline input[type=number]{flex:1 1 auto;min-width:120px;padding:8px 10px;border-radius:8px;border:1px solid var(--ui-border);background:#ffffffe6;color:#111}.ui label.inline.toggle{gap:10px}.ui label.inline input[type=checkbox]{margin-right:6px}.ui input[type=text]{padding:8px 10px;border-radius:8px;border:1px solid var(--ui-border);min-width:0;width:100%}.ui button,button{padding:8px 12px;border:1px solid var(--ui-border);background:#222;color:#fff;cursor:pointer;text-transform:uppercase;font-weight:500;outline:0;border-radius:1em;letter-spacing:.04em}.ui button:hover{filter:brightness(1.08)}.ui button.hidden{background:none;border:0;color:#fff;margin:0;padding:.25rem;display:flex;align-items:center;background:#000;transition:all .3s ease}.ui button.active.hidden{background:#e6e6e6;color:#333}.ui button.hidden svg{transition:all 1.2s ease}.ui button.active.hidden svg{transform:rotate(-22.5deg)}.secondary.active{box-shadow:0 0 8px #0003;background:#111!imp}.ui button svg{fill:currentColor;width:1.5em;height:1.5em;align-self:center}.ui button.primary,.intro-modal .primary{background:#07b39c;color:#fff}.ui button.primary:hover{background:#42e3f8}.text-lg *{font-size:1.125rem}.ui button.secondary,.label-chip.secondary{background:#22252b0d;color:#111}.ui button.secondary:hover{background:#22252b1f}.ui-row.primary button{flex-shrink:0}.ui input[type=range]{vertical-align:middle}@media (max-width: 900px){.ui{max-width:calc(100vw - 24px)}}@media (max-width: 720px){.ui{top:calc(env(safe-area-inset-top,0) + 12px);left:calc(env(safe-area-inset-left,0) + 12px);right:calc(env(safe-area-inset-right,0) + 12px);border-radius:18px;padding:16px 18px calc(18px + env(safe-area-inset-bottom,0));justify-content:flex-start;gap:12px 16px;max-width:none;max-height:calc(100vh - env(safe-area-inset-top,0) - env(safe-area-inset-bottom,0) - 24px)}.ui-row,.ui-row.mobile-fullwidth{flex-direction:column;align-items:stretch;gap:8px}.ui label.inline{flex-direction:column;align-items:stretch;gap:6px}.ui label.inline:has(input[type=range]){display:grid;grid-template-columns:minmax(0,auto) 1fr;grid-template-areas:"chip value" "slider slider";gap:4px 8px;align-items:center}.ui label.inline:has(input[type=range]) .label-chip{grid-area:chip;justify-self:start;align-self:center}.ui label.inline:has(input[type=range]) .slider-value{grid-area:value;justify-self:end;align-self:center}.ui label.inline:has(input[type=range]) input[type=range]{grid-area:slider;width:100%}.ui label.inline .slider-value{align-self:center}.ui label.inline input[type=range]{width:100%;min-width:0}.ui-controls{width:100%;flex-direction:column;align-items:stretch;gap:8px}.text-input-row{display:grid;grid-template-columns:1fr auto auto;align-items:flex-end;gap:10px}.text-input-row label.inline{min-width:0}.text-input-row .random-toggle,.text-input-row .collapse-toggle{justify-content:center}.ui label.inline.text-entry input[type=text],.ui label.inline select,.ui label.inline input[type=number]{width:100%;min-width:0;padding:7px 10px;font-size:.95rem;min-height:40px}.label-chip{align-self:flex-start}.ui-row.primary{flex-direction:column;align-items:stretch}.ui-row.primary button:not(.hidden){width:100%}.ui button{justify-content:center}.ui button.hidden{width:44px;height:44px;padding:0;border-radius:12px;flex:0 0 auto}.ui button.hidden svg{width:22px;height:22px}.ui-section{margin-bottom:4px}.intro-modal-overlay{align-items:flex-start;padding:calc(env(safe-area-inset-top,0) + 20px) 16px calc(24px + env(safe-area-inset-bottom,0))}.intro-modal{width:100%;border-radius:18px;padding:24px 20px;max-height:calc(100vh - env(safe-area-inset-top,0) - env(safe-area-inset-bottom,0) - 32px)}}@media (max-width: 520px){.ui{gap:10px;padding:14px 16px calc(16px + env(safe-area-inset-bottom,0))}.label-chip{font-size:10px}}h1#intro-modal-title{font-size:clamp(1.75rem,2vw + 1rem,2.4rem);letter-spacing:.04em;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;line-height:1em}h1#intro-modal-title span{font-size:1.25rem;display:block;margin-top:.25rem;font-weight:400;color:#f5f7ffd1;text-transform:uppercase;font-weight:300}.intro-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#0c0e148c;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:0;pointer-events:none;transition:all .5s ease;transform:scale(1.1);overflow-y:auto;-webkit-overflow-scrolling:touch}.intro-modal-overlay.visible{pointer-events:auto;opacity:1;transition:all .5s ease;transform:scale(1)}.intro-modal{width:min(480px,100%);padding:32px 36px 28px;border-radius:20px;background:#1d1d1dd1;border:0;box-shadow:0 24px 60px #00000073;text-align:left;color:#f5f7ff;display:flex;flex-direction:column;gap:18px;max-height:calc(100vh - 48px);overflow-y:auto}.intro-modal h1{margin:0;font-size:clamp(1.75rem,2vw + 1rem,2.4rem);letter-spacing:.04em}.intro-modal h3{margin:0}.intro-modal p{margin:0;font-size:.98rem;line-height:1.6;color:#f5f7ffd1;text-align:left}.intro-modal .intro-credits{font-size:.9rem;color:#f5f7ffa8;letter-spacing:.05em}.intro-modal .primary{align-self:center;min-width:180px}
