:root{--navy:#16365c;--navy-deep:#0c2140;--navy-ink:#081629;--ink:#142032;--ink-soft:#142032a8;--sign:#f6f8fa;--steel:#c7d0da;--steel-light:#e6ebf0;--steel-deep:#8794a4;--cream:#fff6e2;--island:#0a6fc2;--island-light:#3e98de;--island-deep:#064a85;--tsuen-wan:#e2231a;--tsuen-wan-light:#f55a4b;--tsuen-wan-deep:#93140e;--tko:#7d4a9d;--tko-light:#a678c4;--tko-deep:#4c2a63;--gold:#f6be37;--gold-light:#ffe484;--gold-deep:#c98a1c;--scrim:8, 22, 41;--shadow-soft:0 14px 30px #040c1a61;--line:3px;--font-display:"Huninn", "PingFang HK", "PingFang TC", "Noto Sans HK", "Noto Sans TC", "Microsoft JhengHei", "Heiti TC", sans-serif;--font-body:"Noto Sans HK", "PingFang HK", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", "Heiti TC", sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--hud-height:84px;--hud-bottom:calc(var(--safe-top) + var(--hud-height));--spring:cubic-bezier(.34, 1.56, .64, 1);--out:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior:none;background:var(--navy);touch-action:manipulation;height:100%;margin:0;overflow:hidden}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-body);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;font-weight:700;position:fixed;inset:0}#root{height:100dvh;position:fixed;inset:0;overflow:hidden}h1,h2,p,ul,dl,dd{margin:0;padding:0}ul{list-style:none}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0}a{color:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}canvas{display:block}.mtr-canvas{touch-action:none;width:100%;height:100%;position:fixed;inset:0}.mtr-screen{z-index:10;position:fixed;inset:0}.is-arming{pointer-events:none}.btn{--face:var(--sign);--edge:var(--steel-deep);--text:var(--ink);--lift:7px;border:var(--line) solid var(--ink);background:var(--face);min-height:52px;color:var(--text);font-family:var(--font-display);letter-spacing:.04em;white-space:nowrap;box-shadow:inset 0 3px 0 #ffffff73, 0 var(--lift) 0 calc(var(--line) * -1) var(--edge), 0 var(--lift) 0 0 var(--ink), 0 calc(var(--lift) + 8px) 18px #040c1a5c;transition:transform 90ms var(--out), box-shadow 90ms var(--out);border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:20px;font-weight:400;line-height:1;text-decoration:none;display:inline-flex;position:relative}.btn:active:not(:disabled){transform:translateY(calc(var(--lift) - var(--line)));box-shadow:inset 0 3px 0 #ffffff4d, 0 var(--line) 0 calc(var(--line) * -1) var(--edge), 0 var(--line) 0 0 var(--ink), 0 6px 10px #040c1a4d}.btn-primary{--face:linear-gradient(180deg, var(--tsuen-wan-light) 0%, var(--tsuen-wan) 58%, #c11a12 100%);--edge:var(--tsuen-wan-deep);--text:#fff;text-shadow:0 2px #50060466}.btn-blue{--face:linear-gradient(180deg, var(--island-light) 0%, var(--island) 60%, #075ca3 100%);--edge:var(--island-deep);--text:#fff;text-shadow:0 2px #021e3c66}.btn-boss{--face:linear-gradient(180deg, var(--tko-light) 0%, var(--tko) 60%, #69398a 100%);--edge:var(--tko-deep);--text:#fff;text-shadow:0 2px #280e3873}.btn-gold{--face:linear-gradient(180deg, var(--gold-light) 0%, var(--gold) 62%, #eaa72b 100%);--edge:var(--gold-deep)}.btn-soft{--face:linear-gradient(180deg, #fff 0%, var(--steel-light) 100%);--edge:var(--steel-deep)}.btn-sm{--lift:5px;letter-spacing:.02em;border-radius:14px;min-height:46px;padding:0 12px;font-size:16px}.btn-lg{--lift:8px;border-radius:18px;min-height:58px;font-size:23px}.btn-xl{--lift:9px;letter-spacing:.08em;border-radius:22px;min-height:70px;padding:0 40px;font-size:30px}.icon-btn{border:var(--line) solid var(--ink);background:var(--sign);width:46px;height:46px;color:var(--ink);pointer-events:auto;box-shadow:0 4px 0 calc(var(--line) * -1) var(--steel-deep), 0 4px 0 0 var(--ink), 0 8px 14px #040c1a52;transition:transform 90ms var(--out), box-shadow 90ms var(--out);border-radius:50%;place-items:center;display:inline-grid;position:relative}.icon-btn:after{content:"";border-radius:50%;position:absolute;inset:-6px}.icon-btn:active:not(:disabled){box-shadow:0 2px 0 calc(var(--line) * -1) var(--steel-deep), 0 2px 0 0 var(--ink), 0 4px 8px #040c1a47;transform:translateY(2px)}.icon-btn.is-muted{color:var(--tsuen-wan)}.icon-btn.is-small{border-width:2.5px;width:40px;height:40px}.icon-btn.is-small:after{inset:-4px}.icon-btn.is-small svg{width:20px;height:20px}.corner-mute{top:calc(var(--safe-top) + 12px);right:calc(var(--safe-right) + 14px);z-index:5;position:absolute}.mtr-card{border:var(--line) solid var(--ink);background:linear-gradient(180deg, #fff 0%, var(--sign) 60%, var(--steel-light) 100%);box-shadow:0 6px 0 var(--ink), var(--shadow-soft);border-radius:22px}.sign{border:2.5px solid var(--ink);background:linear-gradient(180deg, #fff, var(--sign));min-width:0;color:var(--ink);letter-spacing:.06em;white-space:nowrap;box-shadow:0 3px 0 var(--ink);border-radius:10px;align-items:center;gap:7px;padding:4px 11px 4px 9px;font-size:15px;font-weight:900;line-height:1.25;display:inline-flex}.route{flex:none;align-items:center;display:inline-flex}.route-dot{border:2px solid var(--ink);border-radius:50%;width:11px;height:11px}.route-dot.is-from{background:var(--from,var(--tsuen-wan))}.route-dot.is-to{background:var(--to,var(--island))}.route-link{background:var(--ink);width:9px;height:3px;margin:0 -1px}.sign-name{text-overflow:ellipsis;overflow:hidden}.sticker{--sticker-face:#fff;--sticker-depth:var(--island);--sticker-ink:var(--ink);--sticker-shadow:#040c1a5c}.mtr-start{padding:calc(var(--safe-top) + 14px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 12px) calc(var(--safe-left) + 16px);flex-direction:column;align-items:center;display:flex}.start-scrim{background:radial-gradient(80% 30% at 50% 50%, #ffffff14 0%, #fff0 100%), linear-gradient(180deg, rgba(var(--scrim), .84) 0%, rgba(var(--scrim), .5) 30%, rgba(var(--scrim), .28) 48%, rgba(var(--scrim), .72) 66%, rgba(var(--scrim), .92) 100%);animation:.42s ease-out both fade-in;position:absolute;inset:0}.start-head{flex-direction:column;align-items:center;gap:8px;width:100%;margin-top:18px;display:flex;position:relative}.start-title{font-family:var(--font-display);flex-direction:column;align-items:center;font-size:clamp(46px,15vw,76px);font-weight:400;line-height:1;display:flex}.title-latin{z-index:1;letter-spacing:.08em;animation:pop-in .46s var(--spring) both;margin-bottom:-.06em;font-size:.56em;position:relative;rotate:-4deg}.title-latin .sticker{--sticker-face:#fff;--sticker-face-lo:var(--steel-light);--sticker-depth:var(--island)}.title-main{justify-items:center;display:grid}.title-row{grid-area:1/1;gap:.01em;display:flex}.title-char{rotate:var(--tilt);animation:drop-in .62s var(--spring) both, title-wave 3.4s ease-in-out infinite;animation-delay:calc(.12s + var(--i) * 70ms), calc(1.2s + var(--i) * .16s)}.title-row .sticker.title-char{--sticker-face:var(--gold);--sticker-face-hi:#fff4c2;--sticker-face-lo:#f0a02c;--sticker-depth:var(--tsuen-wan)}.title-halo .sticker-halo{stroke-width:.42em;transform:translateY(.08em)}.title-halo .sticker.has-halo .sticker-art{filter:drop-shadow(0 5px 8px #040c1a73)}@keyframes title-wave{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.start-tagline{border:var(--line) solid var(--ink);background:var(--sign);max-width:100%;color:var(--ink);letter-spacing:.04em;text-align:center;box-shadow:0 4px 0 var(--ink), 0 10px 18px #040c1a59;animation:pop-in .46s .42s var(--spring) both;border-radius:10px;margin-top:6px;padding:7px 14px 11px;font-size:clamp(14px,4.5vw,18px);font-weight:900;line-height:1.3;position:relative;overflow:hidden}.start-tagline:after{content:"";background:linear-gradient(90deg, var(--tsuen-wan) 0 33.3%, var(--tko) 33.3% 66.6%, var(--island) 66.6% 100%);height:5px;position:absolute;bottom:0;left:0;right:0}.start-gap{flex:1;min-height:10px}.start-foot{flex-direction:column;align-items:center;gap:10px;width:100%;max-width:400px;display:flex;position:relative}.start-bests{gap:7px;width:100%;margin-bottom:6px;display:grid}.start-best{animation:rise-in .46s calc(.5s + var(--i) * 80ms) var(--out) both}.sign.is-row{width:100%;padding:6px 12px 6px 10px;display:flex}.sign-best{color:var(--steel-deep);letter-spacing:.02em;font-variant-numeric:tabular-nums;margin-left:auto;padding-left:8px;font-size:13px;font-weight:700}.sign-best.has-time{color:var(--ink);font-weight:900}.start-go{width:100%;animation:pop-in .52s .64s var(--spring) both}.start-boss{width:100%;animation:rise-in .46s .76s var(--out) both}.start-locked{color:#ffffffb8;letter-spacing:.03em;align-items:center;gap:6px;min-height:30px;font-size:13px;animation:.4s .76s both fade-in;display:inline-flex}.start-links{flex-wrap:wrap;justify-content:center;gap:0 6px;display:flex}.start-link{color:#fff;text-underline-offset:5px;border-radius:12px;align-items:center;min-height:40px;padding:0 12px;font-size:15px;-webkit-text-decoration:underline #ffffff73;text-decoration:underline #ffffff73;text-decoration-thickness:2px;display:inline-flex}.start-link:active{opacity:.75}.start-disclaimer{color:#fff9;letter-spacing:.04em;text-align:center;font-size:11px;font-weight:500}@media (height<=600px){.start-head{margin-top:6px}.start-title{font-size:clamp(42px,13.5vw,64px)}.btn-xl{min-height:62px;font-size:27px}.start-foot{gap:8px}.start-link{min-height:34px}}.mtr-hud{top:0;left:var(--stage-left,0px);width:var(--stage-width,100%);height:var(--hud-bottom);z-index:20;padding:calc(var(--safe-top) + 6px) max(10px, var(--safe-right)) 0 max(10px, var(--safe-left));box-shadow:inset 0 -2px 0 #ffffff14, 0 3px 0 var(--navy-ink);color:#fff;pointer-events:none;background:linear-gradient(#081629f0 0%,#0e2644db 100%);position:fixed}.hud-main{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;height:50px;display:grid}.hud-station{letter-spacing:.02em;max-width:100%;box-shadow:0 2px 0 var(--navy-ink);justify-self:start;gap:5px;padding:3px 7px 3px 6px;font-size:13px}.hud-station .route-dot{width:10px;height:10px}.hud-station .route-link{width:6px}.hud-timer{border:2.5px solid var(--ink);background:linear-gradient(180deg, #fff 0%, var(--sign) 100%);min-width:96px;height:50px;color:var(--ink);box-shadow:0 3px 0 var(--navy-ink);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:2px 10px 3px;display:flex}.hud-timer-label{letter-spacing:.16em;color:var(--ink-soft);font-size:10px;line-height:1.2}.hud-timer-value{font-family:var(--font-body);font-variant-numeric:tabular-nums;letter-spacing:.01em;font-size:30px;font-weight:900;line-height:1}.hud-timer-value small{margin-left:2px;font-size:13px;font-weight:700}.mtr-hud.is-warning .hud-timer{border-color:var(--navy-ink);background:linear-gradient(180deg, var(--tsuen-wan-light), var(--tsuen-wan));color:#fff;animation:.5s ease-in-out infinite alternate timer-pulse}.mtr-hud.is-warning .hud-timer-label{color:#ffffffdb}@keyframes timer-pulse{0%{box-shadow:0 3px 0 var(--navy-ink), 0 0 0 0 #ff5a4b00;transform:scale(1)}to{box-shadow:0 3px 0 var(--navy-ink), 0 0 0 6px #ff5a4b59;transform:scale(1.07)}}.hud-buttons{justify-self:end;gap:8px;display:flex}.hud-sub{align-items:center;gap:8px;height:22px;margin-top:5px;display:flex}.hud-stat{letter-spacing:.04em;color:#ffffffd1;white-space:nowrap;flex:none;align-items:baseline;gap:3px;font-size:12px;line-height:1;display:inline-flex}.hud-stat b{color:#fff;font-variant-numeric:tabular-nums;min-width:2.2ch;font-size:15px;font-weight:900;display:inline-block}.hud-stat.is-perfect b{color:var(--gold-light)}.hud-progress{border:2px solid var(--navy-ink);background:#ffffff2e;border-radius:99px;flex:1;height:9px;position:relative;overflow:hidden}.hud-progress-fill{border-radius:inherit;background:linear-gradient(180deg, #ffffff59, #fff0 60%), var(--to,var(--island));transform-origin:0;transition:transform .16s linear;position:absolute;inset:0}.bump{animation:bump .26s var(--spring)}.mtr-ready{left:var(--stage-left,0px);width:var(--stage-width,100%);top:calc(var(--hud-bottom) + 52px);z-index:15;pointer-events:none;place-items:center;padding:0 16px;display:grid;position:fixed;bottom:40%}.ready-card{border:var(--line) solid var(--ink);width:min(100%,330px);box-shadow:0 5px 0 var(--ink), var(--shadow-soft);text-align:center;animation:pop-in .46s .2s var(--spring) both;background:#fffffff0;border-radius:20px;flex-direction:column;align-items:center;gap:8px;padding:12px 16px 14px;display:flex}.ready-level{color:var(--to,var(--ink));letter-spacing:.12em;font-size:15px;font-weight:900}.ready-tutorial{color:var(--ink);letter-spacing:.03em;font-size:16px;font-weight:900;line-height:1.4}.ready-tutorial span{display:inline-block}.ready-hold{border:2.5px solid var(--ink);background:var(--navy);color:#fff;letter-spacing:.12em;border-radius:99px;padding:5px 16px 6px;font-size:15px;animation:1.1s ease-in-out infinite hold-pulse}@keyframes hold-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.ready-card.is-boss{border-color:var(--ink);background:linear-gradient(#fffffff5 0%,#f0e8f6f5 100%)}.ready-station{border-width:var(--line);box-shadow:0 4px 0 var(--ink);padding:5px 14px 5px 11px;font-size:24px}.ready-station .route-dot{width:15px;height:15px}.ready-boss{font-family:var(--font-display);font-size:clamp(22px,7.4vw,30px);font-weight:400;line-height:1.15}.ready-boss .sticker{--sticker-face:#fff;--sticker-face-hi:#fff;--sticker-face-lo:#eadcf4;--sticker-depth:var(--tko)}.ready-sub{color:var(--tko-deep);letter-spacing:.04em;font-size:15px;font-weight:900}.finger-hint{--loop:3.2s;flex:none;width:150px;height:84px;position:relative}.hint-track{border-top:2.5px dashed #1420324d;height:0;position:absolute;top:37px;left:30px;right:30px}.hint-track:before,.hint-track:after{content:"";border:2.5px solid #14203261;border-width:2.5px 2.5px 0 0;width:8px;height:8px;position:absolute;top:-6.5px}.hint-track:before{left:-2px;transform:rotate(-135deg)}.hint-track:after{right:-2px;transform:rotate(45deg)}.hint-mover{width:0;height:0;animation:hint-drag var(--loop) ease-in-out infinite;position:absolute;top:38px;left:75px}.hint-ring{width:40px;height:40px;animation:hint-ring var(--loop) linear infinite;position:absolute;top:-20px;left:-20px;overflow:visible}.hint-ring circle{fill:none;stroke-width:4px}.hint-ring-track{stroke:#14203226}.hint-ring-fill{stroke:var(--gold);stroke-linecap:round;stroke-dasharray:100;transform-origin:20px 20px;animation:hint-charge var(--loop) linear infinite;transform:rotate(-90deg)}.hint-dash{fill:none;width:24px;height:26px;stroke:var(--island);stroke-width:3.4px;stroke-linecap:round;stroke-linejoin:round;opacity:0;animation:hint-dash var(--loop) ease-out infinite;position:absolute;top:-40px;left:-12px;overflow:visible}.hint-finger{width:34px;height:48px;fill:var(--cream);stroke:var(--ink);stroke-width:2.6px;stroke-linejoin:round;transform-origin:15px 2px;animation:hint-finger var(--loop) ease-in-out infinite;position:absolute;top:-2px;left:-15px;overflow:visible}.hint-nail{fill:#fff;stroke-width:1.6px}@keyframes hint-finger{0%{opacity:0;transform:translateY(18px)}8%{opacity:1;transform:translateY(6px)}14%,74%{opacity:1;transform:translateY(0)scale(.92)}82%{opacity:1;transform:translateY(-14px)scale(1)}92%,to{opacity:0;transform:translateY(-18px)scale(1)}}@keyframes hint-drag{0%,42%{transform:translate(0)}53%{transform:translate(-24px)}66%{transform:translate(24px)}74%,to{transform:translate(0)}}@keyframes hint-ring{0%,12%{opacity:0;transform:scale(.6)}15%,76%{opacity:1;transform:scale(1)}88%,to{opacity:0;transform:scale(1.7)}}@keyframes hint-charge{0%,14%{stroke-dashoffset:100px}40%,to{stroke-dashoffset:0}}@keyframes hint-dash{0%,76%{opacity:0;transform:translateY(14px)}82%{opacity:1;transform:translateY(0)}94%,to{opacity:0;transform:translateY(-16px)}}.mtr-banners{left:var(--stage-left,0px);width:var(--stage-width,100%);top:calc(var(--hud-bottom) + 10px);z-index:25;pointer-events:none;flex-direction:column;align-items:center;gap:2px;display:flex;position:fixed}.banner{--fit:calc((var(--stage-width,100vw) - 40px) / var(--chars,8) / 1.12);font-family:var(--font-display);font-weight:400;font-size:min(36px, var(--fit));animation:banner-life var(--dur,1.4s) linear both;line-height:1.2}.banner-body{animation:banner-pop .36s var(--spring) both;display:inline-block;position:relative}@keyframes banner-life{0%{opacity:0}6%,80%{opacity:1}to{opacity:0}}@keyframes banner-pop{0%{transform:translateY(-14px)scale(.5)}to{transform:none}}.banner.is-go .sticker{--sticker-face:var(--cream);--sticker-face-hi:#fff;--sticker-face-lo:#f6e4bb;--sticker-depth:var(--island)}.banner.is-perfect .banner-body{animation:banner-pop-skew .36s var(--spring) both;transform:skew(-9deg)}.banner.is-perfect .sticker{--sticker-face:var(--gold);--sticker-face-hi:#fff6c8;--sticker-face-lo:#f0a02c;--sticker-depth:var(--tsuen-wan)}.banner.is-perfect .banner-body:before{content:"";background:repeating-linear-gradient(180deg, var(--gold-light) 0 3px, transparent 3px 9px);width:.9em;height:56%;animation:speed-lines .36s .12s var(--out) both;border-radius:2px;margin-right:.1em;position:absolute;top:22%;right:100%}@keyframes banner-pop-skew{0%{transform:translate(-30px)skew(-9deg)scale(.6)}to{transform:skew(-9deg)}}@keyframes speed-lines{0%{opacity:0;transform:translate(16px)scaleX(.3)}to{opacity:1;transform:none}}.banner.is-warning .sticker{--sticker-face:var(--tsuen-wan-light);--sticker-face-hi:#ff9a88;--sticker-face-lo:var(--tsuen-wan);--sticker-depth:var(--tsuen-wan-deep);--sticker-halo:#fff}.banner.is-warning .banner-body{animation:banner-pop .3s var(--spring) both, banner-flash .5s .3s ease-in-out infinite alternate}@keyframes banner-flash{0%{opacity:1;transform:scale(1)}to{opacity:.62;transform:scale(1.05)}}.mtr-result{justify-content:center;display:flex}.result-scrim{background:radial-gradient(130% 80% at 50% 26%, rgba(var(--scrim), .55) 0%, rgba(var(--scrim), .9) 100%);animation:.32s ease-out both fade-in;position:absolute;inset:0}.mtr-result.is-success .result-scrim:before{content:"";left:50%;top:calc(var(--safe-top) + 72px);background:repeating-conic-gradient(#ffe48429 0 10deg, #ffe48400 10deg 20deg);border-radius:50%;width:520px;height:520px;margin:-260px 0 0 -260px;animation:24s linear infinite rays-spin;position:absolute;-webkit-mask-image:radial-gradient(closest-side,#000 30%,#0000 100%);mask-image:radial-gradient(closest-side,#000 30%,#0000 100%)}@keyframes rays-spin{to{transform:rotate(360deg)}}.result-column{z-index:2;width:100%;max-width:420px;height:100%;padding:calc(var(--safe-top) + 12px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 14px) calc(var(--safe-left) + 16px);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:relative}.result-station{flex:none;animation:.32s ease-out both fade-in}.result-heading{max-width:100%;font-family:var(--font-display);text-align:center;animation:drop-in .54s var(--spring) both;flex:none;font-size:clamp(34px,11vw,48px);font-weight:400;line-height:1.15}.mtr-result.is-success .result-heading .sticker{--sticker-face:var(--gold);--sticker-face-hi:#fff4c2;--sticker-face-lo:#f0a02c;--sticker-depth:var(--to,var(--island))}.mtr-result.is-fail .result-heading .sticker{--sticker-face:var(--steel-light);--sticker-face-hi:#fff;--sticker-face-lo:var(--steel);--sticker-depth:var(--steel-deep)}.result-card{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;width:100%;min-height:0;animation:rise-in .48s .12s var(--out) both;flex-direction:column;flex:0 auto;gap:10px;padding:14px;display:flex;overflow:hidden auto}.result-card>*{flex:none}.result-score{flex-direction:column;align-items:center;padding-top:2px;display:flex;position:relative}.result-label{color:var(--ink-soft);letter-spacing:.14em;font-size:13px}.result-time{font-family:var(--font-display);align-items:baseline;gap:4px;font-weight:400;line-height:1.1;display:flex}.result-num{--sticker-face:#fff;--sticker-face-lo:var(--steel-light);--sticker-depth:var(--to,var(--island));font-variant-numeric:tabular-nums;font-size:clamp(52px,17vw,70px)}.result-unit{color:var(--ink);font-size:22px}.result-breakdown{color:var(--ink-soft);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;gap:2px 6px;margin-top:4px;font-size:13px;display:flex}.result-penalty{color:var(--tsuen-wan)}.result-missed{font-family:var(--font-display);padding:6px 0 2px;font-size:clamp(30px,10vw,40px);font-weight:400;line-height:1.15}.result-missed .sticker{--sticker-face:#fff;--sticker-depth:var(--tsuen-wan)}.result-stamp{border:3px solid var(--tsuen-wan);color:var(--tsuen-wan);font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap;box-shadow:inset 0 0 0 2px #ffffffe6, inset 0 0 0 3.5px var(--tsuen-wan);background:#ffffffdb;border-radius:8px;margin-top:8px;padding:4px 10px 5px;font-size:19px;font-weight:400;line-height:1.1;animation:.42s cubic-bezier(.3,1.4,.6,1) .65s both stamp-in;rotate:-5deg}@keyframes stamp-in{0%{opacity:0;transform:scale(2.4)}to{opacity:1;transform:scale(1)}}.result-quip{border:2.5px solid var(--ink);color:var(--ink);text-align:center;background:#fff;border-radius:14px;margin:2px 6px 0;padding:8px 12px 9px;font-size:15px;line-height:1.45;position:relative}.result-quip:before{content:"";border:solid var(--ink);background:#fff;border-width:2.5px 0 0 2.5px;width:14px;height:14px;margin-left:-7px;position:absolute;top:-9px;left:50%;transform:rotate(45deg)}.result-title-card{border:2.5px solid var(--ink);background:linear-gradient(180deg, #1d4775 0%, var(--navy) 100%);color:#fff;text-align:center;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 10px;padding:9px 12px 13px;display:flex;position:relative;overflow:hidden}.result-title-card:after{content:"";background:linear-gradient(90deg, var(--from,var(--tsuen-wan)) 0 50%, var(--to,var(--island)) 50% 100%);height:5px;position:absolute;bottom:0;left:0;right:0}.result-title-label{color:var(--navy);letter-spacing:.1em;background:#fff;border-radius:6px;padding:2px 8px;font-size:12px}.result-title-name{font-family:var(--font-display);letter-spacing:.06em;font-size:24px;font-weight:400;line-height:1.2}.result-title-quip{color:#fffc;flex-basis:100%;font-size:13px;line-height:1.4}.result-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.result-stat{border:2px solid var(--steel);text-align:center;background:#fff;border-radius:12px;flex-direction:column-reverse;justify-content:flex-end;align-items:center;gap:2px;padding:7px 4px 6px;display:flex}.result-stat dt{color:var(--ink-soft);letter-spacing:.02em;font-size:11px;line-height:1.3}.result-stat dd{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:20px;font-weight:900;line-height:1.1}.result-stat dd small{margin-left:1px;font-size:11px}.result-stat.is-best dd{font-size:18px}.result-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.result-chip{border:2px solid var(--ink);letter-spacing:.04em;box-shadow:0 2px 0 var(--ink);animation:pop-in .42s .8s var(--spring) both;border-radius:99px;padding:4px 12px 5px;font-size:13px}.result-chip.is-clear{background:var(--gold);color:var(--ink)}.result-chip.is-unlock{background:var(--tko);color:#fff;animation-delay:.92s}.result-actions{width:100%;animation:rise-in .48s .22s var(--out) both;flex-direction:column;flex:none;gap:10px;padding-bottom:6px;display:flex}.result-actions>.btn{width:100%}.result-row{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;display:grid}.result-row .btn{min-width:0}@media (height<=620px){.result-column{gap:8px}.result-heading{font-size:clamp(30px,10vw,40px)}.result-card{gap:8px;padding:10px 12px}.result-num{font-size:clamp(46px,15vw,60px)}.btn-lg{min-height:52px;font-size:21px}}.mtr-overlay{z-index:40;padding:calc(var(--safe-top) + 16px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 16px) calc(var(--safe-left) + 16px);background:rgba(var(--scrim), .74);place-items:center;animation:.2s ease-out both fade-in;display:grid;position:fixed;inset:0}.overlay-card{text-align:center;width:min(100%,320px);animation:pop-in .36s var(--spring) both;flex-direction:column;align-items:stretch;gap:14px;padding:20px 20px 24px;display:flex}.overlay-title{font-family:var(--font-display);font-size:40px;font-weight:400;line-height:1.15}.credits-card{width:min(100%,340px);max-height:calc(100vh - 32px);max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 32px);text-align:left;gap:10px;padding:16px 16px 20px}.credits-title{font-family:var(--font-display);text-align:center;font-size:26px;font-weight:400;line-height:1.2}.credits-intro{color:var(--ink-soft);font-size:12px;font-weight:500;line-height:1.5}.credits-list{overscroll-behavior:contain;gap:8px;min-height:0;margin:-2px -4px;padding:4px;display:grid;overflow-y:auto}.credits-item{border-top:2px solid var(--steel);gap:2px;padding-top:8px;display:grid}.credits-item:first-child{border-top:0;padding-top:0}.credits-use{font-size:13px;font-weight:900;line-height:1.35}.credits-source{color:var(--ink-soft);overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;flex-wrap:wrap;gap:0 8px;font-size:11.5px;font-weight:500;line-height:1.5;display:flex}.credits-source a{color:var(--island-deep);text-underline-offset:2px;font-weight:700}.credits-source a:focus-visible{outline-offset:1px;outline-width:2px}.credits-close{flex:none}.mtr-overlay.is-rotate{z-index:50;background:var(--navy)}.rotate-card{align-items:center;gap:8px;padding:16px 20px 18px}.rotate-icon{fill:none;stroke:var(--ink);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.rotate-phone{fill:var(--steel-light);transform-origin:32px 28px;animation:phone-turn 2.4s var(--out) infinite}.rotate-arrow{stroke:var(--island)}@keyframes phone-turn{0%,20%{transform:rotate(-90deg)}60%,to{transform:rotate(0)}}.rotate-text{font-family:var(--font-display);font-size:22px;font-weight:400;line-height:1.3}.mtr-toast{left:50%;bottom:calc(var(--safe-bottom) + 22px);z-index:60;border:var(--line) solid var(--ink);background:var(--navy-deep);color:#fff;white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 32px);box-shadow:var(--shadow-soft);animation:toast-rise 2.2s var(--out) both;pointer-events:none;border-radius:999px;padding:12px 20px;font-size:15px;position:fixed;overflow:hidden;transform:translate(-50%)}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes pop-in{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-in{0%{opacity:0;transform:translateY(32px)scale(.96)}to{opacity:1;transform:none}}@keyframes drop-in{0%{opacity:0;transform:translateY(-46px)scale(.7)}70%{opacity:1;transform:translateY(4px)scale(1.06)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-rise{0%{opacity:0;transform:translate(-50%,16px)scale(.9)}10%,85%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-8px)scale(.98)}}@keyframes fade-out-hold{0%,80%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.btn,.icon-btn,.hud-progress-fill{transition:none}.title-latin,.title-char,.start-tagline,.start-best,.start-go,.start-boss,.ready-card,.result-heading,.result-card,.result-actions,.result-chip,.result-stamp,.overlay-card{animation:.2s ease-out both fade-in}.bump,.ready-hold,.mtr-hud.is-warning .hud-timer,.mtr-result.is-success .result-scrim:before,.rotate-phone,.hint-mover,.hint-finger,.hint-ring,.hint-ring-fill,.banner-body,.banner.is-warning .banner-body,.banner.is-perfect .banner-body:before{animation:none}.hint-finger{transform:scale(.92)}.hint-dash{display:none}.banner,.mtr-toast{animation-name:fade-out-hold}}
