:root{font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#17334b;background:#8ed9ff;font-synthesis:none;touch-action:none;user-select:none;-webkit-user-select:none}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button{font:inherit}#game{position:fixed;inset:0;overflow:hidden;background:linear-gradient(#83d5ff,#dff6ff)}#scene{position:absolute;inset:0;width:100%;height:100%;display:block}.topbar{position:absolute;top:max(12px,env(safe-area-inset-top));left:16px;right:16px;z-index:15;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.top-left{display:flex;align-items:center;gap:8px}.exit-button,.menu-button{pointer-events:auto;border:3px solid rgba(255,255,255,.92);border-radius:16px;padding:8px 13px;background:#17334bc7;color:#fff;box-shadow:0 5px 14px #1c4e6c2e;font-weight:900}.menu-button{background:#ffffffe0;color:#234c68}.sound-button{pointer-events:auto;width:42px;height:42px;padding:0;border:3px solid rgba(255,255,255,.92);border-radius:50%;background:#ffffffdb;box-shadow:0 5px 14px #1c4e6c2e;font-size:19px}.brand,.step-pill{border:3px solid rgba(255,255,255,.9);background:#ffffffdb;box-shadow:0 5px 16px #1c4e6c29;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{border-radius:20px;padding:8px 14px;font-weight:900;font-size:clamp(14px,2.2vw,20px)}.step-pill{border-radius:999px;padding:8px 14px;font-weight:800;color:#266084}.guide{position:absolute;left:50%;top:max(66px,calc(env(safe-area-inset-top) + 58px));transform:translate(-50%);width:min(620px,calc(100% - 180px));text-align:center;pointer-events:none}.guide-bubble{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;background:#fffffff0;border:3px solid #fff;border-radius:22px;box-shadow:0 7px 20px #1f54732e;font-size:clamp(15px,2.4vw,22px);font-weight:900}.guide-icon{font-size:1.35em}.progress{width:min(360px,72%);height:10px;margin:8px auto 0;border:2px solid #fff;border-radius:10px;background:#ffffff8c;overflow:hidden}.progress>span{display:block;height:100%;width:0;border-radius:inherit;background:#ffc83d;transition:width .2s ease}.flight-hud{display:none;position:absolute;right:max(16px,env(safe-area-inset-right));top:max(66px,calc(env(safe-area-inset-top) + 58px));gap:8px;pointer-events:none}.flight-hud.show{display:flex}.flight-hud span{padding:7px 11px;border:3px solid #fff;border-radius:999px;background:#ffffffe6;box-shadow:0 5px 14px #1c4e6c26;font-size:13px;font-weight:800}.action{position:absolute;right:max(22px,env(safe-area-inset-right));bottom:max(28px,calc(env(safe-area-inset-bottom) + 20px));width:92px;height:92px;border-radius:50%;border:5px solid #fff;color:#17334b;background:linear-gradient(145deg,#ffe36f,#ffb82e);box-shadow:0 8px #d98a17,0 12px 22px #3d485247;font-size:18px;font-weight:900;cursor:pointer;touch-action:manipulation}.action:active{transform:translateY(5px);box-shadow:0 3px #d98a17,0 7px 13px #3d485238}.joystick{position:absolute;bottom:max(18px,calc(env(safe-area-inset-bottom) + 10px));width:clamp(138px,25vw,200px);aspect-ratio:1;border-radius:50%;border:4px solid rgba(255,255,255,.88);box-shadow:inset 0 0 0 8px #ffffff2e,0 10px 28px #1641592e;touch-action:none;transition:opacity .25s ease,filter .25s ease}.joystick.left{left:max(24px,env(safe-area-inset-left));background:#ff9e396b}.joystick.right{right:max(136px,calc(env(safe-area-inset-right) + 130px));background:#2da3ff6b}.joystick.locked{opacity:.28;filter:grayscale(.55)}.joystick.pulse{animation:pulse 1s ease-in-out infinite}.stick{position:absolute;left:50%;top:50%;width:48%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:4px solid #fff;box-shadow:0 5px 12px #1e3e5047}.left .stick{background:linear-gradient(145deg,#ffb054,#f3782f)}.right .stick{background:linear-gradient(145deg,#65c8ff,#208bdd)}.stick-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff;font-size:clamp(13px,2vw,17px);font-weight:900;white-space:nowrap;text-shadow:0 2px 2px rgba(0,0,0,.18);pointer-events:none}.axis{position:absolute;inset:8px;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:clamp(12px,1.8vw,16px);font-weight:900;text-shadow:0 2px 3px rgba(19,53,73,.55);pointer-events:none}.axis.vertical{flex-direction:column}.toast{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.9);opacity:0;padding:18px 26px;border-radius:24px;background:#fffffff5;border:4px solid #fff;box-shadow:0 15px 40px #234b6340;font-size:clamp(22px,4vw,34px);font-weight:900;pointer-events:none;transition:.28s ease}.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.exit-screen{display:none;position:fixed;inset:0;z-index:30;align-items:center;justify-content:center;background:linear-gradient(#5bbeefeb,#def7fff5);padding:20px}.exit-screen.show{display:flex}.exit-card{width:min(420px,86%);padding:24px;border:4px solid #fff;border-radius:28px;text-align:center;background:#fffffff0;box-shadow:0 18px 50px #18455e38}.exit-cloud{font-size:44px}.exit-card h2{margin:4px 0 8px;font-size:clamp(22px,4vw,32px)}.exit-card p{margin:0 0 18px;font-weight:700;color:#527086}.exit-card button{border:0;border-radius:999px;padding:12px 24px;background:#ffc83d;color:#17334b;font-weight:900;box-shadow:0 5px #db941d}.exit-card small{display:block;margin-top:18px;color:#6d8391}.course-menu,.dress-menu{display:none;position:absolute;inset:0;z-index:12;align-items:center;justify-content:center;padding:clamp(54px,10vh,74px) 16px 16px;background:linear-gradient(#6fcdf7e8,#daf6fff0)}.course-menu.show,.dress-menu.show{display:flex}.course-panel{width:min(760px,94%);max-height:100%;overflow:auto;padding:18px 20px;border:4px solid #fff;border-radius:28px;background:#fffffff0;box-shadow:0 18px 50px #18455e38}.course-heading{display:flex;align-items:center;justify-content:center;gap:12px;text-align:left}.course-heading>span{font-size:40px}.course-heading h1{margin:0;font-size:clamp(21px,4vw,30px)}.course-heading p{margin:3px 0 0;color:#668093;font-weight:700}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 12px}.course-card{min-height:86px;padding:10px;border:3px solid #d7eaf4;border-radius:19px;background:#f4fbff;color:#244b65;font-weight:900}.course-card:disabled{opacity:.5;filter:grayscale(.7)}.course-card.completed{border-color:#8dd688;background:#effbef}.course-number{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:5px;border-radius:50%;background:#ffc83d}.course-card small{display:block;margin-top:5px;color:#7890a0}.free-flight-card{display:block;width:100%;padding:11px;border:0;border-radius:16px;background:#ffc83d;color:#17334b;font-weight:900}.free-flight-card:disabled{background:#dfeaf0;color:#718794}.map-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.temple-card{background:#e25a47;color:#fff}.course-panel>small{display:block;margin-top:9px;text-align:center;color:#7a909e}.dress-panel{width:min(680px,94%);max-height:100%;overflow:auto;padding:18px 20px;border:4px solid #fff;border-radius:28px;background:#fffffff5;box-shadow:0 18px 50px #18455e38}.skin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0 12px}.skin-card{min-height:104px;border:3px solid #d7eaf4;border-radius:18px;background:#f4fbff;color:#244b65;font-weight:900}.skin-card i{display:block;width:38px;height:38px;margin:4px auto 6px;border:4px solid #fff;border-radius:50%;box-shadow:0 2px 7px #17334b33}.skin-card small{display:block;margin-top:3px;color:#7890a0}.skin-card.selected,.sticker-card.selected{border-color:#ffb82e;background:#fff7d6}.skin-card:disabled,.sticker-card:disabled{opacity:.48;filter:grayscale(.65)}.sticker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.sticker-card{padding:10px;border:3px solid #d7eaf4;border-radius:16px;background:#f4fbff;color:#244b65;font-weight:900}.done-button{display:block;width:100%;padding:11px;border:0;border-radius:16px;background:#ffc83d;color:#17334b;font-weight:900}.desktop-help{position:absolute;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translate(-50%);padding:7px 12px;border-radius:999px;background:#17334bb8;color:#fff;font-size:12px;font-weight:700;letter-spacing:.2px;pointer-events:none}.rotate-screen{display:none;position:fixed;inset:0;z-index:20;background:linear-gradient(#8ed9ff,#e4f8ff);align-items:center;justify-content:center;text-align:center;padding:30px}.rotate-card{font-size:22px;font-weight:900}.phone-icon{display:block;margin:0 auto 22px;width:70px;height:110px;border:7px solid #17334b;border-radius:14px;animation:rotatePhone 2s ease-in-out infinite}.rotate-screen.dismissed{display:none!important}.rotate-continue{display:block;margin:26px auto 0;padding:13px 22px;border:3px solid #fff;border-radius:999px;background:linear-gradient(145deg,#ffe36f,#ffb82e);color:#17334b;box-shadow:0 6px #d98a17;font-size:17px;font-weight:900;touch-action:manipulation}.rotate-continue:active{transform:translateY(4px);box-shadow:0 2px #d98a17}@keyframes pulse{50%{transform:scale(1.06);box-shadow:inset 0 0 0 8px #ffffff4d,0 0 0 9px #ffffff2e}}@keyframes rotatePhone{50%{transform:rotate(90deg)}}@media(orientation:portrait)and (pointer:coarse){.rotate-screen{display:flex}}@media(orientation:portrait){body.force-landscape #game{width:100vh;height:100vw;inset:0 auto auto 0;transform-origin:top left;transform:rotate(90deg) translateY(-100%)}}@media(max-height:480px){.joystick{width:clamp(126px,34vh,164px)}.joystick.right{right:max(118px,calc(env(safe-area-inset-right) + 108px))}.action{width:78px;height:78px;font-size:16px}.guide-bubble{padding:8px 14px}.brand{display:none}.exit-button{padding:7px 11px}.exit-card{padding:14px 20px}.exit-card small{margin-top:12px}.course-panel{padding:12px 15px}.course-heading>span{font-size:30px}.course-grid{margin:8px 0;gap:7px}.course-card{min-height:68px;padding:7px;font-size:13px}.course-number{width:23px;height:23px}.flight-hud{top:54px}.flight-hud span{padding:5px 8px;font-size:11px}.dress-panel{padding:12px 15px}.skin-grid{margin:8px 0}.skin-card{min-height:76px;font-size:12px}.skin-card i{width:28px;height:28px;margin:1px auto 3px}}@media(pointer:coarse){.desktop-help{display:none}}
