@font-face{font-family:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(../media/79e9e0e3b9220e46-s.3a-pd9010p_dh.woff2)format("woff2");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:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(../media/e62850744c7f266e-s.0n7ulcr4ivksg.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(../media/9433d1a810498265-s.p.1hij5ex6k3v9q.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/150f724d70372c02-s.1ljbalzvxyif7.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/750c737482d9de2f-s.3ex3j6ahhvjry.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.40bho2kviej2o.woff2)format("woff2");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:Newsreader Fallback;src:local(Times New Roman);ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.0%;size-adjust:105.48%}.wRGEbG_className{font-family:Newsreader,Newsreader Fallback}.wRGEbG_variable{--font-serif:"Newsreader", "Newsreader Fallback"}
@font-face{font-family:Libre Franklin;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/61b2b84ab35dead5-s.3ujxbuh3-3abj.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/eba33977c8ed1a9d-s.2bkt209vmlsr6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6a1997311f9003a9-s.18-5_2n-rl46i.woff2)format("woff2");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:Libre Franklin;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2245c258b0d2c062-s.2eb4s6ll1afkj.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a4bb24664ac8500-s.p.2_7gz-nbwppeo.woff2)format("woff2");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:Libre Franklin Fallback;src:local(Arial);ascent-override:92.61%;descent-override:23.58%;line-gap-override:0.0%;size-adjust:104.31%}.RP9vUq_className{font-family:Libre Franklin,Libre Franklin Fallback;font-style:normal}.RP9vUq_variable{--font-sans:"Libre Franklin", "Libre Franklin Fallback"}
@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/f037ea83db21dbd3-s.09x_m4nagdesf.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/3dc1de47b9d80a0b-s.2wbvw_buzqzvz.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fe1d9b66fdac40b2-s.0rk4w-o65wlzl.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a24d9e981578d580-s.p.2dim39isyjvqg.woff2)format("woff2");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:Caveat Fallback;src:local(Arial);ascent-override:124.77%;descent-override:38.99%;line-gap-override:0.0%;size-adjust:76.94%}.i-TPaq_className{font-family:Caveat,Caveat Fallback;font-style:normal;font-weight:600}.i-TPaq_variable{--font-hand:"Caveat", "Caveat Fallback"}
.IPhz_W_burger{cursor:pointer;z-index:31;background:#ffffff73;border:1.5px solid #2b221b26;border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;gap:5px;width:36px;height:32px;padding:0 6px;transition:all .18s;display:flex;position:relative}.IPhz_W_burger span{background:var(--ink);border-radius:1px;height:2px;display:block}.IPhz_W_burger:hover{background:#ffffffbf;border-color:#2b221b59;transform:translateY(-1px)}.IPhz_W_overlay{z-index:40;background:#00000059;position:fixed;inset:0}.IPhz_W_drawer{background:var(--paper,var(--panel));width:min(300px,86vw);color:var(--ink);border-right:1px solid var(--line);z-index:41;flex-direction:column;padding:14px 18px 18px;transition:transform .18s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:0 0 32px #0000002e}.IPhz_W_drawer.IPhz_W_open{transform:translate(0)}.IPhz_W_head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.IPhz_W_brand{font-family:var(--serif,inherit);letter-spacing:.3px;font-size:22px;font-weight:800}.IPhz_W_close{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:26px;line-height:1}.IPhz_W_close:hover{color:var(--ink)}.IPhz_W_list{flex-direction:column;display:flex}.IPhz_W_list a{font-family:var(--sans);letter-spacing:.4px;color:var(--ink);border-radius:var(--radius,0);align-items:center;gap:8px;padding:10px 6px;font-size:14px;display:flex}.IPhz_W_list a:hover{background:var(--hover);text-decoration:none}.IPhz_W_list a.IPhz_W_active{box-shadow:inset 3px 0 0 var(--ink);font-weight:700}.IPhz_W_rule{border-top:1px solid var(--line);margin:10px 0}.IPhz_W_account{font-family:var(--sans);margin-top:auto;font-size:13px}.IPhz_W_who{align-items:center;gap:8px;margin:0 0 6px;font-weight:600;display:flex}.IPhz_W_rankBox{background:var(--hover);border-radius:var(--radius);border:1px solid var(--line);flex-direction:column;gap:6px;margin:8px 0 12px;padding:10px 12px;display:flex}.IPhz_W_beltPill{letter-spacing:.3px;border-radius:9999px;align-self:flex-start;padding:3px 10px;font-size:11px;font-weight:800;display:inline-block;box-shadow:0 2px 6px #0000001f}.IPhz_W_eloText{color:var(--muted);margin:0;font-size:13px}.IPhz_W_eloText b{color:var(--ink);font-weight:800}.IPhz_W_rankLink{color:var(--accent);font-size:11px;font-weight:700;text-decoration:none}.IPhz_W_rankLink:hover{text-decoration:underline}.IPhz_W_hint{color:var(--muted);margin:0 0 10px;line-height:1.4}.IPhz_W_linkBtn{font:inherit;font-family:var(--sans);letter-spacing:.3px;border:1px solid var(--ink);border-radius:var(--radius,0);color:var(--ink);cursor:pointer;background:0 0;padding:8px 12px;font-size:13px;font-weight:600}.IPhz_W_linkBtn:hover{opacity:.85}.IPhz_W_googleBtn{width:100%;height:40px;font:500 14px/1 var(--sans);letter-spacing:.25px;color:#1f1f1f;cursor:pointer;background:#fff;border:1px solid #d4c8ba;border-radius:8px;justify-content:center;align-items:center;gap:12px;padding:0 12px;transition:background .12s,box-shadow .12s;display:flex}.IPhz_W_googleBtn:hover{background:#faf7f2;box-shadow:0 1px 4px #00000014}.IPhz_W_googleBtn:focus-visible{outline:2px solid var(--accent,#274a6d);outline-offset:2px}.IPhz_W_googleMark{flex:none;width:20px;height:20px}@media print{.IPhz_W_burger,.IPhz_W_drawer,.IPhz_W_overlay{display:none!important}}
.Af2_WG_header{z-index:20;border-bottom:none;justify-content:space-between;align-items:center;margin-bottom:2px;padding:8px 24px 6px;display:flex;position:relative}.Af2_WG_left{align-items:center;gap:14px;display:flex}.Af2_WG_brandLogo{-webkit-user-select:none;user-select:none;cursor:pointer;align-items:center;gap:10px;display:inline-flex}.Af2_WG_brandEmblem{color:#faf6f0;background:#2b221b;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;transition:transform .65s cubic-bezier(.34,1.56,.64,1);display:inline-flex}.Af2_WG_brandLogo:hover .Af2_WG_brandEmblem{transform:rotate(360deg)}.Af2_WG_brandTitle{font-family:var(--serif);color:#2b221b;letter-spacing:-.3px;font-size:19px;font-weight:800}.Af2_WG_brandTagline{font-family:var(--sans);letter-spacing:.2px;color:#2b221b;white-space:nowrap;font-size:13.5px;font-weight:700}.Af2_WG_right{flex-shrink:0;justify-content:flex-end;align-items:center;display:flex}.Af2_WG_rankBadgeYellow{color:#2d2140;-webkit-user-select:none;user-select:none;background:#dedaf4;border:1px solid #8773c359;border-radius:12px;align-items:center;gap:8px;padding:4px 10px;text-decoration:none;transition:transform .12s,box-shadow .12s;display:inline-flex;box-shadow:0 2px 8px #6e5aaa14}.Af2_WG_rankBadgeYellow:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6e5aaa29}.Af2_WG_rankBadgeElo,.Af2_WG_rankBadgeXp{align-items:center;gap:5px;display:flex}.Af2_WG_rankBadgeLabel{font-family:var(--sans);text-transform:lowercase;color:#2b221ba6;letter-spacing:.4px;font-size:11px;font-weight:800}.Af2_WG_rankBadgeNum{font-family:var(--sans);color:#faf6f0;letter-spacing:-.2px;background:#2b221b;border-radius:6px;padding:1.5px 7px;font-size:13.5px;font-weight:800}.Af2_WG_rankBadgeDivider{background:#2b221b2e;width:1px;height:16px}.Af2_WG_rankBadgeXpNum{font-family:var(--sans);color:#2b221b;font-size:13px;font-weight:700}@media (max-width:768px){.Af2_WG_header{padding:8px 12px}.Af2_WG_brandTagline{display:none}}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-warm-paper:#faf7f2;--bg-gradient:radial-gradient(circle at 50% 0%, #fff 0%, #faf7f2 50%, #f3eee6 100%);--paper:#fff;--paper-warm:#fdfbf7;--ink:#2b221b;--ink-secondary:#5c4d41;--line:#2b221b;--line-soft:#dcd3c5;--rule:#ded3c4;--muted:#64564b;--block:transparent;--sel:#fef08a;--sel-ring:#2b221b;--word:#fef9c3;--mark:#fef3c7;--hover:#eaf3f7;--accent:#2b221b;--accent-soft:#e2f0d9;--good-ink:#166534;--bad-ink:#b91c1c;--border-retro:1.5px solid #2b221b;--shadow-retro:3px 3px 0px #2b221b24;--shadow-retro-lg:5px 5px 0px #2b221b24;--cell:#fff;--cell-line:#2b221b;--cell-num:#574e46;--radius:4px;--radius-sm:3px;--radius-pill:9999px;--serif:var(--font-serif), Newsreader, Georgia, "Times New Roman", serif;--sans:var(--font-sans), "Libre Franklin", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--hand:var(--font-hand), "Caveat", "Segoe Script", cursive}*{box-sizing:border-box}html,body{max-width:100vw;color:var(--ink,#2b221b);font-family:var(--sans);-webkit-text-size-adjust:100%;background-color:#f6f4ee;min-height:100vh;margin:0;padding:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus-visible,a:focus-visible{border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important}}@media print{html,body{color:#000!important;background:#fff!important}.appShell{max-width:none!important;box-shadow:none!important;background:#fff!important;border-radius:0!important;padding:0!important}.masthead{border-top:none;margin-bottom:8px;color:#000!important;background:0 0!important}.masthead .title{font-size:28px}.nav,.colophon,.backLink,.cx-rank,.rankBadge{display:none!important}a{color:inherit}}.appShell{width:calc(100% - 32px);max-width:1380px;min-height:calc(100vh - 12px);box-shadow:none;box-sizing:border-box;background:0 0;border:none;flex-direction:column;margin:6px auto;padding:4px 16px 24px;display:flex;position:relative}@media (max-width:768px){.appShell{width:100%;min-height:100vh;margin:0 auto;padding:4px 10px 18px}}.appShell>main{flex-direction:column;flex:1;display:flex}.masthead{border-radius:var(--radius);color:var(--ink);text-align:center;background:linear-gradient(135deg,#fde4ce 0%,#faedcd 38%,#e4eee9 72%,#ebe4f5 100%);border:1.5px solid #eddccb;margin-bottom:24px;padding:20px 22px 14px;position:relative;box-shadow:0 8px 24px #78502812}.masthead .title{font-family:var(--serif);letter-spacing:-.3px;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:12px;margin:2px 0 4px;padding-bottom:8px;font-size:42px;font-weight:800;line-height:1.1;display:flex}.masthead .title a{color:var(--ink);text-decoration:none;transition:opacity .15s}.masthead .title a:hover{opacity:.88;text-decoration:none}.tagline{font-family:var(--sans);letter-spacing:1.6px;text-transform:lowercase;color:#736456;border-bottom:none;margin:0 0 12px;padding-bottom:2px;font-size:12px}.nav{font-family:var(--sans);border-bottom:none;flex-wrap:wrap;justify-content:center;gap:8px;padding-bottom:4px;font-size:13px;display:flex}.nav a{color:#5a4e44;border-radius:var(--radius-pill);letter-spacing:.3px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb8;border:1px solid #eddccb;padding:7px 18px;font-weight:600;transition:all .18s cubic-bezier(.34,1.56,.64,1)}.nav a:hover{color:var(--ink);background:#fff;border-color:#e3ceba;text-decoration:none;transform:translateY(-1.5px)}.nav a.active{background:#fff;border-color:#e5b9a8;font-weight:800;box-shadow:0 4px 14px #9c4a2f26;color:#9c4a2f!important}.pageLine{text-align:center;font-family:var(--sans);letter-spacing:.4px;color:#685c52;flex-basis:100%;margin-top:-2px;font-size:13px;font-weight:600}.tierWord{font-weight:800}.tierWord_beginner{color:#0284c7}.tierWord_easy{color:#16a34a}.tierWord_medium{color:#d97706}.tierWord_hard{color:#dc2626}.tierWord_expert{color:#9333ea}@media (max-width:768px){.canvasOuter{padding:10px 8px 24px}.appShell{border-radius:24px;padding:6px 14px 36px}.masthead{padding:14px 16px 10px}.masthead .title{gap:8px;font-size:32px}.nav{gap:6px}.nav a{padding:5px 12px;font-size:12px}}.belt_brown{color:#fffdf9!important;background:linear-gradient(135deg,#9a6542,#7a4a2c)!important;border:1px solid #b87c53!important;box-shadow:0 2px 6px #7a4a2c40!important}.belt_bronze{color:#fffdf9!important;background:linear-gradient(135deg,#d18265,#b8684a)!important;border:1px solid #e39d83!important;box-shadow:0 2px 8px #b8684a40!important}.belt_silver{color:#2d2621!important;background:linear-gradient(135deg,#e4e9ee,#cbd5e1)!important;border:1px solid #b7c4d1!important;box-shadow:0 2px 6px #b7c4d14d!important}.belt_gold{color:#3d2706!important;background:linear-gradient(135deg,#f7cb72,#e5a73b)!important;border:1px solid #fed7aa!important;box-shadow:0 2px 8px #e5a73b4d!important}.belt_diamond{color:#14373e!important;background:linear-gradient(135deg,#b2e2e4,#86c7cf)!important;border:1px solid #c7f2f5!important;box-shadow:0 2px 10px #86c7cf59!important}.belt_white{color:#2d2621!important;background:linear-gradient(135deg,#fff,#f7f2ea)!important;border:1.5px solid #ded3c4!important;box-shadow:0 2px 8px #6e553c14!important}.belt_black{color:#faf5ee!important;background:linear-gradient(135deg,#2b221b,#191410)!important;border:1.5px solid #f7cb72!important;box-shadow:0 2px 10px #f7cb7240!important}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 4px 18px #3c2d1e0a}button{border-radius:var(--radius)}.pageTitle{font-family:var(--serif);letter-spacing:-.3px;color:var(--ink);margin:0 0 6px;font-size:28px;font-weight:800}.pageSub{color:var(--muted);margin:0 0 20px;font-size:14px}.emptyNote{color:var(--muted);text-align:center;padding:24px 0;font-style:italic}.cx-day{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);padding:13px 16px;transition:transform .16s,box-shadow .16s;box-shadow:0 3px 12px #3c2d1e0a}.cx-day:hover{transform:translateY(-1.5px);box-shadow:0 6px 20px #3c2d1e14}.cx-day .cx-day-status{border-radius:var(--radius-pill);border:none;padding:3px 12px;font-size:12px;font-weight:700}.cx-day--clean .cx-day-status{color:#854d0e;background:#fef3c7}.cx-day--clean .cx-day-status:before{content:"⭐ "}.cx-day--finished .cx-day-status{color:#166534;background:#dcfce7}.cx-day--finished .cx-day-status:before{content:"✅ "}.cx-day--started .cx-day-status{color:#6b21a8;background:#f3e8ff}.cx-day--started .cx-day-status:before{content:"✏️ "}.cx-day--new .cx-day-status{background:var(--hover);color:var(--muted)}.cx-day--new .cx-day-status:before{content:"🧩 "}.cx-day .cx-day-star{display:none}.cx-rank{border-radius:var(--radius)}.colophon{border-top:none;margin-top:48px;padding-top:24px}.colophonBox{border-radius:var(--radius);box-shadow:0 4px 18px #3c2d1e0a}.colophonBoxTitle{font-size:15px}.colophonFine{text-align:center;color:var(--muted);margin:18px 0 0;font-size:12px}.colophonFine a{color:var(--muted);text-decoration:underline}.linkButton{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}.linkButton:hover{text-decoration:underline}.skeleton{padding-top:6px}.skeletonRow{flex-wrap:wrap;align-items:flex-start;gap:28px;display:flex}.skeletonGrid{aspect-ratio:1;border:2px solid var(--rule);border-radius:var(--radius);background:repeating-linear-gradient(0deg, transparent 0 37px, var(--rule) 37px 38px), repeating-linear-gradient(90deg, transparent 0 37px, var(--rule) 37px 38px), var(--panel);width:min(342px,100%);animation:1.4s ease-in-out infinite skeletonPulse}.skeletonClues{flex-direction:column;flex:1;gap:12px;min-width:260px;max-width:520px;padding-top:8px;display:flex}.skeletonLine{background:var(--rule);border-radius:6px;height:12px;animation:1.4s ease-in-out infinite skeletonPulse}@keyframes skeletonPulse{0%,to{opacity:.55}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.skeletonGrid,.skeletonLine{animation:none}}body{text-transform:lowercase}input,textarea,select,code,pre,.keepCase{text-transform:none}
