*{box-sizing:border-box}html,body{height:100%;margin:0}body{font:var(--t-body)/1.45 var(--text);color:var(--ink);background:#a7a955;overflow:hidden}body.large{--t-body:1.1875rem;--t-small:1rem;--t-prompt:2rem;font-size:19px}.world{position:fixed;inset:0;overflow:hidden}.world canvas{image-rendering:pixelated;position:absolute;top:0;left:0}.world .v-sky{width:100%;height:100%}.world .v-land{transform-origin:0 0}.world .v-over{width:100%;height:100%;display:block;position:absolute;inset:0}.sr-only{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}button,input{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #3d7bff}body[data-screen=menu] .game-only,body[data-screen=game] .menu-only,body:not([data-screen]) .game-only{display:none!important}.card{background:var(--card);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);padding:1.75rem 1.25rem 1.25rem;position:relative}.card:before{content:"";background:var(--slot);border:2px solid var(--ink);width:2.75rem;height:.625rem;position:absolute;top:.5rem;left:50%;transform:translate(-50%)}body.contrast .card{background:#fff;border-color:#000}body.contrast .meta,body.contrast .small,body.contrast .result-pos,body.contrast .hint,body.contrast .note{color:#000}button.primary{font:700 var(--t-button) var(--pixel);color:var(--card);background:var(--red);border:3px solid var(--ink);box-shadow:0 5px 0 var(--redDark), 0 5px 0 3px var(--ink);margin-bottom:8px;padding:.75rem 1.125rem}button.primary:active{box-shadow:0 2px 0 var(--redDark), 0 2px 0 3px var(--ink);transform:translateY(3px)}button.primary[disabled]{opacity:.5;cursor:default}button.primary.big{width:100%;margin-bottom:1.25rem;padding:1rem;font-size:1.75rem;display:block}button.secondary{background:var(--card);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);text-align:left;margin-bottom:3px;padding:.5rem .75rem}.icon{background:var(--card);border:3px solid var(--ink);width:2.5rem;height:2.5rem;box-shadow:0 3px 0 var(--ink);font:700 1.125rem var(--pixel);place-items:center;padding:0;display:grid}.icon svg{width:1.125rem;height:1.125rem;fill:var(--ink)}.top{pointer-events:none;z-index:3;justify-content:space-between;align-items:flex-start;padding:.75rem;display:flex;position:fixed;top:0;left:0;right:0}.top>*{pointer-events:auto}.top-right{gap:.5rem;margin-left:auto;display:flex}.chip{background:var(--card);border:3px solid var(--ink);font:400 1rem var(--text);padding:.125rem .5rem;display:inline-block}.slots{gap:.375rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.slots li{background:var(--card);border:3px solid var(--ink);width:2.25rem;height:2.25rem;font:400 1.125rem var(--text);place-items:center;display:grid}.slots li.now{background:var(--red);color:var(--card)}.slots svg{width:1.375rem;height:1.375rem}.menu{z-index:2;pointer-events:none;flex-direction:column;align-items:center;gap:1.25rem;padding:9vh 1rem 0;display:flex;position:fixed;inset:0}.menu>*{pointer-events:auto}.hero{text-align:center}.logo{line-height:.9;font:700 var(--t-name) var(--pixel);letter-spacing:.02em;color:var(--card);text-shadow:3px 0 var(--ink), -3px 0 var(--ink), 0 3px var(--ink), 0 -3px var(--ink), 3px 3px var(--ink), -3px 3px var(--ink), 3px -3px var(--ink), -3px -3px var(--ink), 0 8px var(--ink);margin:0}.tagline{background:var(--card);border:2px solid var(--ink);margin:.5rem 0 0;padding:.125rem .5rem;font-size:1.125rem;display:inline-block}.menu-panel{width:min(26rem,100%)}.menu-panel .meta{text-align:center;margin-bottom:.75rem}.note{text-align:center;margin:0 0 1rem}.passes summary{cursor:pointer;font:700 var(--t-small) var(--pixel);color:var(--mute);border-top:2px dashed var(--rule);padding-top:.75rem}.board{margin:.375rem 0 0;padding:0;list-style:none}.board li{justify-content:space-between;gap:1rem;padding:.125rem 0;display:flex}.board li span:last-child{color:var(--mute)}.foot{pointer-events:none;justify-content:center;gap:.75rem;display:flex;position:fixed;bottom:.75rem;left:0;right:0}.foot a{pointer-events:auto;background:var(--card);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);color:var(--ink);font:700 var(--t-small) var(--pixel);padding:.125rem .625rem;text-decoration:none}.foot a:hover{background:#fff}@media (max-width:600px){.menu{gap:1rem;padding-top:4.25rem}:root{--t-result:1.375rem;--t-prompt:1.5rem}}.window{z-index:2;width:min(34rem,100vw - 1.75rem);max-height:calc(100dvh - 13rem);position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.meta{color:var(--mute);font-size:var(--t-small);margin:0 0 .25rem}.prompt{font:400 var(--t-prompt)/1.1 var(--text);margin:0 0 .75rem}.row{align-items:flex-start;gap:.5rem;display:flex}label.small{margin-bottom:.25rem;display:block}input[type=text]{border:3px solid var(--ink);background:#fff;border-radius:0;flex:1;min-width:0;padding:.625rem .75rem;font-size:1.375rem}.hint{color:var(--mute);margin:.5rem 0 0}.choices{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.ready{margin:0 0 .25rem}.clock{align-items:center;gap:.625rem;margin:0 0 1rem;display:flex}.clock .bar{border:2px solid var(--ink);background:var(--rule);flex:1;height:.75rem}.clock .fill{background:var(--ink);height:100%;transition:width .1s linear}.clock.low .fill{background:var(--red)}.clock .secs{font:400 1.5rem var(--text);text-align:right;font-variant-numeric:tabular-nums;min-width:2ch}.result-tier{font:700 var(--t-result)/1.1 var(--pixel);flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;display:flex}.result-tier span{white-space:nowrap;color:var(--red);font-family:var(--text);margin-left:auto;font-weight:400}.result-line{color:var(--mute);margin:.25rem 0 0}.result-song{margin:.5rem 0 0;font-size:1.25rem}.result-pos{color:var(--mute);margin:.125rem 0 .875rem}.timeup{font:700 var(--t-result) var(--pixel);margin:0 0 .5rem}.end h2{font:700 var(--t-result)/1.1 var(--pixel);align-items:center;gap:.5rem;margin:0;display:flex}.end .result-line{margin-bottom:.75rem}.end table{border-collapse:collapse;width:100%;margin:.75rem 0}.end td{border-bottom:2px dashed var(--rule);vertical-align:top;padding:.375rem 0}.end td:first-child{width:100%}.end td:last-child{text-align:right;white-space:nowrap;padding-left:.5rem}.end tr:last-child td{border-bottom:0;font-weight:700}.actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.small{font-size:var(--t-small);color:var(--mute)}dialog{background:var(--card);border:3px solid var(--ink);width:calc(100vw - 2rem);max-width:28rem;box-shadow:6px 6px 0 var(--ink);color:var(--ink);padding:1.5rem 1.25rem 1.25rem}dialog::backdrop{background:#1e1a1c73}dialog h2{font:700 1.5rem var(--pixel);margin:0 0 .75rem}fieldset{border:0;gap:.5rem;margin:0 0 1rem;padding:0;display:grid}legend{font:700 var(--t-small) var(--pixel);color:var(--mute);margin-bottom:.375rem}input[type=checkbox]{width:1.125rem;height:1.125rem;accent-color:var(--ink);vertical-align:-.125rem}
