:root { color-scheme: dark; font-family: Inter, ui-sans-serif, system-ui, sans-serif; background: #111318; color: #f5f7fb; } * { box-sizing: border-box; } html, body, #viewer, #canvas-container { width: 100%; height: 100%; margin: 0; overflow: hidden; } #viewer { position: relative; min-height: 320px; background: radial-gradient(circle at 50% 15%, #252a35 0, #111318 55%); } #canvas-container canvas { display: block; width: 100%; height: 100%; touch-action: none; } #status, #error { position: absolute; inset: 50% auto auto 50%; max-width: min(30rem, calc(100% - 2rem)); padding: 0.7rem 0.9rem; border: 1px solid #3a4150; border-radius: 8px; background: rgb(17 19 24 / 90%); box-shadow: 0 8px 30px rgb(0 0 0 / 35%); transform: translate(-50%, -50%); text-align: center; } #error { border-color: #b64c5c; color: #ffd7dc; } .toolbar { position: absolute; inset: auto 0.65rem 0.65rem; display: flex; flex-wrap: wrap; gap: 0.45rem; align-items: center; padding: 0.5rem; border: 1px solid rgb(255 255 255 / 12%); border-radius: 10px; background: rgb(17 19 24 / 88%); box-shadow: 0 8px 30px rgb(0 0 0 / 30%); backdrop-filter: blur(10px); } .toolbar label { display: flex; gap: 0.35rem; align-items: center; color: #c9cfda; font-size: 0.75rem; } .range-control { flex: 1 1 11rem; } .range-control input { min-width: 5rem; flex: 1; } .range-control output { width: 2.8rem; color: #f5f7fb; font-variant-numeric: tabular-nums; } .checkbox { display: flex; gap: 0.35rem; align-items: center; } button, select { min-height: 2rem; padding: 0.35rem 0.55rem; border: 1px solid #454d5d; border-radius: 6px; background: #242a35; color: inherit; font: inherit; } button { cursor: pointer; } button:hover:not(:disabled) { border-color: #6b8cff; background: #30394a; } button:focus-visible, select:focus-visible, input:focus-visible { outline: 2px solid #7d9aff; outline-offset: 2px; } button:disabled, select:disabled { cursor: not-allowed; opacity: 0.5; }