:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{color:#e8e8f0;touch-action:none;-webkit-user-select:none;user-select:none;background:#1a1d2e;height:100%;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;overflow:hidden}#app{position:fixed;top:0;bottom:0;left:0;right:0}.board{display:block;position:absolute}.hud,.controls{justify-content:center;align-items:center;gap:8px;display:flex;position:absolute}.hud{font-variant-numeric:tabular-nums;text-shadow:0 1px #000;font-size:16px;font-weight:600}.controls button{color:#e8e8f0;min-width:44px;min-height:44px;font:inherit;background:#2c3150;border:0;border-radius:10px;flex-shrink:0;padding:0 12px;font-size:15px}.controls.vertical{flex-direction:column;justify-content:center}button:focus-visible{outline-offset:2px;outline:2px solid #e69f00}input:focus-visible{outline-offset:2px;outline:2px solid #e69f00}select:focus-visible{outline-offset:2px;outline:2px solid #e69f00}[tabindex]:focus-visible{outline-offset:2px;outline:2px solid #e69f00}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.clear{color:#e69f00;font-weight:700}.screen{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:72px 16px 16px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.logo{letter-spacing:.12em;text-transform:uppercase;color:#f0f0f5;margin:0 0 8px;font-size:28px;font-weight:800}@supports ((-webkit-background-clip:text) or (background-clip:text)){.logo{background:linear-gradient(90deg,#0072b2,#009e73,#e69f00,#cc79a7);color:#0000;-webkit-background-clip:text;background-clip:text}}.menu{flex-direction:column;gap:12px;width:min(320px,100%);display:flex}.btn{color:#e8e8f0;min-width:44px;min-height:44px;font:inherit;cursor:pointer;background:linear-gradient(#343a5c,#2a2f4c);border:1px solid #3f4668;border-radius:10px;padding:0 16px;font-size:16px;box-shadow:0 2px #14172a}.btn:active{transform:translateY(1px)}.btn.primary{color:#fff;background:linear-gradient(#0072b2,#005f96)}.btn:disabled{opacity:.4;cursor:default}.modal-backdrop{box-sizing:border-box;background:#0a0c18b3;place-items:center;padding:16px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.modal{background:#232741;border:1px solid #3f4668;border-radius:16px;flex-direction:column;gap:14px;width:min(360px,100%);padding:20px;display:flex;box-shadow:0 12px 40px #00000080}.modal-title{text-align:center;margin:0;font-size:20px}.modal-body{flex-direction:column;align-items:center;gap:10px;display:flex}.modal-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.topbar{position:absolute;top:72px;left:16px}.list{flex-direction:column;gap:10px;width:min(360px,100%);max-height:60vh;display:flex;overflow-y:auto}.card{text-align:left;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 16px;display:flex}.card-title{font-size:18px}.card-sub{opacity:.8;font-size:13px}.grid{grid-template-columns:repeat(5,minmax(48px,60px));gap:8px;display:grid}.cell{aspect-ratio:1;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;display:flex}.cell .num{font-size:15px}.cell .stars{letter-spacing:-1px;font-size:10px}.cell.done{background:#1f4a6e}.cell.current{outline:2px solid #e69f00}.play{position:absolute;top:0;bottom:0;left:0;right:0}.play.thumb .hud,.play.thumb .controls{display:none}.btn.icon{padding:0 14px;font-size:20px}.result-stars{color:#e69f00;letter-spacing:4px;font-size:32px}.result-stars span{animation:.24s ease-out both star-pop;display:inline-block}.result-stars span:nth-child(2){animation-delay:.18s}.result-stars span:nth-child(3){animation-delay:.36s}@keyframes star-pop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.result-stars span{animation:none}}.reduce-motion .result-stars span{animation:none}.result-extra{opacity:.85;margin-top:8px}.streak{opacity:.8;margin-top:12px}.row{justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:44px;display:flex}.row input[type=range]{width:140px}.row select{min-height:36px;font:inherit}
