:root{--sky-top: #0f1433;--sky-mid: #252a62;--sky-low: #4a3a78;--sky-horizon: #7a4a7a;--card: #1c2150;--card-hi: #262c66;--card-edge: #0c0f2c;--line: rgba(255, 255, 255, .1);--text: #f6f3ff;--dim: #a9a6cf;--primary: #3fb6ff;--good: #46d39a;--danger: #ff5a5f;--brass-hi: #ffe7a3;--brass: #d9a441;--brass-lo: #8a5a1c;--ivory: #f3ead6;--font: system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background:var(--sky-top);color:var(--text);font-family:var(--font);font-feature-settings:"palt";overflow:hidden;user-select:none;-webkit-user-select:none;overscroll-behavior:none}button{font-family:inherit;color:inherit}button:focus-visible{outline:3px solid var(--brass-hi);outline-offset:3px}#app{position:fixed;inset:0}#game{position:absolute;inset:0;width:100%;height:100%;touch-action:none;display:block}#ui{position:absolute;inset:0;pointer-events:none}#ui>*{pointer-events:auto}.screen{position:absolute;inset:0;overflow-y:auto;padding-top:calc(env(safe-area-inset-top,0px) + 16px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 28px + var(--banner-h, 0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:transparent;scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.screen:before{content:"";position:fixed;inset:0 0 45%;pointer-events:none;background-image:radial-gradient(1.2px 1.2px at 12% 18%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 32% 8%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 58% 22%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 76% 12%,#fff 50%,transparent 51%),radial-gradient(1.2px 1.2px at 90% 30%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 44% 38%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 6% 44%,#fff 50%,transparent 51%),radial-gradient(1.4px 1.4px at 68% 48%,#fff 50%,transparent 51%);opacity:.55}.screen-inner{position:relative;max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.icon-btn{width:46px;height:46px;border-radius:15px;border:0;flex:none;display:grid;place-items:center;cursor:pointer;background:linear-gradient(180deg,var(--card-hi),var(--card));box-shadow:0 4px 0 var(--card-edge),0 6px 12px #00000059,inset 0 1px #ffffff2e;transition:transform .06s,box-shadow .06s}.icon-btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--card-edge),inset 0 1px #ffffff2e}.brass{border:3px solid transparent;background:linear-gradient(180deg,#161a44,#222864) padding-box,linear-gradient(180deg,var(--brass-hi),var(--brass) 50%,var(--brass-lo)) border-box;box-shadow:0 8px 20px #0006}.btn{--c: var(--card-hi);--c-hi: #3a418a;--edge: var(--card-edge);flex:1;min-height:56px;border-radius:18px;border:0;font-size:18px;font-weight:900;letter-spacing:.02em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 20px;background:linear-gradient(180deg,var(--c-hi),var(--c) 55%);box-shadow:0 5px 0 var(--edge),0 8px 16px #00000059,inset 0 1px #ffffff59;text-shadow:0 1px 0 rgba(0,0,0,.25);transition:transform .06s,box-shadow .06s}.btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--edge),inset 0 1px #ffffff59}.btn.primary{--c: var(--accent);--c-hi: var(--accent-hi);--edge: var(--accent-edge);color:#fff}.btn.danger{--c: var(--danger);--c-hi: #ff9a9d;--edge: #8a1f24;color:#fff}.home-top{display:flex;align-items:center;justify-content:space-between}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:900;letter-spacing:.04em;color:#0b2a1f;background:linear-gradient(180deg,#7ff0c0,var(--good));border-radius:999px;padding:6px 12px 6px 10px;box-shadow:0 3px #1d7a55,inset 0 1px #ffffff80}.logo{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 0 4px;text-align:center}.logo-mark{line-height:0}.logo-title{margin:0;line-height:.95;font-weight:900;font-style:italic;display:flex;flex-direction:column;align-items:center;transform:skew(-8deg) rotate(-3deg)}.logo-sky{font-size:26px;letter-spacing:.32em;margin-right:-.32em;color:#fff;-webkit-text-stroke:1.5px #0b0a1a;text-shadow:3px 3px 0 #0b0a1a}.logo-blitz{font-size:64px;letter-spacing:.02em;background:linear-gradient(100deg,#ff9a2e,#ffd23f 30%,#fff6c0 45%,#ffd23f 55%,#ff7a45 80%,#ff9a2e);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(2.5px 0 0 #0b0a1a) drop-shadow(-2.5px 0 0 #0b0a1a) drop-shadow(0 2.5px 0 #0b0a1a) drop-shadow(0 -2.5px 0 #0b0a1a) drop-shadow(4px 5px 0 #0b0a1a);animation:gold-shine 4s ease-in-out infinite}@keyframes gold-shine{0%,60%{background-position:100% 0}to{background-position:-150% 0}}.logo-mark{animation:glide 4s ease-in-out infinite}@keyframes glide{50%{transform:translate(2px,-4px) rotate(4deg) scale(1.06)}}.logo-sub{color:var(--dim);font-size:13px;margin:2px 0 0;line-height:1.5}.cards{display:grid;gap:14px;grid-template-columns:1fr}.ticket{--c: var(--primary);position:relative;display:grid;grid-template-columns:80px 1fr auto;align-items:stretch;width:100%;min-height:96px;padding:0;border:0;text-align:left;cursor:pointer;background:linear-gradient(180deg,#fbf6ea,var(--ivory));color:#1d1b3a;border-radius:18px;box-shadow:0 5px #b9ab8c,0 10px 18px #00000059;transition:transform .06s,box-shadow .06s;animation:rise .4s cubic-bezier(.2,.9,.3,1.2) both}.ticket:active{transform:translateY(4px);box-shadow:0 1px #b9ab8c,0 4px 8px #0000004d}.ticket .shine{position:absolute;inset:0;border-radius:18px;overflow:hidden;pointer-events:none}.ticket .shine:before{content:"";position:absolute;top:-20%;bottom:-20%;width:40%;left:-60%;background:linear-gradient(100deg,#fff0,#ffffff8c,#fff0);transform:skew(-18deg);animation:sweep 5s ease-in-out infinite;animation-delay:inherit}@keyframes sweep{0%{left:-60%}22%,to{left:130%}}.ticket .stub{display:grid;place-items:center;color:#fff;border-radius:18px 0 0 18px;background:linear-gradient(180deg,#ffffff4d,#fff0 45%),var(--c);border-right:2px dashed rgba(29,27,58,.25)}.ticket .stub svg{filter:drop-shadow(0 2px 0 rgba(0,0,0,.25))}.ticket:before,.ticket:after{content:"";position:absolute;left:70px;width:20px;height:20px;border-radius:50%;background:var(--sky-mid)}.ticket:before{top:-10px}.ticket:after{bottom:-10px;box-shadow:0 -5px #b9ab8c inset}.ticket .body{padding:14px 4px 14px 16px;display:flex;flex-direction:column;gap:3px;min-width:0}.ticket .name{font-size:19px;font-weight:900}.ticket .desc{font-size:12.5px;color:#6b6889}.ticket .meta{display:flex;gap:12px;align-items:baseline;margin-top:6px;font-size:11px;font-weight:800;color:#8a87a6;letter-spacing:.06em}.ticket .meta b{font-size:18px;color:#1d1b3a;margin-left:4px;font-variant-numeric:tabular-nums;letter-spacing:0}.ticket .new{color:#fff;background:var(--c);border-radius:6px;padding:2px 8px;font-weight:900}.ticket .go{align-self:center;margin-right:14px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--c);box-shadow:0 3px 0 var(--c-edge),inset 0 1px #fff6}.home-foot{color:var(--dim);font-size:12px;text-align:center;margin:6px 0 0}@keyframes rise{0%{opacity:0;transform:translateY(16px) scale(.97)}}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:radial-gradient(80% 60% at 50% 40%,#141846bf,#080a1ee6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding-top:calc(env(safe-area-inset-top,0px) + 24px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 24px + var(--banner-h, 0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}}.panel{position:relative;width:min(340px,100%);border-radius:28px;padding:30px 20px 26px;display:flex;flex-direction:column;align-items:center;gap:6px;animation:pop-in .35s cubic-bezier(.2,.9,.3,1.3) both}@keyframes pop-in{0%{transform:scale(.7);opacity:0}}.ribbon{position:absolute;top:-18px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;white-space:nowrap;padding:8px 20px;border-radius:14px;font-weight:900;font-size:15px;color:#fff;background:linear-gradient(180deg,var(--accent-hi),var(--accent) 60%);box-shadow:0 4px 0 var(--accent-edge),0 6px 12px #00000059;text-shadow:0 1px 0 rgba(0,0,0,.3)}.result-label{color:var(--brass-hi);font-size:12px;font-weight:900;letter-spacing:.2em;margin-top:8px}.result-score{font-size:100px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 4px 0 #0b0e2a,0 8px 20px rgba(0,0,0,.5);animation:count-pop .5s .1s cubic-bezier(.2,.9,.3,1.4) both}@keyframes count-pop{0%{transform:scale(.3);opacity:0}}.result-best{color:var(--dim);font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}.new-best{display:inline-flex;align-items:center;gap:6px;color:#3a2300;background:linear-gradient(180deg,var(--brass-hi),var(--brass));border-radius:999px;padding:6px 16px;box-shadow:0 3px 0 var(--brass-lo);font-size:16px;font-weight:900;letter-spacing:.06em;animation:pop .5s .35s cubic-bezier(.2,.9,.3,1.5) both,glow 1.6s .9s ease-in-out infinite}@keyframes pop{0%{transform:scale(0)}}@keyframes glow{50%{box-shadow:0 3px 0 var(--brass-lo),0 0 22px #ffdc8cb3}}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti i{position:absolute;top:-20px;width:9px;height:14px;border-radius:2px;animation-name:confetti-fall;animation-timing-function:cubic-bezier(.3,.6,.6,1);animation-fill-mode:both}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(calc(var(--r) + 540deg));opacity:.9}}.retry-hint{font-size:14px;font-weight:800;color:var(--dim);opacity:0;transition:opacity .15s}.retry-hint.ready{opacity:1;animation:breathe 1.4s ease-in-out infinite}@keyframes breathe{50%{opacity:.45}}.actions{display:flex;gap:12px;width:min(340px,100%)}.actions.column{flex-direction:column}.settings-top{display:flex;align-items:center;gap:12px}.settings-top h2{margin:0;font-size:24px;font-weight:900;text-shadow:0 2px 0 #2a2468}.group{border-radius:22px;overflow:hidden}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;font-size:16px;font-weight:800;min-height:64px}.row+.row{border-top:1px solid var(--line)}.row small{display:block;color:var(--dim);font-size:12px;font-weight:500;margin-top:2px}.switch{width:58px;height:34px;border-radius:17px;border:0;position:relative;cursor:pointer;flex:none;background:#0b0e2a;box-shadow:inset 0 2px 4px #0009}.switch:after{content:"";position:absolute;top:4px;left:4px;width:26px;height:26px;border-radius:50%;background:linear-gradient(180deg,#fff,#d9d4ee);box-shadow:0 2px #00000059;transition:left .15s}.switch[aria-checked=true]{background:var(--good);box-shadow:inset 0 2px 4px #0000004d}.switch[aria-checked=true]:after{left:28px}.row .btn{flex:none;min-height:42px;font-size:14px;padding:0 14px}.note{color:var(--dim);font-size:12px;line-height:1.7;margin:0}.pause-btn{position:absolute;top:calc(env(safe-area-inset-top,0px) + 16px);left:max(12px,env(safe-area-inset-left,0px));width:46px;height:44px;border-radius:14px;border:0;cursor:pointer;display:grid;place-items:center;background:linear-gradient(180deg,#fff3,#ffffff14);box-shadow:0 3px #00000059,inset 0 1px #ffffff4d}.pause-btn:active{transform:translateY(2px);box-shadow:0 1px #00000059}#shade{position:fixed;inset:0;z-index:50;pointer-events:none;transform:translateY(-101%);background:repeating-linear-gradient(180deg,#0000 0 22px,#0000000d 22px 24px,#ffffff59 24px 25px),linear-gradient(180deg,#ece6d8,#d9d1bf);box-shadow:0 6px 18px #00000073;display:grid;place-items:center}#shade:after{content:"";position:absolute;bottom:14px;left:50%;width:64px;height:12px;margin-left:-32px;border-radius:6px;background:linear-gradient(180deg,#bdb39c,#9a8f78);box-shadow:inset 0 1px #ffffff80}#shade .shade-logo{color:#8a7f68;font-weight:900;font-size:20px;letter-spacing:.1em;display:flex;align-items:center;gap:8px}#shade.closing{transition:transform .22s cubic-bezier(.5,0,.75,0);transform:translateY(0);pointer-events:auto}#shade.opening{transition:transform .28s cubic-bezier(.25,1,.5,1);transform:translateY(-101%)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.policy{padding:16px 18px;line-height:1.7;font-size:13.5px;color:var(--text)}.policy h3{font-size:15px;margin:14px 0 4px}.policy h3:first-child{margin-top:0}.policy p,.policy ul{margin:0 0 6px}.policy ul{padding-left:1.2em}.policy a{color:var(--brass-hi);word-break:break-all}body{background:#0a0820;overflow:hidden}#app{right:auto;container-type:inline-size}#app.framed{box-shadow:0 0 0 2px #000,0 0 60px #000000b3}.mute-btn{position:absolute;top:14px;right:14px;color:var(--text)}.web-title{cursor:pointer;padding-top:64px;text-align:center;padding-inline:20px}.web-logo{margin:0;font-size:clamp(30px,12cqw,52px);line-height:1.05;letter-spacing:.02em;color:#fff;-webkit-text-stroke:2px #0b0a1a;paint-order:stroke fill;text-shadow:0 5px 0 #0b0a1a,0 0 24px var(--accent);text-wrap:balance}.web-tagline{margin:0;color:var(--brass-hi);font-weight:800;font-size:15px;text-wrap:balance}.web-howto{margin:0;max-width:30ch;color:var(--dim);font-size:13px;line-height:1.6}.web-play{flex:none;display:inline-flex;align-items:center;gap:10px;font-size:20px;padding:16px 30px}.web-play svg{width:22px;height:22px}
