:root{--bg: #0a0a0c;--bg-elev: #15151a;--fg: #e8e8ec;--fg-dim: #888893;--c-kick: #ff5577;--c-snare: #ffaa44;--c-hat: #ffee66;--c-bass: #66ddaa;--c-lead: #5577ff;--c-pad: #bb77ff;--gap: 12px;--radius: 14px}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:radial-gradient(120% 80% at 50% 0%,#16121f,#0a0a0c 55%,#060608);color:var(--fg);font:15px/1.45 -apple-system,SF Pro Text,Helvetica Neue,system-ui,sans-serif;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}#app{height:100vh;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);display:flex;flex-direction:column;overflow:hidden}#topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:13px;color:var(--fg-dim);letter-spacing:.04em;border-bottom:1px solid #1d1d22}#room-label{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--fg)}#status[data-state=open]{color:#6da}#status[data-state=closed]{color:#f57}#start-audio{appearance:none;background:var(--fg);color:var(--bg);border:0;font-weight:600;padding:8px 14px;border-radius:999px;cursor:pointer}#topbar-right{display:flex;align-items:center;gap:12px}#share{appearance:none;background:transparent;color:var(--fg-dim);border:1px solid #2c2c38;border-radius:999px;padding:6px 14px;font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer;transition:color .12s ease,border-color .12s ease}#share:hover{color:var(--fg);border-color:#3a3a48}#share:active{transform:scale(.95)}#entry[hidden],#controls[hidden]{display:none!important}#entry{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(130% 90% at 50% 0%,#1a1330,#0a0a0c 55%,#060608)}.entry-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px;text-align:center}.entry-title{margin:0;font-size:clamp(28px,8vw,40px);font-weight:700;letter-spacing:-.02em;background:linear-gradient(90deg,#f7a,#a8f,#6df);-webkit-background-clip:text;background-clip:text;color:transparent}.entry-tagline{margin:0 0 6px;color:var(--fg-dim);font-size:14px;line-height:1.4}.entry-input{appearance:none;width:100%;background:#14141a;border:1px solid #2c2c38;border-radius:12px;padding:14px 16px;color:var(--fg);font:500 16px/1 -apple-system,system-ui,sans-serif;text-align:center}.entry-input:focus{outline:none;border-color:#6a6aff;box-shadow:0 0 0 3px #6a6aff2e}.entry-actions{display:flex;gap:10px}.entry-btn{appearance:none;flex:1;min-height:50px;background:#16161c;color:var(--fg);border:1px solid #2c2c38;border-radius:12px;font:600 16px/1 -apple-system,system-ui,sans-serif;cursor:pointer;touch-action:manipulation;transition:transform .07s ease,filter .12s ease}.entry-btn:active{transform:scale(.97)}.entry-btn.primary{background:linear-gradient(90deg,#f7a,#a8f);color:#0a0a0c;border:0}.entry-btn.primary:hover{filter:brightness(1.08)}.entry-join{display:flex;gap:10px}.entry-join .entry-input{text-align:left;font-size:14px}.entry-join .entry-btn{flex:0 0 auto;padding:0 20px}#roster{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 8px}#roster:empty{display:none}.roster-chip{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:999px;background:#ffffff0a;border:1px solid #1f1f28;font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:lowercase;color:var(--fg-dim)}.roster-chip.you{color:var(--fg);border-color:#34343f}.roster-dot{width:10px;height:10px;border-radius:50%}#field{flex:1;position:relative;overflow:hidden;min-height:0;touch-action:none}.plink-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}#hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(15px,4.5vw,22px);letter-spacing:.08em;text-transform:lowercase;color:var(--fg-dim);pointer-events:none;opacity:.85;animation:hint-breathe 3s ease-in-out infinite;transition:opacity .6s ease}#hint.gone{opacity:0}@keyframes hint-breathe{0%,to{opacity:.35}50%{opacity:.85}}#controls{--accent: #5577ff;display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:12px 12px calc(14px + env(safe-area-inset-bottom));background:#0a0a0ec7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid #1c1c24}.ctl-group{display:flex;align-items:center;gap:10px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}.ctl-group::-webkit-scrollbar{display:none}.ctl-pill,.ctl-beat{appearance:none;flex:0 0 auto;min-height:50px;display:inline-flex;align-items:center;justify-content:center;background:#16161c;color:var(--fg-dim);border:1px solid #2c2c38;border-radius:14px;padding:0 22px;font:600 17px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:lowercase;letter-spacing:.02em;cursor:pointer;touch-action:manipulation;transition:color .12s ease,border-color .12s ease,background .12s ease,transform .07s ease}.ctl-beat{min-width:116px;font-size:18px;font-weight:700}.ctl-pill:active,.ctl-beat:active{transform:scale(.94)}@media (hover: hover){.ctl-pill:hover,.ctl-beat:hover{color:var(--fg);border-color:#3a3a48}}.ctl-pill.active,.ctl-beat.on{color:#0a0a0c;background:var(--accent);border-color:var(--accent);box-shadow:0 0 18px -2px var(--accent)}.ctl-pill.voice{color:hsl(var(--vh),70%,68%);border-color:hsl(var(--vh),38%,30%);background:hsl(var(--vh),40%,10%)}@media (hover: hover){.ctl-pill.voice:hover{border-color:hsl(var(--vh),55%,45%)}}.ctl-pill.voice.active{color:#0a0a0c;background:hsl(var(--vh),85%,60%);border-color:hsl(var(--vh),85%,60%);box-shadow:0 0 18px -2px hsl(var(--vh),85%,55%)}.ctl-group.tempo{gap:12px}.ctl-tempo-label{flex:0 0 auto;min-width:66px;color:var(--fg-dim);font:600 13px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.ctl-tempo{-webkit-appearance:none;appearance:none;flex:1;min-width:120px;height:6px;border-radius:999px;background:#2a2a34;outline:none;cursor:pointer}.ctl-tempo::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px -1px var(--accent);cursor:pointer}.ctl-tempo::-moz-range-thumb{width:22px;height:22px;border:0;border-radius:50%;background:var(--accent);box-shadow:0 0 10px -1px var(--accent);cursor:pointer}.tile{--color: #555;position:relative;border-radius:var(--radius);background:var(--bg-elev);padding:14px;min-height:110px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;transition:transform .12s ease,box-shadow .12s ease;user-select:none;touch-action:manipulation}.tile.mine{outline:2px solid color-mix(in srgb,var(--color) 60%,transparent)}.tile:before{content:"";position:absolute;inset:0;background:var(--color);opacity:.18;transition:opacity .2s ease;pointer-events:none}.tile.idle:before{opacity:.04}.tile.pulse:before{opacity:.45;transition:opacity .04s ease}.tile-label{font-size:13px;text-transform:lowercase;letter-spacing:.04em;color:color-mix(in srgb,var(--color) 70%,white 30%);font-weight:600;position:relative;z-index:1}.tile-chip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--fg-dim);position:relative;z-index:1}.tile.idle .tile-chip{opacity:.5}.tile-steps{display:grid;grid-template-columns:repeat(16,1fr);gap:2px;margin-top:10px;height:4px;position:relative;z-index:1}.tile-step-dot{background:color-mix(in srgb,var(--color) 25%,transparent);border-radius:1px;transition:background .12s ease}.tile-step-dot.active{background:color-mix(in srgb,var(--color) 100%,white 20%)}body.bar-flash{background:linear-gradient(transparent,transparent),var(--bg)}#sequencer-overlay[hidden]{display:none}.sequencer{--track-color: #555;position:fixed;inset:0;background:#0a0a0cf5;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:18px;display:flex;flex-direction:column;gap:18px;z-index:50;animation:seq-in .18s ease}@keyframes seq-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.seq-header{display:flex;justify-content:space-between;align-items:center}.seq-title{font-weight:600;color:var(--track-color)}.seq-close,.seq-clear,.seq-save{appearance:none;background:transparent;color:var(--fg);border:1px solid #333;border-radius:8px;padding:8px 14px;cursor:pointer;font:inherit}.seq-save{background:var(--track-color);color:var(--bg);border-color:var(--track-color)}.seq-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:6px;flex:1;min-height:0}.seq-step{appearance:none;background:#1a1a20;border:1px solid #2a2a32;border-radius:10px;color:var(--fg-dim);font:600 14px/1 ui-monospace,monospace;cursor:pointer;transition:background .12s ease,color .12s ease,transform .06s ease;min-height:56px}.seq-step:active{transform:scale(.96)}.seq-step.on{background:var(--track-color);color:var(--bg);border-color:var(--track-color)}.seq-actions{display:flex;gap:10px;justify-content:flex-end}body.sequencer-open #tiles{filter:blur(2px) brightness(.6);pointer-events:none}
