@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.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}:root{--coral:#ff6b6b;--lime:#b8f26b;--sky:#5cc8ff;--lemon:#ffe066;--cream:#fff8f0;--ink:#2b2d42;--radius:28px;--radius-small:24px;--shadow:0 8px 18px #2b2d421a;--nav-h:76px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);color:var(--ink);background:var(--cream);-webkit-tap-highlight-color:transparent;font-family:Nunito Variable,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--cream);overscroll-behavior-y:none;font-size:16px;line-height:1.4}button,input{font:inherit;color:inherit}h1,h2,h3,p{margin:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{background:var(--cream);flex-direction:column;max-width:560px;height:100%;margin:0 auto;display:flex;position:relative}.screen{flex-direction:column;flex:1;min-height:0;display:flex}.screen[hidden]{display:none}.app-bar{text-align:center;padding:calc(14px + var(--safe-top)) 16px 10px;flex:none;font-size:22px;font-weight:900;position:relative}.app-bar .back{position:absolute;bottom:4px;left:8px}.scroll{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:8px 20px 32px;overflow-y:auto}.stack>*+*{margin-top:16px}.center-fill{text-align:center;flex:1;place-items:center;padding:24px;display:grid}.muted{opacity:.7}.t-display{font-size:36px;font-weight:900}.t-headline{font-size:26px;font-weight:800}.t-title-l{font-size:22px;font-weight:800}.t-title-m{font-size:17px;font-weight:700}.t-title-s{font-size:14px;font-weight:700}.t-label{font-size:14px;font-weight:800}.t-small{font-size:12px}.t-center{text-align:center}.bubble{border-radius:var(--radius);box-shadow:var(--shadow);width:100%;text-align:inherit;background:#fff;border:0;padding:20px;display:block}button.bubble{cursor:pointer}.bubble.small{border-radius:var(--radius-small)}.btn{cursor:pointer;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:16px 28px;font-size:18px;font-weight:800;transition:transform .1s,opacity .2s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn.filled{background:var(--coral);color:#fff}.btn.outlined{color:var(--ink);background:0 0;border-color:#2b2d4233}.btn.text{color:var(--coral);background:0 0;padding:10px 16px;font-size:16px}.btn.tonal{background:var(--lemon);color:var(--ink)}.btn.block{width:100%}.icon-btn{background:var(--lemon);cursor:pointer;border:0;border-radius:50%;place-items:center;width:44px;height:44px;font-size:20px;display:grid}:focus-visible{outline:3px solid var(--sky);outline-offset:2px}.spinner{border:3px solid #fff6;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin;display:inline-block}.spinner.dark{border-color:#ff6b6b40;border-top-color:var(--coral);border-width:4px;width:36px;height:36px}@keyframes spin{to{transform:rotate(360deg)}}.chip{background:#5cc8ff40;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-weight:800;display:inline-flex}.chip.selected{background:var(--lime)}button.chip{cursor:pointer;border:0}.rarity-badge{color:#fff;letter-spacing:1.2px;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:900;display:inline-block}.rarity-badge.compact{padding:4px 10px;font-size:10px}.chips{flex-wrap:wrap;gap:8px;display:flex}.install-banner{border-radius:var(--radius-small);box-shadow:var(--shadow);background:#fff;flex:none;align-items:center;gap:10px;margin:0 12px 8px;padding:10px 10px 10px 18px;font-weight:800;display:flex}.install-banner-text{flex:1;min-width:0}.share-icon{vertical-align:-3px}.install-banner .btn{padding:8px 18px;font-size:15px}.install-banner-close{background:var(--lemon);cursor:pointer;width:36px;height:36px;color:var(--ink);border:0;border-radius:50%;flex:none;place-items:center;font-size:20px;font-weight:800;line-height:1;display:grid}.nav{height:calc(var(--nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);z-index:5;background:#fff;flex:none;display:flex;box-shadow:0 -4px 18px #2b2d4214}.nav button{cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:13px;font-weight:800;display:flex}.nav button .pill{border-radius:999px;place-items:center;width:64px;height:34px;font-size:24px;transition:background .2s;display:grid}.nav button[aria-current=page] .pill{background:var(--lemon)}.scan-wrap{place-items:center;padding:12px 0;display:grid}.scan-btn{background:var(--coral);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;width:200px;height:200px;animation:1.6s ease-in-out infinite alternate pulse;display:grid;position:relative}.scan-btn:disabled{box-shadow:none;cursor:default;background:#2b2d4240;animation:none}.scan-btn.scanning{animation:none;box-shadow:0 0 22px #ff6b6b73}.scan-btn .inner{flex-direction:column;align-items:center;gap:6px;display:flex}.scan-btn .icon{font-size:60px;line-height:1}.scan-btn .label{letter-spacing:2px;font-size:24px;font-weight:900}.scan-btn .ring{border:8px solid #ffffff59;border-top-color:#fff;border-radius:50%;animation:1s linear infinite spin;position:absolute;inset:12px}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 18px 4px #ff6b6b73}to{transform:scale(1.04);box-shadow:0 0 40px 10px #ff6b6b73}}@media (prefers-reduced-motion:reduce){.scan-btn{animation:none}.spinner,.scan-btn .ring{animation-duration:2.4s}}.backdrop{z-index:20;background:#2b2d4273;justify-content:center;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--cream);width:100%;max-width:560px;max-height:100%;padding:16px 20px calc(24px + var(--safe-bottom));border-radius:36px 36px 0 0;animation:.25s ease-out rise;position:relative;overflow-y:auto}.sheet.tall{flex-direction:column;height:92%;padding-bottom:0;display:flex;overflow:hidden}.sheet .handle{background:#2b2d4233;border-radius:4px;width:36px;height:4px;margin:0 auto 12px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(40px)}}.toast{left:50%;bottom:calc(var(--nav-h) + var(--safe-bottom) + 16px);z-index:40;color:#fff;border-radius:var(--radius);max-width:min(520px,100vw - 32px);box-shadow:var(--shadow);text-align:center;padding:14px 22px;font-weight:700;animation:.2s rise;position:fixed;transform:translate(-50%)}.item-hero{border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);padding:24px}.item-hero .emoji{font-size:88px;line-height:1.1}.grid-2{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.item-card{aspect-ratio:.82;border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow);text-align:center;border:3px solid;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:14px;display:flex;position:relative}.item-card .emoji{flex:1;place-items:center;font-size:56px;display:grid}.item-card .name{-webkit-line-clamp:2;color:var(--ink);-webkit-box-orient:vertical;margin:6px 0 8px;font-size:14px;font-weight:800;display:-webkit-box;overflow:hidden}.wearing-tag{background:var(--ink);color:#fff;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:900;position:absolute;top:6px;right:6px}.group-head{align-items:center;gap:10px;padding:14px 4px 10px;font-weight:700;display:flex}.progress{border-radius:999px;height:12px;overflow:hidden}.progress>div{border-radius:999px;height:100%;transition:width .4s}.hint-row{align-items:center;gap:12px;padding:6px 0;display:flex}.hint-arrow{border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.lb-list{flex:1;min-height:0;padding:0 16px 24px;position:relative;overflow-y:auto}.lb-row{height:76px;padding-bottom:12px}.lb-row .bubble{height:100%;box-shadow:var(--shadow);align-items:center;gap:8px;padding:10px 16px;display:flex}.lb-row .rank{text-align:center;flex:none;width:56px;font-size:17px;font-weight:900}.lb-row .rank.medal{font-size:26px}.lb-row .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:17px;font-weight:700;overflow:hidden}.lb-row.me .bubble{border:3px solid var(--coral);background:#ffe1e1}.lb-row.me .name{font-weight:900}.edge-spinner{place-items:center;height:76px;display:grid}.input{border-radius:var(--radius);background:#fff;border:2px solid #2b2d421a;width:100%;padding:18px 24px;font-size:16px}.input:focus{border-color:var(--coral);outline:none}.input.invalid{border-color:#b3261e}.field-error{color:#b3261e;margin:6px 16px 0;font-size:13px;font-weight:700}.stat-row{justify-content:space-between;padding:6px 0;display:flex}.avatar{max-width:100%;margin:0 auto;position:relative;container-type:inline-size}.avatar svg{width:100%;height:100%;position:absolute;inset:0}.avatar .glyph{pointer-events:none;place-items:center;line-height:1;display:grid;position:absolute}.avatar .hit{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;position:absolute}.avatar .flip{position:absolute;bottom:0;right:0}.hero-bg{background:linear-gradient(135deg, var(--sky), var(--lime), var(--lemon));place-items:center;min-height:100%;padding:24px;display:grid}.pulse{animation:.9s ease-in-out infinite alternate pulsefade}@keyframes pulsefade{0%{opacity:.35}to{opacity:1}}
