:root{font-family:ui-rounded,Avenir Next Rounded,Trebuchet MS,system-ui,sans-serif;color:#173f5f;background:#d9f3ff;font-synthesis:none;--navy: #174d78;--blue: #228bc2;--yellow: #ffd45c;--pink: #ff7597}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-width:320px;min-height:100dvh;overflow-x:hidden;background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.9) 0 3px,transparent 4px),radial-gradient(circle at 92% 24%,rgba(255,255,255,.7) 0 5px,transparent 6px),linear-gradient(145deg,#e8f9ff,#b9e7fa);touch-action:manipulation;-webkit-user-select:none;user-select:none}button{font:inherit}button:focus-visible{outline:4px solid #ffb703;outline-offset:3px}#app{display:flex;flex-direction:column}.topbar{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:max(10px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 10px max(18px,env(safe-area-inset-left));color:#fff;background:linear-gradient(100deg,#164e79,#267ead);border-bottom:5px solid rgba(255,255,255,.4);box-shadow:0 3px 12px #0f3e5a33}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:50px;height:50px;flex:0 0 auto;border-radius:16px;color:#17618c;background:#fff;font-size:30px;box-shadow:inset 0 -4px #c6eefa}h1{margin:0;font-size:clamp(20px,2.3vw,32px);letter-spacing:-.7px}.brand p{margin:2px 0 0;font-size:14px;color:#c9f3ff}.top-actions{display:flex;gap:9px}.round-button,.text-button,.primary-button,.secondary-button{min-width:48px;min-height:48px;border:0;border-radius:14px;cursor:pointer}.round-button{font-size:22px;background:#fff}.text-button{padding:0 17px;color:#fff;background:#0000002e;font-weight:800}.game-layout{flex:1;display:grid;grid-template-columns:minmax(168px,220px) minmax(0,1fr);gap:16px;padding:16px}.level-panel{padding:15px;border-radius:22px;background:#ffffffd1;box-shadow:0 9px 28px #15517424;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.level-panel h2{margin:0 0 11px;font-size:17px}.level-list{display:grid;gap:8px}.level-button{position:relative;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;width:100%;min-height:52px;padding:6px 9px;border:2px solid transparent;border-radius:15px;color:#174d78;text-align:left;background:#e8f7fc;cursor:pointer;font-weight:800}.level-button[aria-current=true]{background:#fff4b8;border-color:#f2bd34;transform:translate(3px)}.level-button:disabled{color:#728896;background:#edf1f3;cursor:not-allowed}.level-number{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;color:#fff;background:#2e9cc4}.level-button:disabled .level-number{background:#9fb0b8}.level-check{color:#1d9b68;font-size:18px}.tip-card{display:flex;gap:8px;margin-top:14px;padding:11px;border-radius:14px;background:#e0f8eb;font-size:13px;line-height:1.3}.tip-card p{margin:0}.play-area{min-width:0;display:flex;flex-direction:column;align-items:center}.status-row{width:min(100%,920px);min-height:54px;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:6px 8px 9px}.status-row strong{display:block;font-size:clamp(18px,2vw,24px)}#park-status{display:block;margin-top:2px;color:#4f7085;font-size:13px;font-weight:700}.meter-wrap{display:grid;grid-template-columns:auto 150px 44px;gap:8px;align-items:center;font-size:13px;font-weight:800}progress{width:150px;height:18px;overflow:hidden;border:0;border-radius:9px;background:#b8d8e4}progress::-webkit-progress-bar{background:#b8d8e4;border-radius:9px}progress::-webkit-progress-value{background:linear-gradient(90deg,#33c8b1,#4ca7ed);border-radius:9px}progress::-moz-progress-bar{background:#33c8b1;border-radius:9px}.stage{position:relative;width:min(100%,calc((100dvh - 360px)*1.726),920px);min-width:0;aspect-ratio:870 / 504;border:8px solid white;border-radius:25px;overflow:hidden;box-shadow:0 10px 30px #0f496d38,0 0 0 3px #7ec5df;background:#bde9f7}canvas{display:block;width:100%;height:100%;touch-action:none}.garage-label{position:absolute;left:2.2%;top:34%;width:10.3%;color:#fff;font-size:clamp(8px,1.1vw,12px);font-weight:900;text-align:center;letter-spacing:1px;pointer-events:none}.controls-row{width:min(100%,920px);min-height:118px;display:flex;align-items:center;justify-content:center;gap:20px;padding:7px 4px 0}.drive-hint,.key-hint{width:150px;margin:0;text-align:center;color:#37667e;font-size:13px;font-weight:800}.dpad{display:grid;grid-template:repeat(3,52px) / repeat(3,60px);gap:5px}.drive-button{min-width:52px;min-height:52px;border:0;border-radius:16px;color:#fff;background:linear-gradient(#329fd0,#1972aa);box-shadow:0 5px #0e5687,0 8px 15px #0e568733;font-size:21px;cursor:pointer;touch-action:none}.drive-button:is(:active,.pressed){transform:translateY(4px);box-shadow:0 1px #0e5687;background:#ff839e}.up{grid-area:1 / 2}.left{grid-area:2 / 1}.right{grid-area:2 / 3}.down{grid-area:3 / 2}.dpad-center{grid-area:2 / 2;display:grid;place-items:center;color:#55a9ce;font-size:25px}.celebration{position:absolute;inset:0;display:grid;place-items:center;padding:16px;background:#15415d61;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.celebration[hidden]{display:none}.celebration-card{width:min(370px,90%);padding:20px;border:5px solid white;border-radius:25px;text-align:center;background:#fff8d8;box-shadow:0 12px 40px #0d3c5859}.big-star{display:block;margin:-6px auto 2px;color:#ffbd2e;font-size:50px;filter:drop-shadow(0 4px 0 #e58c24)}.celebration-card h2{margin:0;color:#174d78;font-size:30px}.celebration-card p{margin:7px 0 14px}.primary-button,.secondary-button{width:100%;margin-top:7px;padding:10px 14px;font-weight:900}.primary-button{color:#fff;background:#1e9a72;box-shadow:0 4px #147052}.secondary-button{color:#174d78;background:#d9eff7}@media(max-width:760px),(max-height:530px){.topbar{min-height:56px;padding-top:max(6px,env(safe-area-inset-top));padding-bottom:6px}.brand-mark{width:40px;height:40px;border-radius:12px;font-size:23px}.brand p,.level-panel h2,.tip-card,.key-hint{display:none}.game-layout{grid-template-columns:112px minmax(0,1fr);gap:8px;padding:8px}.level-panel{padding:8px;border-radius:15px}.level-list{gap:5px}.level-button{grid-template-columns:36px 1fr;min-height:46px;padding:4px;font-size:11px;line-height:1.05}.level-check{display:none}.status-row{min-height:38px;padding:0 4px 5px}#park-status,.meter-wrap label{display:none}.meter-wrap{grid-template-columns:minmax(80px,120px) 40px}progress{width:100%}.stage{width:min(100%,calc((100dvh - 164px)*1.726));border-width:5px;border-radius:16px}.controls-row{position:absolute;right:max(8px,env(safe-area-inset-right));bottom:max(7px,env(safe-area-inset-bottom));width:auto;min-height:0;padding:0;z-index:4}.drive-hint{display:none}.dpad{grid-template:repeat(3,46px) / repeat(3,50px);gap:3px}.drive-button{min-width:46px;min-height:46px;border-radius:13px;opacity:.93}.celebration{padding:4px}.celebration-card{width:min(310px,94%);padding:6px 10px 8px;border-width:3px;border-radius:18px}.big-star{margin:-2px 0 0;font-size:28px}.celebration-card h2{font-size:22px}.celebration-card p{display:none}.celebration-card .primary-button,.celebration-card .secondary-button{min-height:44px;margin-top:3px;padding:4px 10px}}@media(orientation:portrait)and (max-width:700px){.game-layout{grid-template-columns:1fr}.level-panel{order:2}.level-list{grid-template-columns:repeat(5,1fr)}.level-button{display:flex;justify-content:center}.level-title,.tip-card{display:none}.stage{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
