@font-face{font-family:Chakra Petch;font-style:italic;font-weight:600;font-display:swap;src:url(../media/ed86ea294cecdfc8-s.2uu590gjt662h.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Chakra Petch;font-style:italic;font-weight:600;font-display:swap;src:url(../media/3e2477c7b8e68d5e-s.088lbu2ld_n8h.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chakra Petch;font-style:italic;font-weight:600;font-display:swap;src:url(../media/355395ce12ae11cb-s.3759abrx-3dhl.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chakra Petch;font-style:italic;font-weight:600;font-display:swap;src:url(../media/ce3ab447c3d1743b-s.p.2t2ct0u059see.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Chakra Petch;font-style:italic;font-weight:700;font-display:swap;src:url(../media/8199cbc3a56a7df2-s.38pq6kgalootl.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Chakra Petch;font-style:italic;font-weight:700;font-display:swap;src:url(../media/d19939ed59aaf52a-s.0j_4bhhh0r5zd.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chakra Petch;font-style:italic;font-weight:700;font-display:swap;src:url(../media/5a7e60059775bb07-s.1sdd4f85y58cf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chakra Petch;font-style:italic;font-weight:700;font-display:swap;src:url(../media/79b36e90403db0bc-s.p.2pdoay2t-xuf1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:600;font-display:swap;src:url(../media/664b8486c44baa2d-s.02rcwld1m-ji4.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:600;font-display:swap;src:url(../media/c5ac7bd8b2d9fce6-s.17ncvpysp7y4m.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8457265da2739722-s.23gs_p123xcz8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:600;font-display:swap;src:url(../media/dc0c65e819e3bb6c-s.p.1d4mg4yt567i3.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:700;font-display:swap;src:url(../media/087f4c42b279024d-s.1kvbj6zk-dn_f.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:700;font-display:swap;src:url(../media/891a32df73aa4402-s.3jgirgqxkqq7r.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9186901afaa5c996-s.2t53t_nth6shn.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:700;font-display:swap;src:url(../media/374a88ea0960b3d4-s.p.2fz20jxmyia8o.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Chakra Petch Fallback;src:local(Arial);ascent-override:96.77%;descent-override:30.05%;line-gap-override:0.0%;size-adjust:102.51%}.chakra_petch_ca247c99-module__nhVuIW__className{font-family:Chakra Petch,Chakra Petch Fallback}.chakra_petch_ca247c99-module__nhVuIW__variable{--font-display:"Chakra Petch", "Chakra Petch Fallback"}
:root{--bg:#060b1b;--bg-panel:#0d1428;--bg-card:#111a30;--border:#23305a;--text:#f5f8ff;--text-dim:#8e9bbd;--primary:#00d9ff;--secondary:#ff3ca6;--accent:#ffbd45;--success:#66ffb2;--danger:#ff4d6d;--led-yellow:#ffd400;--led-cyan:#00d9ff;--glass:#0d152e9e;--glass-strong:#090f22d6;--glass-border:#8cb4ff38;--font-hud:var(--font-display), "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", sans-serif;--font-mono:"SF Mono", ui-monospace, "Menlo", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic,Apple SD Gothic Neo,sans-serif}button{cursor:pointer;border:none;font-family:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--primary);outline-offset:4px}.app-main{flex-direction:column;min-height:100dvh;display:flex;position:relative}.glass-panel{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(14px)saturate(1.2);border-radius:18px;box-shadow:0 18px 50px #00000059,inset 0 1px #ffffff0f}.neon-backdrop{z-index:0;pointer-events:none;background:radial-gradient(120% 60% at 50% 100%,#3a1458 0%,#170d3a 38%,#0000 72%),linear-gradient(#03050f 0%,#0b1236 60%,#1b0f3a 100%);position:fixed;inset:0;overflow:hidden}.neon-skyline{opacity:.85;width:100%;height:52%;position:absolute;bottom:0;left:0;right:0}.neon-canvas-host{position:absolute;inset:0}.neon-canvas{opacity:0;width:100%;height:100%;transition:opacity 1s;display:block}.neon-canvas-host[data-ready] .neon-canvas{opacity:1}.neon-backdrop-shade{background:radial-gradient(at 50% 45%,#0000 55%,#0306108c 100%);transition:background .6s;position:absolute;inset:0}.neon-backdrop[data-mode=start] .neon-backdrop-shade{background:linear-gradient(90deg,#060b1bc7 0%,#060b1b59 42%,#0000 68%),radial-gradient(at 50% 45%,#0000 55%,#03061080 100%)}.game-header{background:linear-gradient(#060b1be0,#060b1b66 80%,#0000);justify-content:space-between;align-items:center;padding:12px 22px;display:flex}.line-title{align-items:center;gap:10px;display:flex}.line-badge{color:#fff;letter-spacing:.02em;border-radius:8px;justify-content:center;align-items:center;min-width:30px;height:30px;padding:0 6px;font-size:14px;font-weight:800;display:inline-flex;box-shadow:0 0 0 2px #ffffffd9}.line-badge-lg{border-radius:50%;min-width:40px;height:40px;font-size:17px}.line-name{text-shadow:0 0 14px #0009;font-size:18px;font-weight:800}.line-direction{color:#cfdaf5;border:1px solid var(--glass-border);background:var(--glass);border-radius:999px;padding:3px 10px;font-size:12px}.game-header-right{align-items:center;gap:14px;display:flex}.progress-count{font-family:var(--font-hud);color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:15px}.progress-count small{color:var(--text);margin-left:6px;font-weight:700}.game-timer{font-family:var(--font-hud);letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.game-quit-button{border:1px solid var(--glass-border);background:var(--glass);color:#cfdaf5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;padding:7px 14px;font-size:13px;font-weight:700;transition:border-color .15s,color .15s,box-shadow .15s}.game-quit-button:hover{border-color:var(--danger);color:#ffb3c1;box-shadow:0 0 14px #ff4d6d59}.game-sound-button:hover{border-color:var(--primary);color:var(--text);box-shadow:0 0 14px #00d9ff4d}.game-sound-off{color:var(--text-dim)}.game-screen{z-index:1;flex-direction:column;flex:1;height:100dvh;min-height:0;display:flex;position:relative;overflow:hidden}.game-hud-top{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);gap:16px;padding:12px 22px 16px;display:grid;position:relative}.game-hud-top .game-header-right{justify-self:end}.game-hud-top .progress-bar{margin:0;position:absolute;bottom:4px;left:22px;right:22px}.station-strip{grid-template-columns:repeat(4,minmax(0,1fr));justify-self:center;width:min(620px,100%);list-style:none;display:grid;position:relative}.station-strip:before{content:"";background:linear-gradient(90deg, var(--line) 0 33.3%, #fff3 33.3%);height:3px;box-shadow:0 0 10px color-mix(in srgb, var(--line) 60%, transparent);border-radius:3px;position:absolute;top:9px;left:12.5%;right:12.5%}.strip-stop{flex-direction:column;align-items:center;gap:3px;min-width:0;display:flex;position:relative}.strip-node{z-index:1;background:#0b1130;border:3px solid #fff9;border-radius:50%;width:15px;height:15px;margin:2px 0}.strip-stop-passed .strip-node{background:var(--line);border-color:var(--line);box-shadow:0 0 10px var(--line)}.strip-stop-current .strip-node{border:4px solid var(--line);width:23px;height:23px;box-shadow:0 0 0 4px color-mix(in srgb, var(--line) 35%, transparent), 0 0 20px var(--line);background:#fff;margin:-2px 0;animation:1.4s ease-in-out infinite node-pulse}@keyframes node-pulse{50%{box-shadow:0 0 0 8px color-mix(in srgb, var(--line) 10%, transparent), 0 0 26px var(--line)}}.strip-name{text-overflow:ellipsis;white-space:nowrap;color:#dfe7fb;max-width:100%;font-size:15px;font-weight:800;overflow:hidden}.strip-stop-current .strip-name{color:#fff;text-shadow:0 0 12px var(--line);font-size:18px}.strip-en{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-family:var(--font-hud);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-size:10px;overflow:hidden}.game-stage{flex:1;min-height:0;position:relative}.hud-stats{z-index:2;gap:8px;width:210px;display:grid;position:absolute;top:6px;right:18px}.hud-stat{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px);border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:8px 14px;display:grid}.hud-stat dt{font-family:var(--font-hud);letter-spacing:.16em;color:var(--text-dim);font-size:11px;font-weight:700}.hud-stat dd{justify-self:end;align-items:baseline;gap:4px;display:flex}.hud-stat .game-timer{font-size:24px}.hud-value{font-family:var(--font-hud);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.hud-unit{color:var(--text-dim);font-size:11px}.hud-meter{background:#ffffff1a;border-radius:999px;grid-column:1/-1;height:4px;margin-top:4px;overflow:hidden}.hud-meter span{border-radius:inherit;background:linear-gradient(90deg, #2bd47f, var(--success));height:100%;box-shadow:0 0 10px var(--success);transition:width .3s;display:block}.hud-meter-accuracy span{background:linear-gradient(90deg, #0098ff, var(--primary));box-shadow:0 0 10px var(--primary)}.hud-combo .hud-value{color:#ff8fcf;font-size:32px;font-style:italic;line-height:1}.hud-combo-hot{border-color:#ff3ca6b3;box-shadow:0 0 22px #ff3ca666,inset 0 0 18px #ff3ca61f}.hud-combo-hot .hud-value{color:#fff;text-shadow:0 0 10px var(--secondary), 0 0 22px var(--secondary)}.hud-combo-value{animation:.18s ease-out combo-pop;display:inline-block}@keyframes combo-pop{0%{transform:scale(1.35)}to{transform:scale(1)}}.map-wrap{z-index:2;aspect-ratio:1000/620;background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px);border-radius:14px;width:min(300px,24vw);padding:6px;position:absolute;top:6px;left:18px}.line-map{width:100%;height:100%;display:block}.line-map path{filter:drop-shadow(0 0 6px)}.station-label{fill:var(--text-dim);font-size:15px}.map-wrap .station-label{display:none}.map-wrap .station-label-target{font-size:46px;display:block}.station-label-target{fill:#fff;font-size:19px;font-weight:800}.station-target{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.35}}.train{transition:transform .45s cubic-bezier(.3,.9,.35,1)}.train-halo{opacity:.35}.map-center-title{fill:var(--text);opacity:.5;font-size:34px;font-weight:800}.map-center-sub{fill:var(--text-dim);font-size:15px}.progress-bar{background:#ffffff1a;border-radius:999px;height:3px;overflow:hidden}.progress-fill{height:100%;box-shadow:0 0 12px var(--line);border-radius:999px;transition:width .4s}.fx-layer{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.fx-arrival{opacity:0;background:linear-gradient(#301a06b8,#100a20b8);border:1.5px solid #ffbd45cc;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:10px 46px 14px;animation:1.1s cubic-bezier(.2,.8,.2,1) forwards arrival-in;display:flex;position:absolute;top:16%;left:50%;box-shadow:0 0 30px #ffbd4573,inset 0 0 22px #ffbd4529}.fx-arrival-label{font-family:var(--font-hud);letter-spacing:.4em;color:var(--accent);font-size:12px;font-weight:700}.fx-arrival-name{letter-spacing:.14em;color:#fff;text-shadow:0 0 18px #ffbd45bf;font-size:40px;font-weight:900}.fx-arrival-en{font-family:var(--font-hud);letter-spacing:.22em;color:#ffe2a6;font-size:14px}@keyframes arrival-in{0%{opacity:0;transform:translate(-50%,14px)scale(.9)}16%{opacity:1;transform:translate(-50%)scale(1)}70%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-12px)scale(1.03)}}.fx-perfect,.fx-combo strong,.clear-title,.new-record{font-family:var(--font-hud);font-style:italic;font-weight:700}.fx-perfect{letter-spacing:.04em;color:#0000;background:linear-gradient(90deg, #b8f8ff, var(--primary) 50%, #c7a6ff);filter:drop-shadow(0 0 2px #000a28e6)drop-shadow(0 0 14px #00d9ffd9);opacity:0;-webkit-background-clip:text;background-clip:text;font-size:clamp(34px,5vw,58px);animation:.75s ease-out forwards fx-pop;position:absolute;top:calc(16% + 132px);left:50%}@keyframes fx-pop{0%{opacity:0;transform:translate(-50%,8px)skew(-10deg)scale(.7)}20%{opacity:1;transform:translate(-50%)skew(-10deg)scale(1.08)}60%{opacity:1;transform:translate(-50%)skew(-10deg)scale(1)}to{opacity:0;transform:translate(-50%,-14px)skew(-10deg)scale(1)}}.fx-combo{opacity:0;flex-direction:column;align-items:flex-end;line-height:.9;animation:.9s cubic-bezier(.2,.9,.3,1) forwards combo-burst;display:flex;position:absolute;top:44%;right:max(260px,22%)}.fx-combo span{font-family:var(--font-hud);letter-spacing:.12em;color:#ffd1ec;text-shadow:0 0 12px var(--secondary);font-size:22px;font-style:italic;font-weight:700}.fx-combo strong{color:#fff;text-shadow:0 0 14px var(--secondary), 0 0 34px var(--secondary), 4px 4px 0 #780046b3;font-size:clamp(56px,7vw,92px)}.fx-combo:before{content:"";background:linear-gradient(90deg, transparent, var(--secondary));filter:blur(.5px);width:220px;height:3px;position:absolute;top:50%;right:40%;box-shadow:0 -18px #ff3ca699,0 16px #ff3ca666}@keyframes combo-burst{0%{opacity:0;transform:translate(40px)skew(-10deg)scale(.8)}18%{opacity:1;transform:translate(0)skew(-10deg)scale(1.08)}65%{opacity:1;transform:translate(0)skew(-10deg)scale(1)}to{opacity:0;transform:translate(-20px)skew(-10deg)scale(1)}}.fx-miss{font-family:var(--font-hud);letter-spacing:.06em;color:#ff5d7a;text-shadow:0 0 14px #ff4d6de6;opacity:0;background:radial-gradient(#0000 58%,#ff285052 100%);justify-content:center;align-items:flex-end;padding-bottom:10px;font-size:30px;font-style:italic;font-weight:700;animation:.4s ease-out forwards fx-miss;display:flex;position:absolute;inset:0}@keyframes fx-miss{0%{opacity:1;transform:translate(-3px)}15%{transform:translate(3px)}30%{opacity:.85;transform:translate(0)}to{opacity:0}}.typing-area{z-index:2;flex-direction:column;align-items:center;padding:0 18px 14px;display:flex;position:relative}.current-card{text-align:center;width:min(760px,100%);color:var(--text);-webkit-backdrop-filter:blur(14px);background:linear-gradient(#0a122ecc,#050918e6);border:1.5px solid #00d9ff99;border-radius:22px;padding:10px 36px 16px;position:relative;box-shadow:inset 0 0 0 1px #00d9ff1f,inset 0 0 40px #00d9ff14,0 0 30px #00d9ff47,0 18px 50px #00000080}.current-card:before,.current-card:after{content:"";border-top:3px solid var(--primary);width:46px;height:22px;filter:drop-shadow(0 0 6px var(--primary));position:absolute;top:-6px}.current-card:before{border-left:3px solid var(--primary);border-top-left-radius:14px;left:-6px}.current-card:after{border-right:3px solid var(--primary);border-top-right-radius:14px;right:-6px}.current-head{letter-spacing:.2em;color:#cfe9ff;justify-content:center;align-items:baseline;gap:12px;font-size:13px;font-weight:700;display:flex}.current-head-en{font-family:var(--font-hud);color:var(--primary);font-size:12px}.terminal-tag{background:linear-gradient(90deg, #ff3c6e, var(--secondary));color:#fff;border-radius:999px;padding:3px 14px;font-size:12px;font-weight:800;position:absolute;top:-13px;left:50%;transform:translate(-50%);box-shadow:0 0 16px #ff3ca699}.current-name{letter-spacing:.14em;text-shadow:0 0 22px #00d9ff73,0 2px #00000073;font-size:clamp(40px,6vh,62px);font-weight:900;line-height:1.2}.current-kana{letter-spacing:.32em;color:#e3ebff;font-size:17px;font-weight:700}.current-romaji{max-width:100%;font-family:var(--font-hud);letter-spacing:.3em;overflow-wrap:anywhere;background:#00000059;border:1px solid #00d9ff40;border-radius:12px;margin-top:8px;padding:4px 18px;font-size:clamp(24px,4vh,34px);font-weight:700;display:inline-block}.romaji-typed{color:var(--primary);text-shadow:0 0 12px #00d9ffe6}.romaji-last{animation:.15s ease-out char-glow;display:inline-block}@keyframes char-glow{0%{color:#fff;text-shadow:0 0 18px #fff, 0 0 30px var(--primary);transform:scale(1.35)}to{transform:scale(1)}}.romaji-rest{color:#dce6ff73}.romaji-progress{background:#ffffff1a;border-radius:999px;width:min(420px,90%);height:5px;margin:10px auto 0;overflow:hidden}.romaji-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--success));height:100%;box-shadow:0 0 10px var(--primary);transition:width .12s ease-out;display:block}.miss-a{animation:.12s ease-out miss-flash-a}.miss-b{animation:.12s ease-out miss-flash-b}@keyframes miss-flash-a{0%{border-color:var(--danger);transform:translate(-3px);box-shadow:0 0 34px #ff4d6dbf,inset 0 0 30px #ff4d6d4d}60%{transform:translate(2px)}}@keyframes miss-flash-b{0%{border-color:var(--danger);transform:translate(-3px);box-shadow:0 0 34px #ff4d6dbf,inset 0 0 30px #ff4d6d4d}60%{transform:translate(2px)}}.typing-hint{text-align:center;color:#aab6d6;text-shadow:0 1px 6px #000c;margin-top:10px;font-size:13px}.typing-capture{opacity:0;pointer-events:none;caret-color:#0000;border:0;width:1px;height:1px;padding:0;font-size:16px;position:fixed;bottom:0;left:50%}.typing-capture-overlay{z-index:10;color:var(--text);touch-action:manipulation;background:#060b1ba8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:60px 0 0}.typing-capture-overlay span{border:1.5px solid var(--primary);background:var(--glass-strong);color:var(--primary);border-radius:999px;padding:14px 24px;font-size:16px;font-weight:800;box-shadow:0 0 24px #00d9ff66}.start-screen{z-index:1;flex-direction:column;flex:1;align-items:center;gap:36px;min-height:100vh;padding:0 20px 40px;display:flex;position:relative}.start-hero{flex-direction:column;justify-content:center;align-items:flex-start;gap:26px;width:min(1180px,100%);min-height:100svh;padding:48px 0 96px;display:flex;position:relative}.start-led{letter-spacing:.28em;background:#03050cc7;border:1px solid #ffffff1f;border-radius:12px;gap:22px;padding:9px 22px;font-size:16px;font-weight:800;display:flex;box-shadow:inset 0 0 18px #000c}.led-yellow{color:var(--led-yellow);text-shadow:0 0 12px #ffd40099}.led-cyan{color:var(--led-cyan);text-shadow:0 0 12px #00d9ff99}.start-intro{gap:12px;display:grid}.start-title{letter-spacing:.02em;transform-origin:0 100%;flex-direction:column;font-size:clamp(48px,7.4vw,104px);font-weight:900;line-height:1.02;display:flex;transform:skew(-7deg)}.start-title-row{color:#0000;background:linear-gradient(#fff 0%,#d4f8ff 45%,#3fe0ff 100%);filter:drop-shadow(0 0 2px #00d9ffe6)drop-shadow(0 0 22px #00d9ff8c);-webkit-background-clip:text;background-clip:text;display:block}.start-title-accent{background:linear-gradient(#fff 0%,#ffd6ef 40%,#ff5cbc 100%);filter:drop-shadow(0 0 2px #ff3ca6e6)drop-shadow(0 0 24px #ff3ca68c);-webkit-background-clip:text;background-clip:text;padding-left:.6em}.start-title-en{font-family:var(--font-hud);letter-spacing:.55em;color:#d9f6ff;text-shadow:0 0 12px #00d9ffcc;font-size:clamp(13px,1.4vw,18px);font-weight:700}.start-lead{letter-spacing:.12em;text-shadow:0 2px 12px #000000b3;font-size:clamp(18px,2vw,24px);font-weight:800}.start-description{color:#c0cbe6;text-shadow:0 1px 8px #000c;max-width:34em;font-size:14px;line-height:1.8}.start-hero-actions{justify-items:start;gap:18px;display:grid}.start-hero-button{color:#fff;letter-spacing:.3em;-webkit-backdrop-filter:blur(10px);background:linear-gradient(#0078b459,#041230bf);border:2px solid #00d9ffe6;border-radius:999px;justify-content:space-between;align-items:center;gap:40px;min-width:300px;padding:18px 30px 18px 40px;font-size:26px;font-weight:900;text-decoration:none;transition:transform .18s,box-shadow .18s;animation:2.8s ease-in-out infinite neon-breathe;display:inline-flex;box-shadow:0 0 22px #00d9ff8c,inset 0 0 22px #00d9ff4d}.start-hero-button:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 0 36px #00d9ffd9,inset 0 0 30px #00d9ff73}.start-hero-arrow{transition:transform .18s}.start-hero-button:hover .start-hero-arrow{transform:translate(6px)}@keyframes neon-breathe{50%{box-shadow:0 0 34px #00d9ffbf,inset 0 0 28px #00d9ff66}}.start-quick{gap:12px;display:flex}.start-quick-item{background:var(--glass);border:1px solid var(--glass-border);color:#dbe6ff;-webkit-backdrop-filter:blur(10px);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:92px;height:76px;font-size:12px;font-weight:700;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:inline-flex}.start-quick-item svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.start-quick-item:hover{border-color:var(--primary);color:#fff;transform:translateY(-2px);box-shadow:0 0 18px #00d9ff66}.start-scroll-cue{border-bottom:2px solid #fff9;border-right:2px solid #fff9;width:22px;height:22px;animation:1.8s ease-in-out infinite scroll-cue;position:absolute;bottom:28px;left:50%;transform:translate(-50%)rotate(45deg)}@keyframes scroll-cue{50%{opacity:.5;transform:translate(-50%,8px)rotate(45deg)}}.start-departure{gap:18px;width:min(1100px,100%);scroll-margin-top:24px;display:grid}.start-section-heading{text-align:center;justify-items:center;gap:6px;display:grid}.start-section-heading h2{letter-spacing:.12em;text-shadow:0 0 18px #00d9ff80;font-size:clamp(22px,2.6vw,30px);font-weight:900}.start-section-heading>span{font-family:var(--font-hud);color:#9fb4e0;letter-spacing:.3em;white-space:nowrap;font-size:12px}.line-select{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.line-card{background:linear-gradient(180deg, color-mix(in srgb, var(--line) 18%, #0a1230) 0%, #090f22e6 58%);border:1.5px solid color-mix(in srgb, var(--line) 45%, transparent);min-width:0;color:var(--text);text-align:left;-webkit-backdrop-filter:blur(10px);border-radius:18px;flex-direction:column;align-items:stretch;gap:10px;padding:0 0 16px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff14,0 12px 32px #0006}.line-card:hover{border-color:var(--line);box-shadow:0 0 26px color-mix(in srgb, var(--line) 50%, transparent), 0 14px 36px #00000073;transform:translateY(-4px)}.line-card-active{border-color:var(--line);box-shadow:0 0 0 2px var(--line), 0 0 36px color-mix(in srgb, var(--line) 65%, transparent), 0 14px 36px #00000073}.line-card-art{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 60' preserveAspectRatio='none'%3E%3Cpath fill='%23070a22' d='M0 60V34h12V22h10v14h8V12h14v22h6V28h12v-8h10v16h8V6h16v30h6V24h12v12h8V16h14v20h6V30h10V20h12v40z'/%3E%3Cpath fill='%23ffd38a' opacity='.55' d='M14 26h3v3h-3zM36 16h3v3h-3zM36 24h3v3h-3zM94 10h3v3h-3zM100 18h3v3h-3zM94 26h3v3h-3zM146 20h3v3h-3zM152 28h3v3h-3zM58 30h3v3h-3z'/%3E%3C/svg%3E") bottom / 100% 62% no-repeat, radial-gradient(80% 90% at 50% 100%, color-mix(in srgb, var(--line) 55%, transparent) 0%, transparent 70%), linear-gradient(180deg, #050816 0%, #141a44 100%);justify-content:center;align-items:flex-end;height:118px;display:flex;position:relative;overflow:hidden}.line-card-art:after{content:"";background:var(--line);height:3px;box-shadow:0 0 14px var(--line);position:absolute;bottom:0;left:0;right:0}.train-front-icon{z-index:1;width:86px;height:auto;filter:drop-shadow(0 0 12px color-mix(in srgb, var(--line) 70%, transparent));margin-bottom:-10px;transition:transform .3s;position:relative}.line-card:hover .train-front-icon,.line-card-active .train-front-icon{transform:translateY(-4px)scale(1.05)}.train-front-lamp{filter:drop-shadow(0 0 4px #fff)}.line-card-heading,.line-card-guide,.line-card-meta,.line-card-record{margin:0 16px}.line-card-heading{align-items:center;gap:10px;margin-top:4px;display:flex}.line-card-names{min-width:0;display:grid}.line-card-name{letter-spacing:.06em;font-size:22px;font-weight:900}.line-card-en{text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-hud);letter-spacing:.08em;color:var(--text-dim);font-size:10px;overflow:hidden}.line-card-check{border-radius:50%;place-items:center;width:24px;height:24px;margin-left:auto;font-size:14px;font-weight:900;display:grid}.line-card-active .line-card-check{background:var(--line);color:#060b1b;box-shadow:0 0 12px var(--line)}.line-card-guide{color:#d4dcf2;font-size:12px;line-height:1.6}.line-card-meta{color:var(--text-dim);font-size:12px}.line-card-record{color:var(--text-dim);border-top:1px solid #ffffff1a;margin-top:auto;padding-top:10px;font-size:12px}.line-card-record-saved{color:var(--primary)}.line-card-record strong{font-family:var(--font-hud);font-variant-numeric:tabular-nums}.start-course{z-index:2;background:var(--glass-strong);border:1.5px solid color-mix(in srgb, var(--line) 60%, transparent);box-shadow:0 0 30px color-mix(in srgb, var(--line) 25%, transparent), 0 18px 40px #0006;-webkit-backdrop-filter:blur(14px);border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;padding:18px 22px;display:grid;position:sticky;bottom:16px}.route-preview{width:180px;height:auto}.route-preview-glow{fill:none;stroke:currentColor;stroke-width:40px;stroke-linecap:round;stroke-linejoin:round;opacity:.16}.route-preview-line{fill:none;stroke:currentColor;stroke-width:12px;stroke-linecap:round;stroke-linejoin:round}.route-preview-stop{fill:#0b1130;stroke:currentColor;stroke-width:5px}.route-preview-origin{fill:#fff;stroke:currentColor;stroke-width:6px}.route-preview-train-halo{fill:currentColor;opacity:.4}.route-preview-train-core{fill:#fff}.start-course-details{gap:8px;min-width:0;display:grid}.start-course-route{letter-spacing:.04em;font-size:20px;font-weight:900}.start-course-route span{color:var(--text-dim);margin-left:12px;font-size:12px;font-weight:400}.start-course-meta,.start-course-example{color:var(--text-dim);font-size:12px;line-height:1.7}.start-course-example code{color:var(--accent);font-family:var(--font-hud);letter-spacing:.1em;overflow-wrap:anywhere;font-size:15px}.start-button{color:var(--bg);letter-spacing:.04em;white-space:nowrap;box-shadow:0 0 26px color-mix(in srgb, var(--line) 70%, transparent), inset 0 -3px 0 #0000002e;border-radius:999px;padding:17px 28px;font-size:18px;font-weight:900;transition:transform .15s,filter .15s,box-shadow .15s}.start-button:hover{filter:brightness(1.1);box-shadow:0 0 40px var(--line), inset 0 -3px 0 #0000002e;transform:translateY(-2px)}.start-save-note{color:var(--text-dim);text-align:center;font-size:12px;line-height:1.7}.start-help{justify-items:center;gap:8px;display:grid}.dev-preview-button{color:var(--text-dim);font-family:var(--font-mono);background:#060b1b99;border:1px dashed #59677b;border-radius:8px;padding:8px 14px;font-size:12px}.dev-preview-button:hover{border-color:var(--primary);color:var(--primary)}.start-rules{color:#b6c2df;text-align:center;font-size:14px;line-height:2;list-style:none}.start-about{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);border-radius:18px;flex-direction:column;gap:10px;width:min(680px,100%);padding:22px 24px;display:flex}.start-about h2{font-size:16px}.start-about p{color:#b6c2df;font-size:14px;line-height:1.9}.start-about-links{flex-wrap:wrap;gap:8px 16px;padding-top:2px;display:flex}.start-about-link{color:var(--primary);font-size:14px;text-decoration:none}.start-about-link:hover{text-decoration:underline}.start-featured{width:min(110px,100%)}.start-featured-link{display:block}.start-featured-badge{width:100%;height:auto;display:block}.site-footer{border-top:1px solid var(--glass-border);width:min(680px,100%);color:var(--text-dim);justify-content:space-between;align-items:center;gap:16px;padding:18px 4px 0;font-size:13px;display:flex}.site-footer-x{width:32px;height:32px;color:var(--text-dim);border-radius:8px;justify-content:center;align-items:center;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.site-footer-x:hover{color:var(--text);background:var(--bg-card)}.site-footer-x-mark{color:var(--text);font-size:17px;line-height:1}.site-footer-links{flex-wrap:wrap;align-items:center;gap:4px 14px;display:flex}.site-footer-link{color:var(--text-dim);text-decoration:none}.site-footer-link:hover{color:var(--text);text-decoration:underline}.settings-dialog{width:min(520px,100% - 32px);color:var(--text);background:0 0;border:none;margin:auto;padding:0}.settings-dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0306109e}.settings-panel{background:var(--glass-strong);border:1.5px solid #00d9ff80;border-radius:20px;gap:16px;padding:24px;display:grid;box-shadow:0 0 34px #00d9ff4d,inset 0 0 30px #00d9ff14}.settings-title{text-align:center;letter-spacing:.3em;font-size:20px}.settings-title span{font-family:var(--font-hud);color:var(--primary);margin-left:6px;font-size:13px}.settings-group{border:none;gap:10px;display:grid}.settings-group legend{color:var(--text-dim);margin-bottom:8px;font-size:13px;font-weight:700}.settings-option{border:1px solid var(--glass-border);cursor:pointer;background:#ffffff08;border-radius:12px;grid-template-columns:auto minmax(0,1fr);column-gap:12px;padding:12px 14px;transition:border-color .15s,box-shadow .15s;display:grid}.settings-option input{width:18px;height:18px;accent-color:var(--primary);grid-row:1/span 2;align-self:center}.settings-option-name{font-weight:800}.settings-option-note{color:var(--text-dim);font-size:12px}.settings-option-active{border-color:var(--primary);box-shadow:0 0 16px #00d9ff4d}.settings-option:focus-within{outline:2px solid var(--primary);outline-offset:2px}.settings-note{color:#b6c2df;font-size:13px;line-height:1.7}.settings-close{border:1px solid var(--glass-border);color:var(--text);background:#ffffff0f;border-radius:12px;padding:13px;font-size:15px;font-weight:800}.settings-close:hover{border-color:var(--primary)}.result-screen{z-index:1;flex-direction:column;flex:1;height:100dvh;min-height:0;display:flex;position:relative;overflow:hidden}.result-body{z-index:1;flex:1;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);align-content:safe center;align-items:start;gap:18px;width:min(100%,1440px);min-height:0;margin:0 auto;padding:10px 24px 24px;display:grid;position:relative;overflow-y:auto}.result-summary,.result-actions{flex-direction:column;gap:14px;min-width:0;display:flex}.result-summary>*,.result-actions>*{margin:0}.result-clear{justify-items:start;display:grid}.result-clear-label{font-family:var(--font-hud);letter-spacing:.5em;color:var(--accent);text-shadow:0 0 10px #ffbd45b3;font-size:13px;font-weight:700}.clear-title{color:#0000;background:linear-gradient(100deg,#ffe9a8 0%,#ffc94d 30%,#fff8e0 45%,#ffb432 60%,#e0731c 100%) 0 0/250% 100%;filter:drop-shadow(0 0 18px #ffbd4599)drop-shadow(0 4px #6e3200b3);-webkit-background-clip:text;background-clip:text;padding-right:.15em;font-size:clamp(64px,9vw,124px);line-height:.95;animation:.9s cubic-bezier(.2,1.3,.3,1) both clear-in,2.4s ease-in-out .6s both clear-shine;transform:skew(-6deg)}.clear-title-small{font-size:clamp(48px,7vw,72px)}@keyframes clear-in{0%{opacity:0;letter-spacing:.3em;transform:skew(-6deg)scale(1.6)}to{opacity:1;letter-spacing:0;transform:skew(-6deg)scale(1)}}@keyframes clear-shine{0%{background-position:100% 0}to{background-position:0 0}}.result-led{background:#03050cd1;border:1px solid #ffffff1f;border-radius:14px;flex-direction:column;gap:10px;padding:16px 28px;display:flex;box-shadow:inset 0 0 22px #000c}.result-led-row{align-items:baseline;gap:30px;display:flex}.result-led-label{color:#c8d2de;letter-spacing:.5em;min-width:120px;font-size:16px;font-weight:700}.result-led-big{letter-spacing:.22em;font-size:36px;font-weight:900}.result-line-strip{color:#fff;box-shadow:0 0 24px color-mix(in srgb, var(--line) 50%, transparent);border-radius:12px;align-items:center;gap:14px;padding:10px 20px;display:flex}.result-strip-name{font-size:20px;font-weight:800}.result-strip-en{opacity:.9;margin-left:auto;font-size:14px;font-style:italic}.result-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.stat-card{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;animation:.6s cubic-bezier(.2,.9,.3,1) both card-rise;display:flex}.stat-card:nth-child(2){animation-delay:80ms}.stat-card:nth-child(3){animation-delay:.16s}.stat-card:nth-child(4){animation-delay:.24s}@keyframes card-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.stat-label{color:#c0cbe6;letter-spacing:.12em;justify-items:center;gap:2px;font-size:13px;display:grid}.stat-en{font-family:var(--font-hud);letter-spacing:.2em;color:var(--text-dim);font-size:10px}.stat-value{font-family:var(--font-hud);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:34px;font-weight:700}.stat-value small{color:var(--text-dim);margin-left:4px;font-size:14px;font-weight:700}.stat-mono{font-family:var(--font-hud)}.stat-combo{color:#fff;text-shadow:0 0 12px var(--secondary), 0 0 26px var(--secondary);font-style:italic}.stat-meter{background:#ffffff1a;border-radius:999px;width:100%;height:4px;overflow:hidden}.stat-meter span{border-radius:inherit;background:linear-gradient(90deg, #2bd47f, var(--success));height:100%;box-shadow:0 0 10px var(--success);transform-origin:0;animation:1.1s cubic-bezier(.2,.9,.3,1) .3s both meter-fill;display:block}.stat-meter-accuracy span{background:linear-gradient(90deg, #0098ff, var(--primary));box-shadow:0 0 10px var(--primary)}@keyframes meter-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.new-record{color:#ffd56b;text-shadow:0 0 12px #ffbd45d9;background:linear-gradient(#462c06bf,#1a0e04cc);border:1.5px solid #ffc94dd9;border-radius:10px;place-self:flex-start start;align-items:center;gap:10px;padding:8px 22px;font-size:26px;animation:1.6s ease-in-out infinite record-pulse;display:inline-flex;box-shadow:0 0 24px #ffbd4573}.new-record-crown{font-size:28px;font-style:normal}@keyframes record-pulse{50%{box-shadow:0 0 40px #ffbd45bf}}.ranking-banner{-webkit-backdrop-filter:blur(10px);background:linear-gradient(135deg,#4a3505d1,#281804d1);border:1.5px solid #ffc94dbf;border-radius:14px;flex-direction:column;gap:6px;padding:16px 24px;display:flex;position:relative;box-shadow:0 0 22px #ffbd4540}.ranking-title{font-family:var(--font-hud);letter-spacing:.3em;color:#ffd97a;font-size:12px;font-weight:700}.ranking-rank{color:#ffe9ad;font-size:26px;font-weight:900}.ranking-detail{color:#d9c07a;font-size:13px}.ranking-banner-global{background:linear-gradient(135deg,#062b3ad9,#0a183cd9);border-color:#00d9ffbf;padding-right:120px;box-shadow:0 0 28px #00d9ff4d}.ranking-banner-global .ranking-title{color:#7adcff}.ranking-banner-global .ranking-rank{color:#d6f5ff}.ranking-banner-global .ranking-detail{color:#8fc7e6}.ranking-laurel{color:#ffd56b;justify-content:center;align-items:baseline;width:92px;height:92px;padding-top:26px;display:flex;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.ranking-laurel svg{filter:drop-shadow(0 0 6px #ffbd45b3);width:100%;height:100%;position:absolute;inset:0}.ranking-laurel path{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round}.ranking-laurel ellipse{fill:currentColor}.ranking-laurel strong{font-family:var(--font-hud);text-shadow:0 0 12px #ffbd45cc;font-size:38px;font-weight:700;line-height:1}.ranking-laurel small{font-size:15px;font-weight:800}.result-buttons{grid-template-columns:1.6fr 1fr;gap:14px;display:grid}.x-share-button{border:1px solid var(--glass-border);color:#fff;background:#03050ccc;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:14px 20px;font-size:16px;font-weight:800;transition:transform .15s,background .15s,border-color .15s;display:flex}.x-share-button:hover{background:#11151d;border-color:#fff6;transform:translateY(-2px)}.x-share-mark{font-size:22px;line-height:1}.result-button{background:var(--glass);color:var(--text);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px);border-radius:12px;justify-items:center;gap:2px;padding:16px;font-size:18px;font-weight:800;transition:transform .15s,filter .15s,box-shadow .15s;display:grid}.result-button:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 0 20px #00d9ff59}.result-button-primary{color:#fff;box-shadow:0 0 26px color-mix(in srgb, var(--line,var(--primary)) 65%, transparent);text-shadow:0 1px 4px #00000073;border:none}.result-button-primary:hover{box-shadow:0 0 40px var(--line,var(--primary))}.result-button-en{font-family:var(--font-hud);letter-spacing:.25em;opacity:.75;font-size:10px;font-weight:700}.result-support{border-top:1px solid var(--glass-border);align-items:flex-start;gap:12px;padding-top:14px;display:flex}.result-support-content{flex:1;min-width:0}.result-support h2{color:var(--text-dim);font-size:13px;font-weight:600;line-height:1.7}.result-support p{color:var(--text-dim);margin-top:4px;font-size:12px;line-height:1.7}.result-support-link{min-height:44px;color:var(--primary);align-items:center;gap:6px;font-size:13px;text-decoration:none;display:inline-flex}.result-support-link:hover{text-decoration:underline}.result-support-dismiss{min-width:44px;min-height:44px;color:var(--text-dim);background:0 0;border-radius:6px;flex-shrink:0;padding:8px;font-size:12px}.result-support-dismiss:hover{background:var(--bg-card);color:var(--text)}.ranking-note{color:#b6c2df;text-align:center;font-size:14px}.result-petals{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.result-petals span{top:-40px;left:calc(var(--i) * 7.1% + 2%);opacity:.85;width:14px;height:10px;animation:petal-fall calc(7s + var(--i) * .43s) calc(var(--i) * -.9s) linear infinite;background:linear-gradient(135deg,#ffd6ea,#ff7ab8);border-radius:80% 0;position:absolute;box-shadow:0 0 8px #ff7ab899}@keyframes petal-fall{0%{transform:translate(0)rotate(0)}50%{transform:translate(40px,55vh)rotate(220deg)}to{transform:translate(-20px,110vh)rotate(440deg)}}.nickname-screen{z-index:1;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;min-height:100vh;padding:40px 20px;display:flex;position:relative}.nickname-title{letter-spacing:.06em;text-align:center;font-size:22px;font-weight:900}.nickname-form{flex-direction:column;align-items:center;gap:18px;width:min(480px,100%);padding:24px;display:flex}.nickname-input{border:1.5px solid var(--glass-border);width:100%;color:var(--text);text-align:center;background:#03061099;border-radius:12px;outline:none;padding:14px 18px;font-size:22px;font-weight:700;transition:border-color .15s,box-shadow .15s}.nickname-input:focus{border-color:var(--primary);box-shadow:0 0 18px #00d9ff59}.nickname-error{color:#ff7a8f;font-size:14px}.nickname-buttons{grid-template-columns:1.6fr 1fr;gap:16px;width:100%;display:grid}.nickname-buttons .result-button:disabled{opacity:.5;filter:none;cursor:default;transform:none}.leaderboard{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);border-radius:18px;flex-direction:column;gap:14px;width:min(680px,100%);padding:20px 22px 22px;scroll-margin-top:24px;display:flex}.leaderboard-header{border-bottom:3px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:10px;display:flex}.leaderboard-title{letter-spacing:.12em;font-size:16px;font-weight:900}.leaderboard-line{color:var(--text-dim);letter-spacing:.18em;font-size:12px;font-weight:700}.leaderboard-search{border:1px solid var(--glass-border);color:var(--text);background:#03061080;border-radius:10px;outline:none;padding:10px 14px;font-size:15px;transition:border-color .15s}.leaderboard-search:focus{border-color:var(--primary)}.leaderboard-table{flex-direction:column;max-height:320px;list-style:none;display:flex;overflow-y:auto}.leaderboard-row{border-bottom:1px solid #ffffff12;grid-template-columns:52px 1fr 96px 64px 68px 42px;align-items:center;gap:10px;padding:8px 10px;font-size:15px;display:grid}.leaderboard-row-own{box-shadow:inset 3px 0 0 var(--primary);background:#00d9ff14}.leaderboard-share-cell{justify-content:center;display:flex}.leaderboard-share{color:#fff;background:#05070b;border:1px solid #3b4657;border-radius:8px;width:32px;height:32px;font-size:15px;transition:transform .15s,background .15s}.leaderboard-share:hover{background:#242a34;transform:translateY(-1px)}.leaderboard-row:last-child{border-bottom:none}.leaderboard-row-head{color:var(--text-dim);letter-spacing:.1em;background:#0c1430;font-size:12px;position:sticky;top:0}.leaderboard-row-top .leaderboard-rank,.leaderboard-row-top .leaderboard-name{color:var(--led-yellow);font-weight:800}.leaderboard-rank{font-family:var(--font-hud);font-variant-numeric:tabular-nums;text-align:right;padding-right:8px;font-weight:700}.leaderboard-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.leaderboard-time{font-family:var(--font-hud);font-variant-numeric:tabular-nums}.leaderboard-kpm,.leaderboard-acc{color:var(--text-dim);font-variant-numeric:tabular-nums;text-align:right}.leaderboard-empty{color:var(--text-dim);text-align:center;padding:18px 0;font-size:14px}.leaderboard-error{color:var(--text-dim);flex-direction:column;align-items:center;gap:12px;padding:12px 0;font-size:14px;display:flex}.leaderboard-error .result-button{padding:10px 26px;font-size:15px}.doc-root{flex-direction:column;min-height:100dvh;display:flex}.doc-header{border-bottom:1px solid var(--border);background:var(--bg-panel);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;padding:14px 20px;display:flex}.doc-brand{color:var(--text);align-items:center;gap:8px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.doc-brand-mark{font-size:18px}.doc-nav{flex-wrap:wrap;gap:4px 18px;display:flex}.doc-nav-link{color:var(--text-dim);font-size:14px;text-decoration:none}.doc-nav-link:hover{color:var(--text);text-decoration:underline}.doc-main{flex:1;justify-content:center;min-width:0;padding:36px 20px 56px;display:flex}.doc-page{flex-direction:column;gap:22px;width:100%;min-width:0;max-width:760px;display:flex}.doc-title{font-size:26px;line-height:1.4}.doc-lead{color:var(--text-dim);font-size:15px;line-height:1.9}.doc-updated{color:var(--text-dim);font-size:13px}.doc-section{flex-direction:column;gap:10px;min-width:0;line-height:1.9;display:flex}.doc-section h2{border-bottom:1px solid var(--border);padding-bottom:6px;font-size:18px}.doc-section p,.doc-section li,.doc-section dd{color:var(--text-dim);font-size:14px}.doc-section strong{color:var(--text)}.doc-section ul,.doc-section ol{flex-direction:column;gap:6px;padding-left:22px;display:flex}.doc-section a{color:var(--led-cyan)}.doc-mono{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.doc-ordered li::marker{color:var(--text-dim)}.doc-spec{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.doc-spec>div{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.doc-spec dt{color:var(--text-dim);font-size:12px}.doc-spec dd{color:var(--text);font-size:16px;font-weight:700}.doc-table-wrap{border:1px solid var(--border);border-radius:12px;min-width:0;overflow-x:auto}.doc-table{border-collapse:collapse;width:100%;font-size:14px}.doc-table th,.doc-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:9px 12px}.doc-table .doc-mono,.doc-table .doc-nowrap{white-space:nowrap}.doc-table th{background:var(--bg-panel);color:var(--text-dim);font-size:12px;font-weight:600}.doc-table td{color:var(--text)}.doc-table tbody tr:last-child th,.doc-table tbody tr:last-child td{border-bottom:none}.doc-table tbody tr:hover td{background:var(--bg-card)}.doc-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.doc-card{background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:12px;flex-direction:column;gap:5px;padding:14px 16px;text-decoration:none;display:flex}.doc-card:hover{background:var(--bg-panel)}.doc-card-head{align-items:center;gap:8px;display:flex}.doc-card-symbol{color:#0b1017;border-radius:50%;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 6px;font-size:13px;font-weight:700;display:inline-flex}.doc-card-name{color:var(--text);font-size:16px;font-weight:700}.doc-card-en{color:var(--text-dim);font-size:12px}.doc-card-meta{color:var(--text-dim);font-size:13px}.doc-card-more{color:var(--led-cyan);padding-top:4px;font-size:13px}.doc-hotspots{flex-direction:column;list-style:none;display:flex;gap:12px!important;padding-left:0!important}.doc-hotspots li{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.doc-hotspot-head{color:var(--text);flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:15px;display:flex}.doc-hotspot-note{color:var(--text-dim);font-size:14px}.doc-faq{flex-direction:column;gap:14px;display:flex}.doc-faq dt{color:var(--text);margin-bottom:4px;font-size:15px;font-weight:700}.doc-cta-row{padding-top:4px}.doc-cta{background:var(--bg-card);border:1px solid var(--border);border-radius:999px;padding:12px 24px;font-size:15px;font-weight:700;text-decoration:none;display:inline-block;color:var(--led-cyan)!important}.doc-cta:hover{background:var(--bg-panel)}.doc-footer{border-top:1px solid var(--border);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:20px;display:flex}.doc-footer-links{flex-wrap:wrap;justify-content:center;gap:6px 16px;display:flex}.doc-footer-link{color:var(--text-dim);font-size:13px;text-decoration:none}.doc-footer-link:hover{color:var(--text);text-decoration:underline}.doc-footer-copy{color:var(--text-dim);font-size:12px}.support-notice{border:1px solid var(--border);border-left:3px solid var(--led-yellow);background:var(--bg-panel);border-radius:10px;padding:16px;font-size:14px}.support-wallets{gap:16px;margin-top:8px;display:grid}.support-wallet{border:1px solid var(--border);background:var(--bg-panel);border-radius:14px;gap:10px;min-width:0;padding:clamp(16px,4vw,24px);display:grid}.support-wallet-heading{align-items:center;gap:12px;display:flex}.support-wallet-heading h3{font-size:17px}.support-wallet-icon{flex-shrink:0;width:44px;height:44px;display:block}.support-address-label{color:var(--text-dim);font-size:12px}.support-address{border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--text);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:8px;padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.8;display:block}.support-address:focus-visible{outline:3px solid var(--led-cyan);outline-offset:3px}.support-copy{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.support-copy-button{border:1px solid var(--border);background:var(--bg-card);min-height:44px;color:var(--led-cyan);border-radius:8px;padding:10px 18px;font-size:14px;font-weight:700}.support-copy-button:hover{border-color:var(--led-cyan)}.support-copy-button:disabled{cursor:wait;opacity:.6}.support-copy-status{color:var(--text-dim);font-size:13px}@media (max-width:1100px){.station-strip .strip-stop:nth-child(4){visibility:hidden}.fx-combo{right:250px}}@media (max-width:860px){.line-select{grid-template-columns:repeat(2,minmax(0,1fr))}.doc-title{font-size:22px}.doc-main{padding:24px 14px 44px}.doc-header{padding:12px 14px}.doc-table th,.doc-table td{padding:8px 10px}.game-hud-top{grid-template-columns:minmax(0,1fr) auto}.station-strip{grid-area:2/1/auto/-1}.map-wrap{display:none}.hud-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:auto;left:12px;right:12px}.hud-stat{grid-template-columns:minmax(0,1fr);padding:5px 8px}.hud-stat dt{letter-spacing:.12em;font-size:9px}.hud-stat dd{justify-self:start}.hud-value,.hud-stat .game-timer{font-size:16px}.hud-unit{font-size:9px}.hud-combo .hud-value{font-size:20px}.hud-meter{display:none}.fx-combo{top:30%;right:16px}.current-card{min-width:0;padding-inline:18px}.current-name{font-size:34px}.start-course{grid-template-columns:auto minmax(0,1fr)}.start-course .start-button{order:-1;grid-column:1/-1}.result-led-big{font-size:26px}.result-body{flex-direction:column;width:100%;margin:0;display:flex;overflow-y:auto}.result-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.result-buttons{grid-template-columns:1fr}.station-label{font-size:18px}.nickname-buttons{grid-template-columns:1fr}.leaderboard-row{grid-template-columns:40px 1fr 88px 56px 40px}.leaderboard-acc{display:none}}@media (max-width:640px){.start-screen{gap:28px;padding:0 16px 24px}.start-hero{justify-content:flex-end;align-items:stretch;gap:20px;padding:32px 0 72px}.start-led{letter-spacing:.12em;align-self:flex-start;gap:14px;padding:8px 14px;font-size:13px}.start-title{font-size:clamp(40px,13vw,60px)}.start-title-en{letter-spacing:.32em}.start-hero-actions{justify-items:stretch}.start-hero-button{width:100%;min-width:0;font-size:22px}.start-quick{justify-content:space-between}.start-quick-item{flex:1;width:auto}.start-section-heading h2{font-size:20px}.line-select{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;gap:12px;margin-inline:-16px;padding:10px 14vw 14px;display:flex;overflow-x:auto}.line-select::-webkit-scrollbar{display:none}.line-card{scroll-snap-align:center;flex:0 0 72vw}.line-card:hover{transform:none}.line-card-art{height:96px}.train-front-icon{width:70px}.line-card .line-badge-lg{min-width:32px;height:32px;font-size:14px}.line-card-name{font-size:19px}.line-card-record{padding-top:8px}.start-course{grid-template-columns:1fr;gap:14px;padding:16px;position:static}.route-preview{justify-self:center;width:160px}.start-button{white-space:normal;width:100%;padding-block:18px;font-size:19px}.start-rules{text-align:left;font-size:12px}.ranking-banner-global{padding-right:104px}.ranking-laurel{width:84px;height:84px;right:8px}.leaderboard-row-head{display:none}.leaderboard-row{grid-template-columns:36px auto auto minmax(0,1fr) 36px;grid-template-areas:"rank name name name share""rank time kpm acc share";gap:2px 12px;padding:10px 8px}.leaderboard-rank{text-align:center;grid-area:rank;padding-right:0;font-size:17px}.leaderboard-name{grid-area:name;font-size:16px;font-weight:700}.leaderboard-time{grid-area:time;font-size:14px}.leaderboard-kpm,.leaderboard-acc{text-align:left;font-size:13px}.leaderboard-kpm{grid-area:kpm}.leaderboard-kpm:after{content:" 打/分";font-size:11px}.leaderboard-acc{grid-area:acc;display:block}.leaderboard-share-cell{grid-area:share}}@media (max-width:860px) and (pointer:coarse){.game-header{z-index:12;gap:8px;padding:10px 12px;position:relative}.line-title{gap:7px}.line-name{font-size:16px}.line-direction{display:none}.game-header-right{gap:8px}.game-quit-button{padding:5px 9px;font-size:12px}.progress-count{font-size:12px}.progress-count small{display:none}.game-timer{font-size:18px}.station-strip{display:none}.game-stage{flex:none;padding:0 12px;position:static}.hud-stats{position:static}.fx-layer{position:fixed}.fx-arrival{padding:8px 26px 10px;top:auto;bottom:12%}.fx-arrival-name{font-size:28px}.fx-perfect{top:auto;bottom:calc(12% + 132px)}.fx-combo{top:auto;bottom:34%}.typing-area{flex-direction:column;flex:1;justify-content:flex-start;min-height:0;padding:max(14px,3dvh) 12px 12px;display:flex}.current-card{border-radius:20px;width:100%;padding:10px 14px 14px}.current-name{font-size:clamp(30px,10vw,42px)}.current-romaji{letter-spacing:.16em;font-size:22px}.typing-hint{margin-top:12px;line-height:1.6}.typing-capture-overlay{inset:59px 0 0}}@media (max-height:720px){.game-header{padding-block:8px}.typing-area{padding-bottom:8px}.current-card{padding-block:6px 10px}.current-name{font-size:36px}.current-romaji{margin-top:4px;font-size:22px}.typing-hint{margin-top:6px}.hud-stats{gap:6px}.hud-stat{padding-block:5px}.result-body{align-content:start;gap:12px;padding:8px 18px 16px}.result-summary,.result-actions{gap:10px}.clear-title{font-size:64px}.result-led{gap:6px;padding:10px 20px}.result-led-big{font-size:28px}.stat-card,.ranking-banner{padding:10px 14px}.stat-value{font-size:26px}.ranking-rank{font-size:22px}.x-share-button,.result-button{padding-block:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.result-petals,.start-scroll-cue{display:none}}
