*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;overscroll-behavior:none;background:#010d1f}body{font-family:Georgia,Times New Roman,serif;color:#fff;-webkit-tap-highlight-color:transparent;touch-action:manipulation}#root{height:100vh;height:100dvh;display:flex;flex-direction:column}button{font-family:Georgia,Times New Roman,serif;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #ffd166;outline-offset:2px}.game-shell{position:relative;z-index:4;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);padding:max(4px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));gap:4px;min-height:0}.game-stave-band,.game-kbd-band{min-width:0;max-width:100%}.game-hud{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px;background:#010d1f9e;border:1px solid rgba(0,220,200,.22);border-radius:14px;padding:4px 12px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.hud-chip{background:#010d1f9e;border:1px solid rgba(0,220,200,.22);border-radius:999px;padding:3px 14px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.game-stave-band{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;overflow:hidden;gap:4px}.game-kbd-band{background:#00283cbf;border:1px solid rgba(0,220,200,.25);border-radius:16px;padding:6px 6px 4px;height:clamp(140px,42dvh,380px);min-height:0}@media(orientation:landscape)and (max-height:520px){.game-shell{gap:2px}.game-kbd-band{height:clamp(120px,42dvh,260px)}.game-hud{min-height:26px}.game-hud .nb{padding:4px 12px;font-size:12px}}.kbd-cell{width:100%;height:100%;display:flex;align-items:center;justify-content:center;min-height:0}.kbd-svg{display:block;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 5px 14px rgba(30,10,0,.2))}.menu-shell{position:relative;height:100%;display:flex;flex-direction:column;overflow:hidden}.menu-scroll{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;align-items:center;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 16px max(12px,env(safe-area-inset-left))}.practice-band{position:relative;z-index:4;flex-shrink:0;height:clamp(84px,15dvh,150px);background:#00283cbf;border-top:1px solid rgba(0,220,200,.25);padding:5px max(6px,env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}.menu-screen{position:relative;height:100%;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;align-items:center;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.menu-content{position:relative;z-index:4;width:100%;max-width:420px;display:flex;flex-direction:column;gap:7px}@media(orientation:landscape)and (max-height:500px){.menu-content{max-width:640px}}.nb{padding:9px 22px;border-radius:40px;background:#00325099;border:1.5px solid rgba(0,220,200,.4);color:#a0fff5;font-size:14px;font-weight:700;cursor:pointer}@media(hover:hover){.nb:hover{background:#004669b3}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-9px)}40%{transform:translate(9px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}@keyframes bounce{0%,to{transform:scale(1)}40%{transform:scale(1.08)}70%{transform:scale(.96)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes starPop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.4)}to{opacity:1;transform:scale(1)}}@keyframes rocketBob{0%,to{transform:translateY(0) rotate(30deg)}50%{transform:translateY(-12px) rotate(30deg)}}@keyframes floatA{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes floatB{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes floatC{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes noteBob0{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes noteBob1{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes noteBob2{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}@keyframes noteBob3{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes noteBob4{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes noteBob5{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 40px #ffb400cc,0 0 80px #7c3aed80}50%{transform:scale(1.12);box-shadow:0 0 60px #ffb400,0 0 120px #7c3aedcc}}@keyframes notetremble{0%,to{transform:translate(0) scale(1)}15%{transform:translate(-3px,-2px) scale(1.05)}30%{transform:translate(3px,2px) scale(.95)}45%{transform:translate(-4px,1px) scale(1.08)}60%{transform:translate(4px,-1px) scale(.93)}75%{transform:translate(-2px,3px) scale(1.06)}90%{transform:translate(2px,-3px) scale(.97)}}@keyframes noteexplode{0%{opacity:1;transform:scale(1)}60%{opacity:1;transform:scale(1.6)}to{opacity:0;transform:scale(2.5)}}@keyframes particle{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(0)}}@keyframes flashBtn{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.02)}}.legal-content{color:#ffffffd9;font-size:14px;line-height:1.65;text-align:left;width:100%}.legal-content h2{color:#a0fff5;font-size:18px;font-weight:800;margin:24px 0 6px}.legal-content h3{color:#ffd166;font-size:15px;font-weight:700;margin:16px 0 4px}.legal-content p{margin:8px 0}.legal-content ul{margin:8px 0;padding-left:20px}.legal-content li{margin:5px 0}.legal-content a{color:#7dd3fc}.legal-content strong{color:#fff}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
