*{box-sizing:border-box}body{margin:0;background:#eaf5ff;color:#143759;font-family:system-ui,'Microsoft JhengHei',sans-serif}button{font:inherit;cursor:pointer;border:0}button:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid #f5b51c;outline-offset:4px}button:disabled{opacity:.5;cursor:wait}main{max-width:1240px;margin:auto;padding:24px 28px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.brand{display:flex;align-items:center;gap:12px}.mark{background:#175da9;color:white;font-size:25px;font-weight:800;padding:9px 14px;border-radius:17px;transform:rotate(-6deg)}h1{font-size:26px;letter-spacing:2px;margin:0}header p{margin:3px 0 0;font-size:14px;color:#5980a0}.header-actions{display:flex;gap:9px}.header-actions button{background:#fff;padding:11px 17px;border-radius:12px;color:#225987;font-size:14px;font-weight:650}.game{position:relative;border:5px solid white;border-radius:25px;overflow:hidden;box-shadow:0 12px 36px #1255a016;background:#cceeff;isolation:isolate}.hud{position:absolute;top:18px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;z-index:2;pointer-events:none}.hud>div:not(.route){background:#ffffffee;border-radius:15px;padding:9px 16px;min-width:115px;box-shadow:0 3px 0 #83b9d32b}.hud small{display:block;font-size:12px;color:#62829b;margin-bottom:2px}.hud strong{font-size:25px;font-variant-numeric:tabular-nums}.route{width:36%;font-size:13px;font-weight:700}.route>div:first-child{display:flex;justify-content:space-between;margin-bottom:8px;gap:10px}.track{height:8px;border-radius:10px;background:#fff9;overflow:hidden}.track i{display:block;background:#1f66ad;height:100%;width:0}.lives strong{color:#eb5e87;white-space:nowrap}canvas{display:block;width:100%;aspect-ratio:1280/650;touch-action:none;cursor:pointer}.overlay{position:absolute;inset:0;z-index:3;background:linear-gradient(90deg,transparent 30%,#e5f6ff66 70%);display:flex;align-items:center;justify-content:flex-end;padding:85px 10% 40px;pointer-events:none}.intro{text-align:left;max-width:400px;pointer-events:auto;padding:26px 32px;background:#ffffffeb;border:2px solid #fff;border-radius:25px;box-shadow:0 10px 25px #14528314}.eyebrow{font-size:12px;font-weight:800;letter-spacing:3px;color:#2d7cba}.intro h2{font-size:38px;margin:12px 0;color:#175da9;letter-spacing:1px}.intro p{font-size:17px;line-height:1.8;margin:10px 0 20px}.primary{background:#175da9;color:#fff;border-radius:14px;box-shadow:0 5px 0 #0c3c73;padding:15px 30px;font-size:19px;font-weight:750;width:100%}.primary:hover{background:#2378c8}.intro .hint{font-size:12px;color:#62829b;margin:16px 0 0;text-align:center}.game-footer{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:10px 22px;background:#1255a0;color:#fff;font-size:14px}.game-footer button{background:transparent;color:#fff;font-size:14px;padding:4px}.toast{position:absolute;top:105px;left:50%;transform:translateX(-50%);background:#175da9ee;color:white;border-radius:22px;padding:10px 20px;z-index:2;font-weight:700;opacity:0;pointer-events:none;transition:opacity .15s;white-space:nowrap}.collection{margin:25px 0}.collection-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.collection h2{font-size:18px;margin:0}.collection-heading>span{font-size:14px;color:#5780a5;font-weight:700}.cards{display:grid;grid-template-columns:repeat(8,1fr);gap:9px}.card{border:2px solid #d7e6f4;border-radius:16px;padding:14px 4px 12px;background:#f6faff;text-align:center;color:#728ba1;transition:.2s}.card .icon{font-size:27px;display:block;margin-bottom:8px;filter:grayscale(.8);opacity:.65}.card .name{display:block;font-size:14px;font-weight:700}.card .status{font-size:12px;margin-top:5px;display:block}.card.found{background:white;border-color:#61a6df;color:#175da9;box-shadow:0 4px 0 #c5e0f4}.card.found .icon{filter:none;opacity:1}details{font-size:14px;line-height:1.8;color:#557793;margin-top:12px}summary{cursor:pointer;width:fit-content;font-weight:700}details p{max-width:960px}a{color:#175da9}footer{border-top:1px solid #d0e5f4;margin-top:22px;padding-top:16px;font-size:13px;font-weight:700;color:#6792b4;display:flex;justify-content:space-between}footer span{font-weight:400}.game:fullscreen{width:100vw;height:100vh;border:0;border-radius:0;display:flex;align-items:center;background:#cceeff}.game:fullscreen canvas{height:100%;width:100%;object-fit:contain}@media(max-width:780px){main{padding:14px 12px}.brand{gap:8px}h1{font-size:21px}.mark{font-size:21px;padding:7px 10px}header{margin-bottom:15px}.header-actions button{padding:9px 11px}.game{border-width:3px;border-radius:18px}.hud{top:10px;left:12px;right:12px}.hud>div:not(.route){min-width:75px;padding:6px 10px}.hud strong{font-size:19px}.route{font-size:11px;width:38%}.hud small{font-size:11px}.overlay{padding:60px 4% 40px}.intro{padding:18px 20px;max-width:320px}.intro h2{font-size:29px;margin:8px 0}.intro p{font-size:14px;margin:8px 0 13px;line-height:1.6}.primary{padding:12px 20px;font-size:17px}.intro .hint{font-size:12px;margin-top:12px}.game-footer{font-size:12px;padding:6px 12px}.game-footer button{font-size:12px}.cards{grid-template-columns:repeat(4,1fr)}.card{padding:12px 4px}.toast{top:75px;font-size:13px}.collection{margin-top:20px}}@media(max-width:480px){.route{width:32%}.route>div:first-child{display:block}.route span{display:block}.intro{max-width:250px}.overlay{justify-content:center;background:#cceeff60}.intro h2{font-size:27px}.game-footer span{font-size:11px}.cards{gap:7px}footer span{display:none}.eyebrow{font-size:11px}.header-actions{gap:5px}header p{font-size:12px}.hud .lives{min-width:70px!important}}

.career{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;padding:10px 14px;background:#dbeeff;border-radius:12px;font-size:14px;color:#376b98}.career strong{color:#175da9}.career>span:last-child{font-size:13px}@media(max-width:480px){.career{flex-wrap:wrap;gap:5px}}

.power-status{position:absolute;left:50%;top:150px;transform:translateX(-50%);z-index:2;padding:8px 16px;border-radius:15px;background:#fff8d8ed;color:#244f83;font-size:15px;font-weight:750;white-space:nowrap;pointer-events:none}.obstacle-cards{grid-template-columns:repeat(7,1fr)}.obstacle-icon{display:inline-block!important;width:40px;height:40px;line-height:40px;background:#cc5c72;color:#fff;border-radius:12px;font-size:24px!important;margin:0 auto 8px}.disorder .card.found{border-color:#e997ad;color:#92344f;box-shadow:0 4px 0 #f5d3df}.collection-note{font-size:14px;color:#62829b;margin:0 0 14px}@media(max-width:780px){.obstacle-cards{grid-template-columns:repeat(4,1fr)}.power-status{top:113px;font-size:13px}}

.collection:not(.disorder) .cards{grid-template-columns:repeat(5,1fr)}@media(max-width:780px){.collection:not(.disorder) .cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:480px){.collection:not(.disorder) .cards{grid-template-columns:repeat(2,1fr)}}

@media(max-width:480px){header{flex-wrap:wrap;gap:10px}.header-actions{margin-left:auto}}

.game-logo{width:64px;height:64px;object-fit:contain;flex-shrink:0}.brand h1{letter-spacing:1px}@media(max-width:780px){.game-logo{width:52px;height:52px}}

.lives strong{font-size:21px!important;letter-spacing:0}.hud .lives{min-width:155px!important}@media(max-width:780px){.lives strong{font-size:15px!important}.hud .lives{min-width:104px!important}.route{width:31%}}

header .jump-instruction{color:#d62e79;font-weight:750;font-size:14px;margin-top:5px}
.game.portrait .hud{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-items:start}.game.portrait .hud .lives{grid-column:2;grid-row:1;justify-self:end}.game.portrait .route{grid-column:1 / -1;grid-row:2;width:100%;background:#ffffffd9;padding:8px 10px;border-radius:12px;font-size:12px}.game.portrait .route>div:first-child{display:flex;margin-bottom:6px}.game.portrait .overlay{align-items:flex-start;justify-content:center;padding:145px 15px 40px;background:#cceeff40}.game.portrait .intro{max-width:300px;padding:18px 20px}.game.portrait .intro h2{font-size:27px}.game.portrait .toast{top:130px;max-width:94%;white-space:normal;text-align:center;padding:8px 12px}.game.portrait .power-status{top:170px;max-width:94%;font-size:12px}.game.portrait .game-footer{gap:5px}.game.portrait .game-footer span{font-size:11px}
.results-link{display:block;text-align:center;color:#ce276f;font-weight:750;font-size:16px;margin:0 0 18px;text-underline-offset:4px}.results-link[hidden],.form-card[hidden]{display:none}.unlocked-heading{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px}.unlocked-heading h3{margin:0;font-size:17px}.unlocked-heading span{font-size:14px;color:#5780a5;font-weight:700}.unlocked-forms{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.form-card{display:flex;align-items:center;flex-direction:column;gap:7px;padding:14px 8px;background:#fff;border:2px solid #abd0ec;border-radius:17px;color:#175da9;text-align:center}.form-card img{width:100%;height:140px;object-fit:contain}.form-card strong{font-size:14px}.form-card span{font-size:12px;color:#62829b}#collection{scroll-margin-top:16px}@media(max-width:780px){.unlocked-forms{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:480px){.unlocked-forms{grid-template-columns:repeat(2,minmax(0,1fr))}.form-card img{height:130px}.brand h1{font-size:19px;letter-spacing:0}.game.portrait .intro{padding:15px 18px}.game.portrait .results-link{margin-bottom:13px}}

.achievement-heading{margin:25px 0 8px;font-size:18px}.achievement-hint{margin:0 0 13px;color:#557793;font-size:14px}.achievement-cards .card{cursor:help;-webkit-touch-callout:none;user-select:none}.achievement-cards .card:hover,.achievement-cards .card:focus-visible{border-color:#3685c3;background:#fff;outline:2px solid #3685c3;outline-offset:2px}.achievement-detail-space{min-height:112px;padding-top:12px}.achievement-detail{padding:13px 17px;background:#fff;border:1px solid #abd0ec;border-radius:14px;color:#244f83}.achievement-detail strong{font-size:15px}.achievement-detail p{margin:6px 0;line-height:1.6;font-size:14px}.achievement-detail a{font-size:12px}.achievement-detail[hidden]{display:none}.jump-instruction strong{font-weight:800}@media(max-width:480px){.achievement-detail-space{min-height:135px}}
