@font-face{font-family:Highline;src:url('assets/display.ttf') format('truetype');font-display:swap;font-weight:700 900}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0c192b;color:#f7e8ca;font:15px/1.55 Arial,'Microsoft YaHei','PingFang SC',sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #a5e7c4;outline-offset:4px}button:disabled{cursor:default;opacity:.4}.shell{max-width:1344px;margin:auto;padding:0 36px}.topbar{border-bottom:1px solid #f6dcb027;background:#0c192b;position:relative;z-index:3}.nav{min-height:101px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:13px;margin-right:auto}.brand img{width:67px;height:67px;object-fit:contain;border:1px solid #f8e6b72a}.brand strong{font:800 24px/1 Highline,'Arial Narrow',sans-serif;letter-spacing:1.2px}.brand small{display:block;font-size:9px;font-weight:bold;color:#acb8be;letter-spacing:2.3px;margin-top:8px}.nav-tools{display:flex;align-items:center;gap:15px}.lang{display:flex;align-items:center;gap:2px}.lang button{background:none;border:0;padding:7px 8px;font-size:12px;color:#aab6bc}.lang button[aria-pressed=true]{color:#f9dfad;border-bottom:2px solid #f9b66b}.music{border:0;background:none;display:flex;align-items:center;gap:7px;padding:10px 0;font-size:10px;letter-spacing:1px;font-weight:bold}.music svg{width:16px;height:16px}.music[aria-pressed=false]{color:#8f9ba7}.fb{border:1px solid #8e9aab66;width:35px;height:35px;display:grid;place-items:center}.fb svg{width:17px;height:17px;fill:currentColor}.support{display:flex;align-items:center;gap:8px;background:#f5bd70;color:#17263c;font-weight:bold;font-size:12px;padding:11px 14px;box-shadow:3px 3px 0 #34445a}.support svg{width:19px;height:19px}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:11px;font-weight:bold;display:flex;align-items:center;gap:12px}.eyebrow:before{content:'';height:8px;width:8px;background:#ff8758;display:inline-block}.hero{min-height:660px;position:relative;isolation:isolate;border-bottom:1px solid #f9d5a03d;display:flex;align-items:center;overflow:hidden}.hero-art{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;object-position:60% 45%}.hero:after{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#0b1c30e8 0,#0d2032aa 28%,#0d203208 65%),linear-gradient(0deg,#0c192be6,transparent 26%)}.hero-copy{width:52%;padding:56px 0 74px}.issue{color:#f5c384}.hero h1{font:900 clamp(90px,10.5vw,152px)/.84 Highline,Impact,'Arial Narrow',sans-serif;letter-spacing:-1.5px;transform:skewY(-3deg);margin:28px 0 15px;text-shadow:5px 5px 0 #16263c}.hero .ch-title{font-size:17px;font-weight:bold;letter-spacing:7px;margin:30px 0 22px;color:#f5c384}.hero h2{font:800 25px/1.1 Highline,Impact,sans-serif;letter-spacing:1px;margin:0 0 14px}.hero p{max-width:350px;color:#d0d7d6;font-size:14px;line-height:1.75}.actions{display:flex;align-items:center;gap:20px;margin-top:27px}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:0;background:#fa8658;color:#142339;padding:15px 25px;font:800 20px/1.2 Highline,'Arial Narrow',sans-serif;letter-spacing:1px;box-shadow:4px 4px 0 #663f35;transition:transform .15s,background .15s;min-height:53px}.button:hover{background:#ffad78;transform:translateY(-2px)}.button.secondary{background:transparent;color:#f5dcae;border:1px solid #8b9aa5;box-shadow:none;font-size:16px}.text-link{font-weight:bold;font-size:12px;border-bottom:1px solid #a5acb2;padding:7px 0}.hero-caption{position:absolute;right:35px;bottom:23px;font:700 12px Highline,sans-serif;letter-spacing:3px;color:#f2d9b4}.meta-strip{display:flex;justify-content:center;gap:38px;padding:19px 24px;border-bottom:1px solid #f9d5a033;background:#152438;color:#c3cace;font-size:11px;letter-spacing:1.2px;font-weight:bold}.meta-strip span:before{content:'+';color:#f5bd70;margin-right:12px}.section{padding-top:73px;padding-bottom:73px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:28px}.section-head h2,.how h2{font:800 42px/1 Highline,Impact,sans-serif;letter-spacing:.5px;margin:10px 0}.section-head p{color:#9eacb5;font-size:13px;max-width:350px}.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.route-card{border:1px solid #5d6a764f;background:#142438;display:block;position:relative;overflow:hidden;transition:transform .2s,border-color .2s}.route-card:hover{transform:translateY(-4px);border-color:#e6ae69}.route-art{height:115px;position:relative;background:linear-gradient(#c77f69,#f1bd77)}.route-art:before,.route-art:after{content:'';position:absolute;bottom:0;width:100%;height:75%;background:#343950;clip-path:polygon(0 50%,12% 50%,12% 15%,23% 15%,23% 45%,35% 45%,35% 0,46% 0,46% 35%,58% 35%,58% 15%,70% 15%,70% 50%,83% 50%,83% 0,95% 0,95% 30%,100% 30%,100% 100%,0 100%)}.route-art:after{height:42%;background:#15243a;transform:scaleX(-1)}.route-card:nth-child(2) .route-art{background:#c5a0a4}.route-card:nth-child(3) .route-art{background:#d59076}.route-card:nth-child(4) .route-art,.route-card:nth-child(6) .route-art{background:#6a6492}.route-card:nth-child(5) .route-art{background:#d6a787}.route-art .wire{position:absolute;left:0;right:0;top:23%;height:2px;background:#ffe4a6;transform:rotate(-14deg);z-index:1}.route-art .wire:after{content:'';position:absolute;left:60%;top:-4px;width:9px;height:9px;background:#f2c77b;border:2px solid #20324a;transform:rotate(45deg)}.route-number{position:absolute;left:15px;top:10px;font:800 48px/1 Highline,sans-serif;z-index:2;color:#fae7c966}.route-card-body{padding:17px 20px}.route-card h3{font:800 24px/1 Highline,sans-serif;letter-spacing:.8px;margin:0 0 10px}.route-card small{color:#a4b2bb;font-size:11px}.route-card .arrow{position:absolute;right:20px;bottom:19px;color:#f4c181}.how{background:#e9d9ba;color:#1b2b3e;padding:55px 0}.how .eyebrow{color:#79513f}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:30px}.step{position:relative;padding-left:43px;border-top:1px solid #1a2d4140;padding-top:22px}.step strong{position:absolute;left:0;top:16px;color:#b5784f;font:800 35px Highline,sans-serif}.step h3{font:800 26px/1 Highline,sans-serif;margin:0 0 12px}.step p{font-size:13px;margin:0;line-height:1.75;color:#4e554f}.daily-banner{margin:50px 0;display:flex;align-items:center;justify-content:space-between;gap:24px;border-left:5px solid #f1b86d;padding:27px 30px;background:#182a40}.daily-banner h3{font:800 33px/1 Highline,sans-serif;margin:0 0 9px}.daily-banner p{color:#a8b7c0;font-size:13px;margin:0}.footer{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #f2ddb32b;padding:28px 0;color:#8496a4;font-size:11px}.footer a{color:#d7bc95}.footer-links{display:flex;gap:22px}.game-heading{display:flex;align-items:center;justify-content:space-between;padding:28px 0 23px}.game-heading h1{font:900 44px/.85 Highline,Impact,sans-serif;letter-spacing:1px;margin:0 0 7px}.game-heading small{color:#9aaab6;letter-spacing:2px;font-size:10px}.back{font-size:11px;color:#b2bec4;border-bottom:1px solid #607081}.game-shell{max-width:1100px;padding-bottom:15px}.cabinet{border:1px solid #6d7a8766;background:#102139;box-shadow:0 18px 60px #0005}.hud{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;background:#182b42;align-items:center;padding:15px 25px;border-bottom:3px solid #f3b36c;gap:15px}.hud small{display:block;color:#8fabbc;font-size:8px;letter-spacing:1.8px;font-weight:bold}.hud strong{font:800 23px/1.2 Highline,sans-serif;letter-spacing:.7px}.hud button{border:1px solid #627486;background:none;font-size:16px;width:36px;height:36px}.progress{height:3px;background:#263b50}.progress i{display:block;height:3px;background:#a9dfbd;width:0}.viewport{position:relative;overflow:hidden;background:#263047;touch-action:none;user-select:none}.viewport canvas{display:block;width:100%;aspect-ratio:900/540;touch-action:none}.toast{position:absolute;top:24px;left:50%;transform:translateX(-50%) rotate(-3deg);color:#102139;background:#ffe3a0;padding:7px 16px;font:800 24px/1 Highline,sans-serif;pointer-events:none;white-space:nowrap;box-shadow:3px 3px 0 #40374a;opacity:0;transition:opacity .15s}.toast.show{opacity:1}.route-label{position:absolute;bottom:15px;left:20px;font:700 12px Highline,sans-serif;letter-spacing:2px;color:#ffe2ac;pointer-events:none}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#081628a6;z-index:2}.overlay[hidden]{display:none}.dialog{max-width:470px;width:100%;background:#11243b;border:1px solid #d3b482;box-shadow:8px 8px 0 #08152699;padding:30px}.dialog .eyebrow{font-size:9px;letter-spacing:2px}.dialog h2{font:900 47px/.95 Highline,Impact,sans-serif;margin:17px 0;color:#ffe0a3;letter-spacing:1px}.dialog p{font-size:13px;color:#b5c4cb;line-height:1.7;margin:12px 0}.dialog .button{width:100%;margin-top:13px}.dialog .button.secondary{min-height:39px;font-size:14px;margin-top:10px}.dialog .keyhint{font-size:10px;color:#94a9b8}.dialog ul{padding-left:17px;font-size:12px;color:#b5c4cb;line-height:1.8}.result-line{display:flex;justify-content:space-between;border-top:1px solid #3a5063;padding:7px 0;font-size:12px}.result-line b{color:#f3ca88}.rank{font:900 64px Highline,sans-serif;color:#a7dfb8;float:right;padding-left:15px;line-height:1}.game-controls{display:flex;gap:12px;padding:16px 20px;background:#14283e;align-items:stretch}.hook-control{flex:1;min-height:59px;border:1px solid #fcd69c;color:#16263c;background:#f4c47f;box-shadow:0 4px 0 #977047;font:800 23px/1 Highline,sans-serif;letter-spacing:1px;touch-action:none;user-select:none}.hook-control.active{background:#ffecba;transform:translateY(3px);box-shadow:0 1px 0 #977047}.hook-control small{display:block;font:10px Arial,sans-serif;letter-spacing:1px;margin-top:5px;opacity:.7}.boost-control{min-width:140px;background:#263e52;border:1px solid #839ca2;color:#b7efcb;box-shadow:0 4px 0 #0c1d31;font:800 21px/1 Highline,sans-serif;touch-action:none}.boost-control small{display:block;font:9px Arial,sans-serif;letter-spacing:1px;margin-top:6px}.utility{display:flex;justify-content:space-between;gap:20px;padding:15px 1px;font-size:10px;color:#92a4b4}.utility-right{display:flex;gap:15px}.utility button{font-size:10px;border:0;border-bottom:1px solid #516879;background:none;padding:0 0 2px;color:#bac9d0}.play-note{font-size:12px;color:#9db0bd;max-width:750px;margin:10px 0 35px}.route-select{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0 35px}.route-select button{background:#182e44;border:1px solid #3c5366;padding:11px 15px;text-align:left;flex:1;min-width:120px;font:700 16px Highline,sans-serif}.route-select button.current{border-color:#ecc17c;color:#ffdf9e}.route-select small{display:block;font:9px Arial,sans-serif;margin-top:5px;color:#90a7b5}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.cabinet:fullscreen{width:100vw;height:100vh;display:flex;flex-direction:column;justify-content:center;background:#0b1a2d}.cabinet:fullscreen .viewport{flex:1;min-height:0}.cabinet:fullscreen canvas{height:100%;max-height:100%;width:100%;object-fit:contain}.cabinet:fullscreen .game-controls{flex-shrink:0}.noscript{padding:30px;background:#f3cb8b;color:#14283e}
@media(min-width:1500px){.hero{max-width:1600px;margin:auto}.hero-art{object-position:center 45%}}
@media(max-width:900px){.shell{padding-left:24px;padding-right:24px}.nav{gap:12px}.brand strong{font-size:20px}.brand small{font-size:8px}.nav-tools{gap:12px}.support{padding:10px;font-size:10px}.hero{min-height:590px}.hero-copy{width:65%}.hero h1{font-size:111px}.hero-art{object-position:64% center}.route-grid{grid-template-columns:repeat(2,1fr)}.steps{gap:25px}.hud strong{font-size:20px}.game-shell{padding-left:20px;padding-right:20px}.nav .music span{display:none}}
@media(max-width:600px){.shell{padding-left:19px;padding-right:19px}.nav{min-height:0;display:grid;grid-template-columns:1fr auto;gap:9px;padding-top:12px;padding-bottom:12px}.brand{gap:10px}.brand img{height:51px;width:51px}.brand strong{font-size:20px}.brand small{font-size:7px;letter-spacing:1.9px;margin-top:5px}.nav-tools{gap:12px;justify-content:space-between;grid-column:1/-1;display:grid;grid-template-columns:auto auto 35px 1fr}.lang{justify-content:flex-end}.lang button{font-size:10px;padding:6px}.nav .music span{display:inline}.music{font-size:9px}.support{justify-content:center;padding:8px 10px;font-size:11px;box-shadow:2px 2px 0 #34445a}.support svg{width:17px}.fb{width:31px;height:31px}.hero{min-height:690px;align-items:end}.hero-art{object-position:64% top;height:100%;object-fit:cover}.hero:after{background:linear-gradient(0deg,#0b1c30 2%,#0b1c30d9 28%,#0b1c3055 55%,#0b1c3012 90%)}.hero-copy{width:100%;padding:270px 0 42px}.hero h1{font-size:clamp(80px,25vw,108px);margin:20px 0 10px}.hero .ch-title{font-size:12px;margin:24px 0 17px}.hero h2{font-size:24px}.hero p{font-size:13px;max-width:330px}.hero .eyebrow{font-size:9px;letter-spacing:2px}.actions{gap:24px;margin-top:22px}.button{padding:13px 20px;font-size:19px;min-height:50px}.hero-caption{display:none}.meta-strip{gap:15px;padding:15px 10px;flex-wrap:wrap;font-size:9px;letter-spacing:.5px}.meta-strip span:before{margin-right:5px}.section{padding-top:45px;padding-bottom:45px}.section-head{display:block;margin-bottom:22px}.section-head h2,.how h2{font-size:35px}.section-head p{margin:16px 0 0;font-size:12px}.route-grid{gap:10px}.route-art{height:86px}.route-number{font-size:38px;left:10px}.route-card-body{padding:14px 11px}.route-card h3{font-size:20px;max-width:110px;line-height:1.1;min-height:44px;margin-bottom:8px}.route-card small{font-size:9px}.route-card .arrow{right:10px;bottom:12px}.how{padding:38px 0}.steps{display:block;margin-top:25px}.step{margin-top:22px;padding-top:17px}.step p{font-size:12px}.step strong{top:15px}.daily-banner{margin:35px 0;display:block;padding:20px}.daily-banner h3{font-size:30px}.daily-banner .button{margin-top:20px}.footer{display:block;padding:22px 0;font-size:10px}.footer-links{margin-top:13px}.game-shell{padding-left:10px;padding-right:10px}.game-heading{padding:21px 5px 17px}.game-heading h1{font-size:35px}.game-heading small{font-size:8px;letter-spacing:1px}.back{font-size:9px}.hud{padding:12px 12px;gap:9px;grid-template-columns:1.5fr .9fr .8fr auto}.hud small{font-size:7px;letter-spacing:1px}.hud strong{font-size:18px}.hud button{width:30px;height:30px}.viewport canvas{aspect-ratio:640/560}.game-controls{padding:12px;gap:10px}.hook-control{font-size:21px;min-height:58px}.hook-control small{font-size:8px}.boost-control{min-width:100px;font-size:19px}.boost-control small{font-size:8px}.dialog{padding:20px;max-width:400px}.dialog h2{font-size:38px;margin:13px 0}.dialog p{font-size:11px;margin:9px 0}.dialog .button{font-size:18px;margin-top:10px;min-height:45px}.dialog .button.secondary{font-size:13px;min-height:32px}.dialog .keyhint{font-size:8px}.overlay{padding:14px}.toast{top:17px;font-size:20px}.route-label{font-size:10px;left:13px}.utility{gap:6px;padding:13px 3px;font-size:9px}.utility-right{gap:11px}.utility button{font-size:9px}.play-note{font-size:11px;margin:9px 5px 25px}.route-select{gap:6px;margin:12px 4px 20px}.route-select button{min-width:90px;padding:10px;font-size:15px}.route-select small{font-size:8px}.game-shell .section-head{padding-left:4px}.game-shell .section-head h2{font-size:30px}.result-line{padding:4px 0;font-size:11px}.rank{font-size:50px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none!important}}

@media(min-width:601px){.game-shell{max-width:1000px}.game-heading{padding:17px 0 16px}.game-heading h1{font-size:39px}.viewport canvas{aspect-ratio:900/500}}

.viewport{touch-action:auto}.overlay{touch-action:pan-y}.dialog{max-height:calc(100% - 8px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}@media(max-width:600px){.viewport canvas{height:360px;aspect-ratio:auto}.dialog{padding:17px}.dialog[data-kind=intro] p:nth-of-type(2),.dialog[data-kind=intro] .keyhint{display:none}.dialog h2{font-size:34px}.dialog p{line-height:1.6}}
@media(max-width:360px){.nav-tools{grid-template-columns:83px 55px 28px minmax(0,1fr);gap:7px}.lang{white-space:nowrap;justify-content:start}.lang button{padding:6px 4px}.music{font-size:8px;gap:4px}.music span{white-space:nowrap}.music svg{width:11px}.fb{width:28px;height:30px}.support{font-size:9px;padding:8px 5px;gap:5px}.support svg{min-width:12px;width:12px}}
