.rail{gap:.15rem;display:grid}.rail-track{border:2px solid var(--line);background-color:var(--surface);background-image:repeating-linear-gradient(to right, var(--line) 0 1px, transparent 1px 6.25%), repeating-linear-gradient(to right, var(--muted) 0 1px, transparent 1px 1.5625%);background-position:0 100%;background-repeat:no-repeat;background-size:100% 55%,100% 25%;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));height:2.4rem;display:grid;position:relative;overflow:hidden}.rail-row{border-left:2px solid var(--line);color:var(--muted);white-space:nowrap;padding:.1rem .3rem;font-size:.7rem;font-weight:800}.rail-row:first-child{border-left:0}.rail-row:nth-child(2n){background:color-mix(in srgb, var(--surface-2) 70%, transparent)}.rail-band,.rail-cursor,.rail-tilt,.rail-target{position:absolute;top:0;bottom:0}.rail-band{background:color-mix(in srgb, var(--win) 55%, transparent);transition:left 80ms,width 80ms}.rail-target{background:color-mix(in srgb, var(--x) 45%, transparent);outline:2px solid var(--x)}.rail-tilt{background:var(--o);opacity:.85;top:55%;bottom:15%}.rail-tilt:after{content:"";background:var(--o);width:.5rem;position:absolute;top:-40%;bottom:-40%}.rail-tilt[data-way=up]:after{clip-path:polygon(0 0,100% 50%,0 100%);right:-.4rem}.rail-tilt[data-way=down]:after{clip-path:polygon(100% 0,0 50%,100% 100%);left:-.4rem}.rail-cursor{background:var(--ink);width:3px;margin-left:-1px}.rail-labels{height:1rem;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.7rem;font-weight:700;position:relative}.rail-labels span{position:absolute;translate:-50%}.rail-labels span:first-child{translate:0}.rail-labels span:last-child{translate:-100%}.board .cell.voice-trail{transition:background .7s ease-out,translate 80ms,box-shadow 80ms}.board .cell.lit{background:var(--win);box-shadow:4px 4px 0 var(--shadow);transition:none;translate:-2px -2px}.board .cell.lit.aim{outline:none}.board .cell.lit.voice-hold:not(.x,.o){box-shadow:4px 4px 0 var(--shadow), inset 0 0 0 calc(var(--cell) * .5 * var(--voice-hold,0)) var(--voice-hold-color,var(--x))}.board .cell[data-voice-mark=O]{--voice-hold-color:var(--o)}.board .cell.voice-burst{animation:.6s ease-out voice-burst}@keyframes voice-burst{0%{box-shadow:0 0 0 0 var(--win);scale:1}30%{scale:1.25}to{box-shadow:0 0 0 calc(var(--cell) * .8) transparent;scale:1}}
