@font-face{font-family:"Baloo 2 Variable";font-style:normal;font-display:swap;font-weight:400 800;src:url(./baloo-2-devanagari-wght-normal-B4j4n2PV.woff2)format("woff2-variations");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2 Variable";font-style:normal;font-display:swap;font-weight:400 800;src:url(./baloo-2-vietnamese-wght-normal-C4ZonJY6.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2 Variable";font-style:normal;font-display:swap;font-weight:400 800;src:url(./baloo-2-latin-ext-wght-normal-Dz43yst_.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Baloo 2 Variable";font-style:normal;font-display:swap;font-weight:400 800;src:url(./baloo-2-latin-wght-normal-B_TVFhwJ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Silkscreen;font-style:normal;font-display:swap;font-weight:400;src:url(./silkscreen-latin-400-normal-CtPo2yA5.woff2)format("woff2"),url(./silkscreen-latin-400-normal-D0DfPJut.woff)format("woff")}:root{--shell:#d62839;--shell-dark:#9b1b2a;--shell-light:#f26b75;--lens:#2fa8ff;--lens-deep:#0b5fa8;--led-red:#ff4d5e;--led-yellow:#ffc83d;--led-green:#4fd36b;--lcd:#dce8c3;--lcd-raised:#eaf2d6;--ink:#1f2d16;--ink-soft:#4b5e3d;--line:#a9bb8c;--body:"Baloo 2 Variable", "Baloo 2", system-ui, sans-serif;--pixel:"Silkscreen", ui-monospace, monospace;font:17px/1.45 var(--body);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--ink);background:var(--shell-dark)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--shell:#b81f30;--shell-dark:#6e1320;--lcd:#12261a;--lcd-raised:#1b3324;--ink:#d3f5b0;--ink-soft:#92b77f;--line:#2f5038}}body{background:var(--shell-dark);margin:0}.device{background:var(--shell);flex-direction:column;max-width:560px;height:100dvh;margin:0 auto;display:flex}.shell-top{padding:12px 16px 14px;padding-top:max(12px, env(safe-area-inset-top));border-bottom:4px solid var(--shell-dark);align-items:center;gap:14px;display:flex}.lens{background:radial-gradient(circle at 34% 32%, #d6f0ff 0 12%, var(--lens) 30%, var(--lens-deep) 100%);width:54px;height:54px;box-shadow:0 3px 0 var(--shell-dark);border:4px solid #fff;border-radius:50%;flex:none;position:relative}.lens:after{content:"";box-shadow:0 0 0 0 var(--lens), 0 0 18px 6px var(--lens);opacity:0;border-radius:50%;position:absolute;inset:-4px}.leds{align-self:flex-start;gap:7px;margin-top:4px;display:flex}.leds i{border:2px solid var(--shell-dark);background:var(--led-red);border-radius:50%;width:12px;height:12px}.leds i:nth-child(2){background:var(--led-yellow)}.leds i:nth-child(3){background:var(--led-green)}.brand{color:#fff;letter-spacing:.01em;text-shadow:0 2px 0 var(--shell-dark);margin-left:auto;font-size:1.35rem;font-weight:800}:root[data-scanning] .lens:after{animation:1.2s ease-in-out infinite scan}:root[data-scanning] .leds i:nth-child(2){animation:.6s steps(2,jump-none) infinite blink}@keyframes scan{50%{opacity:1;transform:scale(1.12)}}@keyframes blink{to{opacity:.25}}.screen{background:#2b2b33;border-radius:14px 14px 14px 36px;flex:1;min-height:0;margin:14px 14px 0;padding:10px;box-shadow:inset 0 2px #0006}.lcd{box-sizing:border-box;background:repeating-linear-gradient(0deg, #00000006 0 1px, transparent 1px 3px), var(--lcd);border-radius:6px 6px 6px 28px;height:100%;padding:16px;overflow-y:auto}.pad{padding:14px 16px;padding-bottom:max(14px, env(safe-area-inset-bottom));grid-template-columns:1fr auto 1fr;align-items:end;gap:12px;display:grid}.pad-button{background:var(--shell-dark);color:#fff;border:0;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;font-size:.8rem;font-weight:600;line-height:1.1;transition:transform 80ms,box-shadow 80ms;display:flex;box-shadow:0 4px #4a0c15}.pad-icon{font-size:1.4rem}.pad-camera{background:var(--ink);border:4px solid #fff;border-radius:50%;justify-content:center;width:84px;height:84px;font-size:.75rem}@media (prefers-color-scheme:dark){.pad-camera{background:#1d2a17}}.pad-camera .pad-icon{font-size:1.9rem}.pad-button[aria-current=page]{outline:3px solid var(--led-yellow);outline-offset:2px}.pad-button:active{transform:translateY(4px);box-shadow:0 0 #4a0c15}h1{margin:0 0 10px;font-size:1.65rem;font-weight:800;line-height:1.15}h2{margin:0 0 8px;font-size:1.35rem;font-weight:700;line-height:1.2}p{margin:0 0 10px}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--lens);outline-offset:2px}.readout{font-family:var(--pixel);color:var(--ink-soft);font-size:.85rem}.readout.big{color:var(--ink);font-size:1.6rem}button.primary{background:var(--shell);width:100%;box-shadow:0 4px 0 var(--shell-dark);color:#fff;border:0;border-radius:14px;margin:12px 0;padding:12px 14px;font-size:1.1rem;font-weight:700;transition:transform 80ms,box-shadow 80ms;display:block}button.primary:active{box-shadow:0 0 0 var(--shell-dark);transform:translateY(4px)}button.primary.big{padding:28px 14px;font-size:1.5rem}button.link{text-underline-offset:3px;background:0 0;border:0;margin:10px auto 0;padding:6px;font-weight:600;text-decoration:underline;display:block}button.choice{border:2px solid var(--ink);background:var(--lcd-raised);width:100%;box-shadow:0 3px 0 var(--ink);text-align:left;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;margin:8px 0;padding:10px 12px;line-height:1.3;display:flex}button.choice:active{box-shadow:none;transform:translateY(3px)}.card{border:2px solid var(--ink);background:var(--lcd-raised);border-radius:14px;margin:12px 0;padding:14px}.entry-head{justify-content:space-between;margin-bottom:2px;display:flex}.entry-name{font-size:1.6rem;font-weight:800}.entry-meta em,button.choice em,.dex em{margin-right:4px}details summary{cursor:pointer;margin-top:4px;font-weight:600}.banner{border-radius:10px;padding:10px 12px;line-height:1.35}.banner.danger{color:#6f0d12;background:repeating-linear-gradient(-45deg,#1b1b1b 0 6px,#fc0 6px 12px) 0/10px 100% no-repeat,#ffe1de;padding-left:22px}.banner.caution{color:#5c3800;background:#fff1d1}.banner.ok{color:#164a12;background:#d9f5cf}.hint{color:var(--ink-soft);font-size:.92rem}.preview{object-fit:contain;border:2px solid var(--ink);background:#1c1c22;border-radius:12px;width:100%;max-height:28dvh;display:block}.thinking{text-align:center;font-size:1.2rem;font-weight:700}.thinking .hint{font-weight:400}.spinner{border:6px solid var(--line);border-top-color:var(--shell);will-change:transform;border-radius:50%;width:48px;height:48px;margin:16px auto 8px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner,:root[data-scanning] .lens:after,:root[data-scanning] .leds i:nth-child(2){animation-duration:3s}}progress{width:100%;height:14px;display:block}.chip{color:#fff;vertical-align:1px;white-space:nowrap;border-radius:999px;padding:0 9px;font-size:.78rem;font-weight:700;line-height:1.6;display:inline-block}.chip-plant{background:#2f8a3c}.chip-fungus{background:#7a4f9e}.chip-bird{background:#1f7fc4}.chip-mammal{background:#8a5a2b}.chip-herp{background:#0f8a7e}.chip-spider{background:#444a63}.chip-mollusc{background:#a0477a}.chip-insect{background:#c25e00}.counter p{margin-bottom:6px}.counter .readout:not(.big){font-size:1rem}.empty{text-align:center}.dex{margin:16px 0 0;padding:0;list-style:none}.dex li{border-bottom:2px dashed var(--line);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.dex img{object-fit:cover;border:2px solid var(--ink);border-radius:12px;flex:none;width:76px;height:76px}.dex .readout{font-size:.75rem;display:block}.dex-name{font-size:1.1rem;line-height:1.2;display:block}.dex p{margin:2px 0}
