.gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.gate-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:40px 32px 32px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}.gate-mark{width:52px;height:52px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:14px}.gate-card h1{font-size:1.4rem;color:var(--text)}.gate-sub{color:var(--text-muted);font-size:.92rem;margin-bottom:20px;max-width:26ch}.gate-card input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:12px 14px;text-align:center;letter-spacing:.02em}.gate-card input:focus{border-color:var(--accent)}.gate-error{color:var(--danger);font-size:.85rem;margin-top:10px}.gate-card button{margin-top:18px;width:100%;background:var(--accent);color:#211605;border:none;border-radius:var(--radius-sm);padding:12px 14px;font-weight:600;transition:transform .12s ease,opacity .12s ease}.gate-card button:hover:not(:disabled){transform:translateY(-1px)}.gate-card button:disabled{opacity:.5;cursor:default}.setlist{flex:1;max-width:760px;width:100%;margin:0 auto;padding:56px 24px 80px}.setlist-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:40px;border-bottom:1px solid var(--border-soft);padding-bottom:28px}.setlist-eyebrow{color:var(--accent);font-size:.85rem;font-weight:600;margin-bottom:6px}.setlist-header h1{font-size:clamp(1.9rem,4vw,2.5rem);margin-bottom:8px}.setlist-sub{color:var(--text-muted);max-width:46ch}.setlist-signout{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:8px 16px;font-size:.82rem;white-space:nowrap}.setlist-signout:hover{color:var(--text);border-color:var(--text-muted)}.setlist-empty{border:1px dashed var(--border);border-radius:var(--radius-lg);padding:40px 32px;background:var(--surface)}.setlist-empty h2{font-size:1.2rem;margin-bottom:12px}.setlist-empty p{color:var(--text-muted);max-width:60ch}.setlist-rows{list-style:none;margin:0;padding:0}.setlist-rows li+li{border-top:1px solid var(--border-soft)}.setlist-row{width:100%;display:grid;grid-template-columns:160px 1fr auto;align-items:center;gap:18px;background:transparent;border:none;color:var(--text);padding:20px 12px;text-align:left;border-radius:var(--radius-sm);transition:background .12s ease}.setlist-row:hover{background:var(--surface)}.row-date{color:var(--text-faint);font-size:.85rem}.row-title{font-family:var(--font-display);font-size:1.15rem}.row-meta{display:flex;gap:14px;color:var(--text-muted);font-size:.82rem;white-space:nowrap}@media (max-width: 560px){.setlist-row{grid-template-columns:1fr;gap:4px}.row-meta{flex-wrap:wrap}}.strip{flex:0 0 128px;scroll-snap-align:start;background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--strip-color, var(--accent));border-radius:var(--radius);padding:14px 12px 16px;display:flex;flex-direction:column;gap:12px;transition:opacity .15s ease}.strip.is-muted{opacity:.55}.strip-label{font-size:.82rem;font-weight:600;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strip-wave{position:relative;height:56px;background:var(--bg);border-radius:var(--radius-sm);overflow:hidden}.strip-wave canvas{width:100%;height:100%;display:block}.strip-playhead{position:absolute;top:0;bottom:0;width:2px;background:var(--text);opacity:.85;pointer-events:none}.strip-body{flex:1;display:flex;justify-content:center;gap:10px;min-height:150px}.strip-meter{width:8px;border-radius:999px;background:var(--bg);display:flex;align-items:flex-end;overflow:hidden}.strip-meter-fill{width:100%;background:linear-gradient(to top,var(--solo),var(--accent) 70%,var(--danger) 95%);transition:height .05s linear}.strip-fader-track{width:32px;height:150px;display:flex;align-items:center;justify-content:center}.strip-fader{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:140px;height:4px;transform:rotate(-90deg);background:var(--surface-raised);border-radius:999px;outline:none}.strip-fader::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:14px;border-radius:4px;background:var(--text);cursor:pointer;box-shadow:0 0 0 1px var(--border)}.strip-fader::-moz-range-thumb{width:26px;height:14px;border:none;border-radius:4px;background:var(--text);cursor:pointer}.strip-fader::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:var(--surface-raised)}.strip-buttons{display:flex;gap:8px;justify-content:center}.strip-btn{width:34px;height:30px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-raised);color:var(--text-muted);font-weight:700;font-size:.78rem}.strip-btn.mute.active{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.strip-btn.solo.active{background:var(--solo-soft);border-color:var(--solo);color:var(--solo)}@media (max-width: 700px){.strip{flex:0 0 108px}}.strip-groups{display:flex;align-items:flex-start;gap:30px;overflow-x:auto;padding-bottom:12px}.strip-group{display:flex;flex-direction:column;gap:10px;flex:0 0 auto}.strip-group:not(:first-child){border-left:1px solid var(--border-soft);padding-left:30px}.strip-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.group-collapse{display:flex;align-items:center;gap:7px;background:transparent;border:none;color:var(--text-muted);font-weight:600;font-size:.82rem;padding:0;white-space:nowrap}.group-collapse:hover{color:var(--text)}.chevron{display:inline-block;font-size:.65rem;transition:transform .15s ease}.chevron.is-collapsed{transform:rotate(-90deg)}.group-count{color:var(--text-faint);font-weight:400;font-size:.76rem}.group-actions{display:flex;gap:6px}.group-btn{width:26px;height:22px;border-radius:5px;border:1px solid var(--border);background:var(--surface-raised);color:var(--text-faint);font-weight:700;font-size:.68rem}.group-btn.mute.active{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.group-btn.solo.active{background:var(--solo-soft);border-color:var(--solo);color:var(--solo)}.strip-group-row{display:flex;gap:14px}@media (max-width: 700px){.strip-group:not(:first-child){padding-left:18px}.strip-groups{gap:18px}}.player{flex:1;display:flex;flex-direction:column;padding:32px 24px 40px;max-width:1200px;width:100%;margin:0 auto}.player-header{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:20px;margin-bottom:28px}.back-link{background:transparent;border:none;color:var(--text-muted);font-size:.9rem;padding:8px 0;white-space:nowrap}.back-link:hover{color:var(--text)}.player-title{text-align:center}.player-title h1{font-size:clamp(1.5rem,3.4vw,2.1rem)}.player-title p{color:var(--text-muted);font-size:.88rem;margin-top:4px}.reset-mix{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:8px 16px;font-size:.82rem;white-space:nowrap}.reset-mix:hover{color:var(--text);border-color:var(--text-muted)}.player-loading,.player-error{padding:60px 20px;text-align:center;color:var(--text-muted)}.loading-bar{width:220px;height:4px;border-radius:999px;background:var(--surface-raised);margin:0 auto 16px;overflow:hidden}.loading-bar span{display:block;height:100%;background:var(--accent);transition:width .15s ease}.player-error{color:var(--danger)}.transport{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 20px;margin-bottom:24px}.transport-play,.transport-stop,.transport-loop{border:none;border-radius:var(--radius-sm);padding:10px 18px;font-weight:600;font-size:.9rem;white-space:nowrap}.transport-play{background:var(--accent);color:#211605}.transport-stop{background:var(--surface-raised);color:var(--text);border:1px solid var(--border)}.transport-loop{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.transport-loop.active{color:var(--solo);border-color:var(--solo);background:var(--solo-soft)}.transport-time{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:.85rem;min-width:3.2em}.transport-scrub{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:999px;background:var(--surface-raised);outline:none}.transport-scrub::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;margin-top:-5px}.transport-scrub::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:50%;background:var(--accent);cursor:pointer}.transport-scrub::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:var(--surface-raised)}@media (max-width: 700px){.player-header{grid-template-columns:1fr;text-align:left;gap:10px}.player-title{text-align:left}.reset-mix{justify-self:start}.transport{flex-wrap:wrap}.transport-scrub{order:5;flex-basis:100%}}:root{--bg: #1c1a22;--surface: #242130;--surface-raised: #2c2837;--border: #3a3547;--border-soft: #322e3d;--text: #f2efea;--text-muted: #a39fae;--text-faint: #726c80;--accent: #e8a33d;--accent-soft: #e8a33d33;--solo: #5fb89c;--solo-soft: #5fb89c33;--danger: #c9564b;--danger-soft: #c9564b33;--font-display: "Fraunces", "Iowan Old Style", "Georgia", serif;--font-ui: "Hanken Grotesk", "Segoe UI", system-ui, sans-serif;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--shadow-card: 0 1px 0 rgba(0, 0, 0, .4), 0 12px 24px -12px rgba(0, 0, 0, .55)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased}body{min-height:100vh;background-image:radial-gradient(circle at 12% -10%,#2c2740 0%,transparent 45%),radial-gradient(circle at 100% 0%,#241f30 0%,transparent 40%);background-attachment:fixed}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-display);font-weight:500;margin:0;letter-spacing:-.01em}p{margin:0;line-height:1.5}button{font-family:var(--font-ui);cursor:pointer}code{font-family:ui-monospace,SF Mono,Menlo,monospace;background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:4px;padding:.1em .4em;font-size:.9em;color:var(--accent)}input,button{font-size:1rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{min-height:100vh;display:flex;flex-direction:column}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
