:root{--bg:#f6f7f5;--surface:#fff;--raised:#fff;--ink:#14181c;--muted:#5b646a;--hairline:#dbdfdb;--accent:#111;--accent-ink:#fff;--good:#0b7a42;--good-soft:#cfeeda;--bad:#c62828;--bad-soft:#fbdcdc;--good-ink:#fff;--bad-ink:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#0f1315;--surface:#161b1e;--raised:#1c2226;--ink:#e6eaec;--muted:#93a0a6;--hairline:#2a3236;--accent:#57b5ac;--accent-ink:#08110f;--good:#6cc294;--good-soft:#14251c;--bad:#e08a8a;--bad-soft:#2a1717;--good-ink:#0f1315;--bad-ink:#0f1315}}:root[data-theme=light]{--bg:#f6f7f5;--surface:#fff;--raised:#fff;--ink:#14181c;--muted:#5b646a;--hairline:#dbdfdb;--accent:#111;--accent-ink:#fff;--good:#0b7a42;--good-soft:#cfeeda;--bad:#c62828;--bad-soft:#fbdcdc;--good-ink:#fff;--bad-ink:#fff}:root[data-theme=dark]{--bg:#0f1315;--surface:#161b1e;--raised:#1c2226;--ink:#e6eaec;--muted:#93a0a6;--hairline:#2a3236;--accent:#57b5ac;--accent-ink:#08110f;--good:#6cc294;--good-soft:#14251c;--bad:#e08a8a;--bad-soft:#2a1717;--good-ink:#0f1315;--bad-ink:#0f1315}:root[data-theme=sepia]{--bg:#f2e9d7;--surface:#faf4e6;--raised:#fffaf0;--ink:#33291b;--muted:#6a5b41;--hairline:#dccfb3;--accent:#7f5220;--accent-ink:#fffaf0;--good:#4a6234;--good-soft:#e6ebd4;--bad:#94381f;--bad-soft:#f3ded4;--good-ink:#faf4e6;--bad-ink:#faf4e6}:root[data-theme=sakura]{--bg:#fcd9e8;--surface:#ffeaf2;--raised:#fff5f9;--ink:#3d1f2e;--muted:#7a4f61;--hairline:#f5bcd3;--accent:#b3145a;--accent-ink:#fff;--good:#0a6b46;--good-soft:#c6ead9;--bad:#b81f1f;--bad-soft:#f7d4d4;--good-ink:#fff;--bad-ink:#fff}:root[data-theme=coral]{--bg:#ece7e3;--surface:#f7f3f0;--raised:#fffdfc;--ink:#1a1412;--muted:#5f544e;--hairline:#cfc5be;--accent:#ff5c5c;--accent-ink:#250707;--good:#0a6b3d;--good-soft:#cfe6d8;--bad:#8f1a1a;--bad-soft:#f0cfcf;--good-ink:#fff;--bad-ink:#fff}:root[data-theme=steel]{--bg:#e7ecf1;--surface:#f3f7fa;--raised:#fff;--ink:#101820;--muted:#4f5c68;--hairline:#b8c4d0;--accent:#1594c4;--accent-ink:#04161e;--good:#0a6b3d;--good-soft:#cbe6d7;--bad:#a81f1f;--bad-soft:#f2d3d3;--good-ink:#fff;--bad-ink:#fff}:root[data-theme=terminal]{--bg:#080b09;--surface:#0d120f;--raised:#111815;--ink:#6ef79a;--muted:#4f9e6d;--hairline:#1e2b23;--accent:#39ff88;--accent-ink:#04140b;--good:#4ade80;--good-soft:#0e2a1a;--bad:#ff5f56;--bad-soft:#2c1210;--good-ink:#04140b;--bad-ink:#1a0503}:root[data-theme=amber]{--bg:#f9c294;--surface:#fddec4;--raised:#fff1e4;--ink:#361a08;--muted:#7a4416;--hairline:#e8a26a;--accent:#f77e2d;--accent-ink:#2b1405;--good:#04562f;--good-soft:#c6e4d2;--bad:#8f1717;--bad-soft:#f0cccc;--good-ink:#fff;--bad-ink:#fff}:root[data-theme=dracula]{--bg:#221b33;--surface:#2a2340;--raised:#332b4d;--ink:#f3f0ff;--muted:#aca3c9;--hairline:#463c66;--accent:#bd93f9;--accent-ink:#1a1b23;--good:#50fa7b;--good-soft:#22402c;--bad:#ff6e88;--bad-soft:#3d2129;--good-ink:#0f2015;--bad-ink:#2a1119}:root[data-theme=matcha]{--bg:#dfe9c8;--surface:#edf3dd;--raised:#f7faee;--ink:#1e2a12;--muted:#556040;--hairline:#c2d0a3;--accent:#3f6b1f;--accent-ink:#fff;--good:#0d6b46;--good-soft:#c6e6d4;--bad:#a82020;--bad-soft:#f2d2d2;--good-ink:#fff;--bad-ink:#fff}:root{--sans:system-ui, -apple-system, "Segoe UI", "PingFang TC", "Hiragino Sans", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--mono:ui-monospace, "SFMono-Regular", Menlo, monospace;--radius:10px;--gutter:16px;--tap:48px}*{box-sizing:border-box}html,body{overscroll-behavior-y:none;height:100%;margin:0;padding:0}html,.card-surface,.card-face,.card-modal-scroll,.sheet{scrollbar-width:thin;scrollbar-color:var(--muted) transparent}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:16px;line-height:1.6}#app{flex-direction:column;min-height:100dvh;display:flex;overflow-x:clip}@supports not (overflow:clip){#app{overflow-x:hidden}}.topbar{padding:10px var(--gutter);padding-top:max(10px, env(safe-area-inset-top));border-bottom:1px solid var(--hairline);background:var(--surface);z-index:20;align-items:center;gap:8px;display:flex;position:sticky;top:0}.topbar h1{letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:600;overflow:hidden}.grow{flex:1;min-width:0}button,select,.toggle,a{touch-action:manipulation}button,.progress,.hint-line,.section-label,.label-text,.toggle,.banner,.deck-headline .muted{-webkit-user-select:none;user-select:none}button{font:inherit;color:var(--ink);background:var(--raised);border:1px solid var(--hairline);border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;gap:.5em;min-height:40px;padding:7px 14px;font-weight:500;transition:border-color .12s,background .12s;display:inline-flex}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.quiet{color:var(--muted);background:0 0;border-color:#0000;min-height:36px;padding:6px 10px}button.quiet:hover:not(:disabled){color:var(--ink)}button.small{min-height:36px;padding:6px 12px;font-size:14px}button svg{flex:none}button.icon-only{justify-content:center;align-items:center;min-width:40px;padding:6px;font-size:18px;display:inline-flex}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.card[data-quiet-focus]:focus-visible{outline:none}input[type=text],input[type=url],input[type=number],select{font:inherit;color:var(--ink);background:var(--raised);border:1px solid var(--hairline);border-radius:var(--radius);width:100%;min-height:40px;padding:7px 12px;font-size:16px}.select-wrap{display:flex;position:relative}.select-wrap select{appearance:none;cursor:pointer;padding-right:38px}.select-chevron{color:var(--muted);pointer-events:none;font-size:16px;position:absolute;top:50%;right:12px;transform:translateY(-50%)rotate(90deg)}.select-wrap select:hover{border-color:var(--accent)}label{flex-direction:column;gap:6px;font-size:14px;display:flex}label>.label-text{color:var(--muted)}a{color:var(--accent);text-underline-offset:2px}.page{width:100%;max-width:40rem;padding:20px var(--gutter) calc(24px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:20px;margin:0 auto;display:flex}.panel{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);flex-direction:column;gap:12px;padding:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.share-actions{gap:16px}h2{margin:0;font-size:17px;font-weight:600}p{margin:0}.muted{color:var(--muted);font-size:14px}@keyframes notice-again{0%,to{transform:translate(0)}25%{transform:translate(-5px)}70%{transform:translate(4px)}}@keyframes notice-again-still{0%{opacity:.3}}.notice.bad.again{animation:.22s notice-again}@media (prefers-reduced-motion:reduce){.notice.bad.again{animation:.22s notice-again-still}}.notice{border-left:3px solid var(--accent);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0;flex-direction:column;gap:4px;padding:10px 14px;font-size:14px;display:flex}.notice.bad{border-left-color:var(--bad);background:var(--bad-soft)}.deck-headline{flex-direction:column;gap:4px;display:flex}.rename-trigger{font:inherit;color:inherit;text-align:left;overflow-wrap:anywhere;background:0 0;border-color:#0000;align-items:baseline;gap:8px;min-height:0;padding:0;display:inline-flex}.rename-trigger:hover:not(:disabled){text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.rename-mark{color:var(--muted);flex:none;font-size:.7em}.rename-field{align-items:stretch;gap:8px;display:flex}.rename-field input{flex:1;min-width:0;min-height:34px;padding:3px 8px}.rename-field button{min-height:34px;padding:3px 12px;font-size:14px}.deck-headline h2{overflow-wrap:anywhere;font-size:20px}.row-list{flex-direction:column;gap:8px;display:flex}.row-link{text-align:left;overflow-wrap:anywhere;align-items:center;gap:12px;width:100%;min-height:60px;padding:14px;display:flex}.row-pair{align-items:center;gap:8px;display:flex}.row-pair .row-link{flex:1;width:auto;min-width:0}.row-static{color:var(--ink);background:var(--raised);border:1px solid var(--hairline);border-radius:var(--radius);cursor:default}.row-forget{width:32px;height:32px;min-height:32px;color:var(--muted);background:0 0;border-color:#0000;flex:none;place-items:center;padding:0;display:grid}.row-forget:hover:not(:disabled),.row-forget:focus-visible{color:var(--bad);background:var(--bad-soft)}.row-link:not(.row-static):hover:not(:disabled){border-color:var(--accent);background:var(--surface)}.row-link .deck-arrow{transition:transform .12s}.row-link:hover .deck-arrow{color:var(--accent);transform:translate(2px)}.row-link .name{font-weight:600}.row-link .deck-arrow{color:var(--muted);flex:none;font-size:18px}.row-link .sub{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.howto{color:var(--muted);flex-direction:column;gap:6px;font-size:14px;display:flex}.howto li{margin:0}.howto ol{flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.quiz{padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));flex:1;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;width:100%;max-width:40rem;margin:0 auto;display:grid}.progress{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;font-size:13px;display:flex}.progress-track{background:var(--hairline);border-radius:2px;height:3px;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .18s}.card-stage{align-items:stretch;min-height:0;display:flex;position:relative}.card{border-radius:var(--radius);cursor:pointer;perspective:1400px;touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex:1;position:relative}.card.dragging{transition:none}.card:not(.dragging){transition:transform .19s cubic-bezier(.22,.7,.3,1),opacity .19s}.card.exiting{opacity:0;pointer-events:none}.card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .34s cubic-bezier(.2,.7,.3,1);position:relative}.card-inner.flipped{transform:rotateY(180deg)}.card-surface,.card-face{text-align:center;background:var(--raised);border:1px solid var(--hairline);border-radius:var(--radius);overscroll-behavior:contain;touch-action:pan-y pinch-zoom;padding:28px 20px;display:flex;overflow:hidden auto}@keyframes card-enter{0%{opacity:0}}.card-face{backface-visibility:hidden;animation:.19s card-enter;position:absolute;inset:0}.card-face.back{transform:rotateY(180deg)}.card-body{text-align:left;flex-direction:column;align-self:stretch;gap:10px;width:100%;display:flex}.card-body h2{font-size:15px}.card-body ol{flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:14px;display:flex}.card-body .row-list{gap:6px}.card-body .row-link{min-height:44px;padding:9px 12px}.face-flip-mark{color:var(--muted);opacity:.35;font-size:15px;position:absolute;top:10px;right:10px}.face-text{text-align:start;overflow-wrap:anywhere;white-space:pre-wrap;max-width:34rem;margin:auto}.face-question{font-size:clamp(22px,6vw,30px);font-weight:600;line-height:1.4}.face-answer{font-size:clamp(17px,4.5vw,21px);line-height:1.6}.md-lines,.md-h,.md-quote,.md-list,.md-rule{margin:0}.md-wide{flex-direction:column;gap:.7em;width:100%;display:flex}.md-wide:not(.md-prose)>.md-lines{width:-moz-fit-content;width:fit-content;max-width:100%;margin-inline:auto}.md-prose{text-align:left}.face-question.md-prose,.face-answer.md-prose{font-size:clamp(17px,4.5vw,21px);font-weight:400;line-height:1.6}.md-h{font-size:1em;font-weight:700;line-height:1.35}.md-h1{font-size:1.3em}.md-h2{font-size:1.18em}.md-h3{font-size:1.08em}.md-quote{border-left:3px solid var(--hairline);color:var(--muted);padding-left:12px}.md-list{padding-left:1.4em;list-style:outside}.md-list li{margin:0}.md-rule{border:0;border-top:1px solid var(--hairline)}.md-code{background:var(--bg);border:1px solid var(--hairline);overflow-wrap:anywhere;border-radius:4px;padding:.05em .3em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.swipe-tint{border-radius:var(--radius);pointer-events:none;opacity:0;transition:opacity 80ms linear;position:absolute;inset:0}.swipe-tint.good{background:var(--good-soft)}.swipe-tint.bad{background:var(--bad-soft)}.answers{grid-template-columns:1fr 1fr;gap:10px;display:grid}.answers button{min-height:var(--tap);justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.answers .known{border-color:var(--good);color:var(--good)}.answers .unknown{border-color:var(--bad);color:var(--bad)}.answers button.armed{font-weight:700;transition:transform 90ms,background 90ms,color 90ms,box-shadow 90ms;transform:translateY(-3px)scale(1.03)}.answers .known.armed{background:var(--good);border-color:var(--good);color:var(--good-ink);box-shadow:0 4px 14px -2px var(--good)}.answers .unknown.armed{background:var(--bad);border-color:var(--bad);color:var(--bad-ink);box-shadow:0 4px 14px -2px var(--bad)}.answers .known:not(.armed),.answers .unknown:not(.armed){background:var(--raised)}.hint-line{text-align:center;color:var(--muted);min-height:1.2em;font-size:12px}.score{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:clamp(28px,8vw,40px);font-weight:700}.wrong-list{border:1px solid var(--hairline);border-radius:var(--radius);background:var(--raised);flex-direction:column;gap:0;display:flex;overflow:hidden}.wrong-list .item{border-bottom:1px solid var(--hairline);grid-template-columns:1fr 1fr;gap:12px;padding:10px 14px;font-size:14px;display:grid}.wrong-list .item:last-child{border-bottom:none}.wrong-list .item .b{color:var(--muted);overflow-wrap:anywhere}.wrong-list .item .a{overflow-wrap:anywhere;font-weight:600}.sheet-backdrop.centered{align-items:center;padding:16px}.card-modal{flex-direction:column;width:100%;max-width:30rem;max-height:80dvh;display:flex;position:relative}.card-modal .card-surface{flex-direction:column;max-height:100%;padding:0;overflow:hidden}.card-modal-title{text-align:left;flex:none;margin:0;padding:20px 52px 12px 20px;font-size:15px}.card-modal-scroll{overscroll-behavior:contain;padding:0 20px 20px;overflow:hidden auto}.card-close{z-index:1;min-width:44px;min-height:44px;color:var(--muted);background:0 0;border-color:#0000;justify-content:center;align-items:center;padding:0;font-size:18px;display:inline-flex;position:absolute;top:8px;right:8px}.card-close:hover:not(:disabled){color:var(--ink);border-color:var(--hairline);background:var(--surface)}.sheet-backdrop{-webkit-backdrop-filter:blur(2px);z-index:30;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--raised);border:1px solid var(--hairline);width:100%;max-width:34rem;max-height:88dvh;padding:16px var(--gutter) calc(20px + env(safe-area-inset-bottom));border-top-left-radius:14px;border-top-right-radius:14px;flex-direction:column;gap:16px;display:flex;overflow-y:auto}.sheet-head{align-items:center;gap:8px;display:flex}.sheet-head h2{flex:1}.field-group{flex-direction:column;gap:14px;display:flex}.toggle{cursor:pointer;flex-direction:row;align-items:center;gap:10px;min-height:44px;font-size:14px}.toggle input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer;flex:none;margin:0}.section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px;font-family:var(--mono)}.banner{padding:8px var(--gutter);background:var(--surface);border-bottom:1px solid var(--hairline);color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.spin{border:2px solid var(--hairline);border-top-color:var(--accent);vertical-align:-2px;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.center{color:var(--muted);flex:1;justify-content:center;align-items:center;gap:8px;display:flex}@media (min-width:640px){.answers{width:100%;max-width:26rem;margin:0 auto}.sheet-backdrop{align-items:center;padding:24px}.sheet{border-radius:14px;max-height:78dvh}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
