@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fredoka-latin-500-normal-B0JifZgm.woff2)format("woff2"),url(/assets/fredoka-latin-500-normal-BL692wg7.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fredoka-latin-600-normal-C4zohCW5.woff2)format("woff2"),url(/assets/fredoka-latin-600-normal-CcrEjrB4.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fredoka-latin-700-normal-BOIZVyIN.woff2)format("woff2"),url(/assets/fredoka-latin-700-normal-C8FeHd3X.woff)format("woff")}@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")}:root{--bg:#fff0ee;--bg2:#fde3e1;--card:#fff;--ink:#5e3b2c;--muted:#7d5a4d;--peach:#d9677e;--peach-strong:#b5405a;--peach-ink:#fff;--rose-soft:#fbdde3;--mint:#bfddb9;--mint-ink:#255a33;--butter:#f9e2a0;--butter-ink:#6b4e00;--sky:#fbdde3;--sky-ink:#6a2d3c;--line:#f0cbc5;--hood:#f6ebdd;--wrong:#b5405a;--right:#2f7a40;--shadow:0 3px 0 #f3cfc8;--target:2.75rem;--ease:cubic-bezier(.2,.7,.2,1);--solid:#fff8f6;--glass:#fff8f6b8;--glass-hdr:#fff0eedb;--glass-sheet:#fff0eed6;--edge-light:#ffffffc7;--blur:blur(18px) saturate(1.4);--blur-thick:blur(28px) saturate(1.5);--hdr-h:4.5rem;--display:"Fredoka","Baloo 2","Trebuchet MS",ui-rounded,sans-serif;--body:"Nunito","Segoe UI",ui-rounded,system-ui,sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:1.0625rem/1.5 var(--body);letter-spacing:0;z-index:0;margin:0;position:relative}body:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#fff0ee4d 0%,#fff0ee8c 50%,#fff0eecc 100%),url(/img/wallpaper-portrait.jpg) 50%/cover no-repeat;position:fixed;inset:0}@media (aspect-ratio>=4/5){body:after{background:linear-gradient(#fff0ee4d 0%,#fff0ee8c 50%,#fff0eecc 100%),url(/img/wallpaper-wide.jpg) 50%/cover no-repeat}}*{box-sizing:border-box}[hidden]{display:none!important}button,input,label,textarea,summary{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--peach-strong);outline-offset:2px}.vopt:has(input:focus-visible){outline:3px solid var(--peach-strong);outline-offset:2px}button,.vopt{transition:transform .18s var(--ease),opacity .18s var(--ease),background-color .25s var(--ease)}button.is-pressed,.vopt.is-pressed,[role=tab].is-pressed,.press.is-pressed,button:not(:disabled):active,.vopt:active{opacity:.86;transition:transform .1s ease-out,opacity .1s ease-out,background-color .25s var(--ease);transform:scale(.97)}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{max-width:35rem;height:100dvh;padding-left:max(1rem,env(safe-area-inset-left,0px));padding-right:max(1rem,env(safe-area-inset-right,0px));flex-direction:column;margin:0 auto;display:flex;position:relative}.loading{text-align:center;color:var(--muted);margin:auto;font-weight:700}header{z-index:4;padding:calc(.75rem + env(safe-area-inset-top,0px)) max(1rem,env(safe-area-inset-right,0px)) .5rem max(1rem,env(safe-area-inset-left,0px));background:var(--solid);align-items:center;gap:.75rem;display:flex;position:absolute;top:0;left:0;right:0}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){header{background:var(--glass-hdr);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:inset 0 1px 0 var(--edge-light)}}.edge{z-index:3;top:var(--hdr-h);pointer-events:none;opacity:0;background:linear-gradient(#fff0eeb8,#fff0ee00);height:1.5rem;transition:opacity .2s ease-out;position:absolute;left:0;right:0}.app[data-scrolled] .edge{opacity:1}header img.logo{border-radius:50%;flex:none;width:2.5rem;height:2.5rem}header h1{min-width:0;font:700 2rem/1.05 var(--display);letter-spacing:-.02em;overflow-wrap:anywhere;flex:1;margin:0}.streak{min-height:var(--target);background:var(--butter);color:var(--butter-ink);font:700 .75rem/1.1 var(--body);text-transform:uppercase;letter-spacing:.05em;border-radius:.875rem;flex-direction:column;justify-content:center;align-items:center;padding:.125rem .625rem;display:flex}.streak b{font:800 1.3rem/1 var(--display);letter-spacing:0;text-transform:none}.voicebtn{min-width:var(--target);min-height:var(--target);border:1.5px solid var(--line);background:var(--card);font:700 .875rem/1 var(--body);color:var(--ink);box-shadow:var(--shadow);border-radius:999px;flex:none;justify-content:center;align-items:center;gap:.3rem;padding:.5rem .75rem;display:flex}.voicebtn svg{flex:none;width:1.25rem;height:1.25rem}@media (width<=440px){.voicebtn span{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}}main{min-height:0;padding-bottom:calc(4.75rem + env(safe-area-inset-bottom,0px));flex-direction:column;flex:1;display:flex;position:relative}section[data-view]{flex-direction:column;flex:1;gap:.75rem;min-height:0;animation:.16s ease-out view-in;display:flex}section[data-view].leaving{inset:0 0 calc(4.75rem + env(safe-area-inset-bottom,0px));pointer-events:none;animation:.16s ease-out forwards view-out;position:absolute}@keyframes view-in{0%{opacity:0}to{opacity:1}}@keyframes view-out{0%{opacity:1}to{opacity:0}}section[data-view=cards]{padding-top:var(--hdr-h)}.chat{min-height:0;padding-block:calc(var(--hdr-h) + .375rem) .625rem;flex-direction:column;flex:1;gap:.625rem;display:flex;overflow-y:auto}.note{color:var(--muted);text-align:center;background:#fff0eee0;border-radius:.75rem;align-self:center;max-width:36ch;margin:0;padding:.25rem .625rem;font-size:.875rem}.msg{overflow-wrap:anywhere;border-radius:1.125rem;min-width:0;max-width:88%;padding:.625rem .875rem}.msg.me{background:var(--sky);color:var(--sky-ink);border-bottom-right-radius:.375rem;align-self:flex-end}.msg.kitty{background:var(--card);border:1.5px solid var(--line);box-shadow:var(--shadow);border-bottom-left-radius:.375rem;align-self:flex-start}.msg.kitty .who{font:600 .8125rem/1 var(--display);color:var(--sky-ink);background:var(--rose-soft);border-radius:999px;margin-bottom:.375rem;padding:.1875rem .5rem;display:inline-block}.fix{border-top:1.5px dashed var(--line);gap:.25rem;margin-top:.625rem;padding-top:.5rem;display:grid}.fix .tag{font:700 .75rem/1 var(--body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.fix .pair{flex-wrap:wrap;align-items:baseline;gap:.375rem .625rem;display:flex}.fix del{color:var(--wrong);text-decoration-thickness:2px}.fix ins{color:var(--right);background:color-mix(in srgb,var(--mint) 35%,transparent);border-radius:.3125rem;padding:0 .25rem;font-weight:700;text-decoration:none}.fix .why{font-size:1rem}.fix .joke{color:var(--peach-strong);font-size:1rem;font-style:italic}.praise{color:var(--right);margin-top:.5rem;font-weight:700}.words{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.wlabel{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8125rem;font-weight:700}.chip{min-height:var(--target);border:1.5px solid var(--mint);color:var(--ink);text-align:left;background:0 0;border-radius:999px;padding:.25rem .875rem;font-size:.9375rem;font-weight:700}.chip[disabled]{opacity:.65;cursor:default}.speak{min-height:var(--target);color:var(--muted);background:0 0;border:none;padding:.25rem 0;font-size:.9375rem;font-weight:700}.typing{gap:.25rem;display:inline-flex}.typing i{background:var(--peach);border-radius:50%;width:.4375rem;height:.4375rem;animation:1s infinite b}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes b{0%,80%,to{opacity:.5;transform:translateY(0)}40%{opacity:1;transform:translateY(-.25rem)}}.starters{scrollbar-width:none;gap:.5rem;padding-bottom:.125rem;display:flex;overflow-x:auto}.starters button{max-width:min(18rem,78vw);min-height:var(--target);border:1.5px solid var(--line);background:var(--card);text-align:left;white-space:normal;border-radius:1.375rem;flex:none;padding:.375rem .875rem;font-size:.9375rem}.starters button[disabled]{opacity:.55;cursor:default}form.compose{align-items:flex-end;gap:.5rem;padding-block:.25rem .625rem;display:flex}form.compose textarea{min-width:0;min-height:var(--target);resize:none;border:2px solid var(--line);background:var(--card);color:var(--ink);font:inherit;border-radius:1.375rem;flex:1;max-height:7.5rem;padding:.625rem .875rem}form.compose textarea:disabled{opacity:.7;background:var(--hood)}.round{width:var(--target);height:var(--target);border:none;border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.send{background:var(--peach-strong);color:var(--peach-ink)}.mic{background:var(--mint);color:var(--mint-ink)}.mic.on{animation:1.2s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--mint) 70%,transparent)}to{box-shadow:0 0 0 .75rem #0000}}.round svg{width:1.375rem;height:1.375rem}.round[disabled]{opacity:.5;cursor:default}.deckbar{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;padding-top:.375rem;display:flex}.deckbar h2{font:700 1.25rem/1.1 var(--display);letter-spacing:-.01em;margin:0}.deckbar span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.9375rem}.flash{flex:1;min-height:17.5rem;max-height:26.25rem}.flash button.face{all:unset;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;width:100%;height:100%;transition:transform .18s var(--ease);display:block}.flash button.face.is-pressed,.flash button.face:active{opacity:1;transition:transform .1s ease-out;transform:scale(.97)}.flash button.face:focus-visible{outline:3px solid var(--peach-strong);outline-offset:3px;border-radius:1.625rem}.inner{width:100%;height:100%;transform-style:preserve-3d;position:relative}.side{backface-visibility:hidden;background:var(--card);border:2px solid var(--line);box-shadow:0 6px 0 var(--line);text-align:center;border-radius:1.625rem;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.375rem;display:flex;position:absolute;inset:0;overflow-y:auto}.side.back{background:#f2f9ef;transform:rotateY(180deg)}.pic{font-size:4rem;line-height:1}.word{font:700 2.3rem/1.05 var(--display);letter-spacing:-.02em;overflow-wrap:anywhere}.ipa{color:var(--muted);font-size:1.0625rem}.mean{max-width:30ch;font-size:1.125rem;font-weight:700}.ex{max-width:32ch;font-size:1.0625rem}.ex b{color:var(--sky-ink);background:var(--rose-soft);border-radius:.25rem;padding:0 .1875rem}.kittysays{color:var(--muted);max-width:32ch;font-size:1rem;font-style:italic}.hint{color:var(--muted);font-size:.875rem}.grade{grid-template-columns:repeat(3,1fr);gap:.5rem;padding-bottom:.625rem;display:grid}.grade button{min-height:3.5rem;font-weight:600;font-family:var(--display);border:none;border-radius:1rem;padding:.625rem .375rem;font-size:1.0625rem;line-height:1.1}.grade small{font:600 .8125rem/1.2 var(--body);display:block}.g-again{background:var(--rose-soft);color:var(--sky-ink)}.g-good{background:var(--butter);color:var(--butter-ink)}.g-easy{background:var(--mint);color:var(--mint-ink)}.done{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.375rem;display:flex}.done h3{font:700 1.4rem/1.1 var(--display);letter-spacing:-.015em;margin:0}.done p{max-width:30ch;margin:0}.stats{grid-template-columns:repeat(3,1fr);gap:.5rem;padding-top:.375rem;display:grid}.stat{background:var(--card);border:1.5px solid var(--line);text-align:center;border-radius:1.125rem;padding:.75rem}.stat b{font:700 1.7rem/1 var(--display);letter-spacing:-.01em;font-variant-numeric:tabular-nums;display:block}.stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.boxes h2,.oops h2{font:700 1.15rem/1.1 var(--display);margin:.375rem 0 .5rem}.ladder{grid-template-columns:repeat(5,1fr);align-items:end;gap:.375rem;height:7.5rem;display:grid}.rung{flex-direction:column;justify-content:flex-end;align-items:center;gap:.25rem;height:100%;display:flex}.rung i{background:var(--mint);border-radius:.625rem .625rem .25rem .25rem;width:100%;min-height:.25rem;display:block}.rung small{color:var(--muted);text-align:center;font-size:.75rem;line-height:1.15}.rung b{font-variant-numeric:tabular-nums;font-size:.9375rem}.oops ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.oops li{background:var(--card);border:1.5px solid var(--line);border-radius:.875rem;flex-wrap:wrap;align-items:baseline;gap:.625rem;padding:.5rem .75rem;display:flex}.oops del{color:var(--wrong)}.oops ins{color:var(--right);font-weight:700;text-decoration:none}.scroll{min-height:0;padding-top:var(--hdr-h);flex-direction:column;flex:1;gap:.75rem;padding-bottom:.625rem;display:flex;overflow-y:auto}.reset{min-height:var(--target);border:1.5px solid var(--line);background:var(--card);color:var(--muted);border-radius:.875rem;align-self:flex-start;padding:.5rem .875rem;font-size:.9375rem;font-weight:700}nav{z-index:5;background:var(--solid);border-top:1px solid var(--line);padding-top:.375rem;padding-bottom:calc(.375rem + env(safe-area-inset-bottom,0px));padding-left:max(.5rem,calc((100vw - 35rem)/2),env(safe-area-inset-left,0px));padding-right:max(.5rem,calc((100vw - 35rem)/2),env(safe-area-inset-right,0px));grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid;position:fixed;bottom:0;left:0;right:0}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){nav{background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-top-color:var(--edge-light);box-shadow:inset 0 1px 0 var(--edge-light)}}nav button{z-index:1;min-height:3.5rem;font:600 .8125rem/1 var(--body);color:var(--muted);background:0 0;border:none;border-radius:.875rem;flex-direction:column;justify-content:center;align-items:center;gap:.125rem;padding:.375rem .25rem;display:flex;position:relative}nav button svg{fill:none;width:1.5rem;height:1.5rem}.tabpill{z-index:0;background:var(--card);width:0;height:0;box-shadow:var(--shadow);pointer-events:none;border-radius:.875rem;position:absolute;left:0}nav button[aria-selected=true]{color:var(--peach-strong);font-weight:800}nav button[aria-selected=true] svg{fill:color-mix(in srgb,currentColor 25%,transparent);stroke-width:2.5px}.badge{font-variant-numeric:tabular-nums}dialog.sheet{width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);background:0 0;border:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}dialog.sheet[open]{display:block}dialog.sheet::backdrop{background:0 0}.scrim{background:#5e3b2c61;position:absolute;inset:0}.sheet-panel{--ext:6rem;left:0;right:0;bottom:calc(-1*var(--ext));max-width:35rem;padding-bottom:var(--ext);background:var(--bg);color:var(--ink);border-radius:1.75rem 1.75rem 0 0;margin-inline:auto;position:absolute;overflow:hidden;box-shadow:0 -8px 40px #5e3b2c40}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.sheet-panel{background:var(--glass-sheet);-webkit-backdrop-filter:var(--blur-thick);backdrop-filter:var(--blur-thick);box-shadow:inset 0 1px 0 var(--edge-light),0 -8px 40px #5e3b2c40}}.sheet-panel.solid{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}.sheet-panel.dragging{-webkit-user-select:none;user-select:none;cursor:grabbing}[data-sheet-handle],.sheet-body.noscroll{touch-action:none}.sheet-body{max-height:calc(100dvh - env(safe-area-inset-top,0px) - .5rem);overscroll-behavior:contain;padding:.5rem max(1rem,env(safe-area-inset-right,0px)) calc(1rem + env(safe-area-inset-bottom,0px)) max(1rem,env(safe-area-inset-left,0px));overflow-y:auto}.grabber{background:#d9b8b1;border-radius:999px;width:2.5rem;height:.3125rem;margin:.25rem auto .5rem}.sheet-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.sheet-head h2{font:700 1.5rem/1.1 var(--display);letter-spacing:-.015em;margin:0}.donebtn{min-width:var(--target);min-height:var(--target);color:var(--peach-strong);font:800 1.0625rem/1 var(--body);background:0 0;border:none;border-radius:.875rem;padding:.5rem .75rem}.vnote{color:var(--muted);margin:.375rem 0 0;font-size:.9375rem}.vhead{font:700 .8125rem/1 var(--body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:1rem 0 .375rem .5rem}.group{background:var(--card);border:1px solid var(--line);border-radius:1rem;margin:.625rem 0;overflow:hidden}.row{text-align:left;align-items:center;gap:.75rem;width:100%;min-height:3.25rem;padding:.375rem .875rem;display:flex}.row+.row{border-top:1px solid var(--line)}.row .vtext{flex:1;min-width:0}.row .vtext b{font:600 1.0625rem/1.2 var(--display);display:block}.row .vtext small{color:var(--muted);font-size:.875rem;display:block}.row .val{color:var(--muted);font-variant-numeric:tabular-nums}.vopt{cursor:pointer}.vopt:has(input:checked){background:var(--rose-soft)}.vopt input{opacity:0;width:1px;height:1px;position:absolute}.check{width:1.5rem;height:1.5rem;color:var(--peach-strong);opacity:0;flex:none}.vopt:has(input:checked) .check{opacity:1}.try{min-width:var(--target);min-height:var(--target);background:var(--mint);color:var(--mint-ink);border:none;border-radius:999px;flex:none;padding:.375rem .875rem;font-size:.875rem;font-weight:800}button.row{font:inherit;color:var(--ink);background:0 0;border:none}button.row.danger{color:var(--wrong);font-weight:700}button.row:disabled{opacity:.5}.vstatus{color:var(--right);margin:.25rem .5rem 0;font-size:.9375rem;font-weight:700}.vdone{background:var(--peach-strong);width:100%;min-height:3.25rem;color:var(--peach-ink);font:600 1.125rem/1 var(--display);border:none;border-radius:1rem;margin-top:.5rem;padding:.75rem}.action-msg{text-align:center;padding:.5rem .5rem .75rem}.action-msg h2{font:700 1.25rem/1.15 var(--display);letter-spacing:-.01em;margin:0 0 .25rem}.action-msg p{color:var(--muted);margin:0;font-size:1rem}.act{width:100%;min-height:3.25rem;font:700 1.0625rem/1.2 var(--body);border:none;border-radius:1rem;margin-top:.5rem;padding:.75rem;display:block}.act.destructive{background:var(--wrong);color:#fff}.act.cancel{background:var(--card);color:var(--ink);border:1px solid var(--line)}.tablabel{white-space:nowrap}@media (prefers-reduced-motion:reduce){button,.vopt{transition:opacity .12s linear,background-color .12s linear}button.is-pressed,.vopt.is-pressed,[role=tab].is-pressed,.press.is-pressed,button:not(:disabled):active,.vopt:active,.flash button.face.is-pressed,.flash button.face:active{opacity:.7;transition:opacity 80ms linear;transform:none}.typing i{opacity:.7;animation:none}.mic.on{box-shadow:0 0 0 .25rem color-mix(in srgb,var(--mint) 70%,transparent);animation:none}.inner{transform-style:flat;transform:none!important}.side{backface-visibility:visible;transition:opacity .15s linear}.side.back{opacity:0;pointer-events:none;transform:none}.flash.flipped .side.front{opacity:0;pointer-events:none}.flash.flipped .side.back{opacity:1;pointer-events:auto}.edge{transition-duration:.12s}}@media (prefers-reduced-transparency:reduce){header,nav{background:var(--solid)!important}.sheet-panel{background:var(--bg)!important}header,nav,.sheet-panel{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.edge{background:linear-gradient(to bottom,var(--solid),#fff8f600)}}@media (prefers-contrast:more){:root{--ink:#3a2014;--muted:#4a2e22;--peach-strong:#8c2740;--sky-ink:#4a1a28;--mint-ink:#173b21;--butter-ink:#3f2e00;--right:#1f5a2d;--wrong:#8e2a43;--line:#7a5042}header,nav{background:var(--solid)!important}.sheet-panel{border:2px solid var(--ink);border-bottom:0;background:var(--bg)!important}header,nav,.sheet-panel{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}header{border-bottom:2px solid var(--ink)}nav{border-top:2px solid var(--ink)}.edge{display:none}.tabpill{border:2px solid var(--peach-strong)}.msg.kitty,.side,.group,.stat,.oops li{border-color:var(--ink)}}
