html,body,#root{height:100%}body{margin:0}.app{min-height:100vh;position:relative;overflow:hidden;background:#f5f7fb;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}.top{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:14px 18px}.brand{font-size:12px;font-weight:800;letter-spacing:.18em;color:#0b1f3b8c}.detailBtn{border:1px solid rgba(11,31,59,.18);background:#ffffff8c;border-radius:10px;padding:6px 10px;font-size:11px;font-weight:800;letter-spacing:.14em;color:#0b1f3bbf;cursor:pointer}.grid3{position:relative;z-index:4;width:min(1600px,96vw);margin:0 auto;padding:12px 0 28px;display:grid;grid-template-columns:360px 760px 360px;gap:24px;align-items:start}.col{min-height:200px}.left{display:block}.center{display:grid;gap:14px;justify-items:center;align-content:start}.right{display:block}.ghost{height:1px}.rainCard{width:100%;max-width:360px;background:#ffffffd9;border-radius:16px;border:1px solid rgba(0,0,0,.08);padding:18px 20px;display:grid;gap:12px;align-items:start}.rainCardTitle{font-weight:800;letter-spacing:.08em;font-size:12px;color:#0b1f3bbf}.flowHero{width:760px;display:grid;justify-items:center;align-content:start;padding-top:18px}.flowValue{font-size:82px;font-weight:900;letter-spacing:-.02em;color:#0b1f3beb;line-height:.95;text-align:center}.flowUnit{margin-top:6px;font-size:12px;font-weight:900;letter-spacing:.2em;color:#0b1f3b8c}.term{font-family:Arial Black,Impact,Segoe UI,sans-serif;font-weight:900;letter-spacing:.12em;color:#103a70eb;text-shadow:0 0 8px rgba(84,150,230,.25)}.termSvg{fill:#103a70e0;font-weight:800}.flowRate{margin-top:8px;font-size:12px;font-weight:900;letter-spacing:.16em;color:#0b1f3b8c}.detailCard{width:100%;max-width:360px;border:1px solid rgba(11,31,59,.12);background:#ffffffb3;border-radius:18px;padding:14px;box-shadow:0 10px 28px #0b1f3b14}.detailCard.lockedCard{background:#ffffff80;border-style:dashed}.lockNotice{margin-top:10px;font-size:11px;font-weight:900;letter-spacing:.12em;color:#0b1f3b9e}.detailTitle{font-size:12px;font-weight:900;letter-spacing:.16em;color:#0b1f3bbf;margin-bottom:10px}.detailFormula{border:1px solid rgba(11,31,59,.1);background:#ffffff8c;border-radius:14px;padding:10px;margin-bottom:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;font-weight:800;letter-spacing:.06em;color:#0b1f3bb3;line-height:1.45}.detailGrid{display:grid;grid-template-columns:1fr auto;gap:8px 10px;font-size:12px;color:#0b1f3bb8}.detailGrid .k{font-weight:800;letter-spacing:.1em;color:#0b1f3b9e}.detailGrid .v{font-weight:900;letter-spacing:.06em;color:#0b1f3bd1;text-align:right}.compassWrap{width:760px;display:grid;place-items:center;padding-top:6px;overflow:visible}@media(max-width:1200px){.grid3{grid-template-columns:1fr;gap:14px}.flowHero,.compassWrap{width:min(760px,92vw);overflow:visible}.detailCard,.rainCard{max-width:min(760px,92vw)}}.upgradeBtn{width:100%;border:1px solid rgba(11,31,59,.16);background:#0b1f3b14;border-radius:14px;padding:10px 12px;font-size:12px;font-weight:900;letter-spacing:.14em;color:#0b1f3be0;cursor:pointer}.upgradeBtn:disabled{opacity:.45;cursor:not-allowed}.upgradeList{display:grid;gap:10px}.upgradeRow{border:1px solid rgba(11,31,59,.1);background:#ffffff8c;border-radius:14px;padding:10px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.upgradeActions{display:flex;gap:6px;align-items:center}.upgradeRow.locked{background:#ffffff61}.uLeft{display:grid;gap:4px}.uTitle{font-size:12px;font-weight:900;letter-spacing:.12em;color:#0b1f3bd1}.uDesc{font-size:11px;font-weight:700;letter-spacing:.06em;color:#0b1f3b9e;line-height:1.25}.uReq{font-size:11px;font-weight:900;letter-spacing:.1em;color:#0b1f3b94}.miniBtn{border:1px solid rgba(11,31,59,.16);background:#ffffffa8;border-radius:12px;padding:8px 10px;font-size:11px;font-weight:900;letter-spacing:.12em;color:#0b1f3bcc;cursor:pointer}.btnFx{transition:box-shadow .18s ease,filter .18s ease;will-change:transform}.btnFx:not(:disabled):hover{box-shadow:0 8px 20px #0b1f3b2e;filter:brightness(1.04)}.btnFx:not(:disabled):active{filter:brightness(.96)}.miniBtn:disabled{opacity:.45;cursor:not-allowed}.miniBtn.danger{border-color:#8c191940;color:#8c1919cc}.saveRow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.saveBox{width:100%;max-width:100%;min-height:120px;resize:vertical;border:1px solid rgba(11,31,59,.14);background:#ffffff8c;border-radius:14px;padding:10px;box-sizing:border-box;outline:none;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;font-weight:700;letter-spacing:.06em;color:#0b1f3bc7}.menuWrap{position:relative;z-index:10}.menuBtn{border:1px solid rgba(11,31,59,.18);background:#ffffff8c;border-radius:12px;padding:8px 12px;font-size:11px;font-weight:900;letter-spacing:.14em;color:#0b1f3bc7;cursor:pointer}.menuDrop{position:absolute;top:calc(100% + 8px);right:0;width:200px;border:1px solid rgba(11,31,59,.14);background:#ffffffc7;border-radius:16px;box-shadow:0 16px 36px #0b1f3b1f;padding:8px;display:grid;gap:8px}.menuItem{width:100%;text-align:left;border:1px solid rgba(11,31,59,.12);background:#ffffff8c;border-radius:12px;padding:10px;font-size:11px;font-weight:900;letter-spacing:.12em;color:#0b1f3bc7;cursor:pointer}.menuItem.danger{border-color:#8c191938;color:#8c1919d1}.modalBack{position:fixed;inset:0;z-index:50;background:#0b1f3b2e;display:grid;place-items:center;padding:18px}.modalCard{width:min(720px,92vw);border:1px solid rgba(11,31,59,.14);background:#ffffffdb;border-radius:20px;box-shadow:0 24px 60px #0b1f3b2e;padding:14px}.modalTop{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.introOverlay{position:fixed;inset:0;z-index:80;background:#fff;display:grid;place-items:center;padding:20px;transition:opacity .35s ease}.introOverlay.closing{opacity:0;pointer-events:none}.introCard{width:min(520px,90vw);border:1px solid rgba(11,31,59,.12);background:#fffffff5;border-radius:22px;padding:22px;text-align:center;box-shadow:0 24px 60px #0b1f3b2e;transition:transform .35s ease,opacity .35s ease}.introCard.closing{transform:scale(.92);opacity:0}.introTitle{font-size:16px;font-weight:900;letter-spacing:.14em;color:#0b1f3bd9;margin-bottom:12px}.introText{font-size:12px;line-height:1.6;color:#0b1f3bad;margin-bottom:18px}.introBtn{min-width:140px}.gateConfirmBack{position:fixed;inset:0;z-index:75;background:#00000038;display:grid;place-items:center;padding:18px;animation:gateConfirmFade .2s ease}.gateConfirmCard{width:min(520px,90vw);border-radius:20px;background:#ffffffeb;border:1px solid rgba(11,31,59,.12);box-shadow:0 24px 60px #0b1f3b38;padding:20px;animation:gateConfirmPop .24s ease}.gateConfirmTitle{font-size:14px;font-weight:900;letter-spacing:.12em;color:#0b1f3bd9;margin-bottom:10px}.gateConfirmText{font-size:12px;line-height:1.6;color:#0b1f3ba8;margin-bottom:14px}.gateConfirmToggle{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:.08em;color:#0b1f3b99;margin-bottom:16px}.gateConfirmCheckbox{accent-color:rgba(11,31,59,.82)}.gateConfirmActions{display:flex;justify-content:flex-end;gap:10px}.resetConfirmBack{position:fixed;inset:0;z-index:75;background:#00000047;display:grid;place-items:center;padding:18px;animation:gateConfirmFade .2s ease}.resetConfirmCard{width:min(540px,92vw);border-radius:20px;background:#fffffff0;border:1px solid rgba(11,31,59,.12);box-shadow:0 24px 60px #0b1f3b38;padding:20px;animation:gateConfirmPop .24s ease}.resetConfirmTitle{font-size:14px;font-weight:900;letter-spacing:.12em;color:#0b1f3bd9;margin-bottom:10px}.resetConfirmText{font-size:12px;line-height:1.6;color:#0b1f3ba8;margin-bottom:10px}.resetConfirmHint{font-size:11px;font-weight:800;letter-spacing:.08em;color:#0b1f3b9e;margin-bottom:6px}.resetConfirmPhrase{font-size:12px;font-weight:900;letter-spacing:.08em;color:#8c1919d1;margin-bottom:10px}.resetConfirmInput{width:100%;max-width:100%;box-sizing:border-box;border-radius:12px;border:1px solid rgba(11,31,59,.16);background:#ffffffeb;padding:8px 10px;font-size:12px;margin-bottom:14px;color:#0b1f3bd1}.resetConfirmActions{display:flex;justify-content:flex-end;gap:10px}@keyframes gateConfirmPop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes gateConfirmFade{0%{opacity:0}to{opacity:1}}.gateTable{display:grid;gap:10px}.gateRow{border:1px solid rgba(11,31,59,.1);background:#ffffff8c;border-radius:14px;padding:10px}.gateName{font-size:12px;font-weight:900;letter-spacing:.14em;color:#0b1f3bd1;margin-bottom:6px}.gateMeta{margin-top:6px;font-size:11px}.targetBar{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 14px 12px;background:#f5f7fbb8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(11,31,59,.1)}.targetMeta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.targetTitle{font-size:11px;font-weight:900;letter-spacing:.14em;color:#0b1f3bbf}.targetNow{font-size:11px;font-weight:900;letter-spacing:.1em;color:#0b1f3b94}.barOuter{width:100%;height:10px;border-radius:999px;background:#0b1f3b1a;overflow:hidden}.barInner{height:100%;border-radius:999px;background:#0b1f3bc7;width:0%}:root{--targetbar-h: 76px}.app{padding-bottom:var(--targetbar-h)}.targetBar{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.settingsSection{margin-top:12px;padding-top:12px;border-top:1px solid rgba(11,31,59,.08)}.langRow{display:flex;gap:10px;flex-wrap:wrap}.langBtn{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(11,31,59,.14);background:#ffffff9e;border-radius:14px;padding:10px 12px;font-weight:900;letter-spacing:.04em;color:#0b1f3bc7;cursor:pointer}.langBtn.active{border-color:#0b1f3b47;box-shadow:0 10px 26px #0b1f3b1a;background:#ffffffd1}.flag{font-size:18px;line-height:1}.langText{font-size:12px}.menuOverlay{position:fixed;inset:0;z-index:60;background:#0000002e;display:flex;align-items:flex-start;justify-content:flex-end;padding:72px 18px 18px}.menuPanel{width:340px;max-width:calc(100vw - 28px);border-radius:14px;background:#ffffffeb;box-shadow:0 14px 40px #0000002e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden}.menuTitle{padding:14px 14px 10px;font-weight:700;letter-spacing:.06em;color:#0b1f3be6}.menuList{display:flex;flex-direction:column;gap:6px;padding:10px 10px 12px}.menuRow{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:1px solid rgba(11,31,59,.1);background:#ffffffbf;border-radius:12px;padding:10px;cursor:pointer;text-align:left}.menuRow:hover{border-color:#0b1f3b38}.menuRow.active{border-color:#0b1f3b5c;background:#d6e8ff8c}.menuRow.disabled{opacity:.45;cursor:not-allowed}.menuRowLeft{display:flex;align-items:center;gap:10px}.menuIcon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#0b1f3b14}.menuText{display:flex;flex-direction:column;gap:2px}.menuLabel{font-weight:700;color:#0b1f3beb;font-size:13px}.menuDesc{color:#0b1f3b8c;font-size:12px}.menuRight{display:flex;align-items:center;justify-content:center;min-width:40px}.menuChevron{font-size:18px;color:#0b1f3b8c}.menuPill{font-size:10px;padding:4px 8px;border-radius:999px;background:#0b1f3b1a;color:#0b1f3bbf;font-weight:700;letter-spacing:.06em}.menuFooter{padding:10px 12px 12px;display:flex;justify-content:flex-end;border-top:1px solid rgba(11,31,59,.08)}.appBody{position:relative;min-height:calc(100vh - 56px)}.appContent{position:relative;z-index:1;padding-right:0;transition:padding-right .22s ease}.appContent.withMenu{padding-right:320px}.sideMenu{position:fixed;top:56px;right:0;width:300px;height:calc(100vh - 56px);z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffa6;border-left:1px solid rgba(0,0,0,.08);transform:translate(0);transition:transform .24s cubic-bezier(.2,.8,.2,1);box-shadow:-16px 0 40px #00000014;display:flex;flex-direction:column}.sideMenu.closed{transform:translate(100%)}.sideMenuTop{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 10px}.sideMenuTitle{font-weight:700;letter-spacing:.06em;opacity:.9}.sideMenuList{padding:8px 10px;display:flex;flex-direction:column;gap:8px;overflow:auto}.sideMenuItem{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;border:1px solid rgba(0,0,0,.08);background:#ffffff8c;cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease}.sideMenuItem:hover{transform:translate(-2px);background:#ffffffc7;border-color:#0000001f}.sideMenuItem.active{border-color:#0003;background:#ffffffe6}.sideMenuLabel{font-weight:650}.sideMenuSep{height:1px;background:#00000014;margin:6px 4px}.sideMenuHint{padding:10px 12px 14px;opacity:.7;border-top:1px solid rgba(0,0,0,.06)}.page{padding:14px}.pageCenter{display:flex;justify-content:center}.evoPage{height:calc(100vh - 120px);display:flex;flex-direction:column}.evoLayout{display:grid;grid-template-columns:280px 1fr;gap:12px;height:100%}.evoDetailPanel{background:#fffc;border-radius:14px;border:1px solid rgba(0,0,0,.08);padding:16px;display:flex;flex-direction:column;gap:12px;overflow:auto}.evoDetailTitle{font-weight:800;letter-spacing:.04em}.evoDetailImage{height:120px;border-radius:12px;background:#0a142414;display:grid;place-items:center;color:#0a142473;font-weight:700}.evoDetailDesc{font-size:13px;opacity:.75;line-height:1.45}.evoDetailMeta{display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:13px}.evoLockTag{font-size:12px;padding:2px 8px;border-radius:999px;background:#0a142414}.evoDetailReq{border-top:1px solid rgba(0,0,0,.08);padding-top:10px;display:flex;flex-direction:column;gap:6px}.evoDetailReqTitle{font-weight:700;font-size:12px;letter-spacing:.04em;opacity:.7}.evoDetailReqItem{font-size:12px;opacity:.75}.evoDetailActions{display:flex;gap:8px}.evoBtn{border:1px solid rgba(11,31,59,.18);background:#fffc;border-radius:12px;padding:8px 12px;font-size:12px;font-weight:700;letter-spacing:.06em;color:#0b1f3bd9;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:34px;box-sizing:border-box;transition:transform .12s ease,box-shadow .12s ease}.evoBtn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 14px #0b1f3b2e}.evoBtn:disabled{opacity:.45;cursor:not-allowed}.evoBtn.ghost{background:#0b1f3b14}.evoDetailPlaceholder{display:flex;flex-direction:column;gap:10px;opacity:.7}.evoCanvas{position:relative;overflow:hidden;border-radius:16px;border:1px solid rgba(0,0,0,.08);background:radial-gradient(circle at top,#ffffffe6,#e1e8f099);cursor:grab}.evoCanvas:active{cursor:grabbing}.evoParticles{position:absolute;inset:0;background-image:radial-gradient(circle at 20% 20%,rgba(90,140,220,.2),transparent 45%),radial-gradient(circle at 80% 30%,rgba(120,180,240,.2),transparent 50%),radial-gradient(circle at 60% 80%,rgba(140,200,255,.18),transparent 55%),radial-gradient(circle at 30% 70%,rgba(255,255,255,.4),transparent 35%);opacity:.6;animation:evoDrift 18s ease-in-out infinite;pointer-events:none}.evoViewport{position:absolute;left:50%;top:50%;transform-origin:0 0}.evoLinks{position:absolute;left:-1200px;top:-1200px;width:2400px;height:2400px;pointer-events:none}@keyframes evoDrift{0%{transform:translateZ(0)}50%{transform:translate3d(-20px,15px,0)}to{transform:translateZ(0)}}.evoNode{position:absolute;width:210px;min-height:72px;display:flex;align-items:center;gap:10px;color:#0b1f3be6;transition:transform .12s ease;cursor:pointer}.evoNode.active .evoNodeCircle{border-color:#3e78dcb3}.evoNode.locked{opacity:.45;filter:grayscale(.35)}.evoNode.leveled .evoNodeCircle{box-shadow:0 0 16px #78b4ff99,0 0 28px #78b4ff59}.evoNodeCircle{position:relative;width:76px;height:76px;border-radius:50%;background:#ffffffeb;border:1px solid rgba(0,0,0,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;box-shadow:0 6px 14px #00000014}.evoNodeSvg{width:30px;height:30px;color:#0c182880}.evoNodeLevel{font-size:10px;font-weight:700;opacity:.7}.evoNodeTitle{font-weight:700;font-size:12px;max-width:120px}.evoNodeLockOverlay{position:absolute;inset:0;background:#0a142459;display:grid;place-items:center;font-size:20px;color:#ffffffe6;border-radius:50%}.statsPage{display:flex;align-items:flex-start;justify-content:center;padding:24px}.statsCard{min-width:260px;background:#ffffffd9;border-radius:16px;border:1px solid rgba(0,0,0,.08);padding:18px 20px;display:flex;flex-direction:column;gap:8px;text-align:center}.statsTitle{font-weight:800;letter-spacing:.08em;font-size:12px;opacity:.7}.statsValue{font-size:26px;font-weight:800;color:#0b1f3be6}.statsHint{font-size:12px;opacity:.6}.mapsPage{display:flex;flex-direction:column;gap:16px;padding:18px}.mapsHeader{display:flex;flex-direction:column;gap:10px}.mapsTitle{font-size:18px;font-weight:800}.mapsTabs{display:flex;gap:8px;flex-wrap:wrap}.mapsTab{border:1px solid rgba(11,31,59,.18);background:#fffc;border-radius:999px;padding:8px 14px;font-size:12px;font-weight:700;letter-spacing:.06em;cursor:pointer}.mapsTab.active{background:#78b4ff33;border-color:#3e78dc66}.mapsBody{display:flex;justify-content:center}.mapsCard{min-width:260px;width:min(100%,1200px);border-radius:16px;border:1px solid rgba(0,0,0,.08);background:#f2f6fbe6;padding:18px 20px;display:flex;flex-direction:column;gap:8px}.mapsCardTitle{font-weight:800}.mapsCardDesc{font-size:12px;opacity:.65}.mapsContourBlock{display:flex;flex-direction:column;gap:12px;align-items:center}.mapsControls{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.mapsWindControl{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:999px;background:#0c20380f;border:1px solid rgba(12,32,56,.12)}.mapsWindLabel{font-size:12px;color:#091728b3}.mapsWindSlider{width:120px}.mapsWindValue{font-size:12px;color:#091728b3}.mapsCanvasFrame{width:100%;max-width:1100px;display:flex;justify-content:center;touch-action:none;cursor:grab;align-items:center;background:transparent}.mapsCanvasFrame:active{cursor:grabbing}.mapsCanvas{width:100%;max-width:1100px;height:auto;position:relative;overflow:hidden;border-radius:12px;border:1px solid rgba(10,30,60,.25);background:transparent;box-shadow:inset 0 0 0 1px #ffffff08}.mapsContourFade{--maps-fade-edge: 10%;-webkit-mask-image:linear-gradient(to right,transparent,#000 var(--maps-fade-edge),#000 calc(100% - var(--maps-fade-edge)),transparent),linear-gradient(to bottom,transparent,#000 var(--maps-fade-edge),#000 calc(100% - var(--maps-fade-edge)),transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent,#000 var(--maps-fade-edge),#000 calc(100% - var(--maps-fade-edge)),transparent),linear-gradient(to bottom,transparent,#000 var(--maps-fade-edge),#000 calc(100% - var(--maps-fade-edge)),transparent);-webkit-mask-composite:source-in,xor;mask-composite:intersect}.mapsCanvasLayer{position:absolute;inset:0;transform-origin:0 0}.mapsHeightCanvas,.mapsHeightsTextCanvas,.mapsContourSvg{position:absolute;inset:0;width:100%;height:100%}.mapsHeightCanvas{z-index:1}.mapsContourSvg{z-index:2}.mapsWindLayer{position:absolute;inset:0;z-index:3;pointer-events:none}.mapsWindCanvas{position:absolute;inset:0;width:100%;height:100%}.mapsWindStatus{position:absolute;right:12px;bottom:10px;font-size:11px;color:#0f233cbf;background:#ffffffb3;padding:4px 6px;border-radius:6px}.mapsPlacementSvg{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}.mapsPlacementBounds{fill:none;stroke:#1a3d6673;stroke-width:.6;opacity:0;transition:opacity .25s ease}.mapsPlacementBounds.active{opacity:.7}.mapsPlacementGlow{stroke:#12365cf2;stroke-width:1.4;stroke-linecap:round}.mapsHeightsTextCanvas{pointer-events:none;z-index:5}.mapsPlacementPanel{width:100%;margin-top:12px;padding:12px 16px;border-radius:12px;border:1px solid rgba(10,30,60,.16);background:#ecf1f7b3;box-sizing:border-box;display:flex;flex-direction:column;gap:10px}.mapsPlacementLayout{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:16px;align-items:stretch}.mapsPlacementDetailColumn,.mapsPlacementMain{display:flex;flex-direction:column;gap:10px;min-width:0}.mapsPlacementHeader{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.mapsPlacementTitle{font-weight:700}.mapsPlacementTools,.mapsPlacementActions{display:flex;flex-wrap:wrap;gap:8px}.windGateToolBtn{display:flex;align-items:center;gap:12px;padding:12px 14px;min-width:190px;border-radius:12px;border:1px solid rgba(18,52,92,.35);background:#fff9;color:#0b1f3a;text-align:left}.windGateToolBtn.active{background:#12345c26;border-color:#12345c8c}.windGateToolBtn:disabled{opacity:.5}.windGateToolIcon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#0b1f3a14}.windGateToolIcon svg{width:24px;height:24px}.windGateToolText{display:flex;flex-direction:column;gap:4px;line-height:1.1}.windGateToolName{font-weight:700;font-size:14px}.windGateToolRemaining{font-size:12px;opacity:.7}.mapsToolCard{padding:10px 12px;border-radius:12px;border:1px solid rgba(10,30,60,.18);background:#ffffffa6;display:flex;flex-direction:column;gap:6px}.mapsToolCardTitle{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#0b1f3ab3}.mapsToolCardLine{display:flex;justify-content:space-between;gap:10px;font-size:12px}.mapsToolCardLabel{color:#0b1f3ab3}.mapsToolCardValue{text-align:right}.mapsToolCardValueLarge{font-size:18px;font-weight:700}.mapsToolCardDesc{font-size:12px;color:#0b1f3ab3}.mapsToolPlaceholder{min-height:160px;justify-content:center}.toggleBtn.active{background:#12345c26;border-color:#12345c73;color:#0b1f3a}.rainPage{display:flex;flex-direction:column;gap:24px;padding:32px clamp(16px,4vw,48px) 48px}.rainHeader{text-align:center}.rainTitle{font-size:clamp(28px,4vw,40px);font-weight:700;letter-spacing:.08em;color:#e2edff}.rainSubtitle{margin-top:8px;font-size:14px;color:#e2edffb3}.rainStage{display:flex;justify-content:center}.rainScene{position:relative;width:min(900px,100%);height:min(65vh,520px);border-radius:18px;overflow:hidden;border:1px solid rgba(120,170,255,.2);background:radial-gradient(circle at top,#233a5ccc,#060c18f2);box-shadow:0 20px 50px #050a1499}.rainCanvas{position:absolute;inset:0;pointer-events:none}.rainFooter{display:flex;justify-content:center}.rainButton{padding:12px 32px;font-size:16px;font-weight:600;border-radius:999px;background:#5082d233;border:1px solid rgba(120,170,255,.4);color:#d8e7ff}.rainButton.active{background:#78aaff59;border-color:#8cbeffb3;color:#fff}.canyonPage{display:flex;flex-direction:column;gap:24px;padding:32px clamp(16px,4vw,48px) 48px}.canyonHeader{text-align:center}.canyonTitle{font-size:clamp(28px,4vw,40px);font-weight:700;letter-spacing:.08em;color:#e6efff}.canyonSubtitle{margin-top:8px;font-size:14px;color:#e6efffb3}.canyonStage{display:flex;justify-content:center}.canyonScene{width:min(960px,100%);height:min(70vh,560px);border-radius:18px;overflow:hidden;border:1px solid rgba(120,160,220,.25);background:radial-gradient(circle at top,#203048e6,#070c16fa);box-shadow:0 24px 60px #040912a6}.mapsThreeFrame{width:100%;max-width:1100px;display:flex;flex-direction:column;align-items:center;gap:8px}.mapsThreeCanvas{width:100%;height:min(70vh,640px);border-radius:12px;border:1px solid rgba(10,30,60,.25);background:#eef2f7;overflow:hidden}.mapsThreeHint{font-size:12px;opacity:.6}.achievementsPage{display:flex;flex-direction:column;gap:16px;padding:18px}.achievementsHeader{display:flex;flex-direction:column;gap:4px}.achievementsTitle{font-size:18px;font-weight:800}.achievementsSubtitle{font-size:12px;opacity:.7}.achievementsGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.achievementCard{border-radius:14px;border:1px solid rgba(0,0,0,.08);background:#ffffffdb;padding:12px;display:flex;gap:10px;align-items:center;transition:transform .12s ease,box-shadow .12s ease}.achievementCard.unlocked{box-shadow:0 8px 20px #78b4ff40}.achievementCard.locked{opacity:.55}.achievementIcon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#0b1f3b14;font-size:18px}.achievementName{font-weight:700}.achievementDesc{font-size:12px;opacity:.7}.gateWrap{width:min(860px,100%);display:grid;gap:12px}.gateHead{display:flex;align-items:center;justify-content:space-between;gap:10px}.gateTitle{font-size:14px;font-weight:800;letter-spacing:.06em}.gateMeta{display:flex;gap:14px;flex-wrap:wrap;opacity:.85}.gateCard{background:#ffffffe6;border:1px solid rgba(0,0,0,.06);border-radius:14px;padding:14px;box-shadow:0 10px 30px #0000000f}.gateCardTitle{font-weight:850;letter-spacing:.05em;margin-bottom:10px}.gatePills{display:flex;gap:8px;flex-wrap:wrap}.pillBtn{padding:8px 10px;border-radius:999px;border:1px solid rgba(0,0,0,.08);background:#ffffffd9;font-weight:700;cursor:pointer;transition:transform .12s ease,background .12s ease}.pillBtn:hover{transform:translateY(-1px)}.pillBtn.active{background:#0b1f3b14;border-color:#0b1f3b2e}.gateRefitGrid{display:grid;grid-template-columns:1fr;gap:10px}.gateRefitRow{display:flex;align-items:center;justify-content:space-between;gap:12px}.gateRefitLabel{font-weight:800;opacity:.85}.gateRefitValue{font-variant-numeric:tabular-nums}.gateRefitBtns{display:flex;gap:8px}.tinyBtn{padding:8px 10px;border-radius:10px;border:1px solid rgba(0,0,0,.08);background:#ffffffe0;font-weight:800;cursor:pointer;transition:transform .12s ease,background .12s ease}.tinyBtn:hover{transform:translateY(-1px)}.tinyBtn:disabled{opacity:.5;cursor:not-allowed;transform:none}.tinyBtn.danger{background:#ff58581f;border-color:#ff585838}.gateFine{margin-top:8px;opacity:.75;font-size:12px}.page{position:relative;z-index:1;display:flex;justify-content:center;padding:16px}.panel{width:min(560px,94vw);border-radius:16px;padding:16px;background:#ffffffbf;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 30px #00000014}.panelTitle{font-weight:700;letter-spacing:.06em;margin-bottom:12px;text-transform:uppercase}.section{margin-top:14px;padding-top:12px;border-top:1px solid rgba(0,0,0,.08)}.sectionTitle{font-weight:700;margin-bottom:8px}.hint{opacity:.8;font-size:12px;line-height:1.35}.grid2{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center}.gatePickRow{display:flex;gap:8px;flex-wrap:wrap}.gatePickBtn{border:1px solid rgba(0,0,0,.12);background:#fff9;border-radius:10px;padding:8px 10px;display:flex;align-items:center;gap:8px}.gatePickBtn.active{border-color:#00000047;background:#ffffffe6}.tag{font-size:12px;opacity:.8;padding:2px 6px;border-radius:999px;border:1px solid rgba(0,0,0,.12)}
