@font-face{font-family:Pixel;src:url('./assets/pixel.ttf') format('truetype');font-display:swap}
:root{--ink:#283d35;--muted:#69766c;--paper:#fffdf2;--bg:#eef0de;--green:#355a46;--line:#c9cdb4;--orange:#e5926d;--pink:#efbbb0;--shadow:#c5cbae;--pixel:Pixel,'Courier New',monospace}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:15px;line-height:1.6;background-image:radial-gradient(#bcc5a84a 1px,transparent 1px);background-size:12px 12px}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #df8656;outline-offset:4px}[hidden]{display:none!important}.shell{width:min(100% - 40px,1060px);margin:0 auto;min-height:100svh;display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;padding:30px 0 25px;border-bottom:1px solid var(--line);gap:12px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:700 18px/1.3 var(--pixel);letter-spacing:-.5px}.brand-light{color:#809071;margin-left:6px}.brand small{display:block;font:11px/1.5 system-ui;letter-spacing:1.25px;margin-top:5px;color:var(--muted)}.brand-icon{font-size:28px;color:#df927a;text-shadow:2px 2px #634c3c}.header-tools{display:flex;gap:9px}.icon-button{border:1px solid var(--line);width:38px;height:38px;background:#fffdf27a;color:var(--green);font-size:21px;display:grid;place-content:center;box-shadow:2px 2px #d9ddc7;line-height:1}.icon-button:hover{background:var(--paper)}.mode-banner{margin-top:18px;padding:7px 12px;border:1px dashed #a8b296;background:#fff6d4;text-align:center;font-size:12px}.footer{margin-top:auto;text-align:center;padding:33px 0 23px;font-size:11px;letter-spacing:.8px;color:var(--muted)}.pixel-heart{color:#c88172;margin-right:7px}main:focus{outline:none}.intro{padding:44px 0 10px;display:grid;grid-template-columns:1fr 1.05fr;gap:55px;align-items:center;min-height:620px}.eyebrow{font:11px/1.8 var(--pixel);letter-spacing:1.4px;color:#6d7f64}.edition{display:inline-flex;align-items:center;gap:8px;border:1px solid #c0c8ad;background:#e3e9cf;padding:6px 10px;font-size:9px}.edition .sparkle{color:#9a7449}.intro h1{font:clamp(31px,4vw,47px)/1.5 var(--pixel);letter-spacing:-1.2px;margin:23px 0 18px;text-shadow:2px 2px #d9dfc7}.intro h1 span{color:#c77861}.intro-copy{color:var(--muted);max-width:360px;font-size:15px;margin-bottom:28px;white-space:pre-line}.button{min-height:52px;padding:14px 20px;border:2px solid var(--ink);text-decoration:none;font:12px/1.6 var(--pixel);display:inline-flex;align-items:center;justify-content:center;gap:12px;transition:transform .12s,box-shadow .12s;box-shadow:4px 4px var(--ink)}.button:hover{transform:translate(-1px,-1px);box-shadow:5px 5px var(--ink)}.button:active{transform:translate(3px,3px);box-shadow:1px 1px var(--ink)}.primary{background:var(--green);color:#fffdf2}.secondary{background:var(--paper);color:var(--ink)}.accent{background:#efad83;color:#362b23}.full{width:100%}.trail-meta{font-size:11px;letter-spacing:.4px;color:var(--muted);margin:16px 0 0}.trail-meta b{color:#af805b;margin:0 7px;font-weight:400}.world-panel{background:#dce6be;border:3px solid var(--ink);box-shadow:8px 8px #b7c3a4;position:relative;min-width:0}.world-top{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#f9f5e2;border-bottom:2px solid var(--ink);font:9px/1.5 var(--pixel)}.world-top span:last-child{font:10px system-ui;color:var(--muted)}.world{display:block;width:100%;aspect-ratio:1.2;image-rendering:pixelated;background:#dce6be}.world-caption{padding:12px;background:#f9f5e2;border-top:2px solid var(--ink);display:flex;justify-content:center;gap:7px;align-items:center;font:9px/1.7 var(--pixel)}.world-caption span{color:#c47a63}.creature-row{display:flex;justify-content:space-evenly;position:relative;background:#fdf8e6;border-top:2px solid var(--ink);padding:6px 6px 1px}.sprite{display:inline-block;position:relative;width:120px;aspect-ratio:4/5;overflow:hidden;vertical-align:middle;isolation:isolate}.sprite img{position:absolute;width:300%;max-width:none;height:160%;object-fit:fill;left:0;top:-30%;image-rendering:pixelated;user-select:none;pointer-events:none}.sprite.s1 img{left:-100%}.sprite.s2 img{left:-200%}.sprite.small{width:72px}.sprite.large{width:min(210px,65vw)}.sprite.locked img{filter:brightness(0) opacity(.2)}.sprite.bob{animation:bob 3s steps(3,end) infinite}.sprite.s1{animation-delay:.3s}.sprite.s2{animation-delay:.6s}.sprite::after{content:'';position:absolute;bottom:13%;left:27%;width:45%;height:5%;background:#355a4610;z-index:-1}.journey{padding-top:27px;max-width:790px;margin:auto}.journey-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.journey h1,.collection h1,.reward h1{font:22px/1.6 var(--pixel);margin:5px 0 10px;letter-spacing:-.5px}.muted{color:var(--muted)}.tiny{font-size:11px}.progress-pill{background:#e4e9d0;border:1px solid #b3c19f;padding:7px 10px;font:11px/1.6 var(--pixel);white-space:nowrap}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:24px 0}.tab{border:0;background:none;padding:9px 0 12px;color:var(--muted);font:10px var(--pixel);border-bottom:3px solid transparent}.tab.active{color:var(--green);border-color:var(--green)}.quest-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:25px;align-items:start}.card{background:var(--paper);border:2px solid var(--ink);box-shadow:5px 5px #bfc8aa}.clue-card{padding:25px 23px}.stage-label{display:flex;justify-content:space-between;align-items:center;font:10px/1.8 var(--pixel);color:#7d8c71}.stage-number{color:#bc745b}.clue-card h2{font:18px/1.8 var(--pixel);margin:20px 0 13px}.clue-text{font-size:16px;line-height:1.8;white-space:pre-line;margin:0 0 19px}.hint{border-top:1px dashed var(--line);padding-top:13px;margin-top:19px}.hint summary{font-size:12px;cursor:pointer;color:#7f7055}.hint p{font-size:13px;color:var(--muted);white-space:pre-line}.gps-card{background:#e5ebd3;border:1px solid #b9c5a6;padding:15px;margin-top:22px}.gps-row{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}.status-dot{width:7px;height:7px;display:inline-block;background:#97a18c;box-shadow:2px 2px #7e8972;flex:none}.status-dot.live{background:#58825a;animation:blink 2s steps(2) infinite}.gps-info{font-size:11px;margin:7px 0 12px;color:var(--muted)}.gps-facts{display:flex;justify-content:space-between;gap:10px;font:10px/1.6 var(--pixel);margin:12px 0}.gps-note{font-size:10px;color:var(--muted);margin:11px 0 0}.side-world .world-top{font-size:8px}.side-world .world{aspect-ratio:1.1}.collection{max-width:790px;margin:30px auto}.collection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.collection-card{text-align:center;padding:18px 10px 22px}.collection-card h2{font:13px/1.6 var(--pixel);margin:0}.collection-card .kind{font-size:11px;color:var(--muted)}.collection-card .note{font-size:12px;padding:0 8px}.collection-card .sprite{width:100%;max-width:180px}.collection-card.unknown{background:#e7ead8;border-style:dashed;border-color:#9ba88f}.collection-card .number{font:9px var(--pixel);color:#8a927c}.collection-card .caught-badge{display:inline-block;background:#e1eace;padding:3px 9px;font-size:10px;margin-top:8px}.section-subtitle{color:var(--muted);font-size:13px;margin:0 0 23px}.text-button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;padding:10px 5px;color:var(--muted);font-size:12px}.reward{max-width:600px;margin:35px auto;text-align:center;padding:35px 25px}.reward .ribbon{font:10px var(--pixel);color:#bb785c}.reward .reward-copy{white-space:pre-line;color:var(--muted);line-height:1.9;margin:20px 0}.reward .restaurant{background:#f1e4c9;border:1px solid #d2bd95;padding:17px;margin:25px 0}.reward .restaurant small{display:block;font:9px var(--pixel);color:#96714f;margin-bottom:10px}.reward .restaurant strong{font-size:18px}.reward .sprite{width:31%}.reward .button{margin:10px 0}.reward-stars{font-size:24px;color:#cb915c;letter-spacing:14px}.reward .text-button{display:block;margin:12px auto}.storage-warning{font-size:12px;background:#fff0cc;border:1px solid #dcc68c;padding:10px;margin:10px 0}dialog{border:2px solid var(--ink);background:var(--paper);color:var(--ink);padding:0;max-width:calc(100vw - 28px);box-shadow:7px 7px #182c2540}dialog::backdrop{background:#223b32b8;backdrop-filter:blur(3px)}.encounter-dialog{width:450px;text-align:center;overflow:visible}.encounter-inner{padding:30px 22px 24px;position:relative;background:radial-gradient(ellipse at 50% 45%,#f6edc5,transparent 65%)}.encounter-inner .eyebrow{font-size:9px}.encounter-inner h2{font:24px/1.6 var(--pixel);margin:12px 0 0}.encounter-inner .species{font-size:12px;color:var(--muted)}.encounter-stage{position:relative;display:grid;place-items:center;height:270px}.encounter-stage::before{content:'✦';position:absolute;color:#d69b67;font-size:150px;opacity:.2}.catch-orb{display:none;width:80px;height:80px;border:5px solid var(--ink);background:linear-gradient(#e08b70 0 45%,var(--ink) 45% 55%,#fff3d9 55%);position:absolute;box-shadow:4px 4px #28453b33}.catch-orb::before{content:'';position:absolute;inset:26px;border:4px solid var(--ink);background:#fff3d9}.catching .sprite{animation:shrink .5s steps(5) both}.catching .catch-orb{display:block;animation:catch .9s steps(3) .4s both}.captured .catch-orb{display:none}.captured .sprite{animation:celebrate .5s steps(4) both}.catch-guarantee{font-size:10px;color:var(--muted);margin:15px 0 0}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.settings-dialog{width:580px;padding:25px;max-height:90svh;overflow:auto}.settings-dialog h2{font:16px/1.8 var(--pixel);margin:5px 0}.settings-dialog>.muted{font-size:13px}label{display:block;font-size:12px;font-weight:600;margin:15px 0}input,textarea{display:block;width:100%;margin-top:6px;border:1px solid #aab697;background:#fffef7;border-radius:0;padding:10px;color:var(--ink);font-size:14px;font-weight:400}textarea{resize:vertical}fieldset{padding:5px 15px 12px;border:1px solid var(--line);margin:25px 0}legend{font:10px/1.8 var(--pixel);padding:0 8px}.setup-actions{margin-top:20px;display:flex;flex-direction:column;gap:4px}.feedback{font-size:12px;color:var(--green);white-space:pre-line}.form-error{background:#fbe4d6;color:#783a29;padding:10px;font-size:12px}.rescue-button{color:#986346}.toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);padding:12px 19px;background:var(--ink);color:var(--paper);font-size:12px;box-shadow:3px 3px #afbea0;max-width:calc(100vw - 30px);z-index:10;text-align:center}.install-note{margin-top:19px;font-size:10px;color:#818b78}.install-note summary{cursor:pointer}.install-note p{max-width:350px}.intro-actions .text-button{margin-left:12px}.ready-tag{padding:12px 0 0;font-size:12px;color:#597647}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes blink{50%{opacity:.4}}@keyframes shrink{to{transform:scale(0);opacity:0}}@keyframes catch{0%{transform:translateY(-50px) rotate(0)}40%{transform:translateY(0) rotate(-12deg)}75%{transform:rotate(12deg)}100%{transform:rotate(0)}}@keyframes celebrate{0%{transform:scale(.2)}70%{transform:scale(1.1)}100%{transform:scale(1)}}
@media(max-width:760px){.shell{width:min(100% - 32px,480px)}.header{padding:22px 0 18px}.brand{font-size:14px;gap:9px}.brand small{font-size:10px}.brand-icon{font-size:23px}.icon-button{width:33px;height:33px;font-size:18px}.intro{padding-top:25px;display:flex;flex-direction:column;gap:28px;min-height:0;align-items:stretch}.intro-text{display:contents}.edition{align-self:flex-start;order:0;font-size:8px}.intro h1{order:1;font-size:29px;line-height:1.55;margin:0;letter-spacing:-1px}.intro .world-panel{order:2;box-shadow:5px 5px #b7c3a4}.intro-copy{order:3;margin:0;max-width:none;font-size:14px}.intro-actions{order:4}.intro-actions .primary{width:100%;font-size:11px}.intro-actions>.text-button{display:block;margin:12px auto 0}.trail-meta{text-align:center;font-size:10px}.world{aspect-ratio:1.5}.world-top{font-size:8px;padding:10px 12px}.world-top span:last-child{font-size:10px}.creature-row .sprite{width:85px}.world-caption{font-size:8px;padding:10px}.footer{padding:29px 0 20px}.intro .install-note{margin-top:16px;text-align:center}.intro .install-note p{text-align:left}.journey{padding-top:25px}.journey h1,.collection h1,.reward h1{font-size:19px;line-height:1.8}.journey .eyebrow{font-size:9px}.progress-pill{font-size:9px;margin-top:8px}.quest-layout{grid-template-columns:1fr;gap:22px}.clue-card{padding:23px 21px}.clue-card h2{font-size:18px;margin-top:15px}.clue-text{font-size:16px}.side-world .world{aspect-ratio:1.7}.side-world .world-caption{display:none}.tabs{margin-top:19px;gap:25px}.tab{font-size:9px}.collection-grid{grid-template-columns:1fr}.collection-card{display:grid;grid-template-columns:110px 1fr;text-align:left;align-items:center;padding:15px 17px;gap:12px}.collection-card .sprite{width:110px;grid-row:1/3}.collection-card .note{padding:0;margin:8px 0 0}.collection-card .number{font-size:8px}.collection-card h2{margin-top:7px;font-size:14px}.collection-card .caught-badge{margin-top:7px}.reward{padding:27px 20px;margin-top:25px}.reward .reward-copy{font-size:14px}.settings-dialog{padding:20px}.settings-dialog h2{font-size:13px}.settings-dialog .eyebrow{font-size:9px}.encounter-inner h2{font-size:22px}.encounter-stage{height:265px}.button{min-height:51px;font-size:11px}.install-note p{margin-left:auto;margin-right:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep sprite-sheet neighbors outside the visible crop. */
.sprite.s1{clip-path:inset(0 4% 0 4%)}
.intro h1{text-transform:uppercase}
