@font-face{font-family:Fredoka;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e5302f118d6bde7-s.woff2) format("woff2");unicode-range:u+0307-0308,u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-family:Fredoka;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bb36247b0b027bd1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Fredoka;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bca7023bf625e650-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fredoka;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e5302f118d6bde7-s.woff2) format("woff2");unicode-range:u+0307-0308,u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-family:Fredoka;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bb36247b0b027bd1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Fredoka;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bca7023bf625e650-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e5302f118d6bde7-s.woff2) format("woff2");unicode-range:u+0307-0308,u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bb36247b0b027bd1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Fredoka;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bca7023bf625e650-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fredoka;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e5302f118d6bde7-s.woff2) format("woff2");unicode-range:u+0307-0308,u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-family:Fredoka;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bb36247b0b027bd1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Fredoka;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bca7023bf625e650-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fredoka Fallback;src:local("Arial");ascent-override:95.64%;descent-override:23.17%;line-gap-override:0.00%;size-adjust:101.84%}.__className_c621a5{font-family:Fredoka,Fredoka Fallback;font-style:normal}.__variable_c621a5{--font-display:"Fredoka","Fredoka Fallback"}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito Fallback;src:local("Arial");ascent-override:99.71%;descent-override:34.82%;line-gap-override:0.00%;size-adjust:101.39%}.__className_31d880{font-family:Nunito,Nunito Fallback;font-style:normal}.__variable_31d880{--font-body:"Nunito","Nunito Fallback"}@font-face{font-family:Silkscreen;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/3702f26392e21a15-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Silkscreen;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/cd21efaca8026c00-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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-weight:700;font-display:swap;src:url(/_next/static/media/485435f9f1e1f82c-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Silkscreen;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/966913bad25267a8-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Silkscreen Fallback;src:local("Arial");ascent-override:68.84%;descent-override:16.71%;line-gap-override:0.00%;size-adjust:149.62%}.__className_7611f3{font-family:Silkscreen,Silkscreen Fallback;font-style:normal}.__variable_7611f3{--font-pixel:"Silkscreen","Silkscreen Fallback"}*{box-sizing:border-box;margin:0;padding:0}:root{--paper:#ffffff;--ink:#243046;--ink-2:#5b6781;--ink-3:#6e7991;--line:#e7eaf3;--line-2:#d5dae8;--acc:#3e7bfa;--acc-dark:#2c5fd4;--tint:#eef4ff;--gold:#f5a623;--green:#1fa97a;--red:#e4574a;--r-sm:12px;--r:20px;--r-lg:28px;--shadow-card:0 3px 0 var(--line);--shadow-pop:0 10px 30px rgba(36,48,70,0.12)}html{-webkit-text-size-adjust:100%}body{background:var(--paper);background-image:radial-gradient(circle,rgba(36,48,70,.055) 1px,transparent 0);background-size:26px 26px;color:var(--ink);font-family:var(--font-body),sans-serif;font-size:16px;line-height:1.5;min-height:100vh;min-height:100dvh}.card-click,a,button,input,select,textarea{touch-action:manipulation}:focus-visible{outline:3px solid var(--acc);outline-offset:2px;border-radius:6px}.display,h1,h2,h3{font-family:var(--font-display),sans-serif}button{font-family:inherit}a{color:inherit;text-decoration:none}.pixel{font-family:var(--font-pixel),monospace}.wrap{max-width:980px}.wrap,.wrap-narrow{margin:0 auto;padding:24px 20px 80px}.wrap-narrow{max-width:740px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:2px solid var(--line)}.topbar-in{max-width:980px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:16px}.logo{font-family:var(--font-display),sans-serif;font-weight:700;font-size:22px;letter-spacing:-.5px;display:flex;align-items:baseline;gap:2px}.logo .sg{color:var(--gold)}.logo-badge{font-family:var(--font-pixel),monospace;font-size:9px;background:var(--ink);color:#fff;border-radius:6px;padding:3px 7px 2px;margin-left:8px;align-self:center;letter-spacing:1px}.topnav{margin-left:auto;display:flex;gap:4px}.topnav a{font-weight:800;font-size:14px;color:var(--ink-2);padding:8px 14px;border-radius:999px;transition:all .15s}.topnav a:hover{background:var(--tint);color:var(--ink)}.topnav a.active{background:var(--ink);color:#fff}.streak-chip{display:flex;gap:6px;font-family:var(--font-pixel),monospace;font-size:12px;background:#fff4e3;border:2px solid #f3ddb5;color:#b87714;border-radius:999px;padding:6px 12px 5px}.btn,.streak-chip{align-items:center}.btn{display:inline-flex;justify-content:center;gap:8px;font-family:var(--font-display),sans-serif;font-weight:600;font-size:16px;border:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:16px;padding:13px 26px;background:var(--acc);color:#fff;box-shadow:0 4px 0 var(--acc-dark);transition:transform .08s,box-shadow .08s,filter .15s}.btn:hover{filter:brightness(1.06)}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--acc-dark)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-big{font-size:19px;padding:16px 34px;border-radius:18px}.btn-ghost{background:#fff;color:var(--ink-2);border:2px solid var(--line-2);box-shadow:0 3px 0 var(--line)}.btn-ghost:hover{color:var(--ink);filter:none;background:var(--tint)}.btn-ghost:active{box-shadow:0 1px 0 var(--line)}.btn-ink{background:var(--ink);box-shadow:0 4px 0 #101725}.card{background:#fff;border:2px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-card)}.card-pad{padding:22px 24px}.card-click{cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s}.card-click:hover{transform:translateY(-3px);border-color:var(--acc);box-shadow:0 6px 0 var(--line),var(--shadow-pop)}.card-click:active{transform:scale(.985)}.kicker{font-family:var(--font-pixel),monospace;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--ink-3)}.onb-hero{text-align:center;padding:44px 0 8px}.onb-hero h1{font-size:clamp(34px,6vw,56px);font-weight:700;letter-spacing:-1px;line-height:1.1}.onb-hero h1 .sg{color:var(--gold)}.onb-hero p{color:var(--ink-2);font-size:18px;margin-top:10px;font-weight:600}.onb-free{display:inline-block;margin-top:14px;font-family:var(--font-pixel),monospace;font-size:11px;letter-spacing:1px;background:#e9f9f2;color:#15825d;border:2px solid #bfe9d8;padding:6px 14px 5px;border-radius:999px}.onb-step{margin-top:38px;animation:rise .4s ease both}.onb-step h2{font-size:24px;margin-bottom:4px}.onb-step .sub{color:var(--ink-2);font-weight:600;margin-bottom:18px}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.level-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:12px;gap:12px}.level-card{position:relative;text-align:center;padding:22px 10px 18px;background:#fff;border:2px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-card);cursor:pointer;transition:all .12s;font-family:var(--font-display),sans-serif}.level-card:hover:not(.locked){transform:translateY(-3px);border-color:var(--acc)}.level-card.selected{border-color:var(--acc);background:var(--tint);box-shadow:0 3px 0 var(--acc)}.level-card.locked{opacity:.55;cursor:default}.level-card .lv{font-size:30px;font-weight:700}.level-card .soon{position:absolute;top:8px;right:8px;font-family:var(--font-pixel),monospace;font-size:10px;letter-spacing:1px;background:var(--line);color:var(--ink-2);padding:3px 6px 2px;border-radius:6px}.starter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:16px;gap:16px}.starter-card{text-align:center;padding:20px 14px;background:#fff;border:2px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);cursor:pointer;transition:all .15s}.starter-card:hover{transform:translateY(-4px);border-color:var(--acc)}.starter-card.selected{border-color:var(--acc);background:var(--tint);box-shadow:0 4px 0 var(--acc),var(--shadow-pop)}.starter-card .pname{font-family:var(--font-display),sans-serif;font-weight:600;font-size:20px;margin-top:8px}.starter-card .ppers{color:var(--ink-2);font-size:13px;font-weight:600;margin-top:4px;min-height:38px}.name-input{width:100%;max-width:380px;font-family:var(--font-display),sans-serif;font-size:22px;font-weight:600;color:var(--ink);background:#fff;border:2px solid var(--line-2);border-radius:16px;padding:14px 20px;outline:none;box-shadow:var(--shadow-card);transition:border-color .15s}.name-input:focus{border-color:var(--acc)}.onb-actions{margin-top:26px;display:flex;gap:12px;align-items:center}.dash-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:8px 0 18px}.dash-head h1{font-size:clamp(26px,4vw,36px);font-weight:700;letter-spacing:-.5px}.dash-head .lvl-chip{font-family:var(--font-pixel),monospace;font-size:11px;background:var(--ink);color:#fff;border-radius:8px;padding:4px 10px 3px}.pet-stage{position:relative;overflow:hidden;border:2px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(0deg,#f0f6ee 0 56px,transparent 56px),linear-gradient(#fff,#fff);box-shadow:var(--shadow-card);height:240px}.pet-stage:after{content:"";position:absolute;left:0;right:0;bottom:56px;border-top:2px dashed var(--line-2)}.pet-stage .roamer{position:absolute;bottom:26px;will-change:left}.pet-stage .stage-label{position:absolute;top:14px;left:18px}.pet-stage .stage-streak{position:absolute;top:14px;right:16px;display:flex;gap:8px;align-items:center}.speech{position:absolute;max-width:240px;background:#fff;border:2px solid var(--ink);border-radius:14px;padding:8px 12px;font-weight:800;font-size:13px;box-shadow:0 3px 0 var(--ink);animation:rise .25s ease both}.subject-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));grid-gap:16px;gap:16px;margin-top:18px}.subject-card{position:relative;overflow:hidden;padding:20px 22px}.subject-card .sicon{width:52px;height:52px;display:grid;place-items:center;font-size:26px;border-radius:16px;background:var(--tint);border:2px solid color-mix(in srgb,var(--acc) 25%,white)}.subject-card h3{font-size:21px;font-weight:600;margin-top:12px}.subject-card .sblurb{color:var(--ink-2);font-size:13.5px;font-weight:600;margin-top:2px;min-height:40px}.subject-card .sprog{margin-top:12px;display:flex;align-items:center;gap:10px}.pbar{flex:1 1;height:10px;background:var(--line);overflow:hidden}.pbar,.pbar>div{border-radius:999px}.pbar>div{height:100%;background:var(--acc);transition:width .4s ease}.pbar-label{font-family:var(--font-pixel),monospace;font-size:10px;color:var(--ink-2);white-space:nowrap}.subject-card .corner{position:absolute;top:-28px;right:-28px;width:96px;height:96px;border-radius:50%;background:var(--tint);z-index:0}.subject-card>*{position:relative;z-index:1}.subject-hero{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:24px 26px;margin-bottom:22px;border:2px solid color-mix(in srgb,var(--acc) 30%,white);background:linear-gradient(120deg,var(--tint),#fff 70%);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}.subject-hero .bigicon{font-size:44px}.subject-hero h1{font-size:clamp(24px,4vw,34px);font-weight:700}.subject-hero .meta{color:var(--ink-2);font-weight:700;font-size:14px}.strand-title{font-family:var(--font-display),sans-serif;font-weight:600;font-size:15px;color:var(--ink-2);margin:26px 0 10px;display:flex;align-items:center;gap:10px}.strand-title:after{content:"";flex:1 1;border-top:2px dashed var(--line-2)}.topic-row{display:flex;align-items:center;gap:16px;padding:16px 20px;margin-bottom:10px}.topic-row .tname{font-weight:800;font-size:15.5px;flex:1 1;min-width:0}.topic-row .tmeta{font-family:var(--font-pixel),monospace;font-size:10px;color:var(--ink-3);margin-top:3px;letter-spacing:.5px}.stars{display:inline-flex;gap:2px;font-size:16px;letter-spacing:1px}.stars .off{opacity:.22;filter:grayscale(1)}.badge-dot{font-size:20px;width:34px;height:34px;display:grid;place-items:center;background:#fff7e6;border:2px solid #f3ddb5;border-radius:12px}.quiz-shell{display:grid;grid-template-columns:1fr 200px;grid-gap:20px;gap:20px;align-items:start}@media (max-width:760px){.quiz-shell{grid-template-columns:1fr}.quiz-side{order:-1}}.quiz-side{position:-webkit-sticky;position:sticky;top:86px;text-align:center}.quiz-side .pet-box{border:2px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(0deg,#f0f6ee 0 34px,#fff 34px);box-shadow:var(--shadow-card);padding:18px 8px 10px;display:flex;flex-direction:column;align-items:center;gap:4px}.quiz-side .pet-say{font-weight:800;font-size:12.5px;color:var(--ink-2);min-height:34px;padding:0 6px}.quiz-top{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}.quiz-top .qcount{font-family:var(--font-pixel),monospace;font-size:11px;color:var(--ink-2);white-space:nowrap}.quiz-progress{flex:1 1;display:flex;gap:5px;min-width:160px}.quiz-progress span{flex:1 1;height:9px;border-radius:99px;background:var(--line);transition:background .2s}.quiz-progress span.ok{background:var(--green)}.quiz-progress span.bad{background:var(--red)}.quiz-progress span.now{background:var(--acc);animation:pulse-bar 1.2s infinite}@keyframes pulse-bar{50%{opacity:.55}}.q-card{padding:26px 28px;animation:rise .3s ease both}.q-tags{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.tag{font-family:var(--font-pixel),monospace;font-size:9px;letter-spacing:1px;padding:4px 9px 3px;border-radius:8px;background:var(--tint);color:var(--acc-dark);border:1.5px solid color-mix(in srgb,var(--acc) 30%,white)}.tag.gray{background:#f3f4f9;color:var(--ink-2);border-color:var(--line-2)}.q-text{font-size:19px;font-weight:800;line-height:1.55;white-space:pre-wrap;margin-bottom:20px}.opt-list{display:flex;flex-direction:column;gap:11px}.opt{display:flex;align-items:center;gap:14px;text-align:left;background:#fff;border:2px solid var(--line-2);border-radius:16px;box-shadow:0 3px 0 var(--line);padding:14px 16px;font-size:16px;font-weight:700;color:var(--ink);cursor:pointer;transition:all .12s;width:100%}.opt:hover:not(:disabled){border-color:var(--acc);transform:translateY(-2px)}.opt:active:not(:disabled){transform:scale(.985)}.opt:disabled{cursor:default}.opt .letter{flex:0 0 34px;height:34px;display:grid;place-items:center;font-family:var(--font-display),sans-serif;font-weight:700;background:var(--tint);color:var(--acc-dark);border-radius:10px;border:2px solid color-mix(in srgb,var(--acc) 25%,white)}.opt.correct{border-color:var(--green);background:#ecfbf5;box-shadow:0 3px 0 #bfe9d8}.opt.correct .letter{background:var(--green);border-color:var(--green);color:#fff}.opt.wrong{border-color:var(--red);background:#fdf0ee;box-shadow:0 3px 0 #f3c9c4;animation:shake-x .4s}.opt.wrong .letter{background:var(--red);border-color:var(--red);color:#fff}.opt.dim{opacity:.5}@keyframes shake-x{20%{transform:translateX(-7px)}45%{transform:translateX(6px)}70%{transform:translateX(-4px)}90%{transform:translateX(3px)}}.ans-input{flex:1 1;min-width:0;font-size:17px;font-weight:700;color:var(--ink);background:#fff;border:2px solid var(--line-2);border-radius:14px;padding:13px 16px;outline:none;box-shadow:0 3px 0 var(--line)}.ans-input:focus{border-color:var(--acc)}.ans-input.good{border-color:var(--green);background:#ecfbf5}.ans-input.bad{border-color:var(--red);background:#fdf0ee}.swp-part{display:flex;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.swp-part .plabel{font-family:var(--font-display),sans-serif;font-weight:700;background:var(--tint);color:var(--acc-dark);border-radius:10px;padding:6px 11px;border:2px solid color-mix(in srgb,var(--acc) 25%,white)}.swp-part .ptext{flex:1 1 240px;font-weight:700;font-size:14.5px;color:var(--ink-2)}.feedback{margin-top:18px;padding:14px 18px;border-radius:14px;font-weight:800;font-size:14.5px;line-height:1.6;animation:rise .25s ease both}.feedback.good{background:#ecfbf5;color:#11704f;border:2px solid #bfe9d8}.feedback.bad{background:#fdf0ee;color:#a93529;border:2px solid #f3c9c4}.feedback.mid{background:#fff7e6;color:#9a6a10;border:2px solid #f3ddb5}.hint-row{margin-top:16px;display:flex;flex-direction:column;gap:8px}.hint-btn{align-self:flex-start;cursor:pointer;font-weight:800;font-size:13px;color:var(--ink-2);background:#f3f4f9;border:2px solid var(--line-2);border-radius:999px;padding:7px 16px;transition:all .12s}.hint-btn:hover{background:var(--tint);color:var(--acc-dark);border-color:var(--acc)}.hint-text{font-weight:700;font-size:13.5px;color:var(--ink-2);background:#fffbeb;border:2px solid #f3e3ae;border-left:6px solid var(--gold);border-radius:12px;padding:10px 14px;animation:rise .2s ease both}.quiz-next{margin-top:20px;display:flex;justify-content:flex-end;gap:10px}.calc{position:fixed;bottom:20px;right:20px;width:232px;z-index:200;background:#fff;border:2px solid var(--line-2);border-radius:var(--r);box-shadow:var(--shadow-pop);padding:12px}.calc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.calc-display{background:var(--tint);border:2px solid var(--line);border-radius:10px;padding:10px 12px;font-size:22px;text-align:right;font-family:var(--font-pixel),monospace;overflow-x:auto;white-space:nowrap}.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:6px;gap:6px;margin-top:8px}.calc-grid button{padding:11px 0;border-radius:10px;border:2px solid var(--line-2);background:#fff;cursor:pointer;font-size:16px;font-weight:800;color:var(--ink);box-shadow:0 2px 0 var(--line)}.calc-grid button:active{transform:translateY(2px);box-shadow:none}.calc-grid button.op{background:var(--tint);color:var(--acc-dark)}.calc-grid button.eq{background:var(--acc);border-color:var(--acc);color:#fff;grid-column:span 2}.result-hero{text-align:center;padding:30px 0 10px}.result-hero .score{font-family:var(--font-display),sans-serif;font-weight:700;font-size:clamp(48px,9vw,72px);line-height:1}.result-stars{font-size:42px;letter-spacing:6px;margin:12px 0}.result-stars .on{animation:star-pop .5s cubic-bezier(.2,1.6,.4,1) both;display:inline-block}.result-stars .on:nth-child(2){animation-delay:.18s}.result-stars .on:nth-child(3){animation-delay:.36s}.result-stars .off{opacity:.2;filter:grayscale(1)}@keyframes star-pop{0%{transform:scale(0) rotate(-40deg)}to{transform:scale(1) rotate(0)}}.reward-list{display:flex;flex-direction:column;gap:12px;margin:22px auto;max-width:460px}.reward{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 18px;animation:rise .4s ease both}.reward:nth-child(2){animation-delay:.05s}.reward:nth-child(3){animation-delay:.1s}.reward:nth-child(4){animation-delay:.15s}.reward:nth-child(5){animation-delay:.2s}.reward:nth-child(6){animation-delay:.25s}.reward .remoji{font-size:30px}.reward .rtitle{font-weight:900;font-size:15px}.reward .rsub{font-weight:700;font-size:13px;color:var(--ink-2)}.modal-veil{position:fixed;inset:0;z-index:300;background:rgba(20,26,40,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;animation:fade .2s ease both}@keyframes fade{0%{opacity:0}}.modal{background:#fff;border-radius:var(--r-lg);border:2px solid var(--line);box-shadow:var(--shadow-pop);padding:34px 30px;text-align:center;max-width:420px;width:100%;animation:rise .3s ease both}.egg{font-size:90px;display:inline-block;cursor:pointer;animation:egg-wobble 1s ease-in-out infinite;filter:drop-shadow(0 8px 14px rgba(36,48,70,.2))}@keyframes egg-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-7deg) translateY(-2px)}75%{transform:rotate(7deg) translateY(-2px)}}.egg.cracking{animation:egg-crack .5s ease-in-out infinite}@keyframes egg-crack{0%,to{transform:rotate(0) scale(1)}20%{transform:rotate(-12deg) scale(1.06)}60%{transform:rotate(12deg) scale(1.06)}}.hatch-reveal{animation:hatch .6s cubic-bezier(.2,1.5,.4,1) both}@keyframes hatch{0%{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}.section-h{display:flex;align-items:baseline;gap:12px;margin:30px 0 14px}.section-h h2{font-size:23px;font-weight:700}.section-h .count{font-family:var(--font-pixel),monospace;font-size:11px;color:var(--ink-3)}.pet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:16px;gap:16px}.pet-card{text-align:center;padding:18px 12px 16px;position:relative}.pet-card .locked-sil{filter:brightness(0) opacity(.16)}.pet-card .pname{font-family:var(--font-display),sans-serif;font-weight:600;font-size:18px;margin-top:6px}.pet-card .shiny-tag{position:absolute;top:10px;right:10px;font-family:var(--font-pixel),monospace;font-size:10px;letter-spacing:1px;background:linear-gradient(90deg,#f5a623,#f7c948);color:#fff;padding:4px 7px 3px;border-radius:7px}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:12px;gap:12px}.badge-card{display:flex;gap:12px;align-items:center;padding:13px 16px}.badge-card .bemoji{font-size:24px;width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;background:#fff7e6;border:2px solid #f3ddb5;border-radius:14px}.badge-card .btopic{font-weight:800;font-size:13px;line-height:1.35}.badge-card .bsub{font-family:var(--font-pixel),monospace;font-size:10px;color:var(--ink-3);margin-top:2px}.fx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:12px;gap:12px}.fx-card{text-align:center;padding:16px 10px;cursor:pointer}.fx-card .fxemoji{font-size:30px}.fx-card .fxname{font-weight:900;font-size:13.5px;margin-top:6px}.fx-card .fxdesc{font-weight:600;font-size:11.5px;color:var(--ink-2);margin-top:2px}.fx-card.locked{opacity:.45;cursor:default}.fx-card.equipped{border-color:var(--gold);background:#fffbeb;box-shadow:0 3px 0 #f3ddb5}.fx-card .fxstate{font-size:10px;letter-spacing:1px;color:var(--ink-3);margin-top:6px}.fx-card .fxstate,.id-code{font-family:var(--font-pixel),monospace}.id-code{font-size:clamp(20px,4.5vw,30px);letter-spacing:3px;text-align:center;background:var(--tint);border:2px dashed var(--acc);border-radius:16px;padding:18px 12px;color:var(--acc-dark);-webkit-user-select:all;-moz-user-select:all;user-select:all}.profile-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-bottom:2px dashed var(--line);flex-wrap:wrap}.profile-row:last-child{border-bottom:none}.profile-row .plab{font-weight:800}.profile-row .pval{color:var(--ink-2);font-weight:700}.sprite{display:inline-block;position:relative}.sprite .sheet{image-rendering:auto;background-repeat:no-repeat;display:block}.sprite.flip .sheet{transform:scaleX(-1)}.pet-react-correct{animation:pet-jump .55s cubic-bezier(.36,.07,.19,.97)}@keyframes pet-jump{0%{transform:scale(1) translateY(0);filter:brightness(1)}25%{transform:scale(1.18) translateY(-20px);filter:brightness(1.45)}60%{transform:scale(.95) translateY(3px);filter:brightness(1.15)}80%{transform:scale(1.05) translateY(-5px)}to{transform:scale(1) translateY(0);filter:brightness(1)}}.pet-react-wrong{animation:pet-droop .5s ease-out}@keyframes pet-droop{0%{transform:translateX(0) rotate(0);filter:brightness(1) saturate(1)}15%{transform:translateX(-10px) rotate(-3deg);filter:brightness(.75) saturate(.5)}30%{transform:translateX(10px) rotate(3deg);filter:brightness(.75) saturate(.5)}50%{transform:translateX(-6px) rotate(-2deg)}to{transform:translateX(0) rotate(0);filter:brightness(1)}}.pet-react-streak{animation:pet-streak .7s ease-out}@keyframes pet-streak{0%{transform:scale(1) rotate(0);filter:brightness(1)}30%{transform:scale(1.22) rotate(10deg);filter:brightness(1.5) drop-shadow(0 0 16px gold)}60%{transform:scale(1.08) rotate(-7deg);filter:brightness(1.35) drop-shadow(0 0 22px gold)}to{transform:scale(1) rotate(0);filter:brightness(1)}}.fx-gold-glow{animation:fx-gold-glow 1.6s ease-in-out infinite}@keyframes fx-gold-glow{0%,to{filter:brightness(1.1) drop-shadow(0 0 4px gold)}50%{filter:brightness(1.4) drop-shadow(0 0 18px gold) saturate(1.5)}}.fx-rainbow{animation:fx-rainbow 3s linear infinite}@keyframes fx-rainbow{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(1turn)}}.fx-electric{animation:fx-electric 1.4s steps(1) infinite}@keyframes fx-electric{0%,to{filter:brightness(1)}10%{filter:brightness(3) hue-rotate(40deg) saturate(0)}20%{filter:brightness(1)}50%{filter:brightness(2.5) hue-rotate(50deg)}60%{filter:brightness(1)}}.fx-frozen{animation:fx-frozen 2.4s ease-in-out infinite}@keyframes fx-frozen{0%,to{filter:brightness(1.1) hue-rotate(180deg) saturate(.5)}50%{filter:brightness(1.4) hue-rotate(200deg) saturate(.3) contrast(1.2)}}.fx-burn{animation:fx-burn 1.3s ease-in-out infinite}@keyframes fx-burn{0%,to{filter:brightness(1) sepia(0)}50%{filter:brightness(1.8) sepia(.8) hue-rotate(-20deg) saturate(3)}}.fx-ghost{animation:fx-ghost 2.2s ease-in-out infinite}@keyframes fx-ghost{0%,to{opacity:1;filter:brightness(1)}50%{opacity:.35;filter:brightness(1.6) blur(1px)}}.fx-sparkle{animation:fx-sparkle 1.8s ease-in-out infinite}@keyframes fx-sparkle{0%,to{filter:brightness(1) contrast(1)}25%{filter:brightness(1.5) contrast(1.2) drop-shadow(0 0 6px #fff)}75%{filter:brightness(1.3) contrast(1.1) drop-shadow(0 0 10px #7bed9f)}}.fx-float{animation:fx-float 2.6s ease-in-out infinite}@keyframes fx-float{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.fx-heartbeat{animation:fx-heartbeat 1.5s ease-in-out infinite}@keyframes fx-heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.18)}28%{transform:scale(1)}42%{transform:scale(1.12)}70%{transform:scale(1)}}.fx-shadow-pulse{animation:fx-shadow-pulse 2s ease-in-out infinite}@keyframes fx-shadow-pulse{0%,to{filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}50%{filter:drop-shadow(0 8px 24px rgba(0,0,0,.8))}}.shiny{filter:saturate(1.5) brightness(1.18) hue-rotate(38deg) drop-shadow(0 0 10px rgba(247,201,72,.85))}.confetti-bit{position:fixed;top:-16px;z-index:400;pointer-events:none;width:10px;height:14px;border-radius:3px;animation:confetti-fall linear both}@keyframes confetti-fall{to{transform:translateY(105vh) rotate(2turn);opacity:.8}}.hanzi-stage-box{width:300px;height:300px;margin:0 auto;background:linear-gradient(to right,transparent 49.6%,var(--line) 49.6%,var(--line) 50.4%,transparent 50.4%),linear-gradient(to bottom,transparent 49.6%,var(--line) 49.6%,var(--line) 50.4%,transparent 50.4%),#fff;border:2px solid var(--line-2);border-radius:var(--r);box-shadow:var(--shadow-card)}.char-chip-row{display:flex;flex-wrap:wrap;gap:8px}.char-chip{font-size:20px;font-weight:700;cursor:pointer;background:#fff;border:2px solid var(--line-2);border-radius:14px;box-shadow:0 2px 0 var(--line);padding:8px 14px;transition:all .12s}.char-chip:hover{border-color:var(--acc);transform:translateY(-2px)}.char-chip.active{background:var(--acc);border-color:var(--acc);color:#fff;box-shadow:0 2px 0 var(--acc-dark)}.footer-note{text-align:center;color:var(--ink-3);font-size:12px;font-weight:700;margin-top:50px}.footer-note a{color:var(--ink-2);text-decoration:underline}.hint-chip{font-family:var(--font-pixel),monospace;font-size:11px;white-space:nowrap;background:#fffbeb;border:2px solid #f3e3ae;color:#9a6a10;border-radius:999px;padding:6px 12px 5px}.hint-chip.daily{background:var(--tint);border-color:color-mix(in srgb,var(--acc) 35%,white);color:var(--acc-dark)}.opt.ruled-out{opacity:.45;background:#f3f4f9;cursor:not-allowed}.opt.ruled-out .letter{background:var(--line);border-color:var(--line-2);color:var(--ink-3)}.report-row{margin-top:16px;text-align:right}.report-link{background:none;border:none;cursor:pointer;font-weight:800;font-size:11.5px;color:var(--ink-3);padding:6px 8px;border-radius:8px}.report-link:hover{color:var(--red);background:#fdf0ee}.daily-card{display:flex;align-items:center;gap:16px;padding:16px 20px;margin-top:16px;border-color:#f3ddb5!important;background:linear-gradient(110deg,#fffbeb,#fff 65%)}.daily-card .daily-ic{font-size:32px}.daily-card .daily-title{font-family:var(--font-display),sans-serif;font-weight:700;font-size:18px}.daily-card .daily-sub{font-weight:700;font-size:13px;color:var(--ink-2);margin-top:2px}.daily-card.done{background:#f7fdf9;border-color:#bfe9d8!important}.buddy-btn{font-family:var(--font-display),sans-serif;font-weight:600;font-size:12.5px;background:var(--ink);color:#ffd98a;border:none;cursor:pointer;border-radius:999px;padding:6px 13px;box-shadow:0 2px 0 #101725}.buddy-btn:active{transform:translateY(2px);box-shadow:none}.buddy-mark{display:inline-block;font-family:var(--font-pixel),monospace;font-size:10px;letter-spacing:1px;background:linear-gradient(90deg,#f5a623,#f7c948);color:#fff;border-radius:7px;padding:4px 8px 3px}.garden-bubble .buddy-btn,.garden-bubble .buddy-mark{margin-left:8px}.pet-card.is-buddy{border-color:var(--gold);box-shadow:0 3px 0 #f3ddb5;background:#fffdf5}.xp-row{display:flex;align-items:center;gap:8px;margin-top:7px}.xp-chip{font-family:var(--font-pixel),monospace;font-size:10px;background:var(--ink);color:#ffd98a;border-radius:7px;padding:3px 8px 2px;letter-spacing:1px;white-space:nowrap}.xp-bar{width:110px;height:8px;border-radius:99px;background:var(--line);overflow:hidden}.xp-bar>div{height:100%;border-radius:99px;background:linear-gradient(90deg,#f5a623,#f7c948);transition:width .5s ease}.xp-text{font-family:var(--font-pixel),monospace;font-size:10px;color:var(--ink-3);white-space:nowrap}.garden-field{position:relative;overflow:hidden;height:460px;border:2px solid #cfe6c6;border-radius:var(--r-lg);box-shadow:var(--shadow-card);background:repeating-linear-gradient(63deg,transparent 0 34px,rgba(110,160,90,.07) 34px 35px),repeating-linear-gradient(-63deg,transparent 0 34px,rgba(110,160,90,.07) 34px 35px),linear-gradient(#f4faf0,#e6f4dd)}.garden-sign{position:absolute;top:12px;left:16px;z-index:5;background:rgba(255,255,255,.85);border:2px solid #cfe6c6;border-radius:999px;padding:5px 12px 4px}.garden-pet{position:absolute;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.garden-pet:hover{filter:brightness(1.05)}.garden-bubble{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);white-space:nowrap;z-index:50}@media (max-width:760px){.garden-field{height:360px}}.tabbar{display:none}@media (max-width:760px){.topnav{display:none}.topbar-in{padding:10px 16px}.streak-chip{margin-left:auto}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:100;display:flex;justify-content:space-around;align-items:stretch;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:2px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.tabbar a{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:1px;font-weight:800;font-size:11px;color:var(--ink-3);padding:6px 4px;border-radius:14px;min-height:48px;justify-content:center}.tabbar a .tab-ic{font-size:21px;line-height:1.1}.tabbar a.active{color:var(--ink);background:var(--tint)}.wrap,.wrap-narrow{padding:16px 14px calc(110px + env(safe-area-inset-bottom))}body{font-size:15px}.dash-head{margin:4px 0 14px}.card-pad{padding:18px 16px}.onb-hero{padding:26px 0 4px}.level-grid{grid-template-columns:repeat(3,1fr);gap:10px}.level-card{padding:16px 8px 13px}.level-card .lv{font-size:24px}.starter-grid{grid-template-columns:1fr;gap:12px}.starter-card{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 16px}.starter-card .ppers{min-height:0}.onb-actions .btn-big{width:100%}.pet-stage{height:195px}.pet-stage:after{bottom:44px}.pet-stage .roamer{bottom:20px}.speech{bottom:130px!important}.subject-grid{grid-template-columns:1fr;gap:12px}.subject-card .sblurb{min-height:0}.subject-hero{padding:18px;gap:12px}.topic-row{padding:13px 15px;gap:10px;flex-wrap:wrap}.stars{font-size:14px}.quiz-shell{grid-template-columns:1fr;gap:12px}.quiz-side{position:static;order:-1}.quiz-side .pet-box{flex-direction:row;justify-content:flex-start;gap:12px;padding:10px 14px;background:linear-gradient(0deg,#f0f6ee 0 14px,#fff 14px)}.quiz-side .pet-say{min-height:0;text-align:left;flex:1 1}.q-card{padding:18px 16px}.q-text{font-size:17px}.opt{padding:13px;min-height:56px}.quiz-next{justify-content:stretch}.quiz-next .btn{flex:1 1}.quiz-top{gap:10px}.calc{left:10px;right:10px;width:auto;bottom:calc(78px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(36,48,70,.18),var(--shadow-pop)}.calc-grid button{padding:13px 0;font-size:17px}.result-stars{font-size:36px}.modal{padding:26px 20px}.fx-grid,.pet-grid{grid-template-columns:repeat(2,1fr);gap:10px}.badge-grid{grid-template-columns:1fr}.id-code{font-size:19px;letter-spacing:2px}.profile-row{padding:12px 0}.hanzi-stage-box{width:min(296px,100%)}.char-chip{padding:9px 13px;font-size:19px}}.free-banner{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#e9f9f2,#eef4ff);border-color:var(--green)}.free-banner-ic{font-size:34px}.plan-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.plan-card .plan-price{font-family:var(--font-display,inherit);font-size:30px;font-weight:800;color:var(--ink);margin-bottom:10px}.plan-card .plan-price span{font-size:14px;color:var(--ink-3);font-weight:700}.plan-list{list-style:none;padding:0;margin:0;font-weight:700;color:var(--ink-2);line-height:2;font-size:14px}.plan-premium{background:linear-gradient(160deg,#fff8ec,#ffffff);border-color:var(--gold);box-shadow:0 3px 0 var(--gold)}.plan-premium .plan-list li{color:var(--ink)}.tier-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:10px;gap:10px}.tier-card{text-align:center;padding:14px 6px;position:relative}.tier-level{font-weight:800;color:var(--ink-3);font-size:13px;letter-spacing:1px}.tier-price{font-weight:800;font-size:21px;color:var(--ink);margin-top:2px}.tier-price span{font-size:11px;color:var(--ink-3)}.tier-card.is-mine{border-color:var(--acc);box-shadow:0 3px 0 var(--acc)}.tier-mine{margin-top:6px;font-size:10px;font-weight:800;letter-spacing:1px;color:var(--acc-dark)}.mock-panel{position:relative;overflow:hidden}.mock-tag{position:absolute;top:12px;right:-28px;transform:rotate(38deg);background:var(--gold);color:#fff;font-size:10px;font-weight:800;letter-spacing:2px;padding:4px 32px;pointer-events:none}.mock-row{margin-bottom:12px}.mock-row:last-child{margin-bottom:0}.mock-row-head{display:flex;justify-content:space-between;gap:10px;font-size:14px;margin-bottom:4px}.mock-topic{font-weight:800;color:var(--ink)}.mock-sub{font-weight:700;color:var(--ink-3);white-space:nowrap}.mock-bar{height:12px;border-radius:999px;background:var(--tint);overflow:hidden}.mock-bar>div{height:100%;border-radius:999px}.mock-trend{width:100%;height:auto;display:block;padding:6px 0}.mock-trend-foot{display:flex;justify-content:space-between;font-size:13px;font-weight:700;color:var(--ink-3)}.mock-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px;text-align:center}.mock-stats b{display:block;font-size:22px;color:var(--ink)}.mock-stats span{font-size:12px;font-weight:700;color:var(--ink-3);line-height:1.3;display:block}@media (max-width:760px){.plan-grid{grid-template-columns:1fr}.tier-grid{grid-template-columns:repeat(3,1fr)}.mock-stats{grid-template-columns:repeat(2,1fr)}}.q-image-row{display:flex;flex-wrap:wrap;gap:6px;font-size:32px;line-height:1;margin-bottom:10px}.q-ruler{display:block;max-width:100%;height:50px;margin-bottom:10px}.voice-btn{margin-left:10px;padding:4px 12px;font-size:15px;vertical-align:middle;min-height:34px}.backup-nudge{display:flex;align-items:center;gap:12px;border-color:var(--gold);margin-bottom:16px}.backup-nudge .report-link{font-size:16px;padding:6px 10px}.continue-chip{display:flex;align-items:center;gap:14px;padding:14px 18px;margin-bottom:16px;background:linear-gradient(135deg,var(--tint),#ffffff 70%)}.continue-chip .cc-ic{font-size:28px}.continue-chip .cc-kicker{font-size:10.5px;font-weight:800;letter-spacing:1.5px;color:var(--ink-3)}.continue-chip .cc-topic{font-weight:900;font-size:16px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.continue-chip .cc-arrow{font-size:22px;font-weight:900;color:var(--acc)}.concept-card{max-width:480px;text-align:left}.concept-points{list-style:none;padding:0;margin:0 0 4px}.concept-points li{font-weight:700;color:var(--ink-2);line-height:1.6;padding:7px 0 7px 28px;position:relative}.concept-points li:before{content:"•";position:absolute;left:10px;color:var(--acc);font-weight:900}.concept-example{background:var(--tint);border-radius:var(--r-sm);padding:12px 14px;margin-top:10px}.concept-example .ce-q{font-weight:800;margin-bottom:6px}.concept-example ol{margin:0;padding-left:22px;font-weight:700;color:var(--ink-2);line-height:1.7;font-size:14px}.concept-remember{margin-top:12px;font-weight:800;color:var(--acc-dark);background:#fff8ec;border:2px dashed var(--gold);border-radius:var(--r-sm);padding:10px 14px;font-size:14.5px}.review-list{margin-top:18px;display:flex;flex-direction:column;gap:10px;text-align:left}.review-item{padding:14px 16px;border-left:5px solid var(--line-2)}.review-item.ok{border-left-color:var(--green)}.review-item.mid{border-left-color:var(--gold)}.review-item.bad{border-left-color:var(--red)}.review-item .ri-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.review-item .ri-mark{font-weight:900;font-size:15px}.review-item.ok .ri-mark{color:var(--green)}.review-item.mid .ri-mark{color:var(--gold)}.review-item.bad .ri-mark{color:var(--red)}.review-item .ri-num{font-weight:800;font-size:12px;color:var(--ink-3);letter-spacing:1px}.review-item .ri-hints{font-size:11.5px;font-weight:800;color:var(--gold);margin-left:auto}.review-item .ri-q{font-weight:700;font-size:14px;line-height:1.55;color:var(--ink);white-space:pre-wrap}.review-item .ri-given{margin-top:6px;font-weight:700;font-size:13.5px;color:var(--red)}.review-item .ri-correct{margin-top:2px;font-weight:800;font-size:13.5px;color:var(--green)}.practice-wrap{padding-top:22px}.practice-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.practice-brand{font-family:var(--font-display,inherit);font-weight:700;font-size:20px;color:var(--ink)}.practice-wrap h1{font-size:28px;line-height:1.25;margin-bottom:8px}.practice-sub{font-weight:700;color:var(--ink-2);line-height:1.7;margin-bottom:20px;max-width:640px}.practice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:12px;gap:12px;margin-bottom:8px}.practice-card{display:flex;align-items:center;gap:12px;padding:14px 16px}.practice-card .pc-icon{font-size:30px}.practice-card .pc-title{font-weight:900}.practice-card .pc-meta{font-size:12.5px;font-weight:700;color:var(--ink-3);margin-top:2px}.practice-opts{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:8px}.practice-opts li{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink-2);border:2px solid var(--line);border-radius:var(--r-sm);padding:9px 13px}.practice-opts .letter{font-weight:900;color:var(--acc-dark);background:var(--tint);border-radius:8px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 26px}.practice-cta{display:flex;align-items:center;gap:16px;margin:20px 0;border-color:var(--acc);background:linear-gradient(135deg,var(--tint),#ffffff 70%);flex-wrap:wrap}.practice-more{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.practice-more a{font-weight:800;color:var(--acc-dark);text-decoration:underline}@media (pointer:coarse){.btn{min-height:48px}.hint-btn{min-height:40px;padding:8px 16px}.opt{min-height:56px}.char-chip{min-height:44px}.topnav a{padding:10px 16px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.confetti-bit{display:none}}