*,:before,:after{box-sizing:border-box}:root{color:#e8e8e8;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0d0d0d;font-family:Segoe UI,system-ui,sans-serif;font-weight:400;line-height:1.5}body{min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}.settings-gear{z-index:40;-webkit-backdrop-filter:blur(12px);color:#f2f2f2;cursor:pointer;background:#0c0c0e73;border:1px solid #ffffff2e;border-radius:999px;width:2.75rem;height:2.75rem;font-size:1.25rem;line-height:1;transition:background .2s,transform .2s,opacity .3s,right .35s;position:fixed;top:1rem;right:1rem}.settings-gear--panel-open{right:calc(min(var(--settings-panel-width,320px), 92vw) + 1rem)}.settings-gear:hover{background:#141418b3;transform:rotate(28deg)}.settings-gear:focus-visible{outline-offset:3px;outline:2px solid #f2f2f2}.settings-panel{z-index:50;width:min(var(--settings-panel-width,320px), 92vw);-webkit-backdrop-filter:blur(22px)saturate(1.2);color:#f0f0f2;pointer-events:none;background:#0a0a0eeb;border-left:1px solid #ffffff1a;flex-direction:column;height:100%;transition:transform .35s;display:flex;position:fixed;top:0;right:0;transform:translate(105%);box-shadow:-12px 0 40px #00000059}.settings-panel--open{pointer-events:auto;transform:translate(0)}.settings-panel__header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.15rem .85rem;display:flex}.settings-panel__title{letter-spacing:-.02em;margin:0;font-size:1.15rem;font-weight:600}.settings-panel__close{appearance:none;width:2rem;height:2rem;color:inherit;cursor:pointer;background:#ffffff14;border:0;border-radius:999px;font-size:.95rem}.settings-panel__close:hover{background:#ffffff24}.settings-panel__body{flex-direction:column;flex:1;gap:1.35rem;padding:1rem 1.15rem 2rem;display:flex;overflow-y:auto}.settings-section__title{letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c;margin:0 0 .55rem;font-size:.72rem;font-weight:600}.settings-section__subtitle{color:#ffffffb8;margin:.85rem 0 .45rem;font-size:.78rem;font-weight:500}.settings-section__subtitle:first-of-type{margin-top:.15rem}.settings-slider__meta{color:#ffffff73;margin-left:.35rem;font-size:.75rem;font-weight:400}.beat-dot{vertical-align:middle;background:#fff3;border-radius:999px;width:.45rem;height:.45rem;margin:0 .35rem;transition:background 80ms,box-shadow 80ms,transform 80ms;display:inline-block}.beat-dot--on{background:#7dd3fc;transform:scale(1.35);box-shadow:0 0 10px #7dd3fcd9}.settings-slider--beat input[type=range]{accent-color:#7dd3fc}.settings-slider--beat input[type=range]::-webkit-slider-thumb{box-shadow:0 0 0 3px #7dd3fc8c}.settings-slider--beat input[type=range]::-moz-range-thumb{box-shadow:0 0 0 3px #7dd3fc8c}.scene-grid,.chip-wrap{flex-wrap:wrap;gap:.4rem;display:flex}.scene-chip{appearance:none;color:#e8e8ec;font:inherit;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:999px;padding:.35rem .7rem;font-size:.8rem}.scene-chip:hover{background:#ffffff1a}.scene-chip--active{color:#111;background:#ffffffe0;border-color:#0000}.palette-row{flex-wrap:wrap;gap:.45rem;display:flex}.palette-swatch{cursor:pointer;border:2px solid #0000;border-radius:.65rem;width:3.1rem;height:3.1rem;padding:0;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #00000040}.palette-swatch span{text-transform:capitalize;color:#fff;text-align:center;background:linear-gradient(#0000,#000000bf);padding:.15rem;font-size:.55rem;position:absolute;inset:auto 0 0}.palette-swatch--active{border-color:#fff;box-shadow:0 0 0 1px #fff6}.custom-colors{grid-template-columns:repeat(4,1fr);gap:.45rem;margin-top:.65rem;display:grid}.custom-colors__item{color:#ffffff8c;gap:.25rem;font-size:.65rem;display:grid}.custom-colors__item input[type=color]{cursor:pointer;background:0 0;border:0;width:100%;height:2rem;padding:0}.segmented{background:#00000047;border-radius:.7rem;grid-template-columns:repeat(3,1fr);gap:.3rem;padding:.25rem;display:grid}.segmented--wrap{grid-template-columns:1fr}@media (width>=360px){.segmented--wrap{grid-template-columns:repeat(3,1fr)}}.segmented:has(:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}.settings-section .settings-slider{margin-top:.85rem}.segmented__btn{appearance:none;color:#ffffffb3;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:.5rem;padding:.45rem .35rem;font-size:.72rem;line-height:1.2}.segmented__btn--active{color:#111;background:#ffffffe6;font-weight:600}.settings-slider{gap:.45rem;display:grid}.settings-slider__label{color:#ffffffd9;font-size:.85rem}.settings-slider input[type=range]{accent-color:#e8e8ec;width:100%}.layer-toggles{gap:.45rem;display:grid}.layer-toggle{cursor:pointer;align-items:center;gap:.55rem;font-size:.88rem;display:flex}.layer-toggle input{accent-color:#e8e8ec;width:1rem;height:1rem}.settings-reset{appearance:none;color:inherit;font:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff29;border-radius:.65rem;margin-top:.25rem;padding:.65rem .85rem;font-size:.85rem}.settings-reset:hover{background:#ffffff1f}.visualizer-shell{z-index:0;width:100vw;height:100vh;transition:width .35s;position:absolute;top:0;left:0;overflow:hidden}.visualizer-shell--panel-open{width:calc(100vw - min(var(--settings-panel-width,320px), 92vw))}.visualizer-canvas{pointer-events:auto;cursor:default;width:100%;height:100%;display:block}.app{min-height:100vh;margin:0;padding:0;position:relative;overflow:hidden}.start-overlay{z-index:2;text-align:center;background:radial-gradient(#00000040 0%,#000000a6 100%);place-content:center;justify-items:center;gap:1rem;padding:1.5rem;display:grid;position:absolute;inset:0}.start-overlay__title{letter-spacing:-.02em;color:#f2f2f2;margin:0;font-size:clamp(2rem,5vw,3rem);font-weight:600}.start-overlay__subtitle{color:#b3b3b3;max-width:26rem;margin:0;font-size:.95rem;line-height:1.45}.start-button{appearance:none;color:#0d0d0d;font:inherit;cursor:pointer;background:#f2f2f2;border:0;border-radius:999px;margin-top:.5rem;padding:.85rem 1.75rem;font-weight:600}.start-button:hover{background:#fff}.start-button:focus-visible{outline-offset:3px;outline:2px solid #f2f2f2}.start-button--secondary{color:#f2f2f2;background:0 0;box-shadow:inset 0 0 0 1px #ffffff59}.start-button--secondary:hover{background:#ffffff1a}.controls{z-index:1;color:#f2f2f2;opacity:1;background:linear-gradient(#0000,#000000d9);padding:1.25rem 1.5rem 1.5rem;transition:opacity .5s,transform .45s;position:absolute;bottom:0;left:0;right:0;transform:translateY(0)}.controls--hidden{opacity:0;pointer-events:none;transform:translateY(14px)}.controls--fading{opacity:0;pointer-events:none}.controls__close{appearance:none;color:#e8e8ec;width:1.75rem;height:1.75rem;font:inherit;cursor:pointer;background:#ffffff1a;border:0;border-radius:999px;font-size:.8rem;line-height:1;position:absolute;top:.85rem;right:1rem}.controls__close:hover{background:#ffffff2e}.controls__close:focus-visible{outline-offset:2px;outline:2px solid #f2f2f2}.controls__title{margin:0;padding-right:2rem;font-size:1.05rem;font-weight:600}.controls__hint{color:#6b6b6b;margin:.5rem 0 0;padding-right:2rem;font-size:.75rem}.sensitivity{gap:.35rem;max-width:16rem;margin-top:.85rem;display:grid}.sensitivity__label{color:#b3b3b3;font-size:.8rem}.sensitivity__slider{accent-color:#f2f2f2;cursor:pointer;width:100%}
