@font-face{font-family:Fredoka;font-weight:500 700;font-display:swap;src:url(/app/fonts/fredoka-600.ttf) format("truetype")}@font-face{font-family:Nunito;font-weight:400;font-display:swap;src:url(/app/fonts/nunito-400.woff2) format("woff2")}@font-face{font-family:Nunito;font-weight:600;font-display:swap;src:url(/app/fonts/nunito-600.woff2) format("woff2")}@font-face{font-family:Nunito;font-weight:700;font-display:swap;src:url(/app/fonts/nunito-700.woff2) format("woff2")}@font-face{font-family:Nunito;font-weight:800;font-display:swap;src:url(/app/fonts/nunito-800.woff2) format("woff2")}:root{--bg: #FFF6EC;--surface: #FFFFFF;--outline: #EADCCB;--ink: #26173D;--muted: #5E4D72;--primary: #5B2EE0;--on-primary: #FFFFFF;--primary-soft: #EFE8FF;--link: #4A22C4;--danger: #B3261E;--danger-soft: #FDECEA;--good: #1F7A5A;--warn: #8A5A00;--shadow: 0 10px 28px rgba(38, 23, 61, .12);--radius: 20px;--scale: 1;--focus: #5B2EE0;color-scheme:light dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--focus: #C4B2FF;--bg: #1A1226;--surface: #2A1F3A;--outline: #3B2D4F;--ink: #F3ECFA;--muted: #C9B8DC;--primary-soft: #3A2D5C;--link: #C4B2FF;--danger: #FF9A92;--danger-soft: #3F1F24;--good: #7FDDB4;--warn: #F2C46B;--shadow: 0 10px 28px rgba(0, 0, 0, .45)}}:root[data-theme=dark]{--focus: #C4B2FF;--bg: #1A1226;--surface: #2A1F3A;--outline: #3B2D4F;--ink: #F3ECFA;--muted: #C9B8DC;--primary-soft: #3A2D5C;--link: #C4B2FF;--danger: #FF9A92;--danger-soft: #3F1F24;--good: #7FDDB4;--warn: #F2C46B;--shadow: 0 10px 28px rgba(0, 0, 0, .45);color-scheme:dark}:root[data-theme=light]{color-scheme:light}:root[data-text=small]{--scale: .9 }:root[data-text=large]{--scale: 1.2 }*,*:before,*:after{box-sizing:border-box}html{font-size:calc(17px * var(--scale))}body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.55 Nunito,system-ui,sans-serif}h1,h2,h3{font-family:Fredoka,Nunito,system-ui,sans-serif;font-weight:700;line-height:1.15;margin:0 0 .5em}h1{font-size:2rem}h2{font-size:1.35rem;margin-top:1.2em}a{color:var(--link);text-underline-offset:3px}p{margin:0 0 1em}.muted{color:var(--muted)}.lead{font-size:1.15rem}.loading{padding:3rem;text-align:center}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}main:focus,h1:focus,.flash:focus{outline:none}.skip{position:absolute;left:.5rem;top:-4rem;z-index:30;background:var(--primary);color:var(--on-primary);padding:.5rem 1rem;border-radius:999px;font-weight:700}.skip:focus{top:.5rem}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px}kbd{font:700 .75em Nunito,monospace;border:1px solid var(--outline);border-bottom-width:2px;border-radius:6px;padding:0 .4em;background:var(--surface);color:var(--muted);margin-left:.35em}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.side{position:sticky;top:0;height:100vh;padding:1.2rem 1rem;display:flex;flex-direction:column;gap:1rem;border-right:1px solid var(--outline)}.brand{display:flex;align-items:center;gap:.6rem;font:700 1.3rem Fredoka,sans-serif;color:var(--ink);text-decoration:none}.brand img{border-radius:10px}.side nav{display:flex;flex-direction:column;gap:.25rem}.side nav a{padding:.55rem .8rem;border-radius:999px;color:var(--ink);text-decoration:none;font-weight:700}.side nav a:hover{background:var(--primary-soft)}.side nav a.on{background:var(--primary);color:var(--on-primary)}.install{align-self:flex-start;font-size:.9rem;padding:.4rem .9rem}.onDevice{margin-top:auto;font-size:.8rem;color:var(--muted)}main{padding:1.5rem clamp(1rem,4vw,3rem) 4rem;max-width:960px;width:100%}@media(max-width:720px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--outline)}.side nav{flex-direction:row;flex-wrap:wrap}.onDevice{display:none}}.card{background:var(--surface);border:1px solid var(--outline);border-radius:var(--radius);padding:1.1rem 1.3rem;margin:0 0 1rem;box-shadow:var(--shadow)}.card h2:first-child{margin-top:0}.today{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:var(--primary-soft)}.today h2{margin:0}.today p{margin:.2rem 0 0}.row{display:flex;gap:.6rem;align-items:center}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.inline{display:flex;gap:.8rem;align-items:end;flex-wrap:wrap}label{display:flex;flex-direction:column;gap:.25rem;font-weight:700;font-size:.9rem}label.check{flex-direction:row;align-items:center;gap:.5rem;font-weight:600}.card>label{margin-bottom:.8rem;max-width:24rem}input,select,textarea{font:inherit;color:var(--ink);background:var(--bg);border:1.5px solid var(--outline);border-radius:12px;padding:.5rem .7rem}input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--primary)}textarea{width:100%;resize:vertical;font-family:ui-monospace,monospace;font-size:.95rem}input.plain,textarea.plain{background:transparent;border-color:transparent;width:100%;padding:.3rem .4rem}textarea.plain{resize:none;overflow:hidden;display:block;font-family:inherit;font-size:inherit;line-height:1.4}input.plain:hover,textarea.plain:hover{border-color:var(--outline)}input.plain:focus,textarea.plain:focus{background:var(--bg);border-color:var(--primary)}.deckTitle{display:flex;align-items:center;gap:.6rem;margin:0}.deckTitle input{font:inherit;font-size:2rem;font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font:700 1rem Nunito,sans-serif;padding:.55rem 1.1rem;border-radius:999px;border:2px solid var(--outline);background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none;transition:transform .12s,box-shadow .12s}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.big{padding:.8rem 1.8rem;font-size:1.15rem}.btn.danger{color:var(--danger);border-color:var(--danger);background:transparent}.btn.again{color:var(--danger);border-color:var(--danger)}.btn.got{background:var(--good);border-color:var(--good);color:#fff}.btn.easy{border-color:var(--link);color:var(--link)}:root[data-theme=dark] .btn.got{color:#10231b}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .btn.got{color:#10231b}}button.link{background:none;border:0;color:var(--link);text-decoration:underline;font:inherit;cursor:pointer;padding:0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;margin-bottom:1.5rem}.deckCard{--deck: #FFC94D;display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.1rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--outline);border-top:6px solid var(--deck);box-shadow:var(--shadow);text-decoration:none;color:var(--ink);transition:transform .15s}a.deckCard:hover{transform:translateY(-3px)}.deckCard strong{font:700 1.1rem Fredoka,sans-serif}.deckCard .btn{align-self:flex-start;margin-top:.4rem}.dot{display:inline-block;width:.9rem;height:.9rem;border-radius:50%;background:var(--deck, #FFC94D);flex:none}.bar{display:block;height:8px;border-radius:99px;background:var(--outline);overflow:hidden;margin-top:.4rem}.bar i{display:block;height:100%;background:var(--deck, var(--primary));border-radius:99px;transition:width .3s}.bar.thick{height:10px;margin:.8rem 0}table.cards{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--outline);border-radius:var(--radius);overflow:hidden}table.cards th,table.cards td{text-align:left;padding:.25rem .5rem;border-bottom:1px solid var(--outline);vertical-align:top}table.cards th{font-size:.85rem;color:var(--muted);padding:.6rem .5rem}table.cards td:first-child,table.cards th:first-child{width:2.2rem;text-align:center}table.cards td:last-child{white-space:nowrap;font-size:.9rem;padding-right:1rem}.bulk{position:sticky;top:.5rem;z-index:2;display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;margin-bottom:.6rem;border-radius:999px;background:var(--primary-soft);border:1px solid var(--outline)}.toast{background:var(--primary-soft);border-radius:14px;padding:.6rem 1rem}.toast.bad{background:var(--danger-soft);color:var(--danger)}.addRow label{flex:1 1 14rem}.addRow input{width:100%}.danger-zone{border-color:var(--danger);background:var(--danger-soft)}.danger-zone h2{color:var(--danger)}.dropVeil{position:fixed;inset:0;z-index:10;display:grid;place-items:center;font:700 2rem Fredoka,sans-serif;color:#fff;background:#5b2ee0d9;pointer-events:none}details summary{cursor:pointer;font-weight:700;margin-bottom:.6rem}.study{margin:0 auto;max-width:760px;padding-top:1.5rem;min-height:100vh}.flash{--deck: var(--primary);text-align:center;padding:2rem 2rem 2.2rem;min-height:16rem;border-top:8px solid var(--deck);animation:pop .25s ease-out}.flash .tag{color:var(--muted);font-weight:700;margin:0 0 1rem}.flash .big{font:700 clamp(1.6rem,4vw,2.4rem)/1.25 Fredoka,sans-serif;margin:.5rem 0;overflow-wrap:anywhere;white-space:pre-wrap}.flash .answer{color:var(--link)}.flash hr{border:0;border-top:2px dashed var(--outline);margin:1.2rem 0}.cardImg{max-width:100%;max-height:14rem;border-radius:14px}.actions{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap;margin-top:1.2rem}.study.done,.welcome{text-align:center;padding:4rem 1rem;max-width:560px;margin:0 auto}.welcome form{display:flex;flex-direction:column;gap:1rem;align-items:center;margin:1.5rem 0}.welcome label{align-items:stretch;width:min(22rem,100%);text-align:left}.welcome img{border-radius:22px}.tourVeil{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#1a12268c}.tour{width:min(30rem,100%);padding:1.6rem 1.8rem;margin:0;animation:pop .25s ease-out}.tour h2{margin:.2rem 0 .6rem}.tourStep{margin:0;font-size:.85rem;font-weight:700}.dots{display:flex;gap:.4rem;margin:0 0 1.2rem}.dots i{width:.55rem;height:.55rem;border-radius:50%;background:var(--outline)}.dots i.on{background:var(--primary);width:1.4rem;border-radius:99px}.chip{padding:.35rem .9rem;border-radius:999px;background:#ffc94d;color:#26173d;font-weight:800;text-decoration:none}.streakCard{text-align:center;background:#ffc94d;color:#26173d}.streakCard .muted{color:#26173d}.streakCard h2{margin-top:0}.streakNum{font:700 4rem/1 Fredoka,sans-serif;margin:0 0 .3rem}.week{display:flex;justify-content:center;gap:.8rem;list-style:none;padding:0;margin:1rem 0;font-size:.85rem;font-weight:700}.week li{display:flex;flex-direction:column;align-items:center;gap:.3rem}.weekDot{width:1.4rem;height:1.4rem;border-radius:50%;border:2px solid #26173D}.week li.on .weekDot{background:#26173d}.stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stats p{margin:0}.stats strong{display:block;font:700 2rem Fredoka,sans-serif}.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;list-style:none;padding:0}.badge{display:flex;gap:.8rem;align-items:center;margin:0}.badgeIcon{display:grid;place-items:center;width:2.6rem;height:2.6rem;flex:none;border-radius:50%;background:var(--outline);color:#26173d;font-size:1.3rem}.badge.got .badgeIcon{background:var(--badge)}.newBadge{background:var(--badge);color:#26173d;text-align:left;margin-top:1rem}.newBadge p:last-child{margin:0}@keyframes pop{0%{transform:scale(.97);opacity:.6}to{transform:none;opacity:1}}:root[data-calm="1"] *,:root[data-calm="1"] *:before{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media print{.side,.btn,.bulk,.addRow,.toast,input[type=search],.card.inline{display:none!important}.shell{display:block}body{background:#fff;color:#000}table.cards{box-shadow:none}input.plain,textarea.plain{border:0;color:#000}}
