.ds-view{display:flex;flex-direction:column;align-items:center;gap:6px;margin:8px 0}.dk{width:100%;max-width:420px;height:auto;display:block;touch-action:manipulation;-webkit-user-select:none;user-select:none}.ds-view.live .dk{max-width:460px}.ds-view.touch .dk{max-width:560px}.dk-name{font-size:15px;font-weight:600;fill:#3a3550;text-anchor:middle;pointer-events:none}.dk-name.cym{fill:#3a2a08;font-weight:700}.dk-sub{font-size:12px;fill:#3a2a08;text-anchor:middle;pointer-events:none}.dk-sub.light{fill:var(--ink-dim)}.dk-glow{opacity:0;animation:dk-flash .45s ease-out;pointer-events:none}.dk-glow.accent{animation-duration:.6s}.dk-glow.ghost{animation:dk-flash-soft .35s ease-out}@keyframes dk-flash{0%{opacity:.8}to{opacity:0}}@keyframes dk-flash-soft{0%{opacity:.35}to{opacity:0}}.dk-next{fill:none;stroke:var(--ink);stroke-width:3;stroke-dasharray:7 6;opacity:.75;pointer-events:none}.dk-mark{pointer-events:none;animation:dk-mark .5s ease-out forwards}.dk-mark.still{animation:none}.ds-check label{text-align:left;justify-content:flex-start}@keyframes dk-mark{0%{opacity:1;transform-box:fill-box}70%{opacity:1}to{opacity:.35}}.dk-stick{opacity:.75;pointer-events:none;transition:all .08s ease-out}.dk-press{transition:y .05s}.dk-tap{cursor:pointer}.dk-tap:focus-visible{outline:none}.dk-tap:focus-visible>:first-child,.dk-tap:focus-visible circle{stroke:var(--accent-2)}.dk-key{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;margin:0;padding:0;font-size:13px;color:var(--ink-dim)}.dk-key li{display:flex;align-items:center;gap:5px}.dk-key svg{color:var(--ink)}.ll{width:100%;max-width:640px;display:block;margin:6px auto}.ll-lane{fill:#ffffff0d}.ll-lane.odd{fill:#ffffff08}.ll-limb{font-size:14px;font-weight:800}.ll-name{font-size:9px;fill:var(--ink-dim)}.ll-bar{stroke:var(--ink);stroke-opacity:.45;stroke-width:1.4}.ll-beat{stroke:var(--ink);stroke-opacity:.15}.ll-count{font-size:10px;fill:var(--ink-dim)}.ll-piece{font-size:10px;font-weight:700;fill:#15122a;text-anchor:middle}.ll-accent{fill:none;stroke:var(--ink);stroke-width:1.6}.ll-tile.missed rect{opacity:.25!important}.ll-tile.perfect rect,.ll-tile.good rect{stroke:#fff;stroke-width:2}.ll-now{stroke:#fff;stroke-width:2}.ll-now-label{font-size:10px;fill:#fff}.ds-staff{display:flex;flex-wrap:wrap;justify-content:center;row-gap:4px;margin:6px 0;max-width:100%;overflow-x:auto}.ds-bar{flex:0 0 auto;max-width:100%}.ds-bar.on{background:#8a7bff1a;border-radius:6px}.ds-barline{opacity:.8}.ds-clef{fill:var(--ink);opacity:.85}.ds-meter{font-size:19px;font-weight:800;fill:var(--ink);text-anchor:middle}.ds-section{font-size:11px;font-weight:700;fill:var(--accent-2);letter-spacing:.04em;text-transform:uppercase}.ds-head{fill:var(--ink);stroke:var(--ink);stroke-width:1.8;stroke-linecap:round}ellipse.ds-head{stroke-width:0}ellipse.ds-head.hollow{fill:none;stroke-width:1.6}.ds-head.g-perfect,.ds-head.g-perfect line{fill:var(--green);stroke:var(--green)}.ds-head.g-good,.ds-head.g-good line{fill:#9be38b;stroke:#9be38b}.ds-head.g-close,.ds-head.g-close line{fill:#ffd166;stroke:#ffd166}.ds-head.g-missed,.ds-head.g-missed line{fill:#ff8a8a;stroke:#ff8a8a;opacity:.7}.ds-stem{stroke:var(--ink);stroke-width:1.2}.ds-beam{stroke:var(--ink);stroke-width:3.6}.ds-flag path{fill:none;stroke:var(--ink);stroke-width:1.6}.ds-rest{fill:none;stroke:var(--ink);stroke-width:2;stroke-linejoin:round;opacity:.8}.ds-rest-8 circle{fill:var(--ink);opacity:.8}.ds-rest-8 path{fill:none;stroke:var(--ink);stroke-width:1.5;opacity:.8}.ds-ink{fill:var(--ink)}.ds-accent{fill:none;stroke:var(--ink);stroke-width:1.6}.ds-open{fill:none;stroke:var(--ink);stroke-width:1.4}.ds-paren{font-size:13px;fill:var(--ink);opacity:.85}.ds-tuplet{font-size:11px;font-style:italic;fill:var(--ink);text-anchor:middle}.ds-stick{font-size:12px;font-weight:800;text-anchor:middle}.ds-stick.RH{fill:#ff8a3d}.ds-stick.LH{fill:#4cc3ff}.ds-count{font-size:11px;fill:var(--ink-dim);text-anchor:middle}.ds-count.beat{fill:var(--ink);font-weight:700}.ds-cursor{stroke:var(--accent-2);stroke-width:2}.ds-songmap{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;padding:0}.ds-songmap li{flex:var(--n) 1 0;min-width:64px;padding:6px 8px;border-radius:10px;background:var(--card);border:1px solid var(--card-border);font-size:12px}.ds-songmap li.now{border-color:var(--accent-2);background:#5ad1e61f}.ds-songmap li.past{opacity:.55}.ds-songmap b{display:block}.ds-songmap small{color:var(--ink-dim)}.ds-songmap-bars{display:flex;gap:2px;margin:4px 0 2px}.ds-songmap-bars i{flex:1;height:6px;border-radius:2px;background:#ffffff24}.ds-songmap-bars i.fill{background:#ff8a3d8c}.ds-songmap-bars i.on{background:var(--accent-2)}.ds-now-section{margin-left:auto;font-weight:800;color:var(--accent-2);font-size:18px}.th{margin:8px 0 12px}.th svg{width:100%;display:block;border-radius:14px}.th figcaption{font-size:13px;color:var(--ink-dim);margin-top:4px;text-align:center}.th.compact svg{max-width:360px;margin:0 auto}.th-bolt{fill:none;stroke-width:2.4;stroke-linejoin:round}.th-bolt.wild{stroke:#ffe36e;opacity:.7;animation:th-flicker 3.4s infinite}.th-bolt.tame{stroke:#9fd8ff;opacity:.75}@keyframes th-flicker{0%,86%,to{opacity:0}88%,92%{opacity:.9}90%{opacity:.2}}.th-step{fill:#ffffff24}.th-step.on{fill:#c3b5ff}.th-jar{fill:#ffe9a0;stroke:#c9b46a;stroke-width:.6}.th-chime{fill:#bfe3ff;stroke:#7fa8c9;stroke-width:.6}.dk-glow.bell{mix-blend-mode:screen}.th-rod{fill:#9fd8ff}.th-heart.on{filter:drop-shadow(0 0 6px #ffd56b)}.th-sound{fill:none;stroke:#ffd9a8;stroke-width:1.4;opacity:.8}.th-drum.on rect{filter:drop-shadow(0 0 3px rgba(255,190,120,.7))}.ds-settings,.ds-check,.ds-guide{margin:8px 0;padding:8px 12px;border-radius:12px;background:var(--card);border:1px solid var(--card-border)}.ds-settings summary,.ds-check summary,.ds-guide summary{cursor:pointer;font-weight:700}.ds-check ul,.ds-guide-body ul{margin:6px 0;padding-left:0;list-style:none}.ds-guide-body li{margin:6px 0;font-size:14px;line-height:1.45}.ds-kitset{display:flex;flex-direction:column;gap:6px;margin:8px 0}.ds-kitset .rz-seg{flex-wrap:wrap}.ds-h{margin:4px 0;font-size:16px}.ds-warm{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin:8px 0;padding:10px 14px;border-radius:12px;border:1px solid var(--card-border);background:linear-gradient(90deg,#ffdc781f,#8c7bd81f);color:var(--ink);text-align:left;cursor:pointer}.ds-warm.on{border-color:#ffd56b}.ds-warm span{font-size:13px;color:var(--ink-dim)}.ds-group{margin:10px 0 4px;font-size:13px;color:var(--ink-dim);font-weight:700}.ds-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#8c7bd838;color:#d6ccff;vertical-align:middle}.ds-buildup{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0}.ds-buildup-label{font-weight:800;font-size:13px;color:var(--ink-dim);margin-right:4px}.ds-buildup button{padding:5px 10px;border-radius:999px;border:1px solid var(--card-border);background:var(--card);color:var(--ink);font-size:13px;cursor:pointer}.ds-buildup button[aria-pressed=true]{border-color:var(--accent);background:#8a7bff33}.ds-playing .rz-play-head{flex-wrap:wrap}.dk-glow.flam{animation:dk-flam .32s ease-out}@keyframes dk-flam{0%{opacity:.35;transform-box:fill-box;transform-origin:center;transform:scale(.7)}25%{opacity:.15}45%{opacity:.9;transform:scale(1.05)}to{opacity:0;transform:scale(1.2)}}.dk-glow.drag{animation:dk-drag .36s ease-out}@keyframes dk-drag{0%{opacity:.3}15%{opacity:.1}30%{opacity:.3}45%{opacity:.1}60%{opacity:.9}to{opacity:0}}.dk-glow.buzz{animation:dk-buzz .4s linear}@keyframes dk-buzz{0%,20%,40%,60%,80%{opacity:.7}10%,30%,50%,70%,90%{opacity:.35}to{opacity:0}}.dk-glow.diddle{animation:dk-diddle .3s ease-out}@keyframes dk-diddle{0%{opacity:.8}40%{opacity:.2}55%{opacity:.8}to{opacity:0}}.dk-sweep{transform-box:fill-box;transform-origin:center;animation:dk-sweep 1.6s linear infinite;opacity:.85}@keyframes dk-sweep{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.dk-sweep,.dk-glow.flam,.dk-glow.drag,.dk-glow.buzz,.dk-glow.diddle{animation:none}}.ds-sweep path{fill:none;stroke:var(--ink);stroke-width:2.2;opacity:.7}.ds-sweep circle{fill:var(--ink);opacity:.7}.ds-grace{fill:var(--ink)}.ds-grace-g line,.ds-grace-g path{stroke:var(--ink);stroke-width:1.1;fill:none}.ds-buzz{fill:none;stroke:var(--ink);stroke-width:1.6}.ds-trem{stroke:var(--ink);stroke-width:2.4}.ds-grace-stick{font-size:.72em;opacity:.85}.ds-board{display:grid;gap:.6rem}.ds-board-fam{margin:0;font-size:.82rem;opacity:.8}.ds-board .rz-item{grid-template-columns:auto 1fr auto}.ds-rnum{display:inline-block;min-width:1.9em;font-variant-numeric:tabular-nums;opacity:.7}.ds-goal{font-size:.75rem;opacity:.8;margin-left:.4em;white-space:nowrap}.ds-goal.met{color:var(--good, #5fd38d);opacity:1}.ds-slash{stroke:var(--ink);stroke-width:4;stroke-linecap:round}.ds-chart-now{fill:var(--accent-2);opacity:.13}.ds-chart-box{fill:none;stroke:var(--ink);stroke-width:1.4}.ds-chart-sec{fill:var(--ink);font-size:11px;font-weight:800;text-anchor:middle}.ds-chart-txt{fill:var(--ink);font-size:10.5px;font-style:italic;font-weight:700}.ds-chart-txt.end{text-anchor:end}.ds-chart-word{fill:var(--accent-2);font-size:11px;font-style:italic;font-weight:700}.ds-chart-num{fill:var(--ink);font-size:15px;font-weight:800;text-anchor:middle}.ds-chart-bracket{fill:none;stroke:var(--ink);stroke-width:1.3}.ds-chart-sign circle,.ds-chart-sign line{fill:none;stroke:var(--ink);stroke-width:1.4}.ds-chart-sign .dot{fill:var(--ink);stroke:none}.ds-chart-segno{fill:var(--ink);font:italic 700 15px serif;text-anchor:middle}.ds-chart-flag{fill:none;stroke:var(--ink);stroke-width:1.4}.ds-forge{display:grid;gap:.6rem;margin-top:.8rem}.ds-forge-item{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ds-forge-item .rz-item{flex:1 1 12rem}.ds-forge-grid{display:grid;gap:2px;overflow-x:auto;max-width:100%;font-size:.78rem}.ds-forge-count{text-align:center;opacity:.6;font-size:.7rem}.ds-forge-count.beat{opacity:1;font-weight:800}.ds-forge-row{font-size:.7rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;align-self:center}.ds-forge-cell{min-height:1.9em;padding:0;border-radius:4px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:var(--ink);font-size:.9rem}.ds-forge-cell.beat{border-left-color:#fff6}.ds-forge-cell.on{background:var(--accent-2);color:#111;font-weight:800}.ds-forge-name{display:grid;gap:.25rem;font-size:.85rem}.ds-forge-name input{padding:.45rem .6rem;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#00000040;color:inherit}.ds-ready{margin:10px 0;padding:10px 12px;border:1px solid var(--card-border);border-radius:12px;text-align:left}.ds-ready.ready{border-color:#6fcf8f}.ds-ready.almost{border-color:#e9c46a}.ds-ready h3{margin:0 0 6px;font-size:15px}.ds-ready ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px;font-size:12px}.ds-ready li b{display:block;font-size:18px}.ds-ready p{margin:6px 0 0;font-size:13px;color:var(--ink-dim)}.ds-recital{margin:10px 0;padding:8px 12px;border:1px solid var(--card-border);border-radius:12px}.ds-recital summary{cursor:pointer;font-weight:700}.ds-recital-now{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin:8px 0;padding:8px 12px;border-radius:12px;background:color-mix(in srgb,var(--accent) 14%,transparent);font-size:14px}.ds-perform{display:flex;gap:8px;align-items:flex-start;margin:8px 0;font-size:14px;text-align:left}
