*{box-sizing:border-box;margin:0;padding:0}body{font-family:Nunito,system-ui,sans-serif;background:#fafbf7;color:#1e2a1e;-webkit-tap-highlight-color:transparent}:root{--bg: #FAFBF7;--surface: #FFFFFF;--ink: #1E2A1E;--ink-soft: #6B7864;--line: #E6EBE0;--primary: #7BC47F;--primary-dark: #4F9555;--primary-ink: #1F4D29;--accent: #FFC857;--danger: #E37C7C;--radius: 22px;--shadow: 0 2px 0 rgba(0,0,0,.04), 0 12px 28px -16px rgba(31,77,41,.18)}.card{background:var(--surface);border-radius:var(--radius);border:1.5px solid var(--line);box-shadow:var(--shadow)}.btn{border-radius:16px;border:none;padding:14px 22px;font-weight:800;font-size:17px;font-family:Nunito,sans-serif;cursor:pointer;transition:transform .08s;background:var(--primary);color:#fff;box-shadow:0 4px 0 var(--primary-dark)}.btn:active{transform:translateY(2px);box-shadow:0 2px 0 var(--primary-dark)}.btn.ghost{background:#fff;color:var(--ink);box-shadow:0 2px 0 var(--line);border:1.5px solid var(--line)}.btn:disabled{opacity:.5;cursor:default}.pill{background:#edf6ee;color:var(--primary-ink);border-radius:999px;padding:6px 14px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;gap:4px}.numkey{background:#fff;border:1.5px solid var(--line);border-radius:18px;font-size:28px;font-weight:800;font-family:Nunito,sans-serif;padding:18px 0;cursor:pointer;box-shadow:0 3px 0 var(--line);transition:transform .06s;color:var(--ink);width:100%}.numkey:active{transform:translateY(2px);box-shadow:0 1px 0 var(--line)}.progress-bar{height:10px;border-radius:999px;background:#0000000f;overflow:hidden}.progress-bar>div{height:100%;background:var(--primary);border-radius:999px;transition:width .3s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes pop-in{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slide-up{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes flicker{0%{transform:scale(.95) translateY(0);opacity:.85}to{transform:scale(1.06) translateY(-1px);opacity:1}}@keyframes spark{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(-2px,-22px) scale(.3);opacity:0}}@keyframes correct-flash{0%{opacity:0}20%{opacity:1}to{opacity:0}}.correct-flash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;pointer-events:none;background:radial-gradient(circle at center,#4cd964bf,#22aa46e6);animation:correct-flash .7s ease-out forwards}@keyframes confetti-fall{0%{transform:translate3d(0,-12vh,0) rotate(0);opacity:1}to{transform:translate3d(var(--drift, 0px),105vh,0) rotate(var(--spin, 540deg));opacity:.9}}.confetti-piece{position:absolute;top:0;animation-name:confetti-fall;animation-timing-function:cubic-bezier(.2,.6,.4,1);animation-fill-mode:forwards}@keyframes card-shine{0%{transform:translate(-130%) skew(-20deg)}60%,to{transform:translate(230%) skew(-20deg)}}.card-shine{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.75) 50%,transparent 65%);animation:card-shine 2.6s ease-in-out infinite}@keyframes card-flip{0%{transform:rotateY(90deg) scale(.7);opacity:0}60%{transform:rotateY(-8deg) scale(1.08);opacity:1}to{transform:rotateY(0) scale(1);opacity:1}}@keyframes pack-shake{0%,to{transform:rotate(0) scale(1)}15%{transform:rotate(-8deg) scale(1.04)}30%{transform:rotate(8deg) scale(1.06)}45%{transform:rotate(-10deg) scale(1.08)}60%{transform:rotate(10deg) scale(1.1)}80%{transform:rotate(-4deg) scale(1.12)}}@keyframes pack-half-left{to{transform:translate(-130%) rotate(-14deg);opacity:0}}@keyframes pack-half-right{to{transform:translate(130%) rotate(14deg);opacity:0}}@keyframes rarity-burst{0%{transform:scale(.2);opacity:.9}to{transform:scale(3.2);opacity:0}}@keyframes companion-cheer{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-22px) scale(1.18) rotate(-6deg)}60%{transform:translateY(0) scale(.94) rotate(4deg)}80%{transform:translateY(-8px) scale(1.04)}}@keyframes companion-tilt{0%,to{transform:rotate(0)}35%{transform:rotate(-14deg) translateY(2px)}70%{transform:rotate(8deg)}}@keyframes vs-left{0%{transform:translate(-120vw)}70%{transform:translate(14px)}to{transform:translate(0)}}@keyframes vs-right{0%{transform:translate(120vw)}70%{transform:translate(-14px)}to{transform:translate(0)}}@keyframes vs-pop{0%,55%{transform:scale(0) rotate(-20deg);opacity:0}80%{transform:scale(1.3) rotate(6deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes avatar-jump{0%,to{transform:translateY(0)}25%{transform:translateY(-26px) scale(1.08)}50%{transform:translateY(0) scale(.95)}70%{transform:translateY(-10px)}}html.no-anim .fx,html.no-anim .confetti-piece,html.no-anim .card-shine{animation:none!important}@media (prefers-reduced-motion: reduce){.fx,.confetti-piece,.card-shine{animation:none!important}}@keyframes map-pulse{0%,to{transform:scale(1);opacity:.35}50%{transform:scale(1.35);opacity:.1}}@keyframes map-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes boss-bounce{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}@keyframes boss-laugh{0%{transform:scale(1)}20%{transform:scale(1.15) rotate(-4deg)}40%{transform:scale(1.12) rotate(4deg)}60%{transform:scale(1.15) rotate(-3deg)}to{transform:scale(1)}}@keyframes boss-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}@keyframes star-pop{0%{transform:scale(0) rotate(-40deg)}70%{transform:scale(1.35) rotate(8deg)}to{transform:scale(1) rotate(0)}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}button,input,select,textarea{font-family:inherit}html,body{max-width:100%;overflow-x:hidden}html,body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea{-webkit-user-select:text;user-select:text}img{-webkit-user-drag:none}@keyframes map-burst{0%{transform:scale(1);opacity:.9}to{transform:scale(2.1);opacity:0}}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2) format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2) format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2) format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-latin-900-normal-BVB1fGs6.woff2) format("woff2"),url(/assets/nunito-latin-900-normal-CVn49sIn.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-400-normal-6IfK1voy.woff2) format("woff2"),url(/assets/fraunces-latin-400-normal-NUPT2cO8.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-500-normal-DnGCNyPD.woff2) format("woff2"),url(/assets/fraunces-latin-500-normal-BTR4KCeb.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fraunces-latin-700-normal-CEOla-zY.woff2) format("woff2"),url(/assets/fraunces-latin-700-normal-DTjk5d1Q.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/fraunces-latin-800-normal-5RM8DebB.woff2) format("woff2"),url(/assets/fraunces-latin-800-normal-B3oGScaA.woff) format("woff")}
