:root{--ink:#1f1a14;--cream:#fff8e8;--grass:#5f8f3a;--pink:#ff4f9a;--gold:#ffcf3a;--sky:#9cc6ee;--shadow:0 4px 0 #00000059;--display:"Luckiest Guy", "Impact", system-ui, sans-serif;--body:"Nunito", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;font-family:var(--body);color:var(--cream);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#9cc6ee;margin:0;overflow:hidden}#renderCanvas{touch-action:none;outline:none;width:100%;height:100%;position:fixed;inset:0}kbd{background:var(--cream);min-width:1.6em;color:var(--ink);font-family:var(--body);text-align:center;border-radius:5px;margin:0 1px;padding:0 .35em;font-size:.85em;font-weight:800;display:inline-block;box-shadow:0 2px #0006}.outline{text-shadow:2px 2px 0 var(--ink), -2px 2px 0 var(--ink), 2px -2px 0 var(--ink), -2px -2px 0 var(--ink)}#hud{pointer-events:none;display:none;position:fixed;inset:0}body.playing #hud{display:block}#score{top:max(14px, env(safe-area-inset-top));font-family:var(--display);letter-spacing:1px;text-shadow:3px 3px 0 var(--ink), -2px 2px 0 var(--ink), 2px -2px 0 var(--ink), -2px -2px 0 var(--ink);font-size:34px;position:absolute;left:16px}#score .label{color:var(--gold);vertical-align:middle;font-size:18px}#score.bump{animation:.35s ease-out bump}@keyframes bump{0%{transform:scale(1.25)rotate(-3deg)}to{transform:scale(1)}}#combo{top:calc(max(14px, env(safe-area-inset-top)) + 44px);font-family:var(--display);color:var(--pink);text-shadow:2px 2px 0 var(--ink);font-size:24px;transition:opacity .2s;position:absolute;left:18px}#top-buttons{top:max(12px, env(safe-area-inset-top));pointer-events:auto;gap:8px;display:flex;position:absolute;right:16px}#top-buttons button{border:3px solid var(--ink);background:var(--cream);cursor:pointer;width:42px;height:42px;box-shadow:var(--shadow);border-radius:12px;font-size:20px}#garage-alert{font-family:var(--display);border:4px solid var(--ink);box-shadow:var(--shadow);white-space:nowrap;background:#d62828;border-radius:14px;padding:6px 18px;font-size:30px;animation:.4s steps(2,end) infinite flash;display:none;position:absolute;top:70px;left:50%;transform:translate(-50%)}#garage-alert.show{display:block}@keyframes flash{50%{color:var(--ink);background:#ffb703}}#banner{text-align:center;opacity:0;width:min(92vw,820px);transition:opacity .2s,transform .25s cubic-bezier(.3,1.6,.5,1);position:absolute;top:22%;left:50%;transform:translate(-50%,-50%)scale(.6)}#banner.show{opacity:1;transform:translate(-50%,-50%)scale(1)}#banner-title{font-family:var(--display);color:var(--gold);text-shadow:4px 4px 0 var(--ink), -3px 3px 0 var(--ink), 3px -3px 0 var(--ink), -3px -3px 0 var(--ink);font-size:clamp(34px,6vw,64px);line-height:1;transform:rotate(-2deg)}#banner-sub{text-shadow:2px 2px 0 var(--ink);margin-top:8px;font-size:clamp(15px,2.2vw,20px);font-weight:800}#banner.alert #banner-title{color:#ff5a4f}#banner.good #banner-title{color:#8cff66}#banner.sad #banner-title{color:#9aa7b8}#banner.spicy #banner-title{color:#ff7b1c}#banner.gassy #banner-title{color:#b7e04a}#banner.trippy #banner-title{animation:1s linear infinite rainbow}#banner.journal #banner-title{color:#7fd3ff;font-size:clamp(26px,4vw,40px)}@keyframes rainbow{0%{color:#ff4f9a}33%{color:#ffcf3a}66%{color:#56e39f}to{color:#ff4f9a}}#toast{opacity:0;white-space:nowrap;background:#1f1a14bf;border-radius:999px;padding:6px 14px;font-size:18px;font-weight:800;transition:opacity .2s;position:absolute;top:34%;left:50%;transform:translate(-50%)}#toast.show{opacity:1}#popups{position:absolute;inset:0;overflow:hidden}.popup{font-family:var(--display);color:var(--gold);white-space:nowrap;text-shadow:2px 2px 0 var(--ink), -2px 2px 0 var(--ink), 2px -2px 0 var(--ink), -2px -2px 0 var(--ink);will-change:transform;font-size:22px;position:absolute;top:0;left:0}.popup.big{color:#8cff66;font-size:30px}.popup.woof{color:#fff;font-size:26px}.popup.meh{color:#d9c7a8;font-size:18px}#hint,#carry{opacity:0;white-space:nowrap;background:#1f1a14b3;border-radius:12px;padding:6px 14px;font-weight:800;transition:opacity .2s;position:absolute;bottom:150px;left:50%;transform:translate(-50%)}#carry{bottom:190px}#hint.show,#carry.show{opacity:1}.bar{border:3px solid var(--ink);background:#1f1a148c;border-radius:999px;height:14px;overflow:hidden}.bar>div{border-radius:999px;width:0;height:100%;transition:width .1s linear}.cap{font-family:var(--display);letter-spacing:1px;text-shadow:2px 2px 0 var(--ink);margin-bottom:3px;font-size:15px}#dig,#scent{opacity:0;width:min(360px,70vw);transition:opacity .2s;position:absolute;left:50%;transform:translate(-50%)}#dig{bottom:96px}#scent{text-align:center;bottom:36px}#dig.show,#scent.show{opacity:1}#dig-fill{background:linear-gradient(90deg,#8b5a2b,#c68a4a)}#scent-fill{background:linear-gradient(90deg,#7fbf3f,#ffcf3a,#ff5a4f)}#scent-word{color:var(--gold)}#scent-arrow{color:var(--gold);text-shadow:2px 2px 0 var(--ink);transform-origin:50%;font-size:30px;position:absolute;top:8px;right:-46px;rotate:-90deg}#bottom-left{left:16px;bottom:max(16px, env(safe-area-inset-bottom));width:min(240px,44vw);position:absolute}#zoomies-fill{background:linear-gradient(90deg,#56e39f,#7fd3ff)}#zoomies.active .cap{color:#7fd3ff;animation:.15s infinite jitter}@keyframes jitter{50%{transform:translate(2px)}}#effects{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.badge{border:3px solid var(--ink);color:var(--ink);border-radius:999px;padding:3px 10px;font-size:14px;font-weight:800}.badge.spicy{background:#ff7b1c}.badge.gassy{background:#b7e04a}.badge.trippy{background:#d59bff}#journal{width:min(330px,86vw);color:var(--ink);border:4px solid var(--ink);background:#f7ecd2;border-radius:16px;padding:12px 14px;transition:transform .25s;position:absolute;top:70px;right:16px;transform:translate(120%)rotate(2deg);box-shadow:0 6px #00000059}#journal.open{transform:translate(0)rotate(1deg)}#journal .head{font-family:var(--display);margin-bottom:6px;font-size:20px}#journal ul{margin:0;padding:0;font-size:15px;font-weight:800;list-style:none}#journal li{align-items:center;gap:8px;padding:3px 0;display:flex}#journal li.done{color:#3e7a2a;text-decoration:line-through}#journal .box{border:3px solid var(--ink);background:#fff;border-radius:5px;flex:0 0 20px;place-items:center;height:20px;font-size:13px;display:grid}#journal .prog{opacity:.7;margin-left:auto}#journal .foot{opacity:.7;margin-top:6px;font-size:12px}#loading{text-align:center;z-index:20;background:radial-gradient(circle at 50% 40%,#a8d672,#4f7f2e);place-content:center;gap:16px;transition:opacity .5s;display:grid;position:fixed;inset:0}#loading.hide{opacity:0;pointer-events:none}#loading .bar{width:min(360px,80vw);margin:0 auto}#loading-fill{background:var(--gold)}#loading-text{text-shadow:2px 2px 0 var(--ink);font-weight:800}.logo{font-family:var(--display);color:var(--gold);text-shadow:4px 4px 0 var(--ink), -3px 3px 0 var(--ink), 3px -3px 0 var(--ink), -3px -3px 0 var(--ink);font-size:clamp(32px,6vw,56px);line-height:1;transform:rotate(-2deg)}.overlay{z-index:10;background:#1f1a1440;place-items:center;padding:16px;display:none;position:fixed;inset:0}.overlay.show{display:grid}#title{background:linear-gradient(#1f1a1400 30%,#1f1a148c);place-items:end center}#help{z-index:12}.card{width:100%;max-width:560px;color:var(--ink);border:4px solid var(--ink);text-align:center;pointer-events:auto;background:#f7ecd2f2;border-radius:22px;padding:22px 26px;box-shadow:0 8px #00000059}.card .logo{margin-bottom:10px}.card p.tag{font-size:17px;font-weight:800}.card ul.goals{text-align:left;padding-left:8px;font-weight:800;line-height:1.7;list-style:none}.card table{text-align:left;border-collapse:collapse;width:100%;margin:8px 0 14px;font-weight:700}.card td{border-bottom:1px dashed #1f1a1433;padding:4px 6px}.big-btn,.small-btn{font-family:var(--display);border:4px solid var(--ink);background:var(--pink);color:#fff;cursor:pointer;box-shadow:0 5px 0 var(--ink);text-shadow:2px 2px 0 var(--ink);border-radius:14px;margin:6px;padding:10px 28px;font-size:26px}.big-btn:active,.small-btn:active{box-shadow:0 2px 0 var(--ink);transform:translateY(3px)}.big-btn small{font-size:14px}.small-btn{background:var(--grass);padding:8px 18px;font-size:18px}#touch{display:none}body.touch.playing #touch{display:block}body.touch #bottom-left{top:90px;bottom:auto}body.touch #scent{bottom:190px}body.touch #dig{bottom:240px}body.touch #hint{bottom:290px}body.touch #carry{bottom:330px}#stick{left:24px;bottom:max(24px, env(safe-area-inset-bottom));touch-action:none;background:#fff8e833;border:3px solid #1f1a1480;border-radius:50%;width:140px;height:140px;position:fixed}#stick-knob{background:var(--cream);border:3px solid var(--ink);pointer-events:none;border-radius:50%;width:50px;height:50px;position:absolute;top:45px;left:45px}#touch-buttons{right:16px;bottom:max(20px, env(safe-area-inset-bottom));grid-template-columns:repeat(3,64px);gap:10px;display:grid;position:fixed}#touch-buttons button{border:3px solid var(--ink);width:64px;height:64px;font-family:var(--display);color:var(--ink);touch-action:none;background:#fff8e8d9;border-radius:50%;font-size:13px}#touch-buttons button.down{background:var(--gold);transform:scale(.94)}#touch-buttons button[data-action=bark]{color:#fff;background:#ff4f9ae6}@media (max-width:640px){#score{font-size:26px}#garage-alert{font-size:20px}}#event-bars{top:calc(max(14px, env(safe-area-inset-top)) + 80px);flex-direction:column;gap:8px;width:min(280px,60vw);display:flex;position:absolute;left:16px}.ebar{display:none}.ebar.show{display:block}#mom-fill{background:linear-gradient(90deg,#ff5a4f,#ffcf3a,#8cff66)}#mail-fill{background:linear-gradient(90deg,#7fd3ff,#b388ff)}#markers{position:absolute;inset:0;overflow:hidden}.marker{font-family:var(--display);border:3px solid var(--ink);background:var(--cream);color:var(--ink);white-space:nowrap;will-change:transform;border-radius:999px;padding:3px 10px;font-size:16px;position:absolute;top:0;left:0;box-shadow:0 3px #00000059}.marker.mom{background:#ffc2dc}.marker.mail{background:#bfe3ff}.marker.power{background:#fff3a8;font-size:13px}.marker .arrow{margin-right:4px;display:inline-block}#banner.power #banner-title{animation:.6s linear infinite rainbow}.card{max-height:calc(100dvh - 24px);overflow-y:auto}#title .card{max-width:640px}.logo.big{font-size:clamp(32px,min(8vw,9vh),78px)}@media (max-height:720px){.card{padding:14px 20px}.card ul.goals{margin:8px 0;font-size:15px;line-height:1.45}.card p.tag{margin:6px 0}.big-btn{padding:8px 22px;font-size:22px}}#clock{top:calc(max(12px, env(safe-area-inset-top)) + 50px);font-family:var(--display);letter-spacing:1px;border:3px solid var(--ink);background:var(--cream);color:var(--ink);box-shadow:var(--shadow);border-radius:999px;padding:3px 10px;font-size:17px;transition:background 1s,color 1s;position:absolute;right:16px}#clock.night{color:#e8ecff;background:#1d2440}#weather-fill{background:linear-gradient(90deg, #fff4e0, var(--weather,#4fa3ff))}#weather-bar.show .cap{animation:.4s infinite jitter}.marker.bone{background:var(--weather,#cfe6ff);font-size:13px}#renderCanvas{transition:filter .4s}body.xray #renderCanvas{filter:grayscale()brightness(.62)contrast(1.35)sepia()hue-rotate(150deg)saturate(2.6)}body.slowmo #renderCanvas{filter:saturate(.35)contrast(1.15)brightness(1.05)}body.xray.slowmo #renderCanvas{filter:grayscale()brightness(.62)contrast(1.35)sepia()hue-rotate(150deg)saturate(2.6)blur(.5px)}.marker.goose{background:#e9e2d0}.marker.raccoon{background:#c9c9c9}.marker.fossil{background:#5ff2ff;font-size:13px}.marker.mirage{background:var(--weather,#cfe6ff);font-size:13px}#needs{gap:8px;margin-bottom:6px;display:flex}#needs .need{flex:1}#food-fill{background:linear-gradient(90deg,#ff9d42,#ffd166)}#water-fill{background:linear-gradient(90deg,#3a8dde,#7fd3ff)}#needs .need.low .cap{color:#ff5a5a;animation:.3s infinite jitter}#needs .need.low .bar{box-shadow:0 0 0 2px #ff5a5a}
