:root{--cream: #fff6e8;--cream-dim: rgba(255, 246, 232, .72);--gold: #ffd76a;--gold-deep: #f0a83a;--rose: #ff8f9c;--ink: #1b1840;--glass: rgba(26, 22, 64, .62);--glass-line: rgba(255, 240, 225, .2);--jp: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Sans", system-ui, sans-serif;--num: "Fredoka", "Zen Maru Gothic", system-ui, sans-serif;--ease: cubic-bezier(.22, 1, .36, 1);--spring: cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:#141a4a;overflow:hidden}body{font-family:var(--jp);color:var(--cream);-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none}#app{position:fixed;inset:0}#gl{position:absolute;inset:0;width:100%;height:100%;display:block}button{font-family:inherit;color:inherit;cursor:pointer}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.9em;height:1.7em;padding:0 .45em;margin:0 .18em;border-radius:.45em;border:1px solid rgba(255,246,232,.45);border-bottom-width:2px;font-family:var(--num);font-size:.78em;font-weight:600;letter-spacing:.02em;background:#ffffff14}.touch-only,body.touch .desk-only,body.touch .kbd{display:none}body.touch .touch-only{display:inline}.eyebrow{margin:0 0 .4em;font-family:var(--num);font-weight:600;font-size:13px;letter-spacing:.32em;color:var(--gold);text-shadow:0 1px 8px rgba(10,8,40,.85)}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .6s var(--ease)}.screen.show{opacity:1;pointer-events:auto}.hidden{display:none!important}#loading{background:radial-gradient(120% 90% at 50% 110%,#6a4a9a,#262a72 45%,#0e1238);gap:26px;transition:opacity .5s var(--ease),filter .6s var(--ease)}#loading:not(.show){filter:blur(8px)}.load-stars{display:flex;gap:22px}.load-stars i{width:34px;height:34px;background:var(--gold);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);filter:drop-shadow(0 0 12px #ffd76a);animation:twinkle 1.4s ease-in-out infinite}.load-stars i:nth-child(2){animation-delay:.2s;transform:translateY(-6px)}.load-stars i:nth-child(3){animation-delay:.4s;transform:translateY(-12px)}@keyframes twinkle{0%,to{opacity:.35;scale:.85}50%{opacity:1;scale:1.1}}.load-text{font-size:13px;letter-spacing:.2em;color:var(--cream-dim)}.load-bar{width:180px;height:3px;border-radius:3px;background:#ffffff1f;overflow:hidden}.load-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ffd76a,#fff3c8);transition:width .4s var(--ease)}#title{justify-content:flex-end;padding-bottom:8vh;background:linear-gradient(180deg,#08081e59,#08081e00 30% 55%,#08081e8c)}.logo{position:absolute;top:6vh;left:0;right:0;margin:0;display:flex;flex-direction:column;align-items:center;gap:.1em}.logo-belt{position:relative;display:flex;gap:clamp(28px,6vw,70px);transform:rotate(-12deg);margin-bottom:.2em}.logo-belt b{width:clamp(26px,4vw,44px);height:clamp(26px,4vw,44px);background:radial-gradient(circle at 40% 35%,#fffbe6,#ffd76a 45%,#f0a83a);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);filter:drop-shadow(0 0 14px rgba(255,215,106,.9));animation:beltIn 1.2s var(--spring) both,starPulse 3s ease-in-out infinite 1.2s}.logo-belt b:nth-child(2){animation-delay:.15s,1.35s}.logo-belt b:nth-child(3){animation-delay:.3s,1.5s}.logo-belt:before{content:"";position:absolute;left:10%;right:10%;top:50%;height:2px;background:linear-gradient(90deg,transparent,rgba(255,236,180,.8),transparent);animation:beltLine 1.6s var(--ease) both .5s}@keyframes beltIn{0%{opacity:0;transform:translateY(-40px) scale(.3) rotate(-90deg)}to{opacity:1;transform:none}}@keyframes beltLine{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}@keyframes starPulse{0%,to{filter:drop-shadow(0 0 10px rgba(255,215,106,.7))}50%{filter:drop-shadow(0 0 22px rgba(255,230,150,1))}}.logo-word{display:flex;font-weight:900;font-size:clamp(60px,13vw,150px);line-height:1;letter-spacing:.02em}.logo-word span{display:inline-block;background:linear-gradient(180deg,#fffdf6 25%,#ffe9b8 70%,#ffc76e);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 0 rgba(120,60,120,.35)) drop-shadow(0 10px 26px rgba(255,180,120,.4));animation:wordIn .9s var(--spring) both,bob 3.4s ease-in-out infinite}.logo-word span:nth-child(1){animation-delay:.5s,1.4s}.logo-word span:nth-child(2){animation-delay:.58s,1.2s;font-size:.72em;align-self:flex-end}.logo-word span:nth-child(3){animation-delay:.66s,1s}.logo-word span:nth-child(4){animation-delay:.74s,.8s}.logo-word span:nth-child(5){animation-delay:.82s,.6s}@keyframes wordIn{0%{opacity:0;transform:translateY(30px) scale(.6)}to{opacity:1;transform:none}}@keyframes bob{0%,to{translate:0 0}50%{translate:0 -6px}}.logo-en{margin-top:.5em;padding-left:.6em;font-family:var(--num);font-weight:600;letter-spacing:.6em;font-size:14px;color:var(--gold);text-shadow:0 1px 8px rgba(10,8,40,.9)}.tagline{margin:0 0 22px;font-size:clamp(14px,1.7vw,17px);letter-spacing:.12em;text-shadow:0 1px 10px rgba(10,8,40,.9)}.start{padding:14px 30px;border-radius:999px;border:1px solid rgba(255,236,190,.6);background:linear-gradient(180deg,#ffdc8c52,#ffaa5a33);font-size:16px;font-weight:700;letter-spacing:.12em;box-shadow:0 0 #ffd76a99;animation:ping 2.2s ease-out infinite;backdrop-filter:blur(6px)}@keyframes ping{0%{box-shadow:0 0 #ffd76a8c}to{box-shadow:0 0 0 22px #ffd76a00}}.records{display:flex;gap:10px;margin-top:18px}.records:empty{display:none}.records .r{display:flex;flex-direction:column;align-items:center;gap:3px;font-family:var(--num);font-size:11px;color:var(--cream-dim)}.records .r .st{display:flex;gap:1px}.records .r .st i{width:10px;height:10px;background:#ffffff38;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.records .r .st i.on{background:var(--gold)}.title-sound{position:absolute;top:18px;right:18px;padding:8px 14px;border-radius:999px;border:1px solid var(--glass-line);background:var(--glass);font-size:12px}.title-foot{position:absolute;bottom:14px;left:18px;right:18px;display:flex;justify-content:space-between;font-size:10.5px;color:#fff6e899;gap:12px}#select{justify-content:space-between;padding:6vh 0 4vh;background:linear-gradient(180deg,#08081e73,#08081e00 22% 58%,#08081e99)}.select-head{text-align:center}.select-head h2{margin:0;font-size:clamp(26px,4vw,40px);font-weight:900;letter-spacing:.08em;text-shadow:0 2px 16px rgba(10,8,40,.8)}.select-bottom{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px}#sel-name{font-size:clamp(26px,3.6vw,40px);font-weight:900;letter-spacing:.1em;text-shadow:0 2px 18px rgba(10,8,40,.9)}.select-strip{display:flex;gap:10px;overflow-x:auto;max-width:100%;padding:8px 24px;scrollbar-width:none}.select-strip::-webkit-scrollbar{display:none}.select-strip button{position:relative;flex:none;width:66px;height:66px;border-radius:50%;border:2px solid rgba(255,246,232,.25);background:#1e1a4699 center/cover no-repeat;transition:transform .25s var(--spring),border-color .2s,opacity .2s}.select-strip button.on{transform:scale(1.18);border-color:var(--gold);box-shadow:0 0 18px #ffd76ab3}.select-strip button:not(.on){opacity:.72}.select-foot{display:flex;align-items:center;gap:22px;font-size:13px;color:var(--cream-dim)}.primary{padding:13px 28px;border-radius:999px;border:none;background:linear-gradient(180deg,#ffe7a0,#ffc25e);color:#3a2140;font-size:16px;font-weight:900;letter-spacing:.08em;box-shadow:0 6px #c47a2e,0 10px 26px #ffb45a66;transition:transform .15s var(--spring),box-shadow .15s}.primary .kbd{border-color:#3a214066;background:#fff6}.primary:hover,.primary:focus-visible{transform:translateY(-2px);outline:none}.primary:active{transform:translateY(4px);box-shadow:0 2px #c47a2e,0 4px 12px #ffb45a66}#hud{position:absolute;inset:0;pointer-events:none}.hud-left{position:absolute;top:16px;left:20px}.hud-score .lbl{font-family:var(--num);font-size:11px;letter-spacing:.3em;color:var(--gold)}.hud-score .num{font-family:var(--num);font-weight:700;font-size:38px;line-height:1;text-shadow:0 2px 12px rgba(10,8,40,.8);transition:transform .15s var(--spring)}.hud-score .num.bump{transform:scale(1.15)}.hud-score .hi{font-family:var(--num);font-size:12px;color:var(--cream-dim);margin-top:2px}.hud-center{position:absolute;top:14px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px}.belt{display:flex;align-items:center;gap:2px;padding:8px 16px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(8px)}.belt i{width:32px;height:32px;background:#ffffff40;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);transition:background .3s,transform .4s var(--spring)}.belt s{width:26px;height:4px;border-radius:2px;background:#ffffff26;transition:background .3s,box-shadow .3s}.belt i.on{background:var(--gold);transform:scale(1.15);filter:drop-shadow(0 0 6px #ffd76a)}.belt s.on{background:#ffe9a8;box-shadow:0 0 10px #ffd76a}.belt.done{animation:beltDone .9s var(--spring)}.belt b{margin-left:10px;font-family:var(--num);font-size:15px;font-weight:700;color:var(--cream-dim);min-width:2.2em}@keyframes beltDone{50%{transform:scale(1.25)}}#hud-stage{white-space:nowrap;font-family:var(--num);font-size:11px;letter-spacing:.18em;color:var(--cream);padding:3px 12px;border-radius:999px;background:#1a164080}.hud-right{position:absolute;top:14px;right:20px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.hud-hearts{display:flex;gap:4px}.hud-hearts .h{width:30px;height:28px;transition:transform .3s var(--spring),opacity .3s,filter .3s}.hud-hearts .h.lost{opacity:.3;filter:grayscale(1);transform:scale(.8)}.hud-eggs{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-line);font-family:var(--num);font-weight:600;font-size:15px}.hud-eggs .egg-ico{width:15px;height:19px;border-radius:50% 50% 46% 46%/58% 58% 42% 42%;background:radial-gradient(circle at 35% 30%,#fff,#ffe6d0 60%,#f0c0a0);box-shadow:inset -2px -2px #0000001f}.hud-clock{display:flex;align-items:center;gap:6px;font-family:var(--num);font-size:12px;color:var(--cream-dim)}.hud-clock i{width:54px;height:5px;border-radius:3px;background:#ffffff26;position:relative;overflow:hidden}.hud-clock i:after{content:"";position:absolute;inset:0;width:var(--k, 0%);background:linear-gradient(90deg,#ffd9a0,#8a8cff)}.hud-clock.night span{color:#b8c0ff}#floaters{position:absolute;inset:0;overflow:hidden}.floater{position:absolute;left:0;top:0;font-family:var(--num);font-weight:700;font-size:18px;white-space:nowrap;text-shadow:0 2px 0 rgba(60,30,70,.6),0 0 12px rgba(10,8,40,.6);will-change:transform,opacity}.floater.big{font-size:30px;color:#ffe9a8}.floater.huge{font-size:44px;color:#fff;text-shadow:0 3px 0 #c45a7a,0 0 22px rgba(255,140,180,.9)}.floater.small{font-size:14px;color:var(--cream-dim)}.floater.jp{font-family:var(--jp);font-weight:900}.floater.tip{font-size:15px;padding:5px 12px;border-radius:999px;background:#1a1640b8;border:1px solid rgba(255,215,106,.6);color:var(--gold);text-shadow:none}#banner{white-space:nowrap;position:absolute;left:50%;top:19%;transform:translate(-50%,-50%) scale(.8);text-align:center;opacity:0;transition:opacity .3s,transform .4s var(--spring)}#banner.show{opacity:1;transform:translate(-50%,-50%) scale(1)}#banner b{display:block;font-size:clamp(24px,3.6vw,40px);font-weight:900;letter-spacing:.1em;text-shadow:0 3px 0 rgba(90,40,100,.55),0 0 30px rgba(255,200,120,.7)}#banner small{display:block;margin-top:4px;font-size:14px;letter-spacing:.14em;color:var(--cream);text-shadow:0 1px 8px rgba(10,8,40,.9)}#help{position:absolute;left:50%;bottom:18px;transform:translate(-50%);display:flex;gap:18px;padding:9px 18px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-line);font-size:12.5px;white-space:nowrap;transition:opacity .8s;backdrop-filter:blur(8px)}#help.fade{opacity:0}body.touch #help{display:none}#intro{pointer-events:none!important}.intro-card{text-align:center}.intro-card>*{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .7s var(--ease)}#intro.show .intro-card>*{opacity:1;transform:none}#intro.show .intro-name{transition-delay:.08s}#intro.show .intro-en{transition-delay:.16s}#intro.show .intro-hint{transition-delay:.3s}.intro-num{font-family:var(--num);font-weight:600;font-size:14px;letter-spacing:.4em;color:var(--gold)}.intro-name{font-size:clamp(32px,5.4vw,60px);font-weight:900;letter-spacing:.08em;text-shadow:0 3px 0 rgba(90,40,100,.5),0 0 30px rgba(10,8,40,.8)}.intro-en{font-family:var(--num);font-size:13px;letter-spacing:.5em;color:var(--cream-dim);margin-top:4px}.intro-hint{margin-top:18px;display:inline-block;padding:9px 18px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-line);font-size:15px;letter-spacing:.06em}.card{min-width:min(420px,92vw);padding:28px 32px 30px;border-radius:30px;color:#5a3424;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.9) 0 2px,transparent 3px) 0 0 / 38px 34px,radial-gradient(circle at 70% 60%,rgba(214,150,90,.18) 0 2px,transparent 3px) 0 0 / 46px 40px,linear-gradient(180deg,#fffaf0,#ffeccc);border:6px solid #f2c98a;box-shadow:0 0 0 3px #d99a52,0 30px 70px #1e0e2880,inset 0 2px #fff;text-align:center;transform:translateY(16px) scale(.97);transition:transform .6s var(--spring)}.screen.show .card{transform:none}.card .eyebrow{color:#d07a2a;text-shadow:none}.card h2{margin:0 0 16px;font-size:clamp(24px,3.4vw,32px);font-weight:900;letter-spacing:.06em}.menu{display:flex;flex-direction:column;gap:10px;align-items:stretch}.menu button:not(.primary){padding:11px;border-radius:999px;border:2px solid #e6b47a;background:#fff6e6;color:#6a4028;font-size:15px;font-weight:700}.menu button:not(.primary):hover{background:#fff0d6}#result{justify-content:center;align-items:flex-start;padding-left:7vw;background:linear-gradient(90deg,#08081e80,#08081e00 55%)}.res-stars{display:flex;justify-content:center;gap:16px;margin:4px 0 18px}.res-stars .rs{display:flex;flex-direction:column;align-items:center;gap:6px;width:96px}.res-stars .rs i{width:58px;height:58px;background:#ecd6b8;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);transform:scale(.6);transition:transform .5s var(--spring),background .3s}.res-stars .rs.on i{background:radial-gradient(circle at 38% 30%,#fffbe6,#ffd650 40%,#f09a2a 85%);transform:scale(1);filter:drop-shadow(0 3px 0 #b8661a) drop-shadow(0 0 10px rgba(255,200,90,.8));animation:starLand .55s var(--spring)}@keyframes starLand{0%{transform:scale(2.2) rotate(-40deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.res-stars .rs span{font-size:11.5px;color:#a07a5a;line-height:1.35}.res-stars .rs.on span{color:#5a3424;font-weight:700}.res-stars .rs:not(.on) span b{display:block;color:#d0602a;font-weight:700}.stats{display:grid;grid-template-columns:1fr auto;gap:6px 26px;margin:0 0 22px;text-align:left;font-size:14px}.stats dt{color:#8a6448}.stats dd{margin:0;font-family:var(--num);font-weight:600;text-align:right}.stats .total{font-size:22px;color:#c0601a;border-top:2px dashed #e6c49a;padding-top:8px}.res-actions{display:flex;gap:12px;justify-content:center;align-items:center}.again{padding:13px 24px;border-radius:999px;border:2px solid #e6a45a;background:#fff6e6;color:#8a4a20;font-size:16px;font-weight:900;box-shadow:0 5px #e6b47a}.again .kbd{border-color:#8a4a2066}.again:active{transform:translateY(3px);box-shadow:0 2px #e6b47a}#ending{justify-content:flex-end;padding-bottom:5vh}.ending-card{padding:20px 28px 22px}.ending-card h2{margin-bottom:8px}.ending-card .end-score{font-family:var(--num);font-size:16px;letter-spacing:.2em;color:#a07a5a}.ending-card .end-score span{display:block;font-size:48px;color:#c0601a;letter-spacing:.02em}.end-ranks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0;font-size:12px}.credits{font-size:11px;color:#a07a5a;line-height:1.7;margin-bottom:16px}.credits p{margin:0}#touch{position:absolute;inset:0;display:none;pointer-events:none}body.touch.playing #touch{display:block;pointer-events:auto}#touch .stick{position:absolute;left:90px;bottom:120px;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;border:2px solid rgba(255,246,232,.35);background:#14103c40;opacity:.5}#touch .stick.on{opacity:1}#touch .knob{position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px;border-radius:50%;background:#fff6e8d9}#touch .tbtn{position:absolute;right:34px;bottom:70px;width:104px;height:104px;border-radius:50%;border:2px solid rgba(255,236,190,.7);background:radial-gradient(circle at 40% 35%,#fff0c88c,#ffaa5a59);font-size:20px;font-weight:900}#touch .tbtn.on{transform:scale(.92);background:#ffd76a99}#touch .tpause{position:absolute;top:14px;left:50%;margin-left:-20px;width:40px;height:40px;border-radius:50%;border:1px solid var(--glass-line);background:var(--glass);display:flex;align-items:center;justify-content:center;gap:4px}#touch .tpause i{width:4px;height:14px;border-radius:2px;background:var(--cream)}body.touch .hud-center{top:62px}#flash{position:absolute;inset:0;background:#fff8e6;opacity:0;pointer-events:none;transition:opacity .5s}#flash.on{opacity:.55;transition:none}@media(max-width:720px){.hud-score .num{font-size:28px}.belt i{width:20px;height:20px}.belt s{width:14px}#result{padding-left:0;align-items:center}.title-foot{flex-direction:column;font-size:9.5px}}body.notrans *,body.notrans *:before,body.notrans *:after{transition:none!important;animation:none!important}#banner.low{top:74%}#banner.low b{font-size:clamp(34px,6vw,64px)}.select-isles{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;padding:0 16px}.select-isles button{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:64px;padding:7px 10px 6px;border-radius:14px;border:1px solid var(--glass-line);background:var(--glass);backdrop-filter:blur(8px);font-family:var(--num);font-size:12px;font-weight:600;transition:transform .25s var(--spring),border-color .2s,background .2s}.select-isles button .st{display:flex;gap:1px}.select-isles button .st i{width:10px;height:10px;background:#ffffff38;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.select-isles button .st i.on{background:var(--gold)}.select-isles button.on{transform:translateY(-3px);border-color:var(--gold);background:#503c8cbf;box-shadow:0 0 14px #ffd76a73}.select-isles button:disabled{opacity:.35;cursor:default}.select-isles button .nm{font-family:var(--jp);font-size:10px;font-weight:700;color:var(--cream-dim);max-width:92px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats .new{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:#ff7a8a;color:#fff;font-size:11px;letter-spacing:.08em;vertical-align:2px}.go-hint{margin:-6px 0 18px;font-size:14px;line-height:1.7;color:#8a5a3a}.go-hint b{color:#c0501a}.select-isles button .sw{width:30px;height:8px;border-radius:4px}.select-isles button:disabled .st{visibility:hidden}#pause{justify-content:flex-end;padding-bottom:3.5vh;background:linear-gradient(180deg,#08081e00 60%,#08081e59)}#pause .card{min-width:0;display:flex;align-items:center;gap:18px;padding:12px 16px 12px 22px;border-width:4px}#pause .card .eyebrow{display:none}#pause .card h2{margin:0;font-size:20px;white-space:nowrap}#pause .menu{flex-direction:row;gap:8px}#pause .menu button{padding:9px 14px;font-size:13.5px;white-space:nowrap}@media(max-width:720px){#pause .card{flex-direction:column;gap:10px}#pause .menu{flex-wrap:wrap;justify-content:center}}#hud>*{transition:opacity .6s var(--ease)}body.clearing #hud>:not(#banner):not(#floaters){opacity:0}#banner.low{padding:14px 48px 16px;border-radius:999px;background:radial-gradient(closest-side,#0a08288c,#0a082800)}#banner.low small{font-size:17px;margin-top:6px;color:var(--gold)}#gameover{justify-content:flex-end;padding-bottom:3.5vh}#gameover .card{max-width:min(640px,94vw);padding:16px 22px 18px}#gameover .card h2{font-size:22px;margin-bottom:8px}#gameover .menu{flex-direction:row;justify-content:center}#touch .stick{width:104px;height:104px;margin:-52px 0 0 -52px;opacity:.4}#touch .tbtn{width:88px;height:88px;font-size:17px;opacity:.85}.credits a{color:inherit}.select-strip button.full{background-size:210%;background-position:50% 8%}
