:root{--accent:#b9dca3;--muted:#acb7a5;color-scheme:dark;background:#101711;color:#f1eee4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.character-lab{background:radial-gradient(ellipse at 30% 6%,#33462b60,transparent 45%),#101711;min-width:320px;-webkit-font-smoothing:antialiased}
.character-lab [hidden]{display:none!important}.character-lab a{color:inherit}.character-lab button,.character-lab select{font:inherit}.character-lab :focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.character-lab .site-header{max-width:1440px}.lab-skip{position:fixed;top:-100px;left:20px;z-index:9999;padding:15px;background:#dbe6c9;color:#182412!important}.lab-skip:focus{top:10px}
#vinyl-character{width:100%;max-width:1360px;margin:auto;padding:26px 36px 80px}.character-lab .eyebrow{font-size:11px;line-height:1.6;letter-spacing:.16em;color:var(--accent);margin:0 0 18px}
.lab-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:16px 0 38px;margin-bottom:34px;border-bottom:1px solid #b9dca327}.lab-heading h1{font-size:clamp(38px,4.5vw,66px);font-weight:520;line-height:1.05;letter-spacing:-.055em;margin:0}.lab-heading em{color:var(--accent);font-style:normal}.lab-heading>p{font-size:14px;line-height:1.85;color:var(--muted);margin:0 0 4px}
.lab-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:38px;align-items:start}.lab-player{min-width:0}.lab-room{overflow:hidden;border:1px solid #b9dca331;border-radius:15px;background:radial-gradient(ellipse at 50% 32%,#73836328,transparent 65%),linear-gradient(140deg,#263022,#131c15)}
.lab-room-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;gap:15px}.lab-room-head>span{font-size:10px;letter-spacing:.13em;color:#bccab3}.lab-room-head>div{display:flex;gap:2px;padding:3px;border:1px solid #ffffff18;border-radius:25px}.lab-room-head button{font-size:11px;min-height:36px;padding:8px 12px;border:0;background:transparent;color:#b9c8ae}.lab-room-head button[aria-pressed=true]{background:#dbe6c9;color:#182412}
.character-lab .deck-stage{margin:2px 0 16px;width:100%;aspect-ratio:920/452;border:0;background:transparent;overflow:visible}.character-lab .deck-stage canvas[data-tonearm]{pointer-events:none}
.character-lab .showcase-playback{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;padding:8px 22px 0}.character-lab .transport{display:flex;gap:6px;margin:0;justify-content:flex-start}.character-lab .transport .icon-button{width:44px;height:44px;min-width:0;min-height:44px;padding:10px;border:1px solid #ffffff25;border-radius:50%;background:transparent;color:#e2eadb}.character-lab .transport .primary-button{width:50px;height:50px;background:var(--accent);color:#192913;border-color:var(--accent)}.character-lab .icon-button svg{width:20px;height:20px;fill:currentColor}.character-lab .showcase-track{display:flex;flex-direction:column;gap:5px;min-width:0}.showcase-track strong{font-size:14px;font-weight:600;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.showcase-track>span{font-size:12px;color:var(--muted)}
.character-lab .scrubber{display:flex;gap:12px;align-items:center;grid-column:1/-1;width:100%;margin:0}.character-lab .scrubber time{font:11px ui-monospace,monospace;color:#acbca1;min-width:34px}.character-lab .scrubber input{flex:1;min-width:0;height:30px;accent-color:var(--accent)}.showcase-status{grid-column:1/-1;font-size:12px;line-height:1.6;color:#c9d9be;margin:0}.showcase-status:empty{display:none}.showcase-start{grid-column:1/-1}.renderer-notice{padding:0 20px;font-size:12px;color:#e0c89a;line-height:1.6}
.lab-room-foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 22px 20px;font-size:10px;color:#a1b292}.lab-room-foot>span:last-child{font-size:9px;letter-spacing:.07em}
.character-lab .demo-albums{margin:26px 0}.character-lab .demo-albums-heading h3{font-size:19px}.character-lab .demo-album-copy strong{font-size:15px}.character-lab .demo-album-artist{font-size:11px}.character-lab .demo-album-copy small,.character-lab .demo-album-selected{font-size:11px}.character-lab .demo-album-choice{border-radius:8px}.lab-programme{border:1px solid #ffffff20;border-radius:10px;background:#ffffff02}.lab-programme summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer;padding:18px;font-size:13px}.lab-programme summary>span{font-size:12px;color:var(--muted)}.character-lab .programme{margin:0;padding:0 16px 15px;border:0;background:transparent}.character-lab .programme-heading{display:none}
.lab-controls{padding:6px 0}.lab-controls h2{font-size:36px;line-height:1.12;font-weight:500;letter-spacing:-.045em;margin:0 0 16px}.lab-controls>p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.8}.lab-compare{display:grid;grid-template-columns:1fr 1.4fr;gap:4px;padding:4px;border:1px solid #b9dca344;background:#080e0a;border-radius:30px;margin-top:26px}.lab-compare button{font-size:13px;border:0;background:transparent;min-height:44px;padding:8px}.lab-compare button[aria-pressed=true]{background:var(--accent);color:#182713}.lab-indicator{display:flex;align-items:center;gap:9px;font-size:11px;color:#bbcab2;line-height:1.6;min-height:45px;margin:5px 0 16px}.lab-indicator i{display:block;flex:none;width:6px;height:6px;border-radius:50%;background:#78836d}.lab-indicator i.active{background:#b9df9f;box-shadow:0 0 9px #b9df9f70}.lab-controls [data-fx-retry]{font-size:12px;margin:0 0 18px;border-color:#b9dca34a}
.lab-setting{border-top:1px solid #b9dca325;padding:21px 0}.lab-setting>label{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:#e2e9d9;line-height:1.5;margin-bottom:15px}.lab-setting output{font-variant-numeric:tabular-nums;color:var(--accent)}.lab-setting input{width:100%;height:30px;margin:0;accent-color:var(--accent)}.lab-scale{display:flex;justify-content:space-between;font-size:10px;color:#a8b89a;margin:3px 0}.lab-setting select{width:100%;min-height:46px;background:#1e291f;color:#e3ecda;border:1px solid #b9dca34a;border-radius:7px;padding:10px 9px;font-size:12px}.lab-setting p{font-size:11px;line-height:1.8;color:#a7b49e;margin:12px 0 0}.lab-switch{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:21px 0;border-top:1px solid #b9dca325;cursor:pointer}.lab-switch strong{display:block;font-size:13px;font-weight:500}.lab-switch small{display:block;font-size:11px;line-height:1.7;color:#a7b49e;margin-top:7px}.lab-switch input{width:22px;height:22px;flex:none;accent-color:var(--accent)}.lab-new{width:100%;border:1px solid #b9dca34a;background:#b9dca310;display:flex;align-items:center;justify-content:space-between;padding:12px 17px;border-radius:8px;font-size:12px!important;margin-top:10px}.lab-new span{font-size:20px}.lab-controls .lab-new-note{font-size:11px!important;min-height:38px}.lab-note{border-left:2px solid #b9dca34a;padding:0 0 0 18px;margin-top:27px}.lab-note>span{font-size:9px;letter-spacing:.13em;color:var(--accent)}.lab-note p{font-size:11px;line-height:1.8;color:#a7b49e;margin:10px 0 0}
.character-trace{grid-column:1/-1;min-width:0;width:100%;margin:2px 0 0;padding:15px 14px 11px;border:1px solid #b9dca329;border-radius:9px;background:#0b130dcc}.character-trace figcaption{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:11px;color:#d4e1ca}.character-trace [data-trace-status]{font-size:10px;color:#a9b69f;text-align:right}.character-trace[data-active=true] [data-trace-status]{color:#b9dca3}.character-trace canvas{display:block;width:100%;height:82px;margin:5px 0}.trace-key{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:10px;line-height:1.6;color:#bbc8b2}.trace-key>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.trace-key i{display:inline-block;width:12px;height:2px;background:var(--trace-colour);flex:none}.trace-dust{--trace-colour:#b9dca3}.trace-pop{--trace-colour:#efbc72}.trace-scratch{--trace-colour:#f1847d}.trace-surface{--trace-colour:#87c8e7}.trace-surface i{height:6px;border:1px solid #87c8e7;background:#87c8e74d;border-radius:2px}.trace-upcoming{--trace-colour:#899183}.character-trace p{font-size:10px;line-height:1.7;color:#a5b29d;margin:8px 0 0}
.lab-solo{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}.lab-solo button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 16px;border:1px solid #b9dca35c;border-radius:24px;background:#0b130d77;color:#d8e7ce;font-size:12px}.lab-solo button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4}.lab-solo button[aria-pressed=true]{background:#b9dca3;color:#192913;border-color:#b9dca3}.lab-solo>span{font-size:11px;line-height:1.6;color:#b3c1a8}.lab-solo button:hover{border-color:#b9dca3;background:#243421;color:#e1efd8}.lab-solo button[aria-pressed=true]:hover{background:#b9dca3;color:#192913}@media(max-width:1000px){.lab-solo{justify-content:center;text-align:center}}
.lab-damage{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid #b9dca329;border-radius:9px;background:#0b130d55}.lab-damage strong{font-size:12px;font-weight:550;color:#d8e7ce}.lab-damage p{font-size:11px;line-height:1.65;color:#acbca3;margin:5px 0 0}.lab-damage button{flex:none;min-height:44px;padding:10px 14px;font-size:12px;border:1px solid #b9dca35c;border-radius:23px;background:#b9dca312;color:#d8e7ce}.lab-damage button:disabled{opacity:.5;cursor:not-allowed}.lab-damage[data-active=true]{border-color:#d9b37d70;background:#d9b37d09}.lab-damage[data-active=true] strong{color:#e5c394}.lab-damage button[aria-pressed=true]{background:#e5c394;border-color:#e5c394;color:#292014}.lab-damage button:not(:disabled):hover{border-color:#e5c394}@media(max-width:420px){.lab-damage{flex-wrap:wrap}.lab-damage button{width:100%}}
.lab-mechanism{border-top:1px solid #b9dca33b;margin-top:28px;padding-top:25px}.lab-mechanism h3{font-size:24px;line-height:1.2;letter-spacing:-.03em;font-weight:500;margin:0 0 12px}.lab-mechanism>p:not(.eyebrow){font-size:12px;line-height:1.75;color:#b4c0ab}.lab-mechanism .lab-compare{margin-top:17px;grid-template-columns:1fr 1fr}.lab-mechanism [data-mechanism-status]{min-height:38px;color:#c4d6b8!important;font-size:11px!important}.lab-mechanism .lab-setting{padding:16px 0}.lab-ceremony-actions{display:flex;gap:8px;flex-wrap:wrap}.lab-ceremony-actions button,.lab-mechanism [data-mechanism-retry]{font-size:11px;min-height:44px;border:1px solid #b9dca34a;background:#b9dca310;border-radius:22px;padding:10px 14px;color:#d5e6c8}.lab-ceremony-actions button{flex:1}.lab-ceremony-actions button:disabled{opacity:.4;cursor:not-allowed}.lab-ceremony-actions button:not(:disabled):hover{background:#b9dca327}
@media(prefers-reduced-motion:reduce){.character-trace *{transition:none!important}}
@media(min-width:1100px){.lab-controls{position:sticky;top:24px}}
@media(max-width:1000px){#vinyl-character{padding:15px 24px 60px}.lab-layout{grid-template-columns:minmax(0,1fr) 290px;gap:24px}.lab-room-head{flex-wrap:wrap}.character-lab .showcase-playback{grid-template-columns:1fr}.character-lab .transport{justify-content:center}.showcase-track{text-align:center}}
@media(max-width:760px){#vinyl-character{padding:12px 18px 45px}.lab-heading{display:block;padding-bottom:26px;margin-bottom:24px}.lab-heading>p{margin-top:20px;font-size:13px}.lab-heading h1{font-size:43px}.lab-layout{grid-template-columns:1fr;gap:28px}.lab-controls{padding:26px 20px;border:1px solid #b9dca331;border-radius:12px;background:#19231a}.lab-controls h2 br{display:none}.lab-controls h2{font-size:32px}.lab-room-head{padding:13px 14px;gap:10px}.lab-room-head>span{font-size:9px}.lab-room-head button{font-size:10px;padding:7px 10px}.character-lab .showcase-playback{padding:0 15px;gap:13px}.lab-room-foot{padding:13px 16px 16px}.lab-room-foot>span:last-child{display:none}.character-lab .deck-stage{margin-bottom:8px}.character-lab .demo-album-copy strong{font-size:13px}}
/* Keep transient deck transforms and long control text off the horizontal
   page-scrolling axis, while preserving vertical scroll and browser zoom. */
html.vinyl-character-page{overflow-x:clip;overscroll-behavior-x:none}
.character-lab{min-width:0;width:100%;overflow-x:clip;overscroll-behavior-x:none}
.character-lab .site-header{max-width:none}
.lab-layout{min-width:0}.lab-controls{min-width:0;overflow-wrap:anywhere}.lab-setting select{min-width:0;max-width:100%}
.showcase-track>span{overflow-wrap:anywhere}.character-trace figcaption{flex-wrap:wrap}.lab-compare{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}.lab-mechanism .lab-compare{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-compare button{min-width:0;overflow-wrap:anywhere}
.lab-profile{border-top:1px solid #b9dca33b;margin-top:25px;padding-top:25px}.lab-profile h3{font-size:24px;font-weight:500;letter-spacing:-.03em;margin:0 0 12px}.lab-profile p{font-size:12px;line-height:1.8;color:#b4c0ab}.lab-profile [data-profile-save]{width:100%;padding:12px 16px;border-radius:9px;background:var(--accent);color:#192913;font-size:13px;font-weight:600;line-height:1.5}.lab-profile [data-profile-save]:disabled{opacity:1;background:#b9dca315;color:#c9dfbb;border-color:#b9dca340;cursor:default}.lab-profile [data-profile-status]{min-height:36px;color:#d0e5c1}.lab-profile .lab-profile-scope{font-size:11px;color:#a7b49e}.lab-profile .text-button{font-size:12px;text-align:left}
.lab-crate-picker{margin:0 0 25px;border:1px solid #b9dca344;border-radius:10px;background:#172219;min-width:0}.lab-crate-picker summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;font-size:14px;list-style:none}.lab-crate-picker summary::-webkit-details-marker{display:none}.lab-crate-picker[open] summary{border-bottom:1px solid #b9dca325}.lab-crate-content{padding:4px 20px 20px}.lab-crate-content p{font-size:12px;line-height:1.8;color:#b4c0ab}.lab-crate-content label{display:block;font-size:12px;margin:17px 0 9px}.lab-crate-content form>div{display:flex;gap:9px}.lab-crate-content input{min-width:0;width:100%;flex:1;padding:12px;border:1px solid #b9dca350;border-radius:7px;background:#0d160f;color:#e3ecda;font-size:14px}.lab-crate-content button{font-size:12px;padding:10px 17px;min-height:44px;border-color:#b9dca34a}.lab-crate-content [data-crate-search-status]{min-height:24px}.lab-crate-content [data-crate-signin]{display:inline-block;min-height:44px;font-size:13px;color:var(--accent);padding-block:10px}.lab-crate-content ul{list-style:none;margin:0;padding:0;max-height:390px;overflow:auto;overscroll-behavior:contain}.lab-crate-content li{padding:0;display:block}.lab-crate-content li button{display:flex;gap:13px;align-items:center;min-height:70px;padding:12px 5px;text-decoration:none}.lab-crate-content li button:hover,.lab-crate-content li button:focus-visible{background:#b9dca30e}.lab-crate-content li img{width:48px;height:48px;object-fit:cover;flex:none}.lab-crate-content li span{min-width:0;overflow-wrap:anywhere}.lab-crate-content li strong{display:block;color:#e3ecda;font-size:13px}.lab-crate-content li small{font-size:11px;color:#b4c0ab;line-height:1.6}.lab-crate-content li small:last-child{color:var(--accent)}.lab-crate-pages{display:flex;justify-content:space-between;gap:10px;margin-top:14px}.lab-crate-content .lab-crate-note{font-size:11px;margin-bottom:0}
@media(max-width:760px){.lab-layout{grid-template-columns:minmax(0,1fr)}.lab-crate-content{padding-inline:14px}.lab-crate-picker summary{padding-inline:14px}}

.lab-crate-content li button{width:100%;text-align:left;border:0;border-bottom:1px solid #b9dca31a;border-radius:0;background:transparent}.lab-crate-content li small{display:block}.lab-crate-content li button:disabled{opacity:.5;cursor:default}
.lab-crate-current{width:100%;display:flex;align-items:center;gap:18px;margin:0 0 16px;padding:16px;text-align:left;background:#b9dca309;border:1px solid #b9dca350;border-radius:9px;color:#e3ecda}.lab-crate-current[aria-pressed=true]{background:#b9dca318;border-color:#b9dca399}.lab-crate-current img{width:90px;height:90px;object-fit:cover;flex:none;box-shadow:0 4px 16px #0005}.lab-crate-current>span{min-width:0;overflow-wrap:anywhere}.lab-crate-current strong{display:block;font-size:18px;line-height:1.45;margin:5px 0}.lab-crate-current small{display:block;font-size:12px;line-height:1.6;color:#b4c6aa}.lab-crate-current small:first-child{font-size:9px;letter-spacing:.08em;color:var(--accent)}.lab-crate-current:disabled{opacity:.65}.lab-solo button:disabled{opacity:.55;cursor:default}
@media(max-width:420px){.lab-crate-current{padding:12px;gap:12px}.lab-crate-current img{width:64px;height:64px}.lab-crate-current strong{font-size:15px}}

.lab-pressing{margin:23px 0 18px;padding:18px 16px;border:1px solid #b9dca33b;border-radius:10px;background:#b9dca307}.lab-pressing>label{display:block;font-size:13px;font-weight:600;margin-bottom:12px;color:#e3ecda}.lab-pressing select{width:100%;min-width:0;max-width:100%;min-height:44px;border:1px solid #b9dca355;border-radius:7px;padding:10px 8px;background:#142015;color:#dfecd4;font-size:12px}.lab-pressing p{font-size:12px;line-height:1.7;color:#becdb3;margin:12px 0 0}.lab-pressing .lab-pressing-note{font-size:11px;color:#a7b79c}.lab-pressing details{margin-top:14px;border-top:1px solid #b9dca322;padding-top:12px}.lab-pressing summary{font-size:11px;color:var(--accent);cursor:pointer;min-height:30px}.lab-pressing details p{font-size:11px}.lab-pressing a{text-underline-offset:3px}
.lab-secondary{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:24px;margin:24px 0}.lab-secondary .lab-mechanism,.lab-secondary .lab-profile{margin:0;padding:23px 20px;border:1px solid #b9dca338;border-radius:12px;background:#b9dca305;min-width:0}.lab-secondary .lab-compare{display:grid;grid-template-columns:1fr 1fr}.lab-secondary .lab-compare button{border:0;border-radius:24px;min-height:44px;font-size:12px;background:none;color:#d8e5ce;padding:8px}.lab-secondary .lab-compare button[aria-pressed=true]{background:var(--accent);color:#182713}.lab-secondary h3{font-size:23px;line-height:1.3}.lab-secondary [data-profile-save]{min-height:48px}.lab-pressing [data-pressing-visual]{color:#d3e8c3;font-size:12px}
@media(max-width:1150px){.lab-secondary{grid-template-columns:minmax(0,1fr)}}

.lab-restore{min-height:44px;padding:8px 12px;border:1px solid #b9dca344;border-radius:7px;background:transparent;color:#d3e8c3;font:inherit;font-size:12px;cursor:pointer}

.lab-crate-picker .lab-saved-labels{color:#b9dca7;font-weight:650}
