@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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}:root{--paper: #f7f6f2;--card: #ffffff;--ink: #16202e;--ink-soft: #61697a;--line: #e6e3da;--rule-red: #c3363b;--rule-blue: #b9cbe4;--g-again: #c3363b;--g-hard: #a2701a;--g-good: #37764a;--radius: 16px;--radius-s: 12px;--shadow-1: 0 1px 2px rgb(22 32 46 / .05), 0 4px 14px rgb(22 32 46 / .06);--shadow-2: 0 2px 6px rgb(22 32 46 / .07), 0 16px 40px rgb(22 32 46 / .12);--font-display: "Fraunces Variable", Georgia, "Times New Roman", serif}@media(prefers-color-scheme:dark){:root{--paper: #10151e;--card: #1a2230;--ink: #e9ecf2;--ink-soft: #8d97a9;--line: #2a3345;--rule-red: #e0666a;--rule-blue: #46587a;--g-again: #d96065;--g-hard: #c08a2e;--g-good: #4f9066;--shadow-1: 0 1px 2px rgb(0 0 0 / .3), 0 4px 14px rgb(0 0 0 / .35);--shadow-2: 0 2px 6px rgb(0 0 0 / .35), 0 16px 40px rgb(0 0 0 / .5)}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.5;background:var(--paper);color:var(--ink);-webkit-tap-highlight-color:transparent}h1,h2,.deck-name,.review-done-title{font-family:var(--font-display);font-weight:580;letter-spacing:-.01em}h1{font-size:1.9rem;margin:.7rem 0 .2rem}h2{font-size:1.1rem;margin:0 0 .6rem}:focus-visible{outline:2px solid var(--rule-blue);outline-offset:2px}.app{max-width:40rem;margin:0 auto;padding:.75rem 1.1rem calc(1.5rem + env(safe-area-inset-bottom))}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:calc(.4rem + env(safe-area-inset-top));min-height:2.4rem}.topbar h1{margin:0}.topbar-link{color:var(--ink-soft);text-decoration:none;font-size:.95rem;font-weight:500;padding:.4rem 0;transition:color .15s ease}.topbar-link:hover,.topbar-link:active{color:var(--ink)}.as-button{background:none;border:none;font:inherit;cursor:pointer}.empty{color:var(--ink-soft);margin:1rem 0}.hint{color:var(--ink-soft);font-size:.85rem;margin:.2rem 0 .6rem}.hint code{background:var(--paper);padding:.1em .35em;border-radius:6px}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.6rem}.fiche{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--rule-red);border-radius:var(--radius);box-shadow:var(--shadow-1)}.progress{flex:1;height:4px;border-radius:999px;background:var(--line);overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:var(--rule-red);transition:width .35s cubic-bezier(.2,.7,.3,1)}.deck-progress{flex:none;width:100%;height:3px;margin-top:.55rem}.deck-progress .progress-fill{background:var(--rule-blue)}.deck-list{list-style:none;margin:1.1rem 0;padding:0;display:flex;flex-direction:column;gap:.7rem}.deck-item{display:flex;align-items:center;justify-content:space-between;gap:.9rem;padding:.95rem 1.1rem;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}.deck-item:active{transform:scale(.985)}@media(hover:hover){.deck-item:hover{transform:translateY(-1px);box-shadow:var(--shadow-2)}}.deck-item-main{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.deck-name{font-size:1.25rem}.deck-meta{color:var(--ink-soft);font-size:.85rem;margin:0 0 .8rem}.deck-item .deck-meta{margin:0}.due-badge{flex-shrink:0;background:var(--rule-red);color:#fff;font-size:.85rem;font-weight:650;border-radius:999px;min-width:1.9rem;text-align:center;padding:.25rem .65rem}.btn{display:inline-block;background:var(--ink);color:var(--paper);border:none;border-radius:999px;padding:.7rem 1.3rem;font:inherit;font-weight:600;text-align:center;text-decoration:none;cursor:pointer;transition:transform .12s ease,opacity .12s ease}.btn:active{transform:scale(.96);opacity:.9}.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn-danger{background:transparent;color:var(--g-again);border:1px solid var(--g-again)}.btn-block{display:block;width:100%;margin-top:1.5rem}.btn-review{display:block;width:100%;margin:.9rem 0 1.1rem;padding:.95rem;font-size:1.05rem;box-shadow:var(--shadow-1)}input,textarea{width:100%;font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-s);padding:.65rem .8rem;transition:border-color .15s ease}input:focus,textarea:focus{border-color:var(--rule-blue);outline:none}.row input{flex:1;min-width:0}textarea{resize:vertical}.card-form{padding:1rem 1.1rem;margin:.9rem 0}.card-form label{display:block;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:.7rem}.card-form label textarea{margin-top:.3rem;font-weight:400;text-transform:none;letter-spacing:normal}.card-form summary{cursor:pointer;font-weight:600}.card-form form{margin-top:.6rem}.preview{margin:.4rem 0}.preview summary{font-size:.85rem;color:var(--ink-soft);font-weight:400;cursor:pointer}.card-list{list-style:none;margin:1rem 0;padding:0;display:flex;flex-direction:column;gap:.45rem}.card-item{display:flex;width:100%;align-items:baseline;justify-content:space-between;gap:.8rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-s);padding:.65rem .9rem;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:transform .12s ease}.card-item:active{transform:scale(.985)}.card-item-front{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-item-due{flex-shrink:0;color:var(--ink-soft);font-size:.8rem}.review{display:flex;flex-direction:column;height:100dvh}.review-topbar{gap:.9rem}.review-count{color:var(--ink-soft);font-size:.9rem;font-variant-numeric:tabular-nums;min-width:1.5rem;text-align:right}.stack{position:relative;flex:1;min-height:0;margin:.9rem 0 1rem}.stack .fiche{position:absolute;top:50%;left:50%;width:min(100%,26rem);height:100%;max-height:32rem;transform:translate(-50%,-50%)}.stack .fiche.ghost{box-shadow:none;background:var(--card)}.stack .fiche.ghost-1{width:calc(min(100%,26rem) - 28px);transform:translate(-50%,calc(-50% + 16px));opacity:.85}.stack .fiche.ghost-2{width:calc(min(100%,26rem) - 52px);transform:translate(-50%,calc(-50% + 30px));opacity:.55}.review-card{display:flex;flex-direction:column;padding:1.5rem 1.4rem;overflow-y:auto;font-size:1.1rem;box-shadow:var(--shadow-2);touch-action:pan-y;cursor:grab;animation:card-enter .32s cubic-bezier(.2,.7,.3,1);transition:transform .25s cubic-bezier(.2,.7,.3,1);will-change:transform}.review-card.tappable{cursor:pointer}.review-card.centered{justify-content:center}.review-front{font-family:var(--font-display);font-size:1.5rem;font-weight:540;line-height:1.35}.centered .review-front{font-size:1.7rem}.review-answer{animation:answer-in .28s ease}.review-divider{border:none;border-top:1px solid var(--rule-blue);margin:1rem 0}.leaving{pointer-events:none;z-index:2;transition:none}.fly-right{animation:fly-right .42s cubic-bezier(.3,.6,.4,1) forwards}.fly-left{animation:fly-left .42s cubic-bezier(.3,.6,.4,1) forwards}.leaving-good{border-top-color:var(--g-good)}.leaving-hard{border-top-color:var(--g-hard)}.leaving-again{border-top-color:var(--g-again)}@keyframes fly-right{to{transform:translate(80%,-50%) rotate(14deg);opacity:0}}@keyframes fly-left{to{transform:translate(-180%,-50%) rotate(-14deg);opacity:0}}@keyframes card-enter{0%{transform:scale(.955) translateY(12px)}}@keyframes answer-in{0%{opacity:0;transform:translateY(8px)}}.stamp{position:absolute;top:50%;font-family:var(--font-display);font-size:1.6rem;font-weight:640;text-transform:uppercase;letter-spacing:.08em;padding:.3rem 1rem;border:3px solid;border-radius:10px;pointer-events:none}.stamp-pos-right{right:1.5rem;transform:translateY(-50%) rotate(-10deg)}.stamp-pos-left{left:1.5rem;transform:translateY(-50%) rotate(10deg)}.stamp-good{color:var(--g-good);border-color:var(--g-good)}.stamp-hard{color:var(--g-hard);border-color:var(--g-hard)}.stamp-again{color:var(--g-again);border-color:var(--g-again)}.review-actions{padding-bottom:calc(.4rem + env(safe-area-inset-bottom));min-height:5.2rem}.reveal-hint{text-align:center;color:var(--ink-soft);font-size:.9rem;margin:0;padding:1.15rem 0;animation:hint-pulse 2.2s ease-in-out infinite}.choice-caption{text-align:center;color:var(--ink-soft);font-size:.85rem;margin:0 0 .5rem}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.choice-btn{display:flex;flex-direction:column;align-items:center;gap:.15rem;border:none;border-radius:16px;padding:1rem .5rem;font:inherit;font-weight:650;font-size:1.05rem;color:#fff;cursor:pointer;box-shadow:var(--shadow-1);transition:transform .12s ease,opacity .12s ease}.choice-btn small{font-weight:400;font-size:.78rem;opacity:.85;font-variant-numeric:tabular-nums}.choice-btn:active{transform:scale(.95)}.choice-row-ghost .choice-btn{opacity:.4}.choice-again{background:var(--g-again)}.choice-hard{background:var(--g-hard)}.choice-good{background:var(--g-good)}@keyframes hint-pulse{0%,to{opacity:.65}50%{opacity:1}}.review-done{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;text-align:center;animation:answer-in .35s ease}.review-done-title{font-size:1.7rem;margin:0}.review-done-sub{color:var(--ink-soft);margin:0 0 .6rem}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:.4em 0}.md ul,.md ol{margin:.4em 0;padding-left:1.3em}.md code{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:.05em .3em;font-size:.9em}.md pre code{display:block;padding:.6em;overflow-x:auto}.md blockquote{margin:.4em 0;padding-left:.8em;border-left:3px solid var(--rule-blue);color:var(--ink-soft)}.file-label{position:relative;overflow:hidden}.file-label input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}@media(prefers-reduced-motion:reduce){.review-card,.review-answer,.review-done,.reveal-hint,.fly-right,.fly-left{animation-duration:.01s;animation-iteration-count:1}.deck-item,.btn,.choice-btn,.review-card,.card-item,.progress-fill{transition:none}}
