*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:Zen Maru Gothic,Hiragino Maru Gothic ProN,sans-serif;font-weight:700;color:#dfe6ff;background:#0a0e28;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}#bg{position:fixed;inset:0;z-index:0;width:100%;height:100%;background:#0a0e28;touch-action:none}#stage{position:fixed;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;pointer-events:none;transition:opacity .5s ease}#stage.dim{opacity:0}#hud{position:relative;width:100%;height:max(56px,calc(env(safe-area-inset-top) + 48px));flex:none}#backBtn{position:absolute;left:12px;bottom:2px;width:44px;height:44px;border:1.5px solid rgba(160,180,255,.35);border-radius:50%;background:#1a2044b8;color:#ccd8ff;cursor:pointer;pointer-events:auto;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 4px 14px #00000a80,inset 0 1px #c8d7ff40;transition:transform .15s ease,box-shadow .15s ease}#backBtn:active{transform:scale(.92);box-shadow:0 2px 6px #00000a80,inset 0 1px #c8d7ff33}#backBtn svg{width:22px;height:22px}#ledPanel{height:calc(var(--dw, 340px) * .085);display:grid;place-items:center;flex:none}#dots{position:relative;display:flex;align-items:center;gap:max(5px,calc(var(--ds, 20px) * .38))}#dots:not(:empty):before{content:"";position:absolute;left:calc(var(--ds, 20px) * .4);right:calc(var(--ds, 20px) * .4);top:50%;height:1.5px;background:linear-gradient(90deg,transparent,rgba(180,200,255,.3) 18%,rgba(180,200,255,.3) 82%,transparent);pointer-events:none}.dot{position:relative;width:var(--ds, 20px);height:var(--ds, 20px);border-radius:50%;background:#96aae61f;border:1.5px solid rgba(175,195,255,.3);box-shadow:inset 0 0 calc(var(--ds, 20px) * .25) #7891dc40;transition:background .25s,box-shadow .25s,transform .25s,border-color .25s}.dot.on{background:radial-gradient(circle at 40% 34%,#fff,var(--dc, #fff) 65%);border-color:#ffffffbf;box-shadow:0 0 calc(var(--ds, 20px) * .7) calc(var(--ds, 20px) * .14) var(--dg, rgba(255, 255, 255, .4)),inset 0 0 calc(var(--ds, 20px) * .2) #fffc;animation:dotPop .35s cubic-bezier(.25,1.8,.4,1)}@keyframes dotPop{0%{transform:scale(.4)}60%{transform:scale(1.3)}to{transform:scale(1)}}.dot.wave{animation:dotWave .5s cubic-bezier(.3,1.6,.4,1)}@keyframes dotWave{0%,to{transform:translateY(0)}40%{transform:translateY(calc(var(--ds, 20px) * -.4))}}.dot.ghost{background:transparent;border:1.5px dashed rgba(185,200,255,.4);box-shadow:none;opacity:.7}.dot.ghost.g1,.dot.ghost.g2{border-style:solid;animation:ghostPulse 1.6s ease-in-out infinite}.dot.ghost.g1{background:radial-gradient(circle at 40% 34%,#ffffff80,#d2dcff29 70%);box-shadow:0 0 calc(var(--ds, 20px) * .3) #dce6ff73}.dot.ghost.g2{background:radial-gradient(circle at 40% 34%,#ffffffe6,#d7e1ff5c 70%);box-shadow:0 0 calc(var(--ds, 20px) * .6) #e1ebffcc}@keyframes ghostPulse{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.14);opacity:1}}.dot.ghost.born{border-style:solid;background:radial-gradient(circle at 40% 34%,#fff,#ffefc2 70%);box-shadow:0 0 calc(var(--ds, 20px) * .95) calc(var(--ds, 20px) * .22) #fff0b4f2;animation:dotBorn .7s cubic-bezier(.25,1.8,.4,1)}@keyframes dotBorn{0%{transform:scale(.3)}55%{transform:scale(1.7)}to{transform:scale(1)}}.dot.gone{animation:dotGone .6s forwards}@keyframes dotGone{to{transform:scale(0);opacity:0}}#core{position:fixed;left:var(--orbX, 50%);top:calc(var(--orbY, 58%) + var(--orbR, 40px) * 1.15);transform:translate(-50%);width:max(160px,calc(var(--orbR, 40px) * 4));border:none;background:none;color:#ffe9b0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;pointer-events:none;z-index:2}#core svg{width:clamp(14px,calc(var(--orbR, 40px) * .55),22px);height:clamp(14px,calc(var(--orbR, 40px) * .55),22px);filter:drop-shadow(0 0 6px rgba(255,220,140,.8))}#core svg[hidden]{display:none}#coreLbl{font-size:clamp(10px,calc(var(--dw, 340px) * .034),15px);font-weight:900;letter-spacing:.04em;color:#ffe9b0;text-shadow:0 0 8px rgba(255,214,130,.7),0 1px 3px rgba(0,0,12,.8)}#coreLbl:empty{display:none}#core.watch svg#coreEye{animation:eyePulse 1s ease-in-out infinite}@keyframes eyePulse{0%,to{transform:scale(1);opacity:.75}50%{transform:scale(1.15);opacity:1}}#core.wiggle #coreLbl{animation:wiggle .7s ease}@keyframes wiggle{0%,to{rotate:0deg}25%{rotate:-8deg}50%{rotate:7deg}75%{rotate:-4deg}}#msg{position:fixed;left:50%;top:calc(max(56px,env(safe-area-inset-top) + 48px) + var(--dw, 340px) * .12);transform:translate(-50%);background:#181e40f0;color:#eef1ff;font-weight:900;font-size:clamp(14px,calc(var(--dw, 340px) * .052),21px);padding:.42em 1em .5em;border-radius:999px;border:1.5px solid rgba(165,185,255,.45);white-space:nowrap;box-shadow:0 6px 20px #00000c8c,0 0 18px #829bff33;animation:msgPop .38s cubic-bezier(.25,1.8,.4,1);z-index:3;pointer-events:none}@keyframes msgPop{0%{transform:translate(-50%) scale(.5);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}#msg.bye{animation:msgBye .3s ease forwards}@keyframes msgBye{to{transform:translate(-50%) scale(.6);opacity:0}}#title{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:clamp(10px,2.4vmin,20px);padding:max(24px,calc(env(safe-area-inset-top) + 16px)) 20px max(20px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#040616b8,#04061673 42%,#04061600 72%);transition:opacity .45s ease,transform .45s ease}#title.hide{opacity:0;transform:scale(1.07);pointer-events:none}#logo{font-size:clamp(46px,15vmin,84px);font-weight:900;line-height:1;display:flex}#logo span{display:inline-block;color:var(--lc, #fff);text-shadow:0 0 .1em rgba(255,255,255,.55),0 0 .28em var(--lg, rgba(255, 255, 255, .5)),0 0 .7em var(--lg, rgba(255, 255, 255, .4)),0 .05em .08em rgba(0,0,16,.55);animation:logoBob 2.6s ease-in-out infinite;animation-delay:var(--ld, 0s)}@keyframes logoBob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9%) rotate(2deg)}}#tagline{font-size:clamp(14px,3.6vmin,19px);color:#c6d1f7;text-align:center;text-shadow:0 1px 8px rgba(0,0,16,.8);word-break:keep-all}#countBox{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:clamp(2px,1.5vmin,12px)}#howmany{font-size:clamp(14px,3.4vmin,18px);color:#9fb0e4}#stepper{display:flex;align-items:center;gap:clamp(10px,3vmin,18px)}.stepBtn{display:flex;align-items:center;justify-content:center;width:clamp(46px,11vmin,58px);height:clamp(46px,11vmin,58px);border-radius:50%;border:1.5px solid rgba(150,170,255,.3);background:#1820469e;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#dfe6ff;cursor:pointer;touch-action:manipulation;box-shadow:0 6px 18px #00000c73,inset 0 1px #c8d7ff38;transition:transform .12s ease,opacity .2s ease,box-shadow .15s ease}.stepBtn svg{width:56%;height:56%}.stepBtn:active{transform:translateY(3px) scale(.94)}.stepBtn:disabled{opacity:.28;cursor:default;box-shadow:none}#startBox{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 14px 9px;min-width:clamp(84px,22vmin,116px);border-radius:20px;border:1.5px solid #ffd76a;background:#342e1aa8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff3d6;box-shadow:0 0 0 2px #ffd76a73,0 0 22px #ffd2644d,0 6px 18px #00000c73,inset 0 1px #fff0c84d}#startBox.bump{animation:startBump .28s ease}@keyframes startBump{0%{transform:scale(1)}40%{transform:scale(1.09)}to{transform:scale(1)}}#startNum{font-size:clamp(26px,6.4vmin,34px);font-weight:900;line-height:1;text-shadow:0 0 12px rgba(255,215,120,.5)}#startDots{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;max-width:clamp(76px,20vmin,104px)}#startDots i{width:var(--sd, 10px);height:var(--sd, 10px);border-radius:50%;background:var(--c);box-shadow:0 0 6px var(--c)}#start{font-family:inherit;font-weight:900;font-size:clamp(21px,5.6vmin,29px);color:#fff;text-shadow:0 1px 3px rgba(20,10,60,.5);background:radial-gradient(circle at 50% -30%,#ffffff8c,#fff0 55%),linear-gradient(135deg,#8f6bff,#4f9dff);border:none;border-radius:999px;padding:.6em 2em .66em;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 7px #35349c,0 0 30px #788cff80,0 14px 26px #00001480,inset 0 2px #ffffff8c;transition:transform .15s ease,box-shadow .15s ease}#start:active{transform:translateY(6px);box-shadow:0 1px #35349c,0 0 22px #788cff73,0 5px 12px #00001473,inset 0 2px #ffffff8c}#start:after{content:"";position:absolute;top:-30%;bottom:-30%;left:-68%;width:34%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.65),transparent);transform:skew(-18deg);animation:shine 3.2s ease-in-out infinite}@keyframes shine{0%,55%{left:-68%}85%,to{left:135%}}#bestRow[hidden]{display:none}#bestRow{display:flex;align-items:center;gap:7px;margin-top:-2px;color:#c3cdf2;font-size:clamp(14px,3.4vmin,17px);text-shadow:0 1px 6px rgba(0,0,16,.8)}#bestRow svg{width:21px;height:21px;color:#ffd76a;filter:drop-shadow(0 0 5px rgba(255,210,100,.6))}#bestRow b{font-size:1.25em;color:#ffe08a}#levelUp[hidden]{display:none}#levelUp{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,2vmin,16px);pointer-events:none;opacity:0;transition:opacity .4s ease;background:radial-gradient(circle at 50% 40%,#fff0c838,#050718b8 40%,#050718e0)}#levelUp.go{opacity:1}#luNum{position:relative;height:clamp(84px,26vmin,150px);width:clamp(84px,26vmin,150px);margin-top:-10vmin}#luNum b{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(76px,24vmin,140px);font-weight:900;line-height:1;color:#fff;text-shadow:0 0 .12em rgba(255,255,255,.8),0 0 .34em rgba(255,226,150,.85),0 0 .8em rgba(255,200,90,.6),0 .04em .1em rgba(0,0,20,.6);opacity:0}#levelUp.go #luNum .from{animation:luFromUp .95s cubic-bezier(.4,0,.2,1) forwards}#levelUp.go #luNum .to{animation:luToUp 1.05s cubic-bezier(.2,1.5,.35,1) .34s forwards}@keyframes luFromUp{0%{opacity:1;transform:translateY(0) scale(1)}30%{opacity:1;transform:translateY(-6%) scale(1.06)}to{opacity:0;transform:translateY(-48%) scale(.72);filter:blur(3px)}}@keyframes luToUp{0%{opacity:0;transform:translateY(46%) scale(.5)}55%{opacity:1;transform:translateY(0) scale(1.18)}to{opacity:1;transform:translateY(0) scale(1)}}#levelUp.down.go #luNum .from{animation:luFromDown .8s cubic-bezier(.4,0,.2,1) forwards}#levelUp.down.go #luNum .to{animation:luToDown .9s cubic-bezier(.3,1.2,.4,1) .3s forwards}@keyframes luFromDown{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(40%) scale(.7);filter:blur(3px)}}@keyframes luToDown{0%{opacity:0;transform:translateY(-40%) scale(1.15)}to{opacity:1;transform:translateY(0) scale(1)}}#luGems{display:flex;align-items:flex-end;justify-content:center;flex-wrap:wrap;gap:clamp(4px,1.2vmin,9px);min-height:clamp(30px,8vmin,48px);max-width:min(86vw,540px)}.lg{display:block;width:clamp(13px,var(--lgw, 6vmin),36px)}.lg svg{width:100%;height:auto;display:block;filter:drop-shadow(0 0 6px rgba(255,255,255,.45))}#levelUp.go .lg{animation:lgPop .5s cubic-bezier(.25,1.7,.4,1) var(--gd, 0s) backwards}@keyframes lgPop{0%{opacity:0;transform:scale(.4) translateY(20%)}to{opacity:1;transform:none}}#levelUp.go .lg.chg{animation:lgBorn .8s cubic-bezier(.2,1.6,.35,1) .42s backwards}@keyframes lgBorn{0%{opacity:0;transform:scale(0) rotate(-40deg);filter:brightness(3)}55%{opacity:1;transform:scale(1.45) rotate(6deg);filter:brightness(2.2)}to{opacity:1;transform:none;filter:none}}#levelUp.down.go .lg.chg{animation:lgGone .7s cubic-bezier(.4,0,.6,1) .28s forwards}@keyframes lgGone{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(60%) scale(.5) rotate(24deg);filter:grayscale(.7)}}#luMsg{font-size:clamp(17px,4.6vmin,26px);font-weight:900;color:#fff6dd;text-align:center;text-shadow:0 0 12px rgba(255,214,130,.7),0 2px 6px rgba(0,0,16,.8);margin-top:clamp(2px,1vmin,8px)}#levelUp.go #luMsg{animation:luMsgIn .7s cubic-bezier(.25,1.6,.4,1) .5s backwards}@keyframes luMsgIn{0%{opacity:0;transform:translateY(30%) scale(.8)}to{opacity:1;transform:none}}#fx{position:fixed;inset:0;z-index:30;pointer-events:none}
