:root{font-family:ui-rounded,'Avenir Next',Avenir,'Trebuchet MS',sans-serif;color:#173c38;--cream:#fbf8e9;--ink:#173c38;--gold:#f6cb61}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{position:fixed;inset:0;margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;touch-action:none;background:#b7dec8;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,input{font:inherit}button{border:0;cursor:pointer;color:inherit;touch-action:manipulation}button:active{transform:scale(.96)}button:focus-visible{outline:3px solid #e9ad33;outline-offset:3px}.hidden{display:none!important}#world{display:block;width:100%;height:100%;position:absolute;inset:0}#vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#102d2614,transparent 25%,transparent 75%,#12362e19)}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2.6px}.primary,.secondary{border-radius:14px;padding:15px 23px;font-weight:800;font-size:15px;min-height:50px}.primary{background:var(--ink);color:var(--cream);box-shadow:0 5px 0 #0e2b27}.primary span{margin-left:40px;color:var(--gold)}.secondary{background:#e7eddc}.ball{display:inline-block;width:46px;height:46px;background:linear-gradient(#e95b49 0 45%,#173c38 45% 55%,#fff8e6 55%);border:3px solid #173c38;border-radius:50%;position:relative}.ball:after{content:'';position:absolute;width:12px;height:12px;border-radius:50%;background:#fff6df;border:3px solid #173c38;left:50%;top:50%;transform:translate(-50%,-50%)}.ball.tiny{width:23px;height:23px;border-width:2px}.ball.tiny:after{width:6px;height:6px;border-width:2px}#boot{position:absolute;inset:0;background:var(--cream);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:20}#boot p{font-size:18px;letter-spacing:6px;font-weight:900}.logo-ball{animation:bob 1s ease-in-out infinite}#title{position:absolute;inset:0;background:linear-gradient(90deg,#f6f5dfed 0%,#f6f5dfe8 28%,#f6f5df70 47%,transparent 70%)}.title-copy{position:absolute;left:7%;top:50%;transform:translateY(-50%)}.pokemon-word{font-weight:900;color:#ecb943;font-size:22px;text-shadow:1px 2px #315065;letter-spacing:1px;margin:27px 0 7px}h1{font-size:clamp(64px,9vw,126px);line-height:.82;letter-spacing:-6px;margin:0;position:relative;font-weight:950}h1 i{font-style:normal;color:#45856c}h1 span{position:absolute;color:#da9d36;font-size:37px;right:-44px;top:12px}.title-copy p{font-size:16px;line-height:1.65;margin:25px 0}.title-foot{font-size:8px;letter-spacing:1.5px;margin-top:26px;font-weight:800;opacity:.6}.title-foot b{margin:0 7px}.title-tag{position:absolute;right:35px;bottom:30px;background:#fff5dfde;padding:12px 17px;font-size:9px;letter-spacing:1.4px;border-radius:30px;font-weight:800}.live-dot{width:7px;height:7px;display:inline-block;background:#5f956e;border-radius:50%;margin-right:6px}header{position:absolute;left:max(26px,env(safe-area-inset-left));right:max(26px,env(safe-area-inset-right));top:max(22px,env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.location{background:#fff9e9e8;border:1px solid #ffffff70;padding:14px 23px;border-radius:18px;box-shadow:0 5px 22px #163f3020}.location .eyebrow{font-size:8px;opacity:.65;letter-spacing:2px;margin-bottom:4px}#areaName{font-size:21px;font-weight:850;letter-spacing:-.5px}.top-actions{display:flex;gap:9px}.pill,.icon-btn{background:#fffaebee;min-height:49px;border-radius:15px;box-shadow:0 4px 20px #163f3020;font-weight:850}.pill{padding:11px 17px;display:flex;align-items:center;gap:10px}.icon-btn{width:49px;font-size:25px}#quest{position:absolute;top:117px;left:max(28px,env(safe-area-inset-left));display:flex;gap:10px;align-items:center;background:#fffae6cf;border-radius:12px;padding:12px 17px;max-width:310px}#quest>span{color:#b07b20;font-size:24px}#quest small{font-size:8px;letter-spacing:1.5px;font-weight:900;opacity:.6}#quest p{margin:4px 0 0;font-size:12px;line-height:1.4}#joystick{position:absolute;bottom:max(38px,env(safe-area-inset-bottom));left:max(40px,env(safe-area-inset-left));width:124px;height:124px;background:#fff8db45;border:2px solid #fff7db99;border-radius:50%;box-shadow:inset 0 0 0 14px #fff9e726;touch-action:none}#stick{width:57px;height:57px;border-radius:50%;position:absolute;left:31px;top:31px;background:#fff7e8db;box-shadow:0 4px 15px #16493545;border:2px solid #fff9e8}.movement-hint{position:absolute;bottom:16px;left:43px;font-size:8px;letter-spacing:1.7px;font-weight:900;color:#fff9e6;text-shadow:0 1px 4px #1d4a32}#keyboardHint{position:absolute;bottom:17px;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:1px;color:#fffae7;background:#173c387a;padding:8px 14px;border-radius:20px;white-space:nowrap}.action-button{position:absolute;right:max(40px,env(safe-area-inset-right));bottom:40px;width:99px;height:99px;border-radius:50%;background:#f6d477;color:#173c38;border:5px solid #fff1c5;box-shadow:0 6px 0 #9d8146,0 9px 25px #234e323b;display:flex;flex-direction:column;align-items:center;justify-content:center}.action-button>span{font-size:36px;line-height:1}.action-button small{font-size:9px;letter-spacing:1px;font-weight:950;margin-top:7px}#nearby{position:absolute;bottom:150px;right:28px;background:#fffae7ed;border-radius:12px;padding:10px 16px;font-size:12px;font-weight:800}.buddy-chip{position:absolute;right:160px;bottom:48px;background:#fffae7e8;border-radius:30px;padding:5px 16px 5px 5px;font-size:11px;font-weight:800;display:flex;align-items:center;gap:5px}.buddy-chip img{width:38px;height:38px;object-fit:contain}#travelNote{position:absolute;left:50%;bottom:58px;transform:translateX(-50%);font-size:12px;padding:12px 18px;border-radius:20px;background:#fff6deeb;white-space:nowrap}#toast{position:absolute;left:50%;top:95px;transform:translate(-50%,-10px);background:#173c38f0;color:#fff5dc;padding:14px 24px;border-radius:30px;font-size:13px;opacity:0;pointer-events:none;transition:.3s;z-index:15;text-align:center;max-width:80%}#toast.show{opacity:1;transform:translate(-50%,0)}.overlay{position:absolute;inset:0;z-index:8;background:#133d3877;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:22px}.panel{position:relative;background:var(--cream);border-radius:24px;width:min(870px,95vw);max-height:90vh;padding:28px;overflow:auto;touch-action:pan-y;box-shadow:0 20px 80px #062e3855}.close{position:sticky;float:right;top:0;background:#dce5d7;border-radius:50%;height:38px;width:38px;font-size:26px;z-index:2}.panel h2{font-size:30px;letter-spacing:-1px;margin:6px 0}.panel>div>p{font-size:13px;opacity:.7}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}.tabs button{border-radius:20px;padding:9px 13px;background:#e4e9d9;font-size:12px}.tabs button.active{background:var(--ink);color:var(--cream)}.dex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:9px}.dex-card{border:1px solid #dce3d0;border-radius:15px;background:#f0f0df;padding:8px;position:relative;min-height:126px;text-align:center}.dex-card img{width:70px;height:64px;object-fit:contain;display:block;margin:auto}.dex-card:not(.caught) img{opacity:.48;filter:saturate(.55)}.dex-card b{display:block;font-size:11px}.dex-card small{font-size:8px;opacity:.6;display:block;margin-top:5px}.dex-card.caught{background:#e1ebd8;border-color:#9bbd91}.dex-card.caught:after{content:'✓';position:absolute;right:7px;top:4px;color:#4b8964;font-size:12px}.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0 12px}.map-place{padding:24px 15px;min-height:118px;background:#e2ebd7;border-radius:16px;text-align:left;border-bottom:4px solid #c6d5b8}.map-place span{display:block;font-size:30px;margin-bottom:10px}.map-place b{font-size:14px;display:block}.map-place small{font-size:10px;display:block;margin-top:5px;opacity:.65}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 0;border-bottom:1px solid #dce2d1}.setting-row small{display:block;margin-top:5px;opacity:.6;font-size:11px}.setting-row button{padding:12px 18px;border-radius:15px;background:#dfe9d4;font-weight:800}.detail{text-align:center;padding:12px}.detail img{width:150px;height:140px;object-fit:contain}.detail p{font-size:13px;line-height:1.6}.detail .primary{margin:12px}.type{font-size:9px;padding:5px 10px;border-radius:20px;background:#ffffff50;display:inline-block;margin-right:5px;font-weight:900;letter-spacing:1px}.type.grass{background:#c6e5b6}.type.fire{background:#ffd0ac}.type.water{background:#b4daeb}.type.electric{background:#f4de89}#encounter{position:absolute;inset:0;background:#d5e5c4;z-index:6;overflow:clip}#battleSky{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,#f9efd2 0%,#d8e9c6 52%,#a3c8b3 100%)}#battleSky:after{content:'';position:absolute;width:150%;height:60%;left:-25%;top:34%;border-radius:50%;background:#64987e22;box-shadow:0 40px 0 #456f5120,0 80px 0 #325d4320;transform:rotate(-8deg)}#battleGround{position:absolute;width:460px;height:140px;left:50%;top:45%;transform:translate(-50%,-20%);background:radial-gradient(ellipse,#b3c58d 0%,#bacd9c 60%,transparent 62%);border-radius:50%}#encounter header{z-index:1}.encounter-heading{background:#fffae6dd;padding:18px 25px;border-radius:18px}.encounter-heading small{font-size:8px;letter-spacing:1.7px;font-weight:800}#pokemonName{font-size:29px;margin:5px 0 9px;letter-spacing:-1px}#pokemonStage{position:absolute;left:50%;top:10%;width:330px;height:49%;transform:translateX(-50%);display:flex;align-items:flex-end;justify-content:center;pointer-events:none}#battlePokemon{width:240px;height:240px;max-height:92%;object-fit:contain;filter:drop-shadow(0 8px 4px #37582d22);transform-origin:50% 100%}.stage-shadow{position:absolute;bottom:8px;width:155px;height:26px;background:#31563c35;border-radius:50%;filter:blur(4px)}#catchPanel{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);width:min(590px,65vw);background:#fff9e9f5;padding:19px 24px;border-radius:22px;box-shadow:0 12px 40px #294b3620}.challenge-top{display:flex;align-items:center;justify-content:space-between}.challenge-top small{font-size:8px;letter-spacing:1.7px;font-weight:850;opacity:.6}h3{font-size:22px;letter-spacing:-.5px;margin:4px 0}#challengeHelp{font-size:12px;margin:6px 0 12px;opacity:.75}#steps{display:flex;gap:5px}#steps i{width:11px;height:11px;border-radius:50%;background:#d6decb}#steps i.done{background:#528767}#challenge{height:53px;position:relative;margin:9px 0 13px}#challengeAction{width:100%;min-height:46px;padding:10px;font-size:14px}.timing-track{position:absolute;left:0;right:0;top:15px;height:22px;background:#dae2ce;border-radius:11px;overflow:hidden}.timing-zone{position:absolute;left:34%;width:32%;height:100%;background:#81ad6f}.timing-zone:after{content:'★';position:absolute;left:50%;font-size:14px;color:#fff8de;transform:translateX(-50%)}.needle{position:absolute;top:5px;height:42px;width:7px;background:#173c38;border-radius:6px;box-shadow:0 0 0 3px #fff8e3}.seq-grid{display:flex;justify-content:center;gap:9px}.seq-grid button{width:68px;height:52px;border-radius:13px;background:#e3ead7;font-size:24px;transition:background .15s}.seq-grid button.lit{background:#f7cc67;box-shadow:0 0 0 3px #ddb255}.stars-field{height:58px;position:relative}.star-target{position:absolute;font-size:30px;width:55px;height:55px;top:0;background:#e9b95a;border:3px solid #fff0bc;border-radius:50%;color:#fff9e5;box-shadow:0 4px 0 #be9441}.ring-target{position:absolute;width:46px;height:46px;left:50%;top:4px;transform:translateX(-50%);border:8px solid #90b681;border-radius:50%}.shrinking-ring{position:absolute;width:46px;height:46px;left:50%;top:4px;margin-left:-23px;border:3px solid #173c38;border-radius:50%;transform:scale(2)}#caughtPanel{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);text-align:center;background:#fff8e8f5;border-radius:23px;padding:25px 35px;width:min(600px,85vw);box-shadow:0 12px 40px #294b3620}#caughtPanel>small{letter-spacing:3px;color:#658151;font-size:10px;font-weight:900}#caughtTitle{font-size:30px;margin:9px 0}#caughtText{font-size:12px;line-height:1.5}.caught-actions{display:flex;gap:10px;justify-content:center;margin-top:18px}#throwBall{position:absolute;bottom:0;left:50%;margin-left:-23px;z-index:2}.throwing{animation:throw 1s ease-out forwards}.shaking{animation:shake .65s ease-in-out 3}.captured{opacity:0;transform:scale(.1)!important;transition:.5s}.celebrate{animation:celebrate .6s ease-out}.confetti{position:absolute;width:9px;height:14px;border-radius:3px;animation:confetti 1.6s ease-out forwards}@keyframes throw{0%{transform:translate(-180px,160px) scale(1.4) rotate(0)}60%{transform:translate(0,-120px) scale(.6) rotate(500deg)}100%{transform:translate(0,0) scale(1) rotate(720deg)}}@keyframes shake{0%,100%{transform:rotate(0)}25%{transform:rotate(-24deg)}75%{transform:rotate(24deg)}}@keyframes bob{50%{transform:translateY(-9px) rotate(8deg)}}@keyframes celebrate{50%{transform:scale(1.15) translateY(-15px)}}@keyframes confetti{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--x),var(--y)) rotate(400deg);opacity:0}}@media(pointer:coarse){#keyboardHint{display:none}}@media(max-height:600px){.title-copy .eyebrow{font-size:8px}.pokemon-word{margin-top:17px;font-size:18px}h1{font-size:76px}.title-copy p{font-size:13px;margin:17px 0}.title-foot{margin-top:18px;font-size:7px}.title-tag{font-size:7px;bottom:20px;right:20px}header{top:max(14px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right))}.location{padding:10px 18px}#areaName{font-size:17px}#quest{top:94px;padding:8px 12px;max-width:255px}#joystick{width:110px;height:110px;bottom:30px;left:max(32px,env(safe-area-inset-left))}#stick{left:25px;top:25px}#interact{width:87px;height:87px;bottom:30px;right:max(30px,env(safe-area-inset-right))}.movement-hint{bottom:10px;left:31px}.buddy-chip{bottom:35px;right:137px}#nearby{bottom:131px;font-size:11px}.encounter-heading{padding:11px 18px}#pokemonName{font-size:24px;margin:4px 0 6px}#pokemonStage{top:4%;height:51%;width:250px}#battlePokemon{width:185px;height:185px}#battleGround{top:35%;width:350px;height:110px}#catchPanel{bottom:14px;padding:12px 20px;width:min(520px,65vw)}h3{font-size:19px}#challenge{height:43px;margin:4px 0 9px}#challengeHelp{font-size:11px;margin:3px 0 5px}#challengeAction{min-height:42px}.timing-track{top:13px;height:18px}.needle{height:36px;top:4px}.seq-grid button{height:42px}.star-target{height:43px;width:43px;font-size:24px}#caughtPanel{bottom:14px;padding:17px 25px}#caughtTitle{font-size:25px;margin:6px 0}.caught-actions{margin-top:12px}#caughtPanel .primary,#caughtPanel .secondary{min-height:43px;padding:10px 20px}.panel{max-height:93vh;padding:23px}.map-place{padding:15px;min-height:100px}.map-place span{font-size:23px;margin-bottom:7px}.map-grid{margin:15px 0 8px}}@media(max-width:600px) and (orientation:portrait){.title-copy{left:9%;top:45%}.title-tag{right:auto;left:9%;bottom:7%}h1{font-size:90px}.title-foot{max-width:250px;line-height:2}#title{background:linear-gradient(90deg,#f6f5dfec,#f6f5df85 70%,#f6f5df20)}#quest{top:110px;max-width:235px;font-size:11px}.location{padding:11px 15px}#areaName{font-size:16px}.pill{padding:10px 12px;font-size:12px}.icon-btn{width:43px;min-height:43px;font-size:22px}.top-actions{gap:5px}#joystick{left:24px;bottom:45px}#interact{right:24px;bottom:45px}.buddy-chip{bottom:155px;right:24px}.movement-hint{bottom:24px;left:24px}#nearby{bottom:220px}#catchPanel{width:91vw;bottom:25px;padding:18px}#pokemonStage{top:18%;height:37%}#encounter header{gap:7px}.encounter-heading{padding:15px}#pokemonName{font-size:24px}.encounter-heading small{font-size:7px}.map-grid{grid-template-columns:repeat(2,1fr)}.caught-actions{flex-direction:column}.panel{padding:20px}#travelNote{font-size:10px;bottom:190px;white-space:normal;width:220px;text-align:center}}
