@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Nunito:wght@700;800;900&display=swap");:root{--ink:#252331;--muted:#605d68;--paper:#f7f5f2;--surface:#fff;--line:#dedce4;--purple:#5865f2;--purple-dark:#414cda;--lavender:#eeefff}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);font-family:DM Sans,sans-serif}button{font:inherit;cursor:pointer;transition:background-color .16s ease,transform .16s ease,box-shadow .16s ease}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{cursor:default;opacity:.72}button:focus-visible{outline:3px solid #9a8fff;outline-offset:3px}::selection{background:#d7d3ff;color:#252331}.shell{max-width:1050px;min-height:100vh;margin:auto;padding:24px 34px 30px}.topbar{justify-content:space-between;gap:16px}.brand,.topbar{display:flex;align-items:center}.brand{gap:11px;font:900 25px Nunito,sans-serif;letter-spacing:-.025em}.brand img{width:45px;height:45px;border-radius:10px}.points{background:var(--surface);border:1px solid var(--line);padding:10px 16px;border-radius:10px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.coin{color:#d6a837}.tabs{display:flex;gap:8px;margin-top:29px;padding-bottom:12px;border-bottom:1px solid var(--line)}.tabs button{background:transparent;border:1px solid transparent;color:var(--muted);border-radius:8px;padding:10px 17px;font-weight:700}.tabs button.active{background:var(--lavender);border-color:#d6d8ff;color:#404bbf}.tabs button:hover:not(.active){background:#eeecf1}.screen{padding:28px 0 18px}.section-head h1{font:900 clamp(32px,4vw,46px)/1.12 Nunito,sans-serif;letter-spacing:-.03em;margin:0 0 7px}.section-head p{margin:0 0 23px;color:var(--muted)}.house-scene{height:345px;border:1px solid #dbd2c8;border-radius:18px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px #27212b13}.house-scene.sunny{background:linear-gradient(#faf3e9,#eadaca 68%,#d4b08b 0,#b99573)}.house-scene.night{background:linear-gradient(#292e4d,#535673 68%,#777085 0,#5b586c);border-color:#47485e}.house-scene.garden{background:linear-gradient(#9ecfe5,#d6eced 68%,#93b67d 0,#6e9863);border-color:#b0c9b1}.house-scene:before{content:"";position:absolute;left:9%;top:12%;width:25%;border:8px solid #fffaf3;border-radius:90px 90px 12px 12px;background:linear-gradient(#80bfe3,#d8ebf5);box-shadow:0 3px 15px #2a272533,inset 0 0 0 2px #c7d3d8}.house-scene.night:before{background:linear-gradient(#17234f,#526589);border-color:#ddd8e3}.house-scene.garden:before{display:block;left:-7%;top:auto;bottom:32%;width:70%;height:22%;border:0;border-radius:50% 50% 0 0;background:#76a276;box-shadow:none;opacity:.42}.scene-top{position:absolute;z-index:1;top:22px;right:30px;color:#efc55c;font-size:34px;line-height:1;text-shadow:0 2px 8px #946a5033}.pet-wrap{position:relative;z-index:2;display:grid;justify-items:center;grid-gap:2px;gap:2px;transform:translate(42px,13px);font:800 18px Nunito,sans-serif}.pet-wrap strong{color:var(--ink);background:#fffdfad9;padding:3px 12px;border-radius:8px}.pet-large{width:205px;height:232px;filter:drop-shadow(0 10px 8px #211b2028)}.owner-figure{position:absolute;z-index:1;left:18%;bottom:63px;width:111px;height:214px;filter:drop-shadow(0 9px 5px #211b2025)}.play-actions{display:flex;align-items:center;flex-wrap:wrap;margin-top:17px}.catalog-item button,.game-link button,.primary,.secondary{border-radius:8px;padding:12px 17px;font-weight:700;min-height:44px}.primary{background:var(--purple);border:1px solid var(--purple);color:#fff;box-shadow:0 5px 12px #5865f22b}.game-link button:hover:not(:disabled),.primary:hover:not(:disabled){background:var(--purple-dark)}.secondary{background:var(--surface);color:var(--ink);border:1px solid #c7c6cf}.catalog-item button:hover:not(:disabled),.secondary:hover:not(:disabled){background:var(--lavender);border-color:#aeb3f3}.shop-link{border:0;background:transparent;color:#404bbf;font-weight:700;text-decoration:underline;text-underline-offset:4px;padding:12px 8px}.shop-link.below{margin-top:11px}.picker{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:27px;text-align:center}.picker h2{font:900 28px Nunito,sans-serif;margin:0}.picker p{color:var(--muted);margin:5px 0 22px}.pet-options{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.pet-options button{display:grid;justify-items:center;grid-gap:8px;gap:8px;min-width:129px;min-height:130px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:11px;font-weight:700;text-transform:capitalize}.pet-options button.chosen{border:2px solid var(--purple);background:var(--lavender)}.pet-face{width:74px;height:82px}.picker .primary{margin-top:20px}.game-link{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--lavender);border:1px solid #d6d8ff;border-radius:13px;padding:19px 22px;margin-bottom:27px}.catalog-heading,.game-link h2{font:800 21px Nunito,sans-serif;margin:0 0 4px}.game-link p{color:var(--muted);margin:0}.game-link button{background:var(--purple);border:1px solid var(--purple);color:#fff}.catalog-heading{margin:0 0 12px}.catalog{display:grid;grid-gap:12px;gap:12px}.catalog-item{display:grid;grid-template-columns:94px 1fr auto;align-items:center;grid-gap:19px;gap:19px;border:1px solid var(--line);border-radius:12px;padding:13px;background:var(--surface)}.catalog-item h2{font:800 20px Nunito,sans-serif;margin:0}.catalog-item p{color:var(--muted);margin:3px 0 0}.catalog-item button{background:#fff;color:#404bbf;border:1px solid #b8bdf2;padding:10px 15px;box-shadow:none}.catalog-item button:disabled{background:#eeedf4;color:#56525d;border-color:#e2e0e7}.item-art,.swatch{width:94px;height:71px;border-radius:7px}.swatch.sunny{background:linear-gradient(#faf3e9,#eadaca 68%,#d4b08b 0,#b99573)}.swatch.night{background:linear-gradient(#292e4d,#535673 68%,#777085 0,#5b586c)}.swatch.garden{background:linear-gradient(#9ecfe5,#d6eced 68%,#93b67d 0,#6e9863)}.item-art{display:grid;place-items:center;background:#f2eef6;font-size:40px}.empty{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:12px;color:var(--muted)}.message{background:#eeefff;border:1px solid #d6d8ff;color:#303a9d;border-radius:9px;padding:11px 15px;font-weight:600}footer{border-top:1px solid var(--line);padding-top:17px;margin-top:21px;color:var(--muted);font-size:13px}.play-ball{position:absolute;bottom:18%;left:22%;color:#e6684c;font-size:48px;animation:ball-return .85s ease-in-out}.pet-heart{position:absolute;top:23%;left:58%;color:#d76b80;font-size:51px;animation:heart-rise .85s ease-out}.fetching{animation:pet-fetch .8s ease-in-out}.purring{animation:pet-purr .65s ease-in-out}.walking{animation:pet-walk .9s ease-in-out}@keyframes ball-return{0%,to{transform:translateX(0) scale(.8)}50%{transform:translateX(130px) scale(1.1)}}@keyframes heart-rise{0%{opacity:0;transform:translateY(18px)}40%{opacity:1}to{opacity:0;transform:translateY(-35px)}}@keyframes pet-fetch{50%{transform:translateX(-28px) rotate(-7deg)}}@keyframes pet-purr{50%{transform:scale(1.12)}}@keyframes pet-walk{0%,to{transform:translateX(0) rotate(0)}25%{transform:translateX(-23px) rotate(-5deg)}50%{transform:translateX(0) rotate(3deg)}75%{transform:translateX(23px) rotate(-5deg)}}@media(max-width:600px){.shell{padding:16px;min-height:100dvh}.brand{font-size:20px}.brand img{width:38px;height:38px}.points{font-size:13px;padding:8px 10px}.tabs{margin-top:22px}.tabs button{flex:1 1;padding:10px 3px;font-size:14px}.screen{padding-top:22px}.section-head p{font-size:15px;margin-bottom:17px}.house-scene{height:320px}.house-scene:before{left:5%;top:12%;width:29%;height:34%;border-width:5px}.scene-top{right:18px;font-size:29px}.owner-figure{left:5%;bottom:65px;width:72px;height:139px}.pet-wrap{transform:translate(45px,10px)}.pet-large{width:173px;height:195px}.play-actions{display:grid;grid-template-columns:1fr 1fr}.play-actions button{font-size:12px;padding:10px 8px}.play-actions .shop-link{grid-column:1/-1}.picker{padding:20px 12px}.pet-options button{min-width:87px;min-height:112px;padding:9px}.pet-face{width:58px;height:65px}.catalog-item{grid-template-columns:70px 1fr auto;gap:10px;padding:10px}.item-art,.swatch{width:70px;height:62px}.catalog-item h2{font-size:16px}.catalog-item p{font-size:13px}.catalog-item button{font-size:12px;padding:9px;min-height:39px}.game-link{padding:13px}.game-link h2{font-size:18px}.game-link p{font-size:13px}}@media(prefers-reduced-motion:reduce){.fetching,.pet-heart,.play-ball,.purring,.walking,button{animation:none;transition:none}}:root{--ink:#24242a;--muted:#57545a;--paper:#f8f6f3;--line:#e7e2dd;--lavender:#f0efff}html{scrollbar-color:#c8c3cc var(--paper)}body{background:var(--paper)}.shell{max-width:1120px;padding:30px 44px 36px}.topbar{padding-bottom:24px;border-bottom:1px solid var(--line)}.brand{font-size:23px}.points{background:#fff;border-color:#e6e1dc;border-radius:999px;padding:10px 17px;box-shadow:0 3px 12px #342b2810}.tabs{margin-top:20px;padding-bottom:0;gap:4px;border:0}.tabs button{border-radius:999px;padding:11px 20px}.tabs button.active{background:#e7e6ff;border-color:transparent;color:#353cb0}.screen{padding:36px 0 20px}.section-head{margin-bottom:27px}.section-head h1{font-size:clamp(32px,4vw,43px);margin-bottom:8px}.section-head p{margin:0;font-size:16px}.house-scene{height:395px;border-radius:23px;border:1px solid #d5cabe;box-shadow:0 14px 28px #3229251c,inset 0 -3px 0 #56403419;height:330px}.house-scene.sunny{background:linear-gradient(90deg,#bda08b33 0 1px,transparent 1px 14%),linear-gradient(#f7eee6 0 66%,#d5b797 66% 67%,#a77d5b 67% 100%)}.house-scene.night{background:linear-gradient(90deg,#b2add222 0 1px,transparent 1px 14%),linear-gradient(#30334f 0 66%,#7d7183 66% 67%,#595266 67% 100%)}.house-scene.garden{background:linear-gradient(90deg,#eaf4e844 0 1px,transparent 1px 14%),linear-gradient(#cde9e9 0 66%,#a5bb90 66% 67%,#71966d 67% 100%)}.house-scene:before{background:linear-gradient(#8dbada,#d8eaf1)}.house-scene.garden:before,.house-scene:before{left:8%;top:10%;width:23%;height:42%;border:solid #fbf8f1;border-width:10px 10px 14px;border-radius:110px 110px 8px 8px;box-shadow:0 5px 18px #3a302534,inset 0 0 0 2px #b8ced4}.house-scene.garden:before{bottom:auto;background:linear-gradient(#9bd4e7,#e0f0eb 72%,#85ad78 0);opacity:1}.house-scene:after{content:"";position:absolute;left:24%;right:10%;bottom:18%;height:18%;border-radius:50%;background:#f6e6cc6b;box-shadow:0 3px 14px #29201c1c;transform:perspective(280px) rotateX(58deg)}.house-scene.night:after{background:#aaa4bd45}.house-scene.garden:after{background:#d6dcaa85}.scene-top{right:33px;top:27px}.owner-figure{z-index:2;left:19%;bottom:69px}.pet-wrap{z-index:3;transform:translate(52px,17px)}.pet-large{filter:drop-shadow(0 15px 6px #211b2033);width:183px;height:207px}.owner-figure{width:96px;height:184px;bottom:57px}.play-actions{margin-top:20px;gap:10px}.catalog-item button,.game-link button,.primary,.secondary{border-radius:9px;min-height:46px;padding:12px 18px}.game-link button,.primary{box-shadow:none}.game-link button:hover:not(:disabled),.primary:hover:not(:disabled){box-shadow:0 5px 13px #5865f23b}.catalog-item button,.secondary{background:#fff;border-color:#d1ccd2}.catalog-item button:hover:not(:disabled),.secondary:hover:not(:disabled){background:#f5f4ff;border-color:#a8a6d7}.shop-link{margin-left:auto;color:#3d45b4}.picker{border-color:var(--line);border-radius:18px;box-shadow:0 8px 24px #352b2310}.pet-options button{border-radius:12px}.game-link{background:#f0efff;border-color:#dedcf8;border-radius:14px}.catalog{gap:10px}.catalog-item{border-color:var(--line);border-radius:14px;padding:15px 17px;box-shadow:0 3px 12px #342b2809}.catalog-item button{min-width:89px;color:#353cb0}.item-art,.swatch{border-radius:10px}.empty,.message{border-radius:12px}footer{font-size:14px;line-height:1.5}@media(max-width:600px){.shell{padding:17px 16px 28px}.topbar{padding-bottom:15px}.tabs{margin-top:15px;display:grid;grid-template-columns:repeat(3,1fr)}.tabs button{padding:10px 4px;font-size:13px}.screen{padding-top:28px}.section-head{margin-bottom:20px}.house-scene{height:300px;border-radius:18px}.house-scene.garden:before,.house-scene:before{left:5%;top:9%;width:29%;height:35%;border-width:6px 6px 10px}.house-scene:after{left:10%;right:4%}.owner-figure{left:5%;bottom:57px;width:72px;height:139px}.pet-wrap{transform:translate(40px,12px)}.pet-large{width:160px;height:180px}.play-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.play-actions .primary{grid-column:1/-1}.play-actions button{font-size:14px;line-height:1.2;min-height:47px}.play-actions .shop-link{margin:0;justify-self:start}.catalog-item{padding:10px;gap:9px}.catalog-item button{min-width:65px}}:root{--ink:#252b31;--muted:#53606a;--paper:#f3f4f2;--line:#d9dfdf;--purple:#405e74;--purple-dark:#304c61;--lavender:#e8eef0}.brand{letter-spacing:-.035em}.brand,.catalog-heading,.catalog-item h2,.game-link h2,.picker h2,.section-head h1{font-family:DM Sans,sans-serif;font-weight:700}.tabs button.active{background:#dfe9ec;color:#264b60}.tabs button:hover:not(.active){background:#e9edec}.house-scene{border-radius:13px;box-shadow:0 9px 22px #25323c16}.pet-wrap{font-family:DM Sans,sans-serif;font-weight:600}.pet-wrap strong{background:#f8f9f4e8;color:#26353b;font-weight:600}.game-link button:hover:not(:disabled),.primary:hover:not(:disabled){box-shadow:0 5px 13px #405e7433}.catalog-item button:hover:not(:disabled),.secondary:hover:not(:disabled){background:#edf2f3;border-color:#8ca5ae}.catalog-item button,.shop-link{color:#2f5870}.catalog-item,.game-link,.picker{border-radius:11px;box-shadow:none}.game-link{background:#e8eef0;border-color:#d4e0e4}.message{background:#e8eef0;border-color:#cadde3;color:#284a5f}.pet-options button.chosen{border-color:#405e74;background:#e8eef0}button:focus-visible{outline-color:#537d94}::selection{background:#bfd6df;color:#1f3039}.play-actions{padding:12px;background:#e7ebea;border:1px solid #d2dcda;border-radius:15px;gap:8px}.play-actions .primary{background:#356d73;border-color:#356d73}.play-actions .primary:hover:not(:disabled){background:#285b62}.play-actions .secondary{background:#fff;border-color:#c9d4d3}.play-actions .shop-link{margin-left:auto;color:#225c66}.house-scene{border:3px solid #e5e6dc;box-shadow:0 10px 24px #25323c1b}.pet-wrap strong{box-shadow:0 2px 8px #27302c20}.points{border-color:#b8cfcb;background:#f8fbf8}.coin{color:#c58537}.tabs button.active{box-shadow:inset 0 -2px #356d73}.catalog-item button:hover:not(:disabled),.secondary:hover:not(:disabled){transform:translateY(-2px)}@media(max-width:600px){.play-actions{padding:9px;gap:7px}.play-actions .shop-link{margin-left:0}.play-actions button{min-height:46px}}.explorer{max-width:1180px}.explorer .screen{padding-top:30px}.game-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.75fr);grid-gap:24px;gap:24px;align-items:start}.world-map{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:6px;gap:6px;padding:14px;aspect-ratio:1.28;background:#d8e6d5;border:1px solid #b6cbb7;border-radius:18px;box-shadow:0 12px 25px #27392b19}.world-map.night{background:#b5bed2;border-color:#9da9c4}.world-map.garden{background:#c9e4c4;border-color:#aacba6}.map-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:75px;padding:3px;border:1px solid #a4c2a46b;border-radius:11px;background:#ebf2df;color:#233d35;box-shadow:inset 0 -4px #71997520;overflow:hidden}.map-tile:nth-child(3n+2){background:#e4efd9}.map-tile:nth-child(4n+1){background:#dcebd8}.world-map.night .map-tile{background:#d8dfeb;border-color:#aebbd1}.world-map.garden .map-tile{background:#e2f2d8;border-color:#a6c9a1}.map-tile.visited{box-shadow:inset 0 -4px #4e8b6b2c}.map-tile.landmark{background:#f3ead1;border-color:#d5ba82}.map-tile.target{outline:3px solid #cf9447;outline-offset:-4px}.map-tile.current{background:#fff7de;border-color:#d8ab5c;box-shadow:0 4px 12px #40533933;z-index:1}.map-tile:disabled{opacity:1;cursor:default}.map-tile:not(:disabled):hover{transform:translateY(-2px);border-color:#38756e;box-shadow:0 5px 10px #2d59422b}.map-tile:focus-visible{outline:3px solid #255c6a;outline-offset:2px}.place-symbol{font:700 clamp(24px,4vw,38px)/1 Georgia,serif;color:#537d68}.map-tile.target .place-symbol{color:#a96425}.trail-dot{width:12px;height:12px;border-radius:50%;background:#b3cdb1}.place-name{font-size:11px;font-weight:700;line-height:1.1;white-space:nowrap}.map-pet{width:min(65%,70px);height:70%;filter:drop-shadow(0 3px 2px #223d2b44)}.map-side{display:grid;grid-gap:14px;gap:14px}.location,.move-controls,.quest-focus{border:1px solid var(--line);border-radius:14px;background:#fff;padding:18px}.location span,.quest-focus span{display:block;color:#577469;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px}.location strong,.quest-focus strong{display:block;font-size:22px;line-height:1.25}.location small{display:block;color:var(--muted);margin-top:6px}.quest-focus{background:#edf3e7;border-color:#cad9c6}.quest-focus p{color:#465a4d;line-height:1.45;margin:9px 0 15px}.quest-focus .primary{width:100%;background:#346d63;border-color:#346d63}.move-controls{text-align:center}.move-controls>button,.move-controls>div button{width:49px;height:45px;margin:2px;border:1px solid #b7cbc5;border-radius:9px;background:#eaf2ee;color:#27554c;font-size:23px;font-weight:700}.move-controls button:hover:not(:disabled){background:#d3e8de}.move-controls button:disabled{opacity:.38}.move-controls small{display:block;color:var(--muted);margin-top:9px}.quest-list{display:grid;grid-gap:10px;gap:10px}.quest-row{display:grid;grid-template-columns:66px minmax(0,1fr) auto;align-items:center;grid-gap:18px;gap:18px;padding:17px;border:1px solid var(--line);border-radius:13px;background:#fff}.quest-mark{display:grid;place-items:center;width:66px;height:66px;border-radius:10px;background:#e6eee3;color:#4f8069;font:700 34px Georgia,serif}.quest-row h2{margin:0;font:700 20px DM Sans,sans-serif}.quest-row p{margin:4px 0;color:var(--muted)}.quest-row small{color:#346d63;font-weight:700}.quest-row button{min-width:112px}.items-heading{margin-top:28px}.message.error{background:#fff0e9;border-color:#e7bba6;color:#834125}.adventure-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-8px 0 18px}.adventure-bar .secondary{white-space:nowrap}.saved-adventures{position:relative;margin-left:auto}.saved-adventures summary{cursor:pointer;color:#2e6159;font-weight:700;padding:10px}.saved-adventures>div{position:absolute;right:0;top:100%;z-index:5;display:grid;grid-gap:5px;gap:5px;min-width:250px;max-height:300px;overflow:auto;padding:8px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 24px #27392b22}.saved-adventures button{text-align:left;background:#fff;border:0;border-radius:7px;padding:10px;color:var(--ink)}.saved-adventures button.selected,.saved-adventures button:hover{background:#e8f0e9}.quest-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:12px 16px;border:1px solid #d8bd83;border-radius:11px;background:#fff5dc;color:#4b3b1d;font-weight:700}.quest-banner .primary{background:#356d63;border-color:#356d63;white-space:nowrap}.retry-button{margin-left:12px;border:1px solid;border-radius:6px;background:transparent;color:inherit;padding:6px 10px;font-weight:700}@media(max-width:700px){.game-layout{grid-template-columns:1fr}.world-map{aspect-ratio:1.05;padding:8px;gap:4px}.map-tile{min-height:55px;border-radius:8px}.place-name{font-size:9px}.map-pet{height:80%}.map-side{grid-template-columns:1fr 1fr}.quest-focus{grid-column:1/-1;grid-row:1}.location,.move-controls{padding:12px}.quest-row{grid-template-columns:48px minmax(0,1fr);gap:10px}.quest-mark{width:48px;height:48px;font-size:26px}.quest-row button{grid-column:2;justify-self:start;min-width:0}.explorer .section-head h1{font-size:31px}}@media(max-width:420px){.map-side{grid-template-columns:1fr}.quest-focus{grid-column:auto;grid-row:auto}.map-tile{min-height:50px}.world-map{aspect-ratio:1}.place-symbol{font-size:23px}}@media(max-width:700px){.quest-banner{align-items:stretch;flex-direction:column}.quest-banner .primary{white-space:normal}.quest-focus .primary{display:none}.place-name{font-size:11px}}@media(max-width:420px){.adventure-bar{align-items:flex-start}.adventure-bar .secondary{font-size:13px;padding:9px 10px}.saved-adventures summary{font-size:13px;padding:10px 2px}.saved-adventures>div{min-width:220px}}