.hm-page{--hm-bg:#0b1026;--hm-ink:#f5f3ff;--hm-dim:#b8b3d9;--hm-panel:#ffffff0f;--hm-line:#ffffff1f;min-height:100vh;color:var(--hm-ink);background:radial-gradient(60% 40% at 85% 0,#a78bfa40,#0000 70%),radial-gradient(50% 40% at 0 100%,#7dd3fc26,#0000 70%),linear-gradient(#0b1026,#1a1640);position:relative;overflow-x:hidden}.hm-page:before{content:"";pointer-events:none;opacity:.6;background-image:radial-gradient(1.5px 1.5px at 10% 20%,#fff,#0000),radial-gradient(1px 1px at 30% 70%,#fff,#0000),radial-gradient(1.5px 1.5px at 55% 15%,#fff,#0000),radial-gradient(1px 1px at 75% 55%,#fff,#0000),radial-gradient(1.5px 1.5px at 90% 85%,#fff,#0000),radial-gradient(1px 1px at 45% 90%,#fff,#0000);position:absolute;inset:0}.hm-header{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--hm-line);background:#0b1026bf;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.hm-brand{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:8px;font-size:18px;font-weight:800;display:flex}.hm-brand svg{color:#ff7a3c;filter:drop-shadow(0 0 6px #ff7a3c99)}.hm-stats{gap:8px;margin-left:auto;display:flex}.hm-stat{background:var(--hm-panel);border:1px solid var(--hm-line);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:14px;display:flex}button.hm-stat{font:inherit;color:inherit;cursor:pointer;transition:border-color .15s,background .15s}button.hm-stat:hover{background:#ffffff1a;border-color:#ffffff59}button.hm-stat:focus-visible{outline-offset:2px;outline:2px solid #fde68a}.hm-stat b{font-variant-numeric:tabular-nums;font-size:16px}.hm-stat span{color:var(--hm-dim)}.hm-meter{background:#ffffff26;border-radius:3px;width:56px;height:6px;overflow:hidden}.hm-meter i{background:linear-gradient(90deg,#7ee0a1,#7dd3fc);border-radius:3px;height:100%;display:block}.hm-player{position:relative}.hm-player-btn{background:var(--hm-panel);border:1px solid var(--hm-line);color:var(--hm-ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:4px 10px 4px 4px;font-weight:600;display:flex}.hm-player-btn:hover{background:#ffffff1f}.hm-player-btn:focus-visible,.hm-tile:focus-visible,.hm-menu button:focus-visible{outline-offset:2px;outline:3px solid #ffd166}.hm-avatar{color:#1a1640;background:linear-gradient(135deg,#ffd166,#ff8fa3);border-radius:50%;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.hm-menu{border:1px solid var(--hm-line);background:#1f1a48;border-radius:12px;min-width:200px;padding:6px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 40px #00000080}.hm-menu button{width:100%;color:var(--hm-ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.hm-menu button:hover{background:#ffffff14}.hm-menu small{color:var(--hm-dim);font-size:12px;display:block}.hm-main{max-width:1040px;margin:0 auto;padding:32px 16px 48px;position:relative}.hm-hello{letter-spacing:-.02em;font-size:clamp(26px,4vw,38px);font-weight:800}.hm-sub{color:var(--hm-dim);margin-top:4px;font-size:16px}.hm-done{background:var(--hm-panel);border:1px solid var(--hm-line);color:var(--hm-dim);border-radius:12px;margin-top:16px;padding:12px 16px}.hm-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}@media (max-width:760px){.hm-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}.hm-tile{color:var(--hm-ink);text-align:left;cursor:pointer;background:#151236;border:2px solid #ffffff1a;border-radius:18px;flex-direction:column;padding:0;transition:transform .2s cubic-bezier(.3,1.4,.5,1),border-color .2s,box-shadow .2s;display:flex;overflow:hidden;box-shadow:0 8px 24px #00000059}.hm-tile:hover:not(:disabled),.hm-tile:focus-visible{border-color:var(--c);box-shadow:0 14px 32px #00000073, 0 0 24px color-mix(in srgb, var(--c) 45%, transparent);transform:translateY(-4px)rotate(-.6deg)}.hm-tile:active:not(:disabled){transform:translateY(-1px)scale(.98)}.hm-tile:disabled{cursor:not-allowed;opacity:.45;filter:grayscale(.6)}.hm-art{aspect-ratio:16/10;width:100%;display:block}.hm-label{border-top:3px solid var(--c);align-items:center;gap:8px;padding:10px 12px 12px;display:flex}.hm-label svg{color:var(--c);flex:none}.hm-label b{font-size:17px;display:block}.hm-label small{color:var(--hm-dim);font-size:12.5px;line-height:1.3;display:block}.hm-parent-note{color:var(--hm-dim);text-align:center;margin-top:24px;font-size:13px}.hm-section{color:var(--hm-dim);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:8px;margin-top:28px;font-size:15px;font-weight:700;display:flex}.hm-section svg{color:#ff6b9d;fill:#ff6b9d}.hm-section+.hm-grid{margin-top:12px}.hm-tip{color:var(--hm-dim);margin-top:8px;font-size:14px}.hm-tile-wrap{--c:#7dd3fc;display:flex;position:relative}.hm-tile-wrap .hm-tile{flex:1;min-width:0}.hm-fav{cursor:pointer;color:#ffffffd9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0c1e8c;border:1px solid #ffffff40;border-radius:50%;place-items:center;width:32px;height:32px;transition:transform .15s,background .15s,color .15s;display:grid;position:absolute;top:8px;right:8px}.hm-tile-wrap:hover .hm-fav{transform:translateY(-4px)}.hm-fav:hover{background:#0a0c1ebf;transform:translateY(-4px)scale(1.1)}.hm-fav:focus-visible{outline-offset:2px;outline:3px solid #ffd166}.hm-fav[aria-pressed=true]{color:#ff6b9d;border-color:#ff6b9d99}.hm-fav[aria-pressed=true] svg{fill:#ff6b9d;animation:.35s ease-out hm-heart}@keyframes hm-heart{40%{transform:scale(1.35)}}.hm-art [class]{transform-box:fill-box;transform-origin:50%}.hm-twinkle{animation:2.4s ease-in-out infinite hm-twinkle}.hm-d2{animation-delay:-.8s!important}.hm-d3{animation-delay:-1.6s!important}@keyframes hm-twinkle{50%{opacity:.25}}.hm-tile:hover .hm-rocket,.hm-tile:focus-visible .hm-rocket{animation:1.2s ease-in-out infinite hm-launch}@keyframes hm-launch{50%{transform:translateY(-8px)}}.hm-flame{transform-origin:50% 0;animation:.25s ease-in-out infinite alternate hm-flicker}@keyframes hm-flicker{to{transform:scaleY(1.35)}}.hm-lava{animation:3s ease-in-out infinite hm-slosh}@keyframes hm-slosh{50%{transform:translate(-6px)}}.hm-tile:hover .hm-hop,.hm-tile:focus-visible .hm-hop{animation:.7s ease-in-out infinite hm-hop}@keyframes hm-hop{50%{transform:translate(14px,-10px)}}.hm-rise{animation:3s ease-in-out infinite hm-rise}@keyframes hm-rise{50%{transform:translateY(-6px)}}.hm-drift{animation:4s ease-in-out infinite hm-drift}@keyframes hm-drift{50%{transform:translate(8px)}}.hm-laser{opacity:0}.hm-tile:hover .hm-laser,.hm-tile:focus-visible .hm-laser{animation:.6s linear infinite hm-zap}@keyframes hm-zap{0%{opacity:1;transform:translateY(20px)}to{opacity:0;transform:translateY(-24px)}}.hm-pulse{animation:1.6s ease-out infinite hm-pulse}@keyframes hm-pulse{0%{opacity:1;transform:scale(.7)}to{opacity:0;transform:scale(1.1)}}.hm-tile:hover .hm-stick,.hm-tile:focus-visible .hm-stick{animation:.4s ease-in-out infinite alternate hm-tap}@keyframes hm-tap{to{transform:translateY(6px)}}.hm-peek{animation:2.6s ease-in-out infinite hm-peek}@keyframes hm-peek{0%,to{transform:translateY(14px)}40%,70%{transform:translateY(0)}}.hm-bounce{animation:1.8s ease-in-out infinite hm-rise}.hm-tile:hover .hm-bounce,.hm-tile:focus-visible .hm-bounce{animation-duration:.6s}.hm-wave{animation:1.5s ease-in-out infinite hm-twinkle}.hm-breathe{transform-origin:50% 100%;animation:3s ease-in-out infinite hm-breathe}@keyframes hm-breathe{50%{transform:scale(1.04,.97)}}.hm-tile:hover .hm-breathe,.hm-tile:focus-visible .hm-breathe{animation:.5s ease-in-out infinite hm-wiggle}@keyframes hm-wiggle{25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.hm-brew{animation:5s linear infinite hm-hue}.hm-swing{animation:1.6s ease-in-out infinite hm-swing;transform-origin:50% 0!important}@keyframes hm-swing{0%,to{transform:rotate(-18deg)}50%{transform:rotate(18deg)}}@keyframes hm-hue{to{filter:hue-rotate(360deg)}}.hm-dialog{color:#f5f3ff;background:#1f1a48;border:1px solid #ffffff24;border-radius:18px;width:min(460px,100vw - 32px);height:fit-content;max-height:calc(100vh - 32px);margin:auto;padding:0;position:fixed;inset:0;overflow:auto;box-shadow:0 24px 60px #0000008c}.hm-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#060818b3}.hm-dialog-body{gap:12px;padding:20px;font-size:15px;line-height:1.45;display:grid}.hm-dialog-body p{color:#d9d5f5;margin:0}.hm-dialog-body b{color:#fff}.hm-dialog-body h3{margin:4px 0 0;font-size:15px;font-weight:800}.hm-dialog-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.hm-dialog-head h2{margin:0;font-size:20px;font-weight:800}.hm-dialog-x{width:32px;height:32px;color:inherit;cursor:pointer;background:#ffffff14;border:0;border-radius:999px;place-items:center;display:grid}.hm-dialog-x:hover{background:#ffffff29}.hm-dialog-ok{color:#1f1a48;font:inherit;cursor:pointer;background:#fde68a;border:0;border-radius:999px;justify-self:end;margin-top:4px;padding:8px 18px;font-weight:800}.hm-dialog-ok:focus-visible,.hm-dialog-x:focus-visible{outline-offset:2px;outline:2px solid #fff}.hm-kb{justify-items:center;gap:5px;padding:4px 0;display:grid}.hm-kb-row{gap:5px;display:flex}.hm-kb-row:nth-child(2){margin-left:14px}.hm-kb-row:nth-child(3){margin-left:28px}.hm-key{width:30px;height:30px;font-family:var(--font-type), system-ui, sans-serif;color:#ffffff59;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:7px;flex:none;place-items:center;font-size:14px;font-weight:700;display:inline-grid}.hm-key.on{color:#1f1a48;background:#fde68a;border-color:#fde68a}.hm-key.next{color:#fde68a;border:2px dashed #fde68a}.hm-key.sm{vertical-align:-2px;border-radius:4px;width:14px;height:14px;margin-left:8px}.hm-key.sm:first-child{margin-left:0}.hm-kb-legend{text-align:center;font-size:13px}.hm-ex{background:#ffffff0d;border-radius:12px;gap:8px;padding:12px;display:grid}.hm-ex-row{align-items:center;gap:12px;display:flex}.hm-ex-row>span:last-child{color:#d9d5f5;font-size:14px}.hm-letters{flex:none;gap:3px;width:124px;display:inline-flex}.hm-letters i{width:24px;height:30px;font-style:normal;font-family:var(--font-type), system-ui, sans-serif;border-radius:6px;place-items:center;font-size:17px;font-weight:700;display:inline-grid}.hm-letters i.ok{color:#86efac;background:#86efac2e}.hm-letters i.bad{color:#fca5a5;background:#fca5a52e;text-decoration:line-through}.hm-letters.slow{gap:8px}@media (max-width:640px){.hm-brand span,.hm-stat span{display:none}.hm-meter{width:32px}.hm-player-btn .hm-name{display:none}.hm-player-btn{padding:4px}.hm-label small{display:none}}@media (prefers-reduced-motion:reduce){.hm-page *,.hm-page :before{transition:none!important;animation:none!important}}.hm-reduced *,.hm-reduced :before{transition:none!important;animation:none!important}.hm-link{border:1px solid var(--hm-line);background:var(--hm-panel);color:var(--hm-ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:5px;margin-left:6px;padding:2px 10px;font-size:14px;font-weight:700;display:inline-flex}.hm-link:hover{border-color:#ffd166}.hm-link:focus-visible{outline-offset:2px;outline:3px solid #ffd166}.hm-panels{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;margin-top:20px;display:grid}@media (max-width:760px){.hm-panels{grid-template-columns:minmax(0,1fr)}}.hm-panel{background:var(--hm-panel);border:1px solid var(--hm-line);border-radius:16px;padding:16px}.hm-panel-title{color:var(--hm-dim);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.hm-board-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}@media (max-width:560px){.hm-board-grid{grid-template-columns:minmax(0,1fr)}}.hm-box{border:1px solid var(--hm-line);background:#ffffff0a;border-radius:12px;flex-direction:column;gap:2px;min-width:0;padding:12px;display:flex}.hm-box>svg{color:#ffd166;margin-bottom:4px}.hm-box>small{color:var(--hm-dim);font-size:12.5px}.hm-box>b{font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;line-height:1.15}.hm-box>span{color:var(--hm-dim);font-size:13px}.hm-box .hm-link{align-self:flex-start;margin:6px 0 0}.hm-box-wide{grid-column:1/-1}.hm-bests{color:var(--hm-dim);margin-top:2px;font-size:14px}.hm-bests b{color:var(--hm-ink);font-variant-numeric:tabular-nums;margin-right:2px;font-size:22px}.hm-keys{flex-wrap:wrap;gap:12px;margin-top:6px;display:flex}.hm-keys li{align-items:center;gap:8px;display:flex}.hm-keys kbd{background:#ff7a3c26;border:1px solid #ff7a3c80;border-bottom-width:3px;border-radius:8px;place-items:center;width:40px;height:40px;font:800 20px ui-monospace,SF Mono,Consolas,monospace;display:grid}.hm-keys span{color:var(--hm-dim);font-size:13px;line-height:1.25}.hm-keys span b{color:var(--hm-ink);font-size:15px}.hm-keys span small{font-size:12px;display:block}.hm-practice{flex-direction:column;display:flex}.hm-practice-help{color:var(--hm-dim);margin-top:8px;font-size:14px}.hm-practice-choices{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.hm-chip{background:var(--hm-panel);border:1px solid var(--hm-line);color:var(--hm-ink);font:inherit;cursor:pointer;border-radius:999px;padding:8px 14px;font-size:14px}.hm-chip b{margin-right:2px;font-size:18px}.hm-chip-main,.hm-chip:hover{border-color:#ffd166}.hm-chip:focus-visible{outline-offset:2px;outline:3px solid #ffd166}.hm-practice-time{font-variant-numeric:tabular-nums;margin-top:10px;font:800 40px/1 ui-monospace,SF Mono,Consolas,monospace}.hm-practice-time small{color:var(--hm-dim);margin-left:8px;font-size:16px}.hm-practice-time.done{color:#7ee0a1}.hm-practice-meter{width:100%;height:8px;margin-top:10px}.hm-practice-meter i{background:#ffd166}.hm-basic{margin-top:20px}.hm-basic p{color:var(--hm-ink);margin-top:8px;font-size:15px;line-height:1.45}.hm-basic-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.hm-basic-go{color:#1b1530;font:inherit;cursor:pointer;background:#ffd166;border:0;border-radius:999px;padding:8px 20px;font-weight:800}.hm-basic-go:hover{background:#ffe08f}.hm-basic-go:focus-visible{outline-offset:2px;outline:3px solid #fff}.hm-basic .hm-link{margin-left:0;padding:7px 16px}.hm-section-locked svg{color:var(--hm-dim);fill:none}.hm-tile.hm-locked:disabled{opacity:.55;filter:grayscale(.85);cursor:default}.hm-tile.hm-locked *{animation:none!important}.hm-locked small{align-items:center;gap:4px;display:inline-flex}.hm-lock{flex:none}
