:root{--bg: #fbfbfa;--panel: #ffffff;--ink: #1b1b1a;--muted: #6b6b66;--line: #e4e4e0;--accent: #2f4858;--accent-ink: #ffffff;--warn: #9a3412;--again: #a13a3a;--hard: #a84e1b;--easy: #3e7a4f;--radius: 10px;--find: rgba(250, 204, 21, .45);--find-current: rgba(249, 115, 22, .6);--card-scale: 1;--heading-ink: var(--accent);--marker: #fde68a;--marker-ink: inherit;--heading-blue: #2563eb;--heading-red: #b91c1c;--card-shadow: 0 6px 18px -10px rgba(0, 0, 0, .28);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #16171a;--panel: #1e1f23;--ink: #e9e9e6;--muted: #9b9b95;--line: #303138;--accent: #7fa3bd;--accent-ink: #10120f;--warn: #f0a479;--again: #daa9a9;--hard: #e3a989;--easy: #9ac6a7;--marker: #6b5a1f;--heading-blue: #93c5fd;--heading-red: #fca5a5;--card-shadow: 0 8px 22px -12px rgba(0, 0, 0, .6);--find: rgba(250, 204, 21, .35);--find-current: rgba(251, 146, 60, .75)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Segoe UI,sans-serif;font-size:15px;line-height:1.75}button{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:6px 14px;cursor:pointer}button:hover{border-color:var(--muted)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}input,select,textarea{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:6px 10px}a{color:var(--accent)}.app{max-width:940px;margin:0 auto;padding:0 20px 80px}header.bar{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);margin-bottom:24px;flex-wrap:wrap}header.bar .brand{font-weight:700;letter-spacing:.04em}header.bar nav{display:flex;gap:4px}header.bar nav button{border:none;background:none;padding:6px 10px;color:var(--muted)}header.bar nav button[aria-current=true]{color:var(--ink);font-weight:700;border-bottom:2px solid var(--accent);border-radius:0}header.bar .spacer{flex:1}header.bar .status{color:var(--muted);font-size:13px}.notice{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--panel);border-radius:var(--radius);padding:10px 14px;margin-bottom:16px;font-size:14px}.notice.warn{border-left-color:var(--warn)}.notice code{font-size:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px 26px;box-shadow:var(--card-shadow)}.skeleton-rows{display:flex;flex-direction:column;gap:10px}.skeleton-row{height:56px;border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(90deg,var(--panel) 25%,color-mix(in srgb,var(--line) 55%,var(--panel)) 50%,var(--panel) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton-row{animation:none;background:var(--line)}}.status.skeleton-inline{display:inline-block;flex-shrink:0;width:70px;min-width:70px;height:13px;border-radius:4px;background:var(--line)}.card .md,.card .rubric-item{font-size:calc(1em * var(--card-scale))}.card .md{max-width:44em}.meta{color:var(--muted);font-size:13px;display:flex;gap:12px;flex-wrap:wrap}.progress-track{height:3px;border-radius:999px;background:var(--line);overflow:hidden;margin:0 0 14px}.progress-track .fill{height:100%;background:var(--accent);border-radius:inherit;transition:width .18s ease}@media(prefers-reduced-motion:reduce){.progress-track .fill{transition:none}}.face+.face{margin-top:8px;border-top:1px solid var(--line);padding-top:8px}.card-title{font-size:calc(1.15em * var(--card-scale));font-weight:700;margin:0 0 12px;line-height:1.4}.face h3{font-size:12px;letter-spacing:.08em;color:var(--muted);margin:0 0 8px;font-weight:600}@keyframes face-reveal{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.face.reveal{animation:face-reveal .18s ease}@media(prefers-reduced-motion:reduce){.face.reveal{animation:none}}.rubric-toggle{background:none;border:none;padding:0;color:var(--muted);font-size:13px;cursor:pointer}.rubric-toggle:hover{color:var(--ink);border:none}.rubric-input{margin-top:8px}.rubric-input textarea{width:100%;resize:vertical;min-height:44px}.rubric-list{display:flex;flex-direction:column;gap:6px}.rubric-item{display:flex;align-items:baseline;gap:6px;color:var(--muted)}.rubric-item.matched{color:var(--ink)}.rubric-item .mark{color:var(--muted)}.rubric-item.matched .mark{color:var(--accent)}.grades{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px}.grades button{display:flex;flex-direction:column;gap:2px;padding:10px;align-items:center}.grades .interval{font-size:12px;color:var(--muted)}.grades .key{font-size:11px;color:var(--muted)}.grade-again{--g: var(--again)}.grade-hard{--g: var(--hard)}.grade-good{--g: var(--accent)}.grade-easy{--g: var(--easy)}.grades button.grade{border-color:color-mix(in srgb,var(--g) 55%,var(--line));background:color-mix(in srgb,var(--g) 8%,var(--panel))}.grades button.grade .label{color:var(--g);font-weight:600}.breakdown{margin-top:22px}.breakdown .count{font-size:34px;font-weight:700;line-height:1;color:var(--ink)}.breakdown .bar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--line);max-width:320px;margin:12px auto 10px}.breakdown .bar .segment{height:100%;background:var(--g)}.breakdown .legend{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.breakdown .legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--g);margin-right:5px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.right{margin-left:auto}table.decks{width:100%;border-collapse:collapse}table.decks th,table.decks td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}table.decks th{font-size:12px;color:var(--muted);font-weight:600}table.decks td.num,table.decks th.num{text-align:right;font-variant-numeric:tabular-nums}table.decks tr.selectable:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);cursor:pointer}.deck-list{display:flex;flex-direction:column;gap:2px}.deck-row{display:flex;align-items:center;gap:12px;width:100%;border:none;border-radius:var(--radius);background:none;padding:10px 12px;text-align:left;cursor:pointer}.deck-row:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.deck-row.selected{background:color-mix(in srgb,var(--accent) 7%,transparent)}.deck-accent{flex-shrink:0;width:3px;align-self:stretch;border-radius:999px}.deck-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.deck-subject{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.deck-name{font-weight:600}.deck-counts{display:flex;align-items:center;gap:8px;flex-shrink:0}.deck-total{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:1.4em;text-align:right}.memory-overview{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:12px;display:flex;gap:24px;flex-wrap:wrap;align-items:flex-end}.memory-figures{display:flex;gap:28px;flex:1 1 320px}.memory-figure{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.memory-label{font-size:12px;letter-spacing:.08em;color:var(--muted);font-weight:600}.memory-value{font-size:34px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.memory-value small{font-size:16px;font-weight:600;margin-left:2px;color:var(--muted)}.memory-help{font-size:12px;color:var(--muted);line-height:1.4}.memory-trend{flex:1 1 240px;display:flex;flex-direction:column;gap:6px}.sparkline{width:100%;height:48px;display:block;overflow:visible}.sparkline-base{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.sparkline-line{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}.meter{display:block;height:4px;border-radius:999px;background:var(--line);overflow:hidden}.meter-fill{display:block;height:100%;background:var(--accent);border-radius:999px}.deck-info .meter{margin-top:5px;max-width:220px}.deck-memory{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;min-width:3.2em;text-align:right}.subject-group{margin-top:10px;display:flex;flex-direction:column;gap:2px}.subject-header{display:flex;align-items:center;gap:10px;padding:6px 12px 2px}.subject-accent{width:10px;height:10px;border-radius:3px;flex-shrink:0}.subject-name{font-weight:700;flex:1;min-width:0}.subject-memory{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;display:flex;gap:10px}.subject-stable{color:var(--muted);font-weight:500}.pill{display:inline-flex;align-items:center;font-size:11px;font-weight:600;line-height:1;padding:4px 9px;border-radius:999px;white-space:nowrap;background:color-mix(in srgb,var(--muted) 16%,var(--panel));color:var(--muted)}.pill-warn{background:color-mix(in srgb,var(--warn) 16%,var(--panel));color:var(--warn)}ul.hits{list-style:none;padding:0;margin:0}ul.hits li{border-bottom:1px solid var(--line);padding:10px 4px;display:flex;gap:12px;align-items:baseline}ul.hits .title{flex:1}ul.hits .excerpt{color:var(--muted);font-size:13px}.crumbs{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px;min-width:0;font-size:14px}.crumbs .sep{color:var(--muted);margin:0 4px}.crumbs button.link{border:none;background:none;padding:0;color:var(--accent)}.crumbs button.link:hover{text-decoration:underline}.md :is(h1,h2,h3,h4,h5,h6){font-weight:700;color:var(--ink);letter-spacing:normal}.md h1{font-size:1.5em;margin:1.1em 0 .5em}.md h2{font-size:1.3em;margin:1.1em 0 .45em}.md h3{font-size:1.12em;margin:1em 0 .4em}.md h4{font-size:1em;margin:1em 0 .35em}.md h5,.md h6{font-size:.9em;color:var(--muted);margin:.9em 0 .3em}.md>:first-child{margin-top:0}.md p{margin:.5em 0}.md ul,.md ol{margin:.4em 0;padding-left:1.4em}.md blockquote{margin:.6em 0;padding:2px 14px;border-left:3px solid var(--line);color:var(--muted);font-size:.9em}.md code{background:color-mix(in srgb,var(--ink) 8%,transparent);padding:1px 5px;border-radius:4px;font-size:.9em}.md pre{overflow-x:auto;background:color-mix(in srgb,var(--ink) 6%,transparent);padding:10px 12px;border-radius:var(--radius)}.md pre code{background:none;padding:0}.md table{border-collapse:collapse;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--line);padding:4px 8px}.md hr{border:none;border-top:1px solid var(--line)}.md .ref-heading{color:var(--heading-ink);font-weight:700}:root[data-emphasis=marker] .md strong{background:linear-gradient(transparent 58%,var(--marker) 58%);color:var(--marker-ink)}.section{margin-top:28px}.section>h2{font-size:14px;letter-spacing:.06em;color:var(--muted);margin:0 0 10px}.kbd{border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:0 5px;font-size:11px;color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:60px 0}.findbar{position:fixed;top:10px;right:16px;z-index:50;display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 22px -12px #00000059}.findbar input{width:220px}.findbar button{min-width:28px;padding:2px 8px}.findbar-count{font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}::highlight(anchor-find){background-color:var(--find)}::highlight(anchor-find-current){background-color:var(--find-current)}.notice.welcome{border-left-color:var(--accent)}.notice.welcome .row{flex-wrap:wrap;gap:8px;align-items:center}.notice.welcome input{max-width:100%}.notice button.link{border:none;background:none;padding:0;color:var(--accent);cursor:pointer}.notice button.link:hover{text-decoration:underline}pre.prompt{white-space:pre-wrap;word-break:break-all;font-size:12px;margin:0;padding:10px 12px;border-radius:8px;background:var(--bg);border:1px solid var(--line)}details.fold{margin:18px 0}details.fold>summary{cursor:pointer;color:var(--muted);font-weight:600;padding:6px 0}.art{display:block}.empty .art,.art.center{margin:0 auto 16px}.art img{display:block;width:100%;height:auto}.empty .art+p{margin-top:0}.empty .meta{justify-content:center}.art-banner{display:block;width:100%;max-width:560px;height:auto;border-radius:12px;object-fit:cover}.icon{display:inline-block;vertical-align:-.15em;flex-shrink:0}header.bar nav button{display:inline-flex;align-items:center;gap:6px}.section h2{display:flex;align-items:center;gap:8px}.section h2 .icon{color:var(--muted)}.deck-row-wrap{display:flex;align-items:center;gap:4px;border-radius:var(--radius)}.deck-row-wrap:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.deck-row-wrap.selected{background:color-mix(in srgb,var(--accent) 7%,transparent)}.deck-row-wrap .deck-row:hover{background:none}.deck-list-button{flex-shrink:0;border:1px solid transparent;background:none;color:var(--muted);font-size:13px;padding:6px 10px;margin-right:6px}.deck-row-wrap:hover .deck-list-button{border-color:var(--line)}.deck-list-button:hover{color:var(--ink);border-color:var(--muted)}.review-head{margin-bottom:8px}.link-button{border:none;background:none;padding:2px 0;color:var(--muted);font-size:13px}.link-button:hover{color:var(--ink)}.browse-head{margin-bottom:4px}.md .ref-inserted{margin:.4em 0 .8em;padding:0 0 0 12px;border-left:2px solid color-mix(in srgb,var(--muted) 35%,transparent)}.md .ref-source{display:inline-block;font-size:11px;line-height:1.4;color:color-mix(in srgb,var(--muted) 80%,transparent);text-decoration:none;margin-bottom:2px}.md .ref-source:hover{color:var(--accent);text-decoration:underline}.md .ref-inline{color:var(--accent);text-decoration:none;border-bottom:1px dotted currentColor}.md .statute-ref{color:inherit;text-decoration:none;border-bottom:1px dotted color-mix(in srgb,currentColor 55%,transparent);cursor:help}.md .statute-ref:hover{border-bottom-style:solid}.statute-pop{position:fixed;z-index:60;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px 12px;box-shadow:0 8px 28px #00000038;font-size:14px;line-height:1.7}.statute-pop.pinned{border-color:var(--accent)}.statute-pop-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.statute-text-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;background:var(--bg);padding-bottom:4px}.statute-article+.statute-article{margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}.statute-article-label{font-weight:700;font-size:13px;margin-bottom:2px}.statute-article-label .caption{font-weight:400;color:var(--muted);margin-left:2px}.statute-navs{flex:none;display:flex;gap:2px}.statute-pop-title{flex:1;min-width:0;font-weight:700}.statute-pop-title .caption{font-weight:400;color:var(--muted);margin-left:4px}.statute-pop button{font:inherit;color:inherit;background:none;border:0;border-radius:6px;padding:0;cursor:pointer}.statute-pop button:disabled{cursor:default}.statute-pop .statute-nav{flex:none;width:30px;height:28px;font-size:18px;border:1px solid var(--line);line-height:1;color:var(--muted)}.statute-pop .statute-nav:not(:disabled):hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--ink)}.statute-pop .statute-nav:disabled{opacity:.3}.statute-pop .statute-outline-toggle{flex:none;font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.statute-pop .statute-outline-toggle.on{border-color:var(--accent);color:var(--accent)}.statute-crumbs{flex:1;min-width:0;font-size:12px;color:var(--muted)}.statute-crumbs .sep{opacity:.6}.statute-pop-body{display:flex;flex-direction:column;gap:10px;min-height:0;flex:1}.statute-pop.side .statute-pop-body{flex-direction:row}.statute-text{position:relative;flex:1;min-width:0;min-height:0;overflow-y:auto}.statute-outline{position:relative;flex:none;max-height:160px;overflow-y:auto;border-bottom:1px solid var(--line);padding-bottom:6px;font-size:12.5px;line-height:1.45}.statute-pop.side .statute-outline{width:270px;max-height:none;border-bottom:0;border-right:1px solid var(--line);padding:0 8px 0 0}.statute-pop .statute-toc-row{display:flex;width:100%;gap:8px;text-align:left;padding:3px 6px;border-radius:4px}.statute-toc-row .title{flex:1;min-width:0}.statute-toc-row .range{flex:none;color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;padding-top:1px}.statute-toc-row:not(:disabled):hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.statute-toc-row:disabled{color:var(--muted)}.statute-toc-row.current{font-weight:700;background:color-mix(in srgb,var(--accent) 14%,transparent)}.statute-toc-row.ancestor{font-weight:700}.statute-paragraph{padding:1px 6px;margin:0 -6px;border-radius:4px}.statute-paragraph p{margin:.25em 0}.statute-paragraph.hit,.statute-item.hit{background:color-mix(in srgb,var(--accent) 12%,transparent)}.statute-pop .num{color:var(--muted);margin-right:.6em;font-variant-numeric:tabular-nums}.statute-items{margin:.2em 0 .2em 1.2em}.statute-item{display:flex;border-radius:4px;padding:0 4px}.statute-item .num{flex:none}.statute-pop-source{margin-top:8px;font-size:12px;color:var(--muted)}.peek-backdrop{position:fixed;inset:0;z-index:50;background:color-mix(in srgb,#000 28%,transparent);display:flex;justify-content:center;align-items:flex-start;padding:48px 20px;overflow-y:auto}.peek-panel{width:100%;max-width:860px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px 20px;box-shadow:0 12px 40px #00000040}.update-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;font-size:14px}.reorder-item{position:relative;transition:transform .15s ease;user-select:none;-webkit-user-select:none}.reorder-item.dragging{transition:none;z-index:5;cursor:grabbing;background:var(--panel);border-radius:var(--radius);box-shadow:0 8px 24px #0000002e}.reorder-hint{margin-top:10px;font-size:12px}.sync-button{display:inline-flex;align-items:center;gap:6px}.sync-button.is-syncing .icon{animation:sync-spin 1s linear infinite}@keyframes sync-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sync-button.is-syncing .icon{animation:none}.reorder-item{transition:none}}
