.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--ink: #14203a;--ink-soft: #5f7291;--ball: #ef3e36;--ball-dk: #c42e2a;--grass: #2fa84f;--sun: #ffc531;--sky: #2c7be5;--bg: #e9f1fb;--cloud: #ffffff;--line: #d3e0f0;--radius: 20px;--shadow: 0 8px 22px rgba(20, 32, 58, .12);--shadow-lg: 0 14px 40px rgba(20, 32, 58, .2);--f-display: "Fredoka", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--f-body: "Nunito Sans", system-ui, -apple-system, sans-serif;--f-mono: "Space Mono", ui-monospace, "SF Mono", monospace;--brandbar-h: 52px;--tabbar-h: 74px;--paw: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20100%20100'%3E%3Cg%20fill='%23ffffff'%20stroke='%2314203A'%20stroke-width='9'%20stroke-linejoin='round'%3E%3Cellipse%20cx='24'%20cy='42'%20rx='9'%20ry='12'/%3E%3Cellipse%20cx='42'%20cy='29'%20rx='9'%20ry='13'/%3E%3Cellipse%20cx='60'%20cy='29'%20rx='9'%20ry='13'/%3E%3Cellipse%20cx='78'%20cy='42'%20rx='9'%20ry='12'/%3E%3Cpath%20d='M51%2052c-16%200-27%2012-24%2026%202%2011%2014%2013%2024%2013s22-2%2024-13c3-14-8-26-24-26z'/%3E%3C/g%3E%3C/svg%3E")}*{box-sizing:border-box}@keyframes pupspin{to{transform:rotate(360deg)}}@keyframes ball-wobble{0%,88%,to{transform:rotate(0)}91%{transform:rotate(-13deg)}94%{transform:rotate(11deg)}97%{transform:rotate(-6deg)}}@keyframes pop-in{0%{transform:scale(.7);opacity:0}70%{transform:scale(1.06)}to{transform:scale(1);opacity:1}}html,body{margin:0;min-height:100%}body{font-family:var(--f-body);color:var(--ink);background-color:var(--bg);background-image:radial-gradient(rgba(44,123,229,.09) 1.2px,transparent 1.3px);background-size:22px 22px;background-attachment:fixed;-webkit-font-smoothing:antialiased}body.has-chrome main{padding-top:calc(var(--brandbar-h) + 14px);padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 20px)}main{max-width:720px;margin:0 auto;padding-left:16px;padding-right:16px}a{color:var(--sky);text-decoration:none}h1,h2,h3{font-family:var(--f-display);color:var(--ink)}.ball{--s: 26px;width:var(--s);height:var(--s);flex:none;border-radius:50%;background:linear-gradient(var(--ball) 0 calc(50% - 2px),var(--ink) calc(50% - 2px) calc(50% + 2px),#fff calc(50% + 2px) 100%);border:3px solid var(--ink);position:relative}.ball:after{content:"";position:absolute;inset:0;margin:auto;width:66%;height:66%;background:var(--paw) center / contain no-repeat;transform:translateY(-12%)}.ball-sm{--s: 24px;border-width:2px;background:linear-gradient(var(--ball) 0 calc(50% - 1px),var(--ink) calc(50% - 1px) calc(50% + 1px),#fff calc(50% + 1px) 100%)}.ball-lg{--s: 52px;box-shadow:0 6px 14px #ef3e3666}.brandbar{position:fixed;top:0;left:0;right:0;z-index:20;height:var(--brandbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#e9f1fbd1;backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:8px;font-family:var(--f-display);font-weight:700;font-size:1.2rem;color:var(--ink);letter-spacing:-.01em}.wordmark span{color:var(--ball)}.signout button{border:none;background:transparent;color:var(--ink-soft);font-size:1.25rem;cursor:pointer;line-height:1;padding:6px}.signout button:hover{color:var(--ball)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);display:flex;align-items:flex-start;justify-content:space-around;background:var(--cloud);border-top:1px solid var(--line);box-shadow:0 -6px 20px #14203a0f}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 0 0;color:var(--ink-soft);font-family:var(--f-display);font-weight:600;font-size:.72rem}.tab svg{width:24px;height:24px;fill:currentColor}.tab.on{color:var(--ball)}.tab.catch{color:var(--ink)}.tab.catch .ball-lg{margin-top:-26px;animation:ball-wobble 4s ease-in-out infinite}button,.btn{font-family:var(--f-display);font-weight:600;cursor:pointer;border:none;border-radius:999px}:focus-visible{outline:3px solid var(--sky);outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
