/*! JLPT N5 styles (build-min). Source: css/main.css. Regen: python tools/build_min_css.py. MOB-001..016 mobile UI compliance batch (JA-132 marker). */
@font-face{font-family: "Inter";font-style: normal;font-weight: 300;font-display: swap;src: url("../fonts/inter-300.woff2") format("woff2")}@font-face{font-family: "Inter";font-style: normal;font-weight: 400;font-display: swap;src: url("../fonts/inter-400.woff2") format("woff2")}@font-face{font-family: "Inter";font-style: normal;font-weight: 500;font-display: swap;src: url("../fonts/inter-500.woff2") format("woff2")}@font-face{font-family: "Noto Sans JP";font-style: normal;font-weight: 400;font-display: swap;src: url("../fonts/noto-sans-jp-400.woff2") format("woff2");unicode-range: U+0020-007F,U+3000-303F,U+3040-309F,U+30A0-30FF,U+3400-9FFF,U+F900-FAFF,U+FE30-FE4F,U+FF00-FFEF}:root{--color-bg: #FFFFFF;--color-surface: #FAFAF8;--color-surface-alt: #F5F4F0;--color-line: #E8E5DE;--color-line-strong: #D4D0C7;--color-text: #1F1F1C;--color-text-muted: #6F6D66;--color-text-faint: #9A968C;--color-text-on-header: #4A4A47;--color-accent: #14452a;--color-accent-hover: #163924;--color-accent-tint: #EDF1EE;--header-bg: #cfd8b5;--color-correct: #26703F;--color-correct-tint: #ECF4EE;--color-incorrect: #B43A2A;--color-incorrect-tint:#F7EAE7;--color-due: #A66A1F;--color-due-tint: #F7EFE0;--text-2xs: 0.6875rem;--text-xs: 0.75rem;--text-sm: 0.8125rem;--text-base: 0.9375rem;--text-md: 1.0625rem;--text-lg: 1.25rem;--text-xl: 1.625rem;--text-2xl: 2rem;--weight-light: 300;--weight-base: 400;--weight-medium: 500;--tracking-tight: -0.01em;--tracking-normal: 0;--tracking-wide: 0.05em;--tracking-label: 0.18em;--leading-tight: 1.25;--leading-base: 1.55;--leading-loose: 1.7;--space-1: 0.25rem;--space-2: 0.5rem;--space-3: 0.75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--space-10: 4rem;--space-12: 6rem;--space-16: 8rem;--container-narrow: 640px;--container-base: 880px;--container-wide: 1120px;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 6px;--radius-pill: 999px;--motion-fast: 120ms;--motion-base: 180ms;--motion-slow: 300ms;--easing: cubic-bezier(0.2,0,0,1);--font-en: "Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--font-jp: "Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic","Meiryo",sans-serif;--font-num: var(--font-en);--c-primary: var(--color-accent);--c-primary-light: var(--color-accent-hover);--c-bg: var(--color-bg);--c-surface: var(--color-surface);--c-border: var(--color-line);--c-text: var(--color-text);--c-muted: var(--color-text-muted);--c-error: var(--color-incorrect);--c-success: var(--color-correct);--c-warning: var(--color-due);--r: var(--radius-lg);--shadow-sm: none;--font-base: var(--text-base)}@media (prefers-color-scheme: dark){:root{--color-bg: #1A1A18;--color-surface: #232321;--color-surface-alt: #2C2C29;--color-line: #34332F;--color-line-strong: #4A4944;--color-text: #ECEAE3;--color-text-muted: #A8A59C;--color-text-faint: #6F6D66;--color-accent: #5da57e;--color-accent-hover: #7cc99e;--color-accent-tint: #2A3A2F;--color-correct: #6FB58A;--color-correct-tint: #233028;--color-incorrect: #E08572;--color-incorrect-tint:#3A2723;--color-due: #D9A560;--color-due-tint: #332B1E;--header-bg: #2a3a2c;--color-text-on-header: var(--color-text-muted)}}[data-theme="dark"]{--color-bg: #1A1A18;--color-surface: #232321;--color-surface-alt: #2C2C29;--color-line: #34332F;--color-line-strong: #4A4944;--color-text: #ECEAE3;--color-text-muted: #A8A59C;--color-text-faint: #6F6D66;--color-accent: #5da57e;--color-accent-hover: #7cc99e;--color-accent-tint: #2A3A2F;--color-correct: #6FB58A;--color-correct-tint: #233028;--color-incorrect: #E08572;--color-incorrect-tint:#3A2723;--color-due: #D9A560;--color-due-tint: #332B1E;--header-bg: #2a3a2c;--color-text-on-header: var(--color-text-muted)}[data-theme="light"]{--color-bg: #FFFFFF;--color-surface: #FAFAF8;--color-surface-alt: #F5F4F0;--color-line: #E8E5DE;--color-line-strong: #D4D0C7;--color-text: #1F1F1C;--color-text-muted: #6F6D66;--color-text-faint: #9A968C;--color-accent: #14452a;--color-accent-hover: #163924;--color-accent-tint: #EDF1EE;--color-correct: #26703F;--color-correct-tint: #ECF4EE;--color-incorrect: #B43A2A;--color-incorrect-tint:#F7EAE7;--color-due: #A66A1F;--color-due-tint: #F7EFE0;--header-bg: #cfd8b5}[data-font="s"]{font-size: 14px}[data-font="m"]{font-size: 15px}[data-font="l"]{font-size: 17px}[data-font="xl"]{font-size: 19px}*{box-sizing: border-box}html,body{margin: 0;padding: 0;font-family: var(--font-en);background: var(--color-bg);color: var(--color-text);font-size: var(--text-base);line-height: var(--leading-base);font-feature-settings: "ss01" 1,"cv11" 1;font-variant-numeric: tabular-nums;transition: background-color var(--motion-base) var(--easing),color var(--motion-base) var(--easing)}body{padding-top: 16px;max-width: none}#app{min-height: calc(100vh - 200px)}:lang(ja),.lang-ja,[lang="ja"]{font-family: var(--font-jp);font-weight: var(--weight-base);font-feature-settings: "palt" 1;letter-spacing: 0}.settings-section{max-width: var(--container-narrow);margin: var(--space-8) auto;padding: 0;background: transparent;border: none}.settings-section h3{margin: 0 0 var(--space-4);color: var(--color-text);font-size: var(--text-lg);font-weight: var(--weight-medium);letter-spacing: var(--tracking-tight)}.settings-row{display: grid;grid-template-columns: 1fr auto;gap: var(--space-4);align-items: center;padding: var(--space-4) 0;border-bottom: 0.5px solid var(--color-line)}.settings-row:last-of-type{border-bottom: none}.settings-row > span,.settings-row > label{font-size: var(--text-base);font-weight: var(--weight-base);color: var(--color-text)}.settings-row select,.settings-row input[type=number],.settings-row input[type=text]{width: auto;height: 36px;padding: 0 var(--space-3);border: 0.5px solid var(--color-line);border-radius: var(--radius-md);background: var(--color-bg);color: var(--color-text);font-size: var(--text-sm);min-width: 140px}.settings-actions{display: flex;gap: var(--space-3);flex-wrap: wrap;margin-top: var(--space-4)}.settings-danger-zone{max-width: var(--container-narrow);margin: var(--space-8) auto 0;padding: var(--space-5) 0 0;border-top: 0.5px solid var(--color-incorrect)}.settings-danger-zone .danger-label{font-size: var(--text-2xs);font-weight: var(--weight-medium);letter-spacing: var(--tracking-label);text-transform: uppercase;color: var(--color-incorrect);margin: 0 0 var(--space-3)}.settings-danger-zone .settings-row{border-bottom: none;padding: var(--space-3) 0}.settings-danger-zone .setting-help{font-size: var(--text-sm);color: var(--color-text-muted);margin: var(--space-1) 0 0;line-height: var(--leading-base)}.reset-confirm-box{margin-top: var(--space-4);padding: var(--space-4);background: var(--color-incorrect-tint);border: 0.5px solid var(--color-incorrect);border-radius: var(--radius-md)}.reset-confirm-box p{margin: 0 0 var(--space-3);font-size: var(--text-sm);color: var(--color-text)}.reset-confirm-box code{font-family: ui-monospace,"SF Mono",Consolas,monospace;font-size: 0.95em;padding: 1px 4px;background: var(--color-bg);border: 0.5px solid var(--color-line);border-radius: var(--radius-sm)}.reset-confirm-box input[type="text"]{margin-bottom: var(--space-3);font-family: ui-monospace,"SF Mono",Consolas,monospace;letter-spacing: var(--tracking-wide)}.app-header{position: sticky;top: 0;z-index: 50;display: grid;grid-template-columns: auto 1fr auto;align-items: center;gap: var(--space-6);height: 56px;padding: 0 max(var(--space-5),calc((100% - var(--container-wide)) / 2));background: var(--header-bg)}.brand{display: flex;align-items: center;gap: var(--space-2)}.brand h1{margin: 0;display: flex;align-items: center;gap: var(--space-2);font-size: var(--text-sm);font-weight: var(--weight-medium);letter-spacing: var(--tracking-wide);color: var(--color-text)}.brand-link{display: flex;align-items: center;gap: var(--space-2);color: var(--color-accent);text-decoration: none}.brand-mark{display: block;width: 24px;height: auto;color: var(--color-accent);flex-shrink: 0}.brand-wordmark{font-size: var(--text-md);font-weight: var(--weight-semibold,600);letter-spacing: var(--tracking-tight,-0.01em);color: var(--color-accent);font-variant-numeric: tabular-nums;line-height: 1}.brand-link:hover{text-decoration: none;opacity: 0.75}.brand-link:focus-visible{outline: 2px solid var(--color-accent);outline-offset: 2px;border-radius: var(--radius-sm)}.primary-nav{display: flex;align-items: center;gap: var(--space-6);justify-content: center}.primary-nav a{display: inline-flex;align-items: center;position: relative;padding: var(--space-2) 0;font-size: var(--text-sm);font-weight: var(--weight-base);color: var(--color-text-on-header);text-decoration: none;transition: color var(--motion-fast) var(--easing)}.primary-nav a:hover{color: var(--color-text)}.primary-nav a.active{color: var(--color-text);background: transparent}.primary-nav a.active::after{content: "";position: absolute;left: 0;right: 0;bottom: -1px;height: 1.5px;background: var(--color-accent)}.badge{display: inline-block;margin-left: var(--space-2);font-size: var(--text-2xs);font-weight: var(--weight-medium);color: var(--color-due);background: var(--color-due-tint);border: none;padding: 1px 6px;border-radius: var(--radius-pill);font-variant-numeric: tabular-nums;letter-spacing: var(--tracking-wide)}.secondary-nav{display: flex;align-items: center;gap: var(--space-3)}.furigana-toggle{display: flex;align-items: center;gap: var(--space-2);font-size: var(--text-xs);color: var(--color-text-muted);cursor: pointer;user-select: none}main{max-width: var(--container-base);margin: var(--space-10) auto;padding: 0 var(--space-5)}main:has(.home-syllabus){max-width: var(--container-wide);margin-top: var(--space-6)}main h2{color: var(--color-text);margin: 0 0 var(--space-2);font-size: var(--text-xl);font-weight: var(--weight-medium);letter-spacing: var(--tracking-tight);line-height: var(--leading-tight)}.page-lede{color: var(--color-text-muted);margin: 0 0 var(--space-6);font-size: var(--text-base);line-height: var(--leading-base)}main h3{color: var(--color-text);margin-top: var(--space-6);font-size: var(--text-lg);font-weight: var(--weight-medium);letter-spacing: var(--tracking-tight);line-height: var(--leading-tight)}.section-label{display: flex;align-items: center;gap: var(--space-3);margin: var(--space-6) 0 var(--space-3)}h2 + .section-label,h2 + * + .section-label:first-of-type{margin-top: var(--space-3)}.section-label-text{font-size: var(--text-2xs);font-weight: var(--weight-medium);letter-spacing: var(--tracking-label);text-transform: uppercase;color: var(--color-text-muted)}.section-label-rule{flex: 1;height: 0.5px;background: var(--color-line)}.label{font-size: var(--text-2xs);font-weight: var(--weight-medium);letter-spacing: var(--tracking-label);text-transform: uppercase;color: var(--color-text-muted);margin: 0}.loading{color: var(--c-muted);font-style: italic}.toc-controls{display: flex;gap: 8px;margin: 8px 0 16px}.toc-controls .btn-secondary{font-size: 13px;padding: 4px 12px;min-height: 0;cursor: pointer}.toc-category{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 16px 20px;margin-bottom: 12px}.toc-category > summary{cursor: pointer;list-style: none;padding-right: 24px;position: relative;user-select: none}.toc-category > summary::-webkit-details-marker{display: none}.toc-category > summary::after{content: "+";position: absolute;right: 0;top: 50%;transform: translateY(-50%);font-size: 20px;color: var(--color-text-muted,var(--c-text-muted,#666))}.toc-category[open] > summary::after{content: "−"}.toc-category > summary h3{display: inline;margin: 0;font-size: 16px}.toc-category[open] > summary{margin-bottom: 12px}.toc-category h3{margin: 0 0 12px;font-size: 16px}.toc-category ul{list-style: none;padding: 0;margin: 0;display: grid;grid-template-columns: repeat(auto-fill,minmax(280px,1fr));gap: 8px}.toc-category li{padding: 8px 12px;border-radius: 4px;background: var(--c-bg)}.toc-category li a{color: var(--c-primary);text-decoration: none;font-weight: 500}.toc-category li a:hover{text-decoration: underline}.toc-category li .gloss{color: var(--c-muted);font-size: 13px;margin-left: 6px}.pattern-detail{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 24px 32px}.pattern-detail .back-link{display: inline-block;margin-bottom: 12px;color: var(--c-muted);text-decoration: none;font-size: 13px}.pattern-detail .back-link:hover{color: var(--c-primary);text-decoration: underline}.pattern-detail .pattern-nav{display: flex;justify-content: space-between;align-items: center;margin-bottom: 8px;gap: 16px;overflow: hidden}.pattern-detail .pattern-nav a{color: var(--c-muted);text-decoration: none;font-size: 12px;display: inline-flex;align-items: center;gap: 6px;max-width: 48%;min-width: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.pattern-detail .pattern-nav a:hover{color: var(--c-primary)}.pattern-detail .pattern-nav .pattern-nav-name{font-size: 12px}.pattern-detail .pattern-nav .pattern-nav-empty{visibility: hidden}.pattern-detail .pattern-nav-prev{text-align: left}.pattern-detail .pattern-nav-next{margin-left: auto;text-align: right}.listening-item .listening-nav{display: flex;justify-content: space-between;align-items: stretch;gap: 12px;margin-top: 24px;padding-top: 16px;border-top: 1px solid var(--c-border)}.listening-item .listening-nav-btn{flex: 1;display: inline-flex;align-items: center;gap: 10px;padding: 10px 14px;min-height: 44px;background: var(--c-bg,#fff);border: 1px solid var(--c-border);border-radius: var(--r);color: var(--c-text);text-decoration: none;cursor: pointer;font: inherit;text-align: left;transition: border-color 120ms ease,background 120ms ease;max-width: 48%;min-width: 0;overflow: hidden}.listening-item .listening-nav-btn:hover{border-color: var(--color-accent,#14452a);background: var(--c-surface)}.listening-item .listening-nav-arrow{font-size: 18px;color: var(--color-accent,#14452a);flex-shrink: 0}.listening-item .listening-nav-meta{display: flex;flex-direction: column;gap: 2px;min-width: 0;flex: 1}.listening-item .listening-nav-label{font-size: 11px;letter-spacing: 0.06em;text-transform: uppercase}.listening-item .listening-nav-name{font-size: 14px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.listening-item .listening-nav-prev .listening-nav-meta{text-align: left}.listening-item .listening-nav-next{margin-left: auto;flex-direction: row-reverse;text-align: right}.listening-item .listening-nav-next .listening-nav-meta{text-align: right}.listening-item .listening-nav-empty{visibility: hidden;flex: 1;max-width: 48%}.pattern-detail .pattern-name{font-size: 28px;margin: 0 0 4px;color: var(--c-primary);line-height: 1.25;text-wrap: balance}.pattern-detail .meaning-en{color: var(--c-muted);margin: 0 0 24px;font-size: 16px;text-wrap: balance}.pattern-detail section{margin: 20px 0}@media (max-width: 600px){.pattern-detail{padding: 20px 16px}.pattern-detail .pattern-name{font-size: 22px}.pattern-detail .meaning-en{font-size: 14px;margin-bottom: 12px}.pattern-detail section{margin: 16px 0}}.pattern-detail .section-title{color: var(--c-primary-light);font-size: 14px;font-weight: 500;text-transform: uppercase;letter-spacing: 0.05em;margin: 0 0 8px}.conjugation-table{border-collapse: collapse;margin: 8px 0}.conjugation-table td{padding: 6px 12px;border: 1px solid var(--c-border)}.conjugation-table td:first-child{color: var(--c-muted);font-size: 13px}.pattern-usage{margin: 16px 0 24px}.pattern-usage-header{display: flex;align-items: center;gap: 12px;margin-bottom: 8px}.pattern-usage-header .section-title{margin: 0}.pattern-usage-chip{display: inline-block;padding: 4px 10px;background: var(--c-primary-dark,#14452a);color: #fff;border-radius: 4px;font-size: 14px;font-weight: 500;letter-spacing: 0.02em;white-space: nowrap}.pattern-usage-table,.pattern-conjugation-table{border-collapse: collapse;width: 100%;max-width: 560px;margin: 0;font-size: 15px;table-layout: auto}.pattern-usage-table td,.pattern-conjugation-table th,.pattern-conjugation-table td{padding: 12px 16px;border: 1px solid var(--c-border);vertical-align: middle;text-align: left}.pattern-usage-pos{width: 60%;color: var(--c-text);font-weight: 400}.pattern-usage-table td.pattern-usage-form{text-align: center;font-size: 18px;font-weight: 500;background: var(--c-bg,#fafafa);color: var(--c-primary-dark,#14452a);width: 40%;white-space: nowrap;padding-inline: 16px}.pattern-conjugation-table{margin-top: 16px}.pattern-conjugation-table th{background: var(--c-surface);font-weight: 500;font-size: 13px;color: var(--c-muted);letter-spacing: 0.02em}.pattern-conjugation-table td:first-child{color: var(--c-muted);font-size: 14px;width: 50%}.pattern-conjugation-table td:last-child{font-weight: 500}@media (max-width: 600px){.pattern-usage-table,.pattern-conjugation-table{max-width: 100%;font-size: 14px}.pattern-usage-table td,.pattern-conjugation-table th,.pattern-conjugation-table td{padding: 10px 12px}.pattern-usage-form{font-size: 16px}}.example-list{list-style: none;padding: 0;margin: 0}.example-list li{padding: 8px 12px;margin-bottom: 4px;background: var(--c-bg);border-left: 3px solid var(--c-primary-light);border-radius: 0 4px 4px 0}.example-list .form-tag{display: inline-block;font-size: 11px;background: var(--c-primary);color: white;padding: 1px 6px;border-radius: 3px;margin-right: 8px;text-transform: uppercase}.example-list .translation{display: block;color: var(--c-muted);font-size: 13px;margin-top: 4px}.example-audio{display: block;width: 100%;max-width: 100%;margin-top: 6px}.mistakes-list{list-style: none;padding: 0;margin: 0}.mistakes-list li{background: rgba(185,28,28,0.05);border-left: 3px solid var(--c-error);padding: 10px 14px;margin-bottom: 8px;border-radius: 0 4px 4px 0}.mistakes-list .wrong{color: var(--c-error);text-decoration: line-through}.mistakes-list .right{color: var(--c-success);font-weight: 500}.mistakes-list .why{color: var(--c-muted);font-size: 13px;margin-top: 4px;display: block}.mistakes-list li.variant-pair{border-left-color: var(--c-due,#A66A1F)}.mistakes-list .variant-row{display: flex;align-items: baseline;gap: 8px;margin: 2px 0}.mistakes-list .variant-label{display: inline-block;background: var(--c-due-tint,#F7EFE0);color: var(--c-due,#A66A1F);border-radius: 3px;padding: 1px 6px;font-size: 11px;font-weight: 500;letter-spacing: 0.02em;white-space: nowrap;flex-shrink: 0}.mistakes-list .variant-form{color: var(--c-text,inherit)}.mistakes-list .wcp-row{display: flex;flex-wrap: wrap;align-items: baseline;gap: 0.4rem;margin: 0.15rem 0}.mistakes-list .wcp-row .wcp-mark{font-weight: 600;font-size: 1rem;line-height: 1;flex-shrink: 0}.mistakes-list .wcp-row .wcp-label{font-size: 0.8125rem;font-weight: 500;letter-spacing: 0.02em;text-transform: none;flex-shrink: 0}.mistakes-list .wcp-row-wrong .wcp-mark,.mistakes-list .wcp-row-wrong .wcp-label{color: var(--c-error)}.mistakes-list .wcp-row-correct .wcp-mark,.mistakes-list .wcp-row-correct .wcp-label{color: var(--c-success)}.placeholder{background: var(--c-surface);border: 1px dashed var(--c-border);border-radius: var(--r);padding: 48px 32px;text-align: center;color: var(--c-muted)}.placeholder h2{color: var(--c-primary);border: none}.reading-mode-toggle{display: inline-flex;align-items: center;gap: var(--space-2);margin: var(--space-3) 0 var(--space-4);font-size: var(--text-sm);color: var(--color-text-muted);cursor: pointer;user-select: none}.reading-mode-toggle input[type="checkbox"]{width: 16px;height: 16px;accent-color: var(--color-accent)}.reading-mode-toggle:hover{color: var(--color-text)}.undo-toast{position: fixed;left: 50%;bottom: var(--space-5);transform: translateX(-50%);display: inline-flex;align-items: center;gap: var(--space-3);padding: var(--space-2) var(--space-4);background: var(--color-surface);border: 0.5px solid var(--color-line-strong);border-radius: var(--radius-md);font-size: var(--text-sm);color: var(--color-text);z-index: 1000;animation: undo-toast-in 120ms var(--easing) both}@media (prefers-reduced-motion: reduce){.undo-toast{animation: none}}@media (max-width: 599px){.undo-toast{bottom: calc(var(--space-5) + 64px)}}@keyframes undo-toast-in{from{opacity: 0;transform: translateX(-50%) translateY(8px)}to{opacity: 1;transform: translateX(-50%) translateY(0)}}.undo-toast-text{color: var(--color-text-muted)}.undo-toast-text strong{color: var(--color-text);font-weight: var(--weight-medium,500)}.undo-toast-btn{background: transparent;border: 0.5px solid var(--color-line-strong);border-radius: var(--radius-md);color: var(--color-text);font-size: var(--text-sm);font-weight: var(--weight-medium,500);padding: var(--space-1) var(--space-3);cursor: pointer;transition: background var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing)}.undo-toast-btn:hover{background: var(--color-surface-alt);border-color: var(--color-text-muted)}.app-footer{display: flex;flex-wrap: wrap;justify-content: space-between;align-items: center;gap: var(--space-2) var(--space-5);max-width: var(--container-base);margin: var(--space-16) auto 0;padding: var(--space-5);color: var(--color-text-muted);border-top: 0.5px solid var(--color-line);font-size: var(--text-xs);font-weight: var(--weight-base)}.app-footer .footer-meta{color: var(--color-text-muted)}.app-footer .footer-disclaimer{display: block;margin: var(--space-2) auto var(--space-3);max-width: var(--container-narrow);color: var(--color-text-muted);font-size: var(--text-2xs);line-height: var(--leading-base);text-align: center;text-wrap: balance}.listening-voice-attribution{margin: var(--space-1) 0 var(--space-3);color: var(--color-text-faint);font-size: var(--text-2xs);font-style: italic;letter-spacing: var(--tracking-normal)}.app-footer .footer-nav,.app-footer .footer-links{display: inline-flex;gap: var(--space-5)}.app-footer a{color: var(--color-text-muted);text-decoration: none;transition: color var(--motion-fast) var(--easing)}.app-footer a:hover{color: var(--color-text)}@media (max-width: 480px){.app-footer{justify-content: center;text-align: center}}ruby rt{font-size: 0.55em;color: var(--color-text-muted);font-weight: var(--weight-base);font-family: var(--font-jp);letter-spacing: 0}.furigana-off rt{display: none}.furigana-known rt{visibility: hidden}.btn,.btn-primary,.btn-secondary,.btn-ghost,.btn-danger{display: inline-flex;align-items: center;justify-content: center;height: 36px;padding: 0 var(--space-4);font-family: inherit;font-size: var(--text-sm);font-weight: var(--weight-medium);border-radius: var(--radius-md);border: 0.5px solid transparent;cursor: pointer;text-decoration: none;transition: background var(--motion-fast) var(--easing),color var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing)}.btn:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-ghost:focus-visible,.btn-danger:focus-visible{outline: 2px solid var(--color-accent);outline-offset: 2px}.btn-primary{background: var(--color-accent);color: #FFFFFF;border-color: var(--color-accent)}.btn-primary:hover:not(:disabled){background: var(--color-accent-hover);border-color: var(--color-accent-hover)}.btn-primary:disabled{opacity: 0.4;cursor: not-allowed}.btn-secondary{background: var(--color-bg);color: var(--color-text);border-color: var(--color-line)}.btn-secondary:hover:not(:disabled){border-color: var(--color-line-strong);background: var(--color-surface)}.btn-secondary:disabled{opacity: 0.4;cursor: not-allowed}.btn-ghost{background: transparent;color: var(--color-text-muted);border-color: transparent}.btn-ghost:hover:not(:disabled){color: var(--color-text)}.btn-danger{background: var(--color-bg);color: var(--color-incorrect);border-color: var(--color-incorrect)}.btn-danger:hover:not(:disabled){background: var(--color-incorrect-tint)}.btn-sm{height: 28px;padding: 0 var(--space-3);font-size: var(--text-xs)}.btn-lg{height: 44px;padding: 0 var(--space-5);font-size: var(--text-base)}button{font-family: inherit;cursor: pointer}button:disabled{cursor: not-allowed;opacity: 0.5}.card{background: var(--color-surface);border: 0.5px solid var(--color-line);border-radius: var(--radius-lg);padding: var(--space-5);transition: background var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing)}.card-link{display: block;text-decoration: none;color: inherit;cursor: pointer}.card-link:hover{background: var(--color-surface-alt);border-color: var(--color-line-strong)}.card-title{font-size: var(--text-md);font-weight: var(--weight-medium);margin: 0 0 var(--space-2);color: var(--color-text);letter-spacing: var(--tracking-tight)}.card-meta{font-size: var(--text-sm);color: var(--color-text-muted);margin: 0;line-height: var(--leading-base)}.card-action{display: inline-block;margin-top: var(--space-4);font-size: var(--text-sm);font-weight: var(--weight-medium);color: var(--color-text)}.card-link:hover .card-action{text-decoration: underline}.card-index{font-size: var(--text-xs);font-weight: var(--weight-medium);letter-spacing: var(--tracking-label);color: var(--color-text-muted);margin: 0 0 var(--space-3);font-variant-numeric: tabular-nums}.pill{display: inline-flex;align-items: center;height: 22px;padding: 0 var(--space-2);font-size: var(--text-2xs);font-weight: var(--weight-medium);letter-spacing: var(--tracking-wide);border-radius: var(--radius-pill);background: var(--color-surface);color: var(--color-text-muted);border: 0.5px solid var(--color-line);font-variant-numeric: tabular-nums}.pill-accent{background: var(--color-accent-tint);color: var(--color-accent);border-color: transparent}.pill-correct{background: var(--color-correct-tint);color: var(--color-correct);border-color: transparent}.pill-incorrect{background: var(--color-incorrect-tint);color: var(--color-incorrect);border-color: transparent}.pill-due{background: var(--color-due-tint);color: var(--color-due);border-color: transparent}.progress{height: 2px;background: var(--color-line);border-radius: var(--radius-pill);overflow: hidden}.progress-fill{height: 100%;background: var(--color-accent);transition: width var(--motion-slow) var(--easing)}.table{width: 100%;border-collapse: collapse;font-size: var(--text-sm)}.table th{text-align: left;font-weight: var(--weight-medium);font-size: var(--text-2xs);letter-spacing: var(--tracking-label);text-transform: uppercase;color: var(--color-text-muted);padding: var(--space-2) var(--space-3);border-bottom: 0.5px solid var(--color-line)}.table td{padding: var(--space-3);border-bottom: 0.5px solid var(--color-line);vertical-align: top}.table tr:last-child td{border-bottom: none}.table tr:hover td{background: var(--color-surface)}input[type="text"],input[type="search"],input[type="email"],input[type="number"],textarea,select{width: 100%;height: 40px;padding: 0 var(--space-3);font-family: inherit;font-size: var(--text-base);color: var(--color-text);background: var(--color-bg);border: 0.5px solid var(--color-line);border-radius: var(--radius-md);transition: border-color var(--motion-fast) var(--easing)}input[type="text"]:focus,input[type="search"]:focus,input[type="email"]:focus,input[type="number"]:focus,textarea:focus,select:focus{outline: none;border-color: var(--color-accent)}textarea{height: auto;padding: var(--space-3);min-height: 96px}label{display: block;font-size: var(--text-sm);font-weight: var(--weight-medium);color: var(--color-text);margin-bottom: var(--space-2)}.test-setup{background: var(--color-surface);border: 0.5px solid var(--color-line);border-top: 1.5px solid var(--color-text);border-radius: var(--radius-lg);padding: var(--space-6);display: flex;flex-wrap: wrap;gap: var(--space-4);align-items: center}.length-picker{display: flex;flex-direction: column;gap: var(--space-1);font-size: var(--text-xs);color: var(--color-text-muted);letter-spacing: var(--tracking-wide)}.length-picker select{height: 36px;padding: 0 var(--space-3);border-radius: var(--radius-md);border: 0.5px solid var(--color-line);font-size: var(--text-sm);background: var(--color-bg);color: var(--color-text);min-width: 140px}.bank-note{flex-basis: 100%;margin: 8px 0 0;font-size: 13px;color: var(--c-muted)}.test-attempting{display: flex;flex-direction: column;gap: 20px}.test-progress{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 14px 18px}.progress-meta{display: flex;justify-content: space-between;font-size: 14px;margin-bottom: 8px}.progress-meta .answered-count{color: var(--c-muted)}.progress-bar{height: 6px;background: var(--c-bg);border-radius: 3px;overflow: hidden}.progress-bar > div{height: 100%;background: var(--c-primary);transition: width 0.2s}.question-card{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 28px 32px}.question-card .prompt{color: var(--c-muted);font-size: 14px;margin: 0 0 8px}.question-card .question{font-size: 22px;line-height: 1.5;margin: 0 0 24px}.choice-grid{display: grid;grid-template-columns: 1fr 1fr;gap: var(--space-3);max-width: 560px;margin: 0 auto}.choice-button{position: relative;display: flex;align-items: center;justify-content: center;min-height: 56px;padding: 0 var(--space-4);background: var(--color-bg);border: 0.5px solid var(--color-line);border-radius: var(--radius-md);font-family: inherit;font-size: var(--text-md);font-weight: var(--weight-base);color: var(--color-text);text-align: center;cursor: pointer;transition: background var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing)}.choice-button:hover{border-color: var(--color-line-strong);background: var(--color-surface)}.choice-button.selected{border-color: var(--color-accent);background: var(--color-accent-tint);color: var(--color-accent)}.choice-button:focus-visible{outline: 2px solid var(--color-accent);outline-offset: 2px}.sentence-order{display: flex;flex-direction: column;gap: 16px}.ordered-tray{min-height: 56px;padding: 12px;border: 2px dashed var(--c-primary-light);border-radius: var(--r);display: flex;flex-wrap: wrap;gap: 8px;align-items: center;background: rgba(20,69,42,0.03)}.tile-pool{display: flex;flex-wrap: wrap;gap: 8px}.tile{background: white;border: 2px solid var(--c-border);border-radius: var(--r);padding: 10px 16px;font-size: 16px;transition: all 0.15s}.tile:hover{border-color: var(--c-primary-light)}.tile.ordered{border-color: var(--c-primary);background: var(--c-primary);color: white}.tile-placeholder{color: var(--c-muted);font-style: italic;font-size: 14px}.test-nav{display: flex;gap: 10px;justify-content: flex-end;margin-top: 8px}.test-nav button{background: white;border: 1px solid var(--c-border);border-radius: var(--r);padding: 8px 16px;font-size: 14px}.test-nav button:hover:not(:disabled){background: var(--c-bg)}.test-nav .btn-primary{border-color: var(--c-primary);background: var(--c-primary);color: white}.test-results{display: flex;flex-direction: column;gap: 24px}.score-summary{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 28px;text-align: center}.score-headline{display: flex;justify-content: center;align-items: baseline;gap: 16px}.score-big{font-size: 48px;font-weight: 500;color: var(--c-primary)}.score-pct{font-size: 22px;color: var(--c-muted)}.score-meta{display: flex;justify-content: center;gap: 24px;margin-top: 8px}.score-correct{color: var(--c-success);font-weight: 500}.score-incorrect{color: var(--c-error);font-weight: 500}.answer-review h3,.gap-list h3{color: var(--c-primary-light)}.review-list{list-style: none;padding: 0;margin: 0;display: flex;flex-direction: column;gap: 12px}.review-item{background: var(--c-surface);border: 1px solid var(--c-border);border-left: 4px solid var(--c-success);border-radius: var(--r);padding: 16px 20px;display: grid;grid-template-columns: 32px 1fr;gap: 14px}.review-item.incorrect{border-left-color: var(--c-error)}.review-marker{font-size: 22px;font-weight: 500;text-align: center;line-height: 28px;color: var(--c-success)}.review-item.incorrect .review-marker{color: var(--c-error)}.review-question{font-size: 18px;margin-bottom: 8px}.review-answers{display: flex;flex-wrap: wrap;gap: 6px 14px;align-items: center;font-size: 14px}.answer-label{color: var(--c-muted)}.user-answer.correct{color: var(--c-success);font-weight: 500}.user-answer.incorrect{color: var(--c-error);font-weight: 500;text-decoration: line-through}.correct-answer{color: var(--c-success);font-weight: 500}.review-explanation{margin: 8px 0 0;font-size: 14px;color: var(--c-text)}.distractor-explanation{margin: 6px 0 0;font-size: 13px;color: var(--c-warning);background: rgba(180,83,9,0.06);padding: 6px 10px;border-radius: 4px}.review-pattern{margin: 8px 0 0;font-size: 12px;color: var(--c-muted)}.review-pattern a{color: var(--c-primary-light)}.gap-list{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 20px 24px}.gap-list ul{padding-left: 20px}.review-grid{display: grid;gap: 20px}.review-card{background: var(--c-surface);border: 1px solid var(--c-border);border-left: 4px solid var(--c-warning);border-radius: var(--r);padding: 20px 24px}.review-card header{margin-bottom: 12px}.review-card h3{color: var(--c-primary);margin: 0 0 4px;font-size: 22px}.review-card .meaning-en{color: var(--c-muted);margin: 0 0 6px}.review-card .link{font-size: 13px;color: var(--c-primary-light)}.review-card section{margin: 16px 0}.review-card h4{color: var(--c-primary-light);font-size: 13px;font-weight: 500;text-transform: uppercase;letter-spacing: 0.05em;margin: 0 0 8px}.summary-stats{display: grid;grid-template-columns: repeat(auto-fit,minmax(180px,1fr));gap: 12px;margin: 16px 0 24px}.stat-card{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 18px;text-align: center}.stat-num{font-size: 36px;font-weight: 500;color: var(--c-primary)}.stat-label{font-size: 14px;font-weight: 500;margin-top: 4px}.stat-hint{font-size: 12px;color: var(--c-muted);margin-top: 4px}.stat-card.mastered .stat-num{color: var(--c-success)}.stat-card.weak .stat-num{color: var(--c-warning)}.stat-card.untested .stat-num{color: var(--c-muted)}.pattern-section{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 16px 20px;margin: 12px 0}.pattern-section h3{color: var(--c-primary);margin-top: 0}.pattern-section ul{padding-left: 20px;margin: 0}.pattern-section li{padding: 3px 0}.next-steps{background: rgba(20,69,42,0.04);border-left: 4px solid var(--c-primary);border-radius: 0 var(--r) var(--r) 0;padding: 16px 20px;margin: 20px 0}.next-steps h3{margin-top: 0;color: var(--c-primary)}.reset{margin-top: 32px;padding-top: 16px;border-top: 1px solid var(--c-border)}.muted{color: var(--c-muted)}.small{font-size: 12px}.placeholder-inline{color: var(--c-muted);font-style: italic}.drill-setup{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 24px}.drill-stats{display: grid;grid-template-columns: repeat(3,1fr);gap: 12px;margin-bottom: 16px}.drill-session{display: flex;flex-direction: column;gap: 16px}.drill-header{display: flex;justify-content: space-between;align-items: center;padding: 12px 18px;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);font-size: 14px}.pattern-tag{background: rgba(20,69,42,0.08);color: var(--c-primary);padding: 4px 10px;border-radius: 4px;font-size: 13px;font-weight: 500}.drill-feedback{margin-top: 16px;padding: 16px 20px;border-radius: var(--r);border-left: 4px solid}.drill-feedback.correct{background: rgba(22,101,52,0.06);border-left-color: var(--c-success)}.drill-feedback.incorrect{background: rgba(185,28,28,0.05);border-left-color: var(--c-error)}.feedback-headline{font-size: 18px;font-weight: 500;margin-bottom: 8px}.drill-feedback.correct .feedback-headline{color: var(--c-success)}.drill-feedback.incorrect .feedback-headline{color: var(--c-error)}.feedback-explanation{margin: 8px 0;font-size: 14px}.feedback-distractor{margin: 8px 0;font-size: 13px;color: var(--c-warning);background: rgba(180,83,9,0.08);padding: 8px 12px;border-radius: 4px}.feedback-srs{margin: 12px 0 4px;font-size: 13px;color: var(--c-muted)}.feedback-srs strong{color: var(--c-primary)}.feedback-srs .graduated{color: var(--c-success)}.feedback-pattern{margin: 4px 0 0;font-size: 12px}.feedback-pattern a{color: var(--c-primary-light)}.choice-button.correct-choice{border-color: var(--color-correct);background: var(--color-correct-tint);color: var(--color-correct);font-weight: var(--weight-medium)}.choice-button.wrong-choice{border-color: var(--color-incorrect);background: var(--color-incorrect-tint);color: var(--color-incorrect);text-decoration: line-through}.tile.correct-tile{background: var(--c-success);border-color: var(--c-success);color: white}.tile.wrong-tile{background: var(--c-error);border-color: var(--c-error);color: white}.drill-finished{display: flex;flex-direction: column;gap: 16px}.pattern-summary-list{list-style: none;padding: 0;margin: 0;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r)}.pattern-summary-list li{display: grid;grid-template-columns: 1fr auto auto;gap: 16px;align-items: center;padding: 10px 16px;border-bottom: 1px solid var(--c-border);font-size: 14px}.pattern-summary-list li:last-child{border-bottom: none}.pat-name{font-weight: 500}.pat-stats{color: var(--c-muted);font-size: 13px}.pat-box{font-family: Consolas,monospace;font-size: 12px;background: rgba(20,69,42,0.08);padding: 3px 8px;border-radius: 3px;color: var(--c-primary)}.diag-cta{display: flex;align-items: center;justify-content: space-between;gap: 16px;background: linear-gradient(90deg,rgba(20,69,42,0.06),rgba(26,92,56,0.04));border: 1px solid rgba(20,69,42,0.2);border-radius: var(--r);padding: 14px 18px;margin: 16px 0 24px;font-size: 14px}.diagnostic-setup{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 24px}.diagnostic-setup ul{margin: 12px 0;padding-left: 22px}.diagnostic-setup li{font-size: 14px;color: var(--c-text);padding: 3px 0}.diagnostic-actions{display: flex;gap: 10px;margin-top: 16px}.diagnostic-actions button:not(.btn-primary){background: white;border: 1px solid var(--c-border);border-radius: var(--r);padding: 8px 16px;font-size: 14px}.diagnostic-banner{background: rgba(180,83,9,0.08);border-left: 3px solid var(--c-warning);padding: 10px 14px;font-size: 13px;color: var(--c-warning);border-radius: 0 var(--r) var(--r) 0;margin-bottom: 12px}.pattern-header{display: flex;justify-content: space-between;align-items: flex-start;gap: 16px;margin-bottom: 4px;flex-wrap: nowrap}.pattern-header > *:first-child{flex: 1;min-width: 0}@media (max-width: 600px){.pattern-header{flex-direction: column;align-items: stretch;flex-wrap: nowrap}.pattern-header > *:first-child{flex: initial;min-width: auto}.pattern-header .known-toggle{align-self: flex-end}.pattern-usage-table td,.pattern-conjugation-table th,.pattern-conjugation-table td{padding: 8px 8px}.pattern-usage-table td.pattern-usage-form{font-size: 14px;line-height: 1.4;white-space: nowrap;padding-inline: 12px}}.known-toggle{display: inline-flex;align-items: center;gap: 8px;font-size: 13px;color: var(--color-text-muted,var(--c-muted));cursor: pointer;user-select: none;padding: 6px 12px;border: 0.5px solid var(--color-line);border-radius: var(--radius-md);background: var(--color-bg);align-self: flex-start;flex-shrink: 0}.known-toggle:hover{background: var(--color-surface,var(--c-bg));border-color: var(--color-line-strong,var(--c-border))}.known-toggle input{cursor: pointer}.kanji-glyph-cluster{display: flex;gap: 24px;align-items: flex-start;flex-wrap: wrap;flex: 1;min-width: 0}.status-badge{display: inline-block;font-size: 11px;padding: 2px 8px;border-radius: var(--radius-lg);font-weight: 500;text-transform: uppercase;letter-spacing: 0.04em}.status-badge.mastered{background: rgba(22,101,52,0.12);color: var(--c-success)}.status-badge.weak{background: rgba(180,83,9,0.12);color: var(--c-warning)}.heatmap-section{margin: 24px 0}.heatmap-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(180px,1fr));gap: 8px;margin: 12px 0}.heat-cell{background: var(--c-surface);border: 1px solid var(--c-border);border-left: 4px solid #ccc;border-radius: var(--r);padding: 10px 12px;font-size: 12px;cursor: default}.heat-cell:hover{}.heat-cat{font-weight: 500;font-size: 13px;margin-bottom: 4px;color: var(--c-text);white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.heat-meta{display: flex;gap: 8px;align-items: center;margin-bottom: 6px;color: var(--c-muted)}.heat-count{font-family: Consolas,monospace;font-size: 12px}.heat-warn{color: var(--c-error);font-weight: 500}.heat-bar{height: 4px;background: rgba(0,0,0,0.05);border-radius: 2px;overflow: hidden}.heat-bar > div{height: 100%;background: var(--c-success);transition: width 0.3s}.heat-cell.heat-mastered{border-left-color: var(--c-success);background: rgba(22,101,52,0.04)}.heat-cell.heat-mastered .heat-bar > div{background: var(--c-success)}.heat-cell.heat-in-progress{border-left-color: var(--c-primary);background: rgba(20,69,42,0.03)}.heat-cell.heat-in-progress .heat-bar > div{background: var(--c-primary)}.heat-cell.heat-weak{border-left-color: var(--c-error);background: rgba(185,28,28,0.04)}.heat-cell.heat-weak .heat-bar > div{background: var(--c-error)}.heat-cell.heat-untested{border-left-color: #aaa;background: var(--c-bg);opacity: 0.7}.heat-cell.heat-untested .heat-bar > div{background: #ccc}.heatmap-legend{display: flex;flex-wrap: wrap;gap: 14px;font-size: 12px;color: var(--c-muted);margin-top: 10px}.legend-swatch{display: inline-block;width: 12px;height: 12px;border-radius: 2px;margin-right: 4px;vertical-align: middle}.legend-swatch.heat-mastered{background: var(--c-success)}.legend-swatch.heat-in-progress{background: var(--c-primary)}.legend-swatch.heat-weak{background: var(--c-error)}.legend-swatch.heat-untested{background: #ccc}.error-patterns,.recommendation,.session-log{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 16px 20px;margin: 16px 0}.error-list{list-style: none;padding: 0;margin: 8px 0 0}.error-row{padding: 10px 0;border-bottom: 1px solid var(--c-border)}.error-row:last-child{border-bottom: none}.error-row-head{display: flex;justify-content: space-between;align-items: baseline}.error-row-head a{color: var(--c-primary-light);text-decoration: none}.error-acc{font-family: Consolas,monospace;font-weight: 500}.error-row-meta{font-size: 12px;color: var(--c-muted);margin: 3px 0 6px}.error-bar{height: 4px;background: rgba(0,0,0,0.06);border-radius: 2px;overflow: hidden}.error-bar > div{height: 100%;transition: width 0.3s}.rec-list{padding-left: 20px;margin: 8px 0 0}.rec-list li{padding: 3px 0}.session-table{width: 100%;border-collapse: collapse;font-size: 13px;margin-top: 8px}.session-table th,.session-table td{text-align: left;padding: 6px 10px;border-bottom: 1px solid var(--c-border)}.session-table th{color: var(--c-muted);font-weight: 500}.session-table tr:last-child td{border-bottom: none}.text-input-wrap{display: flex;flex-direction: column;gap: 6px}.text-input{width: 100%;padding: 12px 16px;font-size: 18px;border: 2px solid var(--c-border);border-radius: var(--r);background: var(--c-bg);color: var(--c-text);font-family: "Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif}.text-input:focus{outline: 3px solid var(--c-primary-light);outline-offset: 2px;border-color: var(--c-primary)}.visually-hidden{position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0,0,0,0);white-space: nowrap;border: 0}.learn-tools{background: rgba(20,69,42,0.04);border-left: 3px solid var(--c-primary-light);border-radius: 0 var(--r) var(--r) 0;padding: 10px 16px;margin: 12px 0 20px;font-size: 14px;display: flex;gap: 14px;flex-wrap: wrap;align-items: center}.learn-tools a{color: var(--c-primary);text-decoration: none;font-weight: 500}.learn-tools a:hover{text-decoration: underline}.kosoado-proximity,.kosoado-grid-section,.kosoado-drill,.waga-use,.waga-drill{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 18px 22px;margin: 16px 0}.proximity-diagram{background: var(--c-bg);padding: 16px;border-radius: var(--r)}.prox-row{display: flex;align-items: center;justify-content: center;gap: 12px;flex-wrap: wrap}.prox-bubble{background: var(--c-surface);border: 2px solid var(--c-primary-light);border-radius: 50%;padding: 12px 18px;text-align: center;font-size: 12px;font-weight: 500;min-width: 80px}.prox-bubble.speaker{border-color: var(--c-primary)}.prox-bubble.listener{border-color: var(--c-primary-light)}.prox-bubble.far{border-color: var(--c-warning)}.prox-arrow{color: var(--c-muted);font-weight: 500}.prox-arrow.long{letter-spacing: -2px}.prox-question{margin-top: 10px;text-align: center;font-size: 13px;color: var(--c-muted)}.kosoado-grid{width: 100%;border-collapse: collapse;margin-top: 8px}.kosoado-grid th,.kosoado-grid td{border: 1px solid var(--c-border);padding: 8px 10px;text-align: center;font-size: 14px}.kosoado-grid th{background: var(--c-bg);font-weight: 500}.kosoado-grid td{font-size: 16px;color: var(--c-primary);font-weight: 500}.kosoado-grid td:hover{background: rgba(20,69,42,0.06)}.drill-question p{font-size: 18px;margin: 6px 0}.waga-pair{display: grid;grid-template-columns: 1fr 1fr;gap: 12px;margin-top: 8px}.waga-side{background: var(--c-bg);border-left: 3px solid var(--c-primary-light);border-radius: 0 var(--r) var(--r) 0;padding: 10px 14px}.waga-sentence{font-size: 17px;margin: 0 0 4px}.waga-context{margin: 4px 0 0}.waga-blank-row{display: flex;gap: 10px;margin: 12px 0;flex-wrap: wrap}.waga-input{width: 100px;text-align: center;font-size: 22px}.srs-stats,.srs-summary-stats{display: grid;grid-template-columns: repeat(auto-fit,minmax(160px,1fr));gap: 12px;margin: 16px 0}.srs-card{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 24px 28px}.srs-progress{display: flex;justify-content: space-between;align-items: center;font-size: 13px;color: var(--c-muted);margin-bottom: 16px}.srs-tag.new{background: var(--c-warning);color: white;padding: 2px 8px;border-radius: 3px;font-size: 11px;font-weight: 500;letter-spacing: 0.05em}.srs-skill-badge{display: inline-flex;align-items: center;justify-content: center;width: 24px;height: 24px;border-radius: 4px;font-size: 14px;font-weight: 500;margin: 0 6px;border: 0.5px solid var(--c-border)}.srs-skill-grammar{background: color-mix(in srgb,var(--c-primary-dark,#14452a) 10%,transparent);color: var(--c-primary-dark,#14452a)}.srs-skill-vocab{background: color-mix(in srgb,#2563eb 10%,transparent);color: #1e40af}.srs-skill-kanji{background: color-mix(in srgb,#d97706 10%,transparent);color: #92400e}.srs-mode-badge{display: inline-block;margin-left: 12px;padding: 3px 10px;border-radius: 999px;font-size: 12px;font-weight: 500;letter-spacing: 0.03em;vertical-align: middle;background: color-mix(in srgb,var(--c-primary-dark,#14452a) 12%,transparent);color: var(--c-primary-dark,#14452a);border: 0.5px solid color-mix(in srgb,var(--c-primary-dark,#14452a) 30%,transparent)}.listening-speed-toggle{display: inline-flex;gap: 6px;margin-top: 8px}.listening-speed-btn{padding: 4px 12px;border-radius: 999px;font-size: 13px;font-weight: 500;background: transparent;color: var(--c-fg,#1f2937);border: 0.5px solid var(--c-border,#d1d5db);cursor: pointer;transition: background 120ms,color 120ms}.listening-speed-btn:hover{background: color-mix(in srgb,var(--c-primary-dark,#14452a) 8%,transparent)}.listening-speed-btn.is-active{background: color-mix(in srgb,var(--c-primary-dark,#14452a) 18%,transparent);color: var(--c-primary-dark,#14452a);border-color: color-mix(in srgb,var(--c-primary-dark,#14452a) 35%,transparent)}.srs-content{padding: 16px 0}.srs-content .pattern-name{font-size: 28px;margin: 0 0 4px;color: var(--c-primary)}.srs-example{background: var(--c-bg);border-left: 3px solid var(--c-primary-light);padding: 12px 16px;border-radius: 0 var(--r) var(--r) 0;margin: 16px 0}.srs-example p{margin: 0 0 4px;font-size: 18px}.srs-explanation{font-size: 14px;color: var(--c-text);margin: 12px 0}.srs-grade-row{margin-top: 24px}.srs-grade-buttons{display: grid;grid-template-columns: repeat(4,1fr);gap: 8px;margin-top: 8px}.grade-btn{display: flex;flex-direction: column;align-items: center;gap: 2px;padding: 14px 8px;background: var(--c-surface);border: 2px solid var(--c-border);border-radius: var(--r);cursor: pointer;transition: all 0.15s}.grade-btn:hover{}.grade-btn:focus{outline: 3px solid var(--c-primary-light);outline-offset: 2px}.grade-label{font-weight: 500;font-size: 14px}.grade-hint{font-size: 11px;color: var(--c-muted)}.grade-again{border-color: var(--c-error)}.grade-again .grade-label{color: var(--c-error)}.grade-hard{border-color: var(--c-warning)}.grade-hard .grade-label{color: var(--c-warning)}.grade-good{border-color: var(--c-primary-light)}.grade-good .grade-label{color: var(--c-primary)}.grade-easy{border-color: var(--c-success)}.grade-easy .grade-label{color: var(--c-success)}.srs-link{color: var(--c-primary-light);text-decoration: none;font-size: 13px;align-self: center}.srs-link:hover{text-decoration: underline}.srs-finished{display: flex;flex-direction: column;gap: 16px}.srs-schedule{list-style: none;padding: 0;margin: 0;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r)}.srs-schedule li{display: flex;justify-content: space-between;align-items: center;padding: 8px 14px;border-bottom: 1px solid var(--c-border);font-size: 14px}.srs-schedule li:last-child{border-bottom: none}.verb-group-section,.te-rules,.drill-cta{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 16px 20px;margin: 12px 0}.warning-section{border-left: 4px solid var(--c-warning);background: rgba(180,83,9,0.04)}.warning-section h3{color: var(--c-warning);margin-top: 0}.verb-list{font-size: 17px;background: var(--c-bg);padding: 10px 14px;border-radius: var(--r);margin: 6px 0}.vc-card,.te-drill .vc-card{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 28px 32px;text-align: center}.vc-prompt{font-size: 14px;color: var(--c-muted);margin: 0 0 8px}.vc-verb{font-size: 36px;font-weight: 500;color: var(--c-primary);margin: 8px 0 4px}.vc-buttons{display: grid;grid-template-columns: repeat(3,1fr);gap: 10px;margin: 16px 0}.vc-btn{padding: 14px 8px;background: var(--c-surface);border: 2px solid var(--c-border);border-radius: var(--r);cursor: pointer;font-size: 14px;font-weight: 500;transition: all 0.15s;color: var(--c-text)}.vc-btn:hover:not(:disabled){border-color: var(--c-primary);background: rgba(20,69,42,0.04)}.vc-btn:focus{outline: 3px solid var(--c-primary-light);outline-offset: 2px}.vc-btn small{font-weight: 400;color: var(--c-muted)}.vc-misses,.te-rule-list{list-style: none;padding: 0;margin: 0}.vc-misses li,.te-rule-list li{padding: 6px 12px;border-bottom: 1px solid var(--c-border);font-size: 14px;display: flex;justify-content: space-between;background: var(--c-bg)}.vc-misses li:last-child,.te-rule-list li:last-child{border-bottom: none}.te-rules-table{width: 100%;border-collapse: collapse}.te-rules-table th,.te-rules-table td{border: 1px solid var(--c-border);padding: 8px 12px;text-align: left;font-size: 14px}.te-rules-table th{background: var(--c-bg)}.skip-link{position: absolute;top: -40px;left: 0;background: var(--c-primary);color: white;padding: 8px 16px;z-index: 9999;text-decoration: none;border-radius: 0 0 var(--r) 0}.skip-link:focus{top: 0;outline: 3px solid var(--c-warning);outline-offset: 2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline: 3px solid var(--c-primary-light);outline-offset: 2px}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration: 0.01ms !important;animation-iteration-count: 1 !important;transition-duration: 0.01ms !important}}@media (forced-colors: active){.btn-primary,.grade-btn,.vc-btn,.choice-button{border: 1px solid CanvasText}}.counter-row{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 14px 18px;margin: 12px 0}.counter-row-head h3{margin: 0 0 8px;font-size: 16px}.counter-table{width: 100%;border-collapse: collapse;margin: 6px 0;font-size: 13px}.counter-table th,.counter-table td{border: 1px solid var(--c-border);padding: 5px 8px;text-align: center}.counter-table th{background: var(--c-bg);font-weight: 500}.counter-visual{font-size: 32px;text-align: center;padding: 18px;background: var(--c-bg);border-radius: var(--r);margin: 12px 0;word-break: break-all;line-height: 1.4}.counter-abstract{text-align: center;padding: 18px;background: var(--c-bg);border-radius: var(--r);margin: 12px 0}.reading-list{list-style: none;padding: 0;margin: 0}.reading-list li{margin: 6px 0}.reading-pick{width: 100%;text-align: left;background: var(--c-surface);border: 1px solid var(--c-border);border-left: 4px solid var(--c-primary-light);border-radius: var(--r);padding: 12px 16px;cursor: pointer;display: flex;flex-direction: column;gap: 4px}.reading-pick:hover{background: var(--c-bg)}.reading-passage{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 20px 24px}.passage-text{background: var(--c-bg);border-radius: var(--r);padding: 14px 18px;margin: 12px 0;font-size: 17px;line-height: 1.8;white-space: pre-wrap}.passage-recap{margin: 8px 0;font-size: 13px}.reading-audio{margin: 10px 0}.reading-audio audio{width: 100%}.listening-section{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 14px 18px;margin: 12px 0}.listening-section > summary{cursor: pointer;list-style: none;padding-right: 24px;position: relative;user-select: none}.listening-section > summary::-webkit-details-marker{display: none}.listening-section > summary::after{content: "+";position: absolute;right: 0;top: 50%;transform: translateY(-50%);font-size: 20px;color: var(--color-text-muted,var(--c-text-muted,#666))}.listening-section[open] > summary::after{content: "−"}.listening-section > summary h3{display: inline;margin: 0;font-size: 16px}.listening-section[open] > summary{margin-bottom: 12px}.listening-list{list-style: none;padding: 0;margin: 0}.listening-list li{margin: 4px 0}.listening-pick{background: var(--c-bg);border: 1px solid var(--c-border);border-radius: var(--r);padding: 8px 14px;cursor: pointer;width: 100%;text-align: left}.listening-pick:hover{background: rgba(20,69,42,0.04)}.listening-item{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 20px 24px}.listening-audio{margin: 14px 0}.listening-audio audio{width: 100%}.pwa-banner{position: fixed;left: 16px;right: 16px;bottom: calc(16px + env(safe-area-inset-bottom,0px));z-index: 1000;display: flex;flex-wrap: wrap;gap: 12px;align-items: center;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 12px 16px}.pwa-banner button{min-height: 44px;padding: 8px 14px}.offline-indicator{position: fixed;top: 4px;right: 4px;z-index: 999;background: rgba(220,50,50,0.92);color: white;padding: 4px 10px;border-radius: 4px;font-size: 12px}.offline-indicator[hidden]{display: none}.pwa-toast{position: fixed;left: 16px;right: 16px;top: calc(16px + env(safe-area-inset-top,0px));z-index: 1100;display: flex;flex-wrap: wrap;gap: 10px;align-items: center;justify-content: center;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 10px 14px;max-width: 460px;margin: 0 auto}.pwa-toast button{min-height: 36px;padding: 6px 12px}@media (max-width: 480px){body{padding-bottom: calc(64px + env(safe-area-inset-bottom,0px))}.app-header{gap: 12px;padding-inline: 16px}main{padding-inline: 16px;margin-block: 16px}.app-footer{padding-inline: 16px}.primary-nav{position: fixed;bottom: 0;left: 0;right: 0;z-index: 900;display: flex;justify-content: flex-start;overflow-x: auto;overflow-y: hidden;scroll-snap-type: x mandatory;-webkit-overflow-scrolling: touch;gap: 0;background: var(--c-surface);border-top: 1px solid var(--c-border);padding: 6px 4px calc(6px + env(safe-area-inset-bottom,0px));scrollbar-width: none}.primary-nav::-webkit-scrollbar{display: none}.primary-nav a{flex: 0 0 auto;min-height: 44px;min-width: 44px;display: inline-flex;align-items: center;justify-content: center;text-align: center;font-size: 13px;padding: 4px 12px;scroll-snap-align: start}.secondary-nav{flex-wrap: nowrap;gap: 8px;align-items: center}.secondary-nav input[type="search"]{flex: 1 1 auto;min-width: 120px;max-width: none}}@media (max-width: 380px){.primary-nav{padding: 6px 0 calc(6px + env(safe-area-inset-bottom,0px))}.primary-nav a{font-size: 11px;padding: 4px 8px;letter-spacing: -0.01em}}button,.btn-primary,.btn-secondary,.pillar-card a,.nav a,.primary-nav a,.secondary-nav-link,.choice-button{min-height: 44px}@media print{.app-header,.secondary-nav,.primary-nav,.skip-link,.location-indicator,#drill-badge,.furigana-toggle,.app-footer,.pwa-banner,.offline-indicator,.pwa-toast,.shortcuts-overlay,.kanji-popover,.search-panel{display: none !important}body{font-family: Georgia,"Times New Roman",serif;color: black;background: white;padding: 0;font-size: 10.5pt;line-height: 1.45;widows: 3;orphans: 3}main,#app{max-width: none;padding: 0}p,li{widows: 3;orphans: 3}details > summary{display: none}details > *{display: block !important}ruby rt{font-size: 0.6em}.btn-primary,.btn-secondary,button{display: none}audio{display: none}.audio-skin,.audio-skin-controls,.example-audio,.reading-audio,.listening-audio{display: none !important}input,select,textarea,video{display: none !important}a[href]::after{content: ""}.skeleton-wrap{display: none}.no-print{display: none !important}.pattern-detail,.vocab-detail,.kanji-detail,.reading-passage,.listening-item{padding: 0}.pattern-name{font-size: 22pt;margin: 0 0 6pt}.pattern-detail .meaning-en,.vocab-detail .meaning-en,.kanji-detail .meaning-en{font-size: 12pt;margin: 0 0 10pt;color: #333}.pattern-detail .section-title,.vocab-detail .section-title,.kanji-detail .section-title,.reading-passage .section-title,.listening-item .section-title{font-size: 14pt;margin: 12pt 0 4pt;border-bottom: 0.5pt solid #999;padding-bottom: 2pt;page-break-after: avoid;break-after: avoid}.pattern-detail section,.vocab-detail section,.kanji-detail section,.reading-passage section,.listening-item section{margin: 12pt 0}.pattern-detail .example-list li,.pattern-detail .mistakes-list li,.vocab-detail .example-list li,.kanji-detail .kanji-examples-table tr,.reading-passage .reading-footnote-item,.listening-item .listening-list li{margin: 4pt 0;page-break-inside: avoid;break-inside: avoid}.is-printing-cheatsheet .grammar-grid{display: block}.is-printing-cheatsheet .grammar-card{display: grid;grid-template-columns: 14ch 1.2fr 1.4fr 5ch;column-gap: 8pt;align-items: baseline;padding: 3pt 0;border-bottom: 0.25pt solid #ddd;text-decoration: none;color: black;page-break-inside: avoid}.is-printing-cheatsheet .grammar-pattern{font-size: 11pt;font-weight: 500}.is-printing-cheatsheet .grammar-card-print-meaning,.is-printing-cheatsheet .grammar-card-print-example{display: block;font-size: 9pt;color: #333}.is-printing-cheatsheet .toc-category > summary h3{font-size: 12pt;margin: 8pt 0 3pt}.is-printing-cheatsheet .kanji-filters,.is-printing-cheatsheet .toc-controls,.is-printing-cheatsheet .back-link,.is-printing-cheatsheet .cat-jump,.is-printing-cheatsheet .placeholder{display: none !important}}.pattern-essay{margin-top: 24px;padding: 16px 18px;background: color-mix(in srgb,var(--c-primary-dark,#14452a) 4%,transparent);border-left: 3px solid var(--c-primary-dark,#14452a);border-radius: 0 8px 8px 0}.pattern-essay p{margin: 8px 0;line-height: 1.6}.pattern-essay strong{color: var(--c-primary-dark,#14452a)}.essay-stub-badge{display: inline-block;margin-left: 8px;padding: 1px 8px;font-size: 11px;font-weight: 500;letter-spacing: 0.04em;border-radius: 3px;background: color-mix(in srgb,var(--c-fg,#6b7280) 10%,transparent);color: var(--c-fg,#6b7280);text-transform: uppercase;vertical-align: middle}.kanji-mnemonic-summary{margin: 0 0 6px}.kanji-mnemonic-visual,.kanji-mnemonic-reading{margin: 6px 0 0;font-size: 14px;line-height: 1.6}.kanji-mnemonic-prov{display: inline-block;margin-left: 6px;padding: 1px 6px;font-size: 10px;font-weight: 500;letter-spacing: 0.04em;border-radius: 3px;background: color-mix(in srgb,var(--c-fg,#6b7280) 8%,transparent);color: var(--c-fg,#6b7280);text-transform: uppercase;vertical-align: middle}.reading-translations{margin: 12px 0;padding: 10px 12px;border: 1px solid var(--c-border,#d1d5db);border-radius: 6px;background: color-mix(in srgb,var(--c-fg,#6b7280) 3%,transparent)}.reading-translations[open]{background: color-mix(in srgb,var(--c-fg,#6b7280) 5%,transparent)}.reading-translations summary{cursor: pointer;user-select: none;outline: none}.reading-translation-pair{margin-top: 12px;display: flex;flex-direction: column;gap: 12px}.reading-translation-block{padding: 8px 0}.reading-translation-label{margin: 0 0 4px;font-size: 12px;font-weight: 500;letter-spacing: 0.04em;text-transform: uppercase;color: var(--c-primary-dark,#14452a)}.reading-translation-text{margin: 0;line-height: 1.6}.authentic-root{padding: 8px 0 32px}.authentic-section{margin: 24px 0}.authentic-cat-title{font-size: 18px;margin: 16px 0 12px;padding-bottom: 4px;border-bottom: 1px solid var(--c-border,#d1d5db)}.authentic-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(220px,1fr));gap: 12px}.authentic-card{background: var(--c-surface,#ffffff);border: 1px solid var(--c-border,#d1d5db);border-radius: 8px;padding: 14px 14px 12px;display: flex;flex-direction: column;gap: 4px;transition: box-shadow 120ms,border-color 120ms}.authentic-card:hover{border-color: var(--c-primary-dark,#14452a);box-shadow: 0 1px 4px rgba(0,0,0,0.06)}.authentic-card-ja{font-size: 22px;font-weight: 500;line-height: 1.3;color: var(--c-fg,#1f2937)}.authentic-card-reading{font-size: 13px}.authentic-card-gloss{margin-top: 4px;font-size: 14px}.authentic-card-gloss-hi{font-size: 13px}.authentic-card-context{margin: 6px 0 0;font-size: 12px;line-height: 1.4}.authentic-card-actions{margin-top: 8px;display: flex;gap: 6px}.btn-tiny{padding: 3px 10px;font-size: 12px;min-height: 28px}.drill-text-input-block{margin: 12px 0}.drill-cloze-sentence{font-size: 18px;line-height: 2.1;margin: 8px 0}.drill-cloze-blank{display: inline-block;vertical-align: baseline}.drill-text-input{font-family: inherit;font-size: 16px;padding: 6px 10px;border: 1.5px solid var(--c-border,#d1d5db);border-radius: 6px;background: var(--c-surface,#ffffff);color: var(--c-fg,#1f2937);min-height: 40px;width: min(100%,360px);transition: border-color 120ms}.drill-cloze-blank .drill-text-input{width: 8em;min-width: 6em;text-align: center;border-bottom: 2px solid var(--c-primary-dark,#14452a);border-top: none;border-left: none;border-right: none;border-radius: 0;padding: 2px 4px;background: transparent}.drill-text-input:focus{border-color: var(--c-primary-dark,#14452a);outline: 2px solid color-mix(in srgb,var(--c-primary-dark,#14452a) 25%,transparent)}.drill-text-input-correct{border-color: var(--color-success,#16a34a) !important;background: color-mix(in srgb,var(--color-success,#16a34a) 8%,transparent)}.drill-text-input-wrong{border-color: var(--color-error,#dc2626) !important;background: color-mix(in srgb,var(--color-error,#dc2626) 8%,transparent)}.grammar-card-print-meaning,.grammar-card-print-example{display: none}.pattern-print-btn{margin-left: auto;font-size: 13px}.cat-jump{display: flex;flex-wrap: wrap;gap: 6px;padding: 10px 0;margin: 8px 0 12px;background: var(--c-bg);position: sticky;top: 0;z-index: 50;border-bottom: 1px solid var(--c-border)}.cat-chip{display: inline-flex;align-items: center;gap: 6px;padding: 6px 12px;min-height: 32px;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: 999px;font-size: 13px;cursor: pointer;white-space: nowrap;color: inherit;transition: border-color 120ms ease,background 120ms ease}.cat-chip:hover{border-color: var(--color-accent,#14452a);background: rgba(20,69,42,0.04)}.cat-chip-count{font-size: 11px;color: var(--c-muted,#555);background: rgba(0,0,0,0.06);padding: 1px 7px;border-radius: 999px}.cat-chip:hover .cat-chip-count{background: rgba(20,69,42,0.12)}@media (max-width: 720px){.cat-jump{flex-wrap: nowrap;overflow-x: auto;-webkit-overflow-scrolling: touch;scrollbar-width: thin}.cat-chip{flex-shrink: 0}}.toc-category,.vocab-section{scroll-margin-top: 56px}.cat-count{font-weight: 400}.learn-tools-wrap{margin: 8px 0 16px;padding: 8px 12px;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);font-size: 14px}.learn-tools-wrap summary{cursor: pointer;padding: 4px 0;min-height: 32px;font-weight: 500}.grammar-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(220px,1fr));gap: 10px;margin: 8px 0 20px}.grammar-card{display: flex;flex-direction: column;gap: 4px;align-items: center;justify-content: center;padding: 14px;min-height: 64px;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--radius-lg);text-decoration: none;color: inherit;text-align: center}.grammar-card:hover{border-color: var(--color-accent,#14452a);background: rgba(20,69,42,0.03)}.grammar-pattern{font-weight: 500;font-size: 16px}.grammar-gloss{font-size: 13px;color: var(--c-text-muted,#555)}.vocab-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(180px,1fr));gap: 8px;margin-top: 10px}.vocab-card{display: flex;flex-direction: column;gap: 2px;align-items: center;justify-content: center;padding: 12px;min-height: 60px;background: var(--c-bg);border: 1px solid var(--c-border);border-radius: 6px;text-decoration: none;color: inherit;text-align: center}.vocab-card:hover{border-color: var(--color-accent,#14452a);background: rgba(20,69,42,0.04)}.vocab-form{font-weight: 500;font-size: 16px}.vocab-reading{font-size: 12px;color: var(--c-text-muted,#555)}.vocab-gloss{font-size: 13px}.vocab-coverage-badge{display: inline-block;margin-left: 8px;padding: 1px 8px;border-radius: 999px;font-size: 11px;font-variant-numeric: tabular-nums;vertical-align: middle}.vocab-coverage-badge.tone-good{background: var(--color-accent,#14452a);color: var(--color-on-accent,#fff)}.vocab-coverage-badge.tone-partial{background: rgba(20,69,42,0.12);color: var(--color-text);border: 0.5px solid var(--color-accent,#14452a)}.vocab-coverage-badge.tone-none{background: transparent;color: var(--color-text-muted);border: 0.5px dashed var(--color-line)}.provenance-badge{display: inline-block;padding: 1px 8px;border-radius: 999px;font-size: 11px;font-weight: var(--weight-medium,500);vertical-align: middle}.provenance-badge.badge-native{background: var(--color-accent,#14452a);color: var(--color-on-accent,#fff)}.provenance-badge.badge-llm{background: rgba(20,69,42,0.10);color: var(--color-text);border: 0.5px solid var(--color-line)}.provenance-badge.badge-auto{background: transparent;color: var(--color-text-muted);border: 0.5px dashed var(--color-line)}.provenance-banner{margin: 8px 0}.vocab-pitch{font-family: ui-monospace,'SFMono-Regular',Menlo,monospace;font-size: 14px;letter-spacing: 0.06em;background: rgba(20,69,42,0.08);padding: 1px 6px;border-radius: 4px}.vocab-register-tag{display: inline-block;font-size: 12px;padding: 1px 8px;border-radius: 999px;background: color-mix(in srgb,var(--color-accent,#14452a) 10%,transparent);border: 0.5px solid var(--color-accent,#14452a);color: var(--color-text);text-transform: capitalize}.vocab-false-friend{margin-top: 6px;padding: 8px 12px;background: rgba(220,100,0,0.06);border-left: 3px solid rgba(220,100,0,0.6);border-radius: 0 6px 6px 0}.keigo-chain{margin: 16px 0;padding: 12px 14px;background: color-mix(in srgb,var(--color-accent,#14452a) 4%,transparent);border-left: 3px solid var(--color-accent,#14452a);border-radius: 0 6px 6px 0}.keigo-chain-table{width: 100%;border-collapse: collapse;margin: 8px 0}.keigo-chain-table th,.keigo-chain-table td{padding: 8px 10px;border: 1px solid var(--c-border);vertical-align: top;text-align: left}.keigo-chain-table th{font-size: 12px;font-weight: 500;color: var(--color-text-muted,#555);background: rgba(0,0,0,0.02)}.keigo-chain-table .keigo-cell-current{background: color-mix(in srgb,var(--color-accent,#14452a) 8%,transparent)}.keigo-chain-table .keigo-form{display: block;font-size: 16px;font-weight: 500}.keigo-chain-table .keigo-reading{display: block;font-size: 12px;margin: 2px 0 4px 0}.keigo-chain-table .keigo-gloss{display: block;font-size: 13px;color: var(--color-text)}@media (max-width: 480px){.keigo-chain-table thead{display: none}.keigo-chain-table,.keigo-chain-table tbody,.keigo-chain-table tr{display: block}.keigo-chain-table td{display: block;margin-bottom: 4px}.keigo-chain-table td::before{content: attr(data-label);display: block;font-size: 11px;color: var(--color-text-muted,#555);font-weight: 500;margin-bottom: 2px}}.reading-cultural-context{margin: 12px 0;padding: 10px 14px;background: color-mix(in srgb,var(--color-accent,#14452a) 4%,transparent);border-left: 3px solid var(--color-accent,#14452a);border-radius: 0 6px 6px 0}.reading-cultural-context p{margin: 0}.vocab-g1-exception{display: inline-block;font-size: 11px;padding: 1px 6px;margin-left: 6px;border-radius: 4px;background: color-mix(in srgb,#c47a1f 10%,transparent);border: 0.5px solid color-mix(in srgb,#c47a1f 60%,transparent);color: var(--color-text);cursor: help}.kanji-mnemonic-block{margin-top: 16px;padding: 12px 16px;background: color-mix(in srgb,var(--color-accent,#14452a) 4%,transparent);border-radius: 8px}.kanji-mnemonic-block .kanji-radical-glyph{font-size: 22px;margin: 0 6px;vertical-align: middle}.kanji-mnemonic-block .kanji-decomposition{font-size: 20px;margin-left: 6px;letter-spacing: 0.05em}.kanji-mnemonic-block .kanji-mnemonic{margin: 8px 0 0;font-style: italic}.kanji-stroke-mistakes{margin-top: 12px;padding: 10px 14px;background: color-mix(in srgb,#c26b30 5%,transparent);border-left: 3px solid color-mix(in srgb,#c26b30 50%,transparent);border-radius: 4px}.kanji-stroke-mistakes h3{margin: 0 0 4px;font-size: 13px;letter-spacing: 0.04em;text-transform: uppercase;color: var(--color-text-muted,#555)}.kanji-stroke-mistake-note{margin: 0;font-size: 14px;line-height: 1.65;color: var(--color-text)}.reading-grammar-footnotes{margin: 16px 0;padding: 10px 14px;background: color-mix(in srgb,var(--color-accent,#14452a) 3%,transparent);border: 1px solid color-mix(in srgb,var(--color-accent,#14452a) 12%,transparent);border-radius: 6px}.reading-grammar-footnotes summary{cursor: pointer;font-size: 14px;padding: 4px 0;color: var(--color-text)}.reading-grammar-footnotes summary:hover{color: var(--color-accent,#14452a)}.reading-footnote-groups{list-style: none;padding: 8px 0 0;margin: 0;display: flex;flex-direction: column;gap: 12px}.reading-footnote-group{margin: 0;padding: 0}.reading-footnote-sentence{margin: 0 0 4px;font-size: 14px;line-height: 1.5}.reading-footnote-list{list-style: none;padding: 0 0 0 12px;margin: 0;display: flex;flex-direction: column;gap: 4px;border-left: 2px solid color-mix(in srgb,var(--color-accent,#14452a) 25%,transparent)}.reading-footnote-item{display: flex;gap: 8px;align-items: baseline;padding-left: 8px;font-size: 13px;line-height: 1.5}.reading-footnote-pid{flex-shrink: 0;font-family: 'Courier New',monospace;font-size: 11px;font-weight: 500;padding: 1px 6px;border-radius: 3px;background: var(--color-bg,#fff);border: 1px solid var(--color-line,#d6d6d0);color: var(--color-accent,#14452a);text-decoration: none;white-space: nowrap}.reading-footnote-pid:hover{background: var(--color-accent,#14452a);color: #fff}.reading-footnote-note{flex: 1;color: var(--color-text-muted,#555)}.kanji-confusable-block{margin-top: 16px}.kanji-confusable-grid{display: flex;flex-wrap: wrap;gap: 8px;margin-top: 6px}.kanji-confusable-card{display: inline-flex;align-items: center;justify-content: center;min-width: 56px;min-height: 56px;font-size: 28px;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: 8px;text-decoration: none;color: inherit}.kanji-confusable-card:hover{border-color: var(--color-accent,#14452a);background: rgba(20,69,42,0.04)}.l1-note{margin-top: 12px;padding: 10px 14px;border-left: 3px solid color-mix(in srgb,var(--color-accent,#14452a) 80%,transparent);background: color-mix(in srgb,var(--color-accent,#14452a) 6%,transparent);border-radius: 0 6px 6px 0}.l1-note .section-title{margin-top: 0}.listening-transcript{margin: 8px 0 0;padding: 8px 0 4px;border-top: 1px solid var(--c-border,var(--color-line))}.transcript-line{padding: 6px 8px;margin: 2px 0;border-radius: 6px;line-height: 1.55}.transcript-line-seekable{cursor: pointer;transition: background-color 120ms ease}.transcript-line-seekable:hover{background: rgba(20,69,42,0.06)}.transcript-line-active{background: rgba(20,69,42,0.18);border-left: 3px solid var(--color-accent,#14452a);padding-left: 5px}@media (prefers-reduced-motion: reduce){.transcript-line-seekable{transition: none}}.paper-timer-wrap{font-variant-numeric: tabular-nums}.paper-timer{font-family: ui-monospace,'SFMono-Regular',Menlo,monospace;font-weight: var(--weight-medium,500);padding: 1px 6px;border-radius: 4px;background: rgba(20,69,42,0.08)}.paper-timer.timer-low{background: rgba(220,100,0,0.15);color: #c0530c}.paper-timer.timer-expired{background: #c0530c;color: #fff}.md-doc-page{max-width: 760px;margin: 0 auto;padding: 16px 20px 40px;line-height: 1.6}.md-doc-page h1{margin-top: 8px;font-size: 28px}.md-doc-page h2{margin-top: 28px;font-size: 22px}.md-doc-page h3{margin-top: 20px;font-size: 18px}.md-doc-page p{margin: 10px 0}.md-doc-page ul,.md-doc-page ol{padding-left: 22px;margin: 10px 0}.md-doc-page li{margin: 4px 0}.md-doc-page blockquote{border-left: 3px solid var(--color-accent,#14452a);padding: 4px 12px;margin: 12px 0;background: rgba(20,69,42,0.04)}.md-doc-page pre{background: rgba(0,0,0,0.04);padding: 10px 12px;border-radius: 6px;overflow-x: auto;font-size: 13px}.md-doc-page code{font-family: ui-monospace,'SFMono-Regular',Menlo,monospace;font-size: 0.92em;background: rgba(0,0,0,0.04);padding: 1px 4px;border-radius: 3px}.md-doc-page pre code{background: transparent;padding: 0}.md-doc-page hr{border: 0;border-top: 1px solid var(--c-border,var(--color-line));margin: 28px 0}.md-doc-source{margin-top: 32px;padding-top: 12px;border-top: 1px solid var(--c-border,var(--color-line))}.vocab-detail{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 20px 24px}.vocab-header{padding-bottom: 12px;border-bottom: 1px solid var(--c-border)}.vocab-form-big{font-size: 48px;line-height: 1.1;margin: 6px 0}.vocab-reading-big{font-size: 22px;color: var(--c-text-muted,#555);margin: 0 0 6px}.vocab-gloss-big{font-size: 18px;margin: 0 0 24px;color: var(--c-muted);text-wrap: balance}.vocab-homonym-badge{display: flex;flex-wrap: wrap;align-items: center;gap: 10px;padding: 8px 12px;margin: 0 0 18px;background: #fff7e0;border-left: 3px solid #d4a82a;border-radius: 0 4px 4px 0;font-size: 14px;color: #5a4400}.vocab-homonym-badge-label{font-weight: 600;color: #7a5a00;white-space: nowrap}.vocab-homonym-chip-also{font-size: 13px;color: #5a4400}.vocab-homonym-chip-link{display: inline-block;margin-left: 4px;padding: 2px 8px;background: #fff;border: 1px solid #d4a82a;border-radius: 3px;text-decoration: none;color: var(--c-primary,#14452a);font-weight: 500}.vocab-homonym-chip-link:hover{background: #fff3c4}.vocab-homonym-chip-same{font-size: 13px;color: #5a4400}@media (prefers-color-scheme: dark){.vocab-homonym-badge{background: #3a2f1e;border-left-color: #d4a82a;color: #f0d496}.vocab-homonym-badge-label{color: #f0c890}.vocab-homonym-chip-also,.vocab-homonym-chip-same{color: #d8c490}.vocab-homonym-chip-link{background: #2a2316;border-color: #b08c20;color: #f0e0a0}.vocab-homonym-chip-link:hover{background: #3a3020}}.vocab-detail .example-list li{padding: 8px 0;border-bottom: 1px solid var(--c-border);list-style: decimal inside}.vocab-detail .example-ja{font-size: 17px;margin: 4px 0}.vocab-nav{display: flex;justify-content: space-between;margin-top: 20px;padding-top: 14px;border-top: 1px solid var(--c-border)}.kanji-card-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(120px,1fr));gap: 10px;margin: 12px 0}.kanji-card{display: flex;gap: 12px;align-items: center;justify-content: center;padding: 14px 12px;min-height: 72px;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--radius-lg);text-decoration: none;color: inherit}.kanji-card:hover{border-color: var(--color-accent,#14452a)}.kanji-card-glyph{font-size: 42px;line-height: 1;flex-shrink: 0}.kanji-card-meaning{font-size: 13px;flex: 1}.kanji-card-readings{font-size: 11px;color: var(--c-text-muted,#555);text-align: right;flex-shrink: 0;line-height: 1.3}.hub-group-title{font-size: 13px;text-transform: uppercase;letter-spacing: 0.06em;color: var(--c-muted);margin: 24px 0 8px;font-weight: 500}.hub-group-title:first-of-type{margin-top: 8px}.learn-hub{display: grid;gap: 16px;margin: 0 0 8px}.learn-hub-3{grid-template-columns: repeat(auto-fit,minmax(240px,1fr))}.learn-hub-2{grid-template-columns: repeat(auto-fit,minmax(280px,1fr))}@media (min-width: 900px){.learn-hub-3{grid-template-columns: repeat(3,1fr)}.learn-hub-2{grid-template-columns: repeat(2,1fr)}}.hub-card{display: flex;flex-direction: column;gap: var(--space-2);text-decoration: none;color: inherit;background: var(--color-surface);border: 0.5px solid var(--color-line);border-radius: var(--radius-lg);padding: var(--space-5);min-height: 150px;position: relative;transition: background var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing)}.hub-card:hover{background: var(--color-surface-alt);border-color: var(--color-line-strong)}.hub-card:focus-visible{outline: 2px solid var(--color-accent);outline-offset: 2px}.hub-card h3{margin: 0;font-size: var(--text-md);font-weight: var(--weight-medium);letter-spacing: var(--tracking-tight);color: var(--color-text)}.hub-card p{margin: 0;font-size: var(--text-sm);color: var(--color-text-muted);line-height: var(--leading-base)}.hub-cta{font-size: var(--text-sm);color: var(--color-text);font-weight: var(--weight-medium);margin-top: auto}.hub-card:hover .hub-cta{text-decoration: underline}.vocab-toc .vocab-section{margin: 12px 0;padding: 14px 18px;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r)}.vocab-toc .vocab-section > summary{cursor: pointer;list-style: none;padding-right: 24px;position: relative;user-select: none;min-height: 32px}.vocab-toc .vocab-section > summary::-webkit-details-marker{display: none}.vocab-toc .vocab-section > summary::after{content: "+";position: absolute;right: 0;top: 50%;transform: translateY(-50%);font-size: 20px;color: var(--color-text-muted,var(--c-text-muted,#666))}.vocab-toc .vocab-section[open] > summary::after{content: "−"}.vocab-toc .vocab-section[open] > summary{margin-bottom: 12px}.vocab-table{width: 100%;border-collapse: collapse;margin-top: 8px}.vocab-table th,.vocab-table td{text-align: left;padding: 6px 10px;border-bottom: 1px solid var(--c-border);font-size: 14px}.vocab-table th{font-weight: 500;background: var(--c-bg)}.home-syllabus{padding: var(--space-5) 0 var(--space-8);max-width: var(--container-wide);margin: 0 auto}.home-syllabus .resume-strip{display: block;font-size: var(--text-sm);color: var(--color-text);background: var(--color-surface);border: 0.5px solid var(--color-line);border-radius: var(--radius-md);padding: var(--space-3) var(--space-4);margin: 0 0 var(--space-5);text-decoration: none;transition: background var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing)}.home-syllabus .resume-strip:hover{background: var(--color-surface-alt);border-color: var(--color-line-strong)}.syllabus-note{font-size: var(--text-sm);color: var(--color-text-muted);margin: 0;max-width: 680px}.syllabus-daily-status{margin-top: var(--space-3);display: inline-flex;flex-wrap: wrap;align-items: center;gap: var(--space-4);font-size: var(--text-sm);color: var(--color-text-muted);font-variant-numeric: tabular-nums}.syllabus-daily-streak{color: var(--color-text)}.syllabus-daily-today{display: inline-flex;align-items: center;gap: var(--space-1)}.syllabus-daily-today.is-met{color: var(--color-accent)}.syllabus-daily-mark{display: inline-flex;align-items: center;justify-content: center;width: 1.1em;height: 1.1em;font-weight: var(--weight-medium,500)}.syllabus-daily-progress{display: inline-flex;align-items: center;gap: var(--space-2);text-decoration: none;color: var(--color-text)}.syllabus-daily-progress:hover .syllabus-daily-progress-label{text-decoration: underline}.syllabus-daily-progress-bar{display: inline-block;width: 80px;height: 4px;background: var(--color-line);border-radius: 2px;overflow: hidden}.syllabus-daily-progress-fill{display: block;height: 100%;background: var(--color-accent);transition: width 220ms ease-out}.syllabus-daily-due{color: var(--color-accent);text-decoration: none;font-weight: var(--weight-medium,500)}.syllabus-daily-due:hover{text-decoration: underline}.syllabus-daily-due.is-empty{color: var(--color-text-muted);font-weight: var(--weight-regular,400)}.syllabus-forecast{margin-top: var(--space-6)}.forecast-bar-chart{list-style: none;margin: var(--space-3) 0 0;padding: 0;display: grid;grid-template-columns: repeat(7,1fr);gap: var(--space-2)}.forecast-bar{display: flex;flex-direction: column;align-items: center;gap: 4px;font-variant-numeric: tabular-nums}.forecast-bar-count{font-size: var(--text-sm);font-weight: var(--weight-medium,500);color: var(--color-text)}.forecast-bar-track{width: 100%;height: 64px;display: flex;align-items: flex-end;justify-content: center}.forecast-bar-fill{width: 60%;min-height: 4px;background: var(--color-accent);border-radius: 2px;display: block}.missed-page{max-width: 720px}.missed-day-group{margin-top: var(--space-4)}.missed-list{list-style: none;margin: 0;padding: 0}.missed-row{padding: var(--space-2) 0;border-bottom: 1px solid var(--color-line);display: grid;grid-template-columns: 120px 1fr;gap: var(--space-2);align-items: start}.missed-row-meta{display: flex;flex-direction: column;gap: 2px}.missed-row-pattern{grid-column: 2}.missed-row-pattern a{font-weight: var(--weight-medium,500)}.missed-row-answers{grid-column: 2}.missed-row-answers p{margin: 2px 0}.missed-wrong{color: var(--color-incorrect,#b3261e)}.missed-right{color: var(--color-correct,#14452a)}.missed-actions{margin-top: var(--space-5)}.sitting-picker{max-width: 720px}.sitting-paper-grid{display: grid;grid-template-columns: repeat(auto-fit,minmax(180px,1fr));gap: var(--space-3);margin-top: var(--space-4)}.sitting-paper-card{display: block;text-decoration: none;color: var(--color-text);border: 0.5px solid var(--color-line);border-radius: 6px;padding: var(--space-3);transition: background 180ms ease-out}.sitting-paper-card:hover{background: var(--color-surface-alt)}.sitting-paper-card .card-index{font-size: var(--text-xl);color: var(--color-text-muted)}.sitting-section-header{display: flex;align-items: baseline;gap: var(--space-3);flex-wrap: wrap;margin-bottom: var(--space-4)}.sitting-section-label{font-size: var(--text-lg);color: var(--color-accent);font-weight: var(--weight-medium,500)}.sitting-timer-chip{margin-left: auto;padding: 4px 10px;border: 1px solid var(--color-line);border-radius: 999px;font-variant-numeric: tabular-nums;font-size: var(--text-sm)}.sitting-timer-chip.danger{color: var(--color-incorrect,#b3261e);border-color: currentColor}.mondai-pace-chip{display: inline-block;margin-left: 6px;padding: 1px 8px;border: 1px solid var(--color-line);border-radius: 999px;font-variant-numeric: tabular-nums;font-size: 0.75rem;color: var(--color-text-muted);background: var(--color-surface-soft,transparent);cursor: help;vertical-align: baseline}.sitting-form{display: grid;gap: var(--space-4)}.sitting-question{border: 0.5px solid var(--color-line);border-radius: 6px;padding: var(--space-3);margin: 0}.sitting-question legend{padding: 0 var(--space-2);color: var(--color-text-muted);font-size: var(--text-sm)}.sitting-stem{margin: var(--space-2) 0}.sitting-prompt{font-weight: var(--weight-medium,500);margin: var(--space-2) 0}.sitting-script{color: var(--color-text-muted);margin: var(--space-2) 0}.sitting-choices{display: grid;gap: var(--space-1)}.sitting-choices label{display: flex;gap: var(--space-2);align-items: center;padding: 6px;border-radius: 4px;cursor: pointer}.sitting-choices label:hover{background: var(--color-surface-alt)}.sitting-actions{margin-top: var(--space-4)}.sitting-break{max-width: 480px;text-align: center;padding: var(--space-6) 0}.sitting-break-actions{margin-top: var(--space-4)}.sitting-result{max-width: 640px}.exam-day-page{max-width: 740px}.exam-day-callout{margin: 20px 0;padding: 16px 20px;border: 1px solid var(--color-line);border-radius: var(--radius-md,8px);background: var(--color-surface-soft,transparent)}.exam-day-callout h3{margin-top: 0}.exam-day-list{padding-left: 22px}.exam-day-list li{margin: 6px 0}.exam-day-checklist{list-style: none;padding-left: 4px;margin: 0}.exam-day-checklist li{margin: 8px 0;padding: 6px 8px;border-radius: 4px}.exam-day-checklist label{display: flex;align-items: center;gap: 8px;cursor: pointer}.exam-day-checklist input[type="checkbox"]:checked + *{text-decoration: line-through;color: var(--color-text-muted)}.exam-day-checklist-section{background: rgba(20,69,42,0.04);border-color: var(--PRIMARY_DARK,#14452a)}@media print{.exam-day-page{max-width: 100%}.exam-day-page .back-link,.exam-day-page p:last-of-type{display: none}.exam-day-checklist input[type="checkbox"]{outline: 1px solid currentColor}}.sitting-strategy-btn{margin-left: var(--space-2);padding: 4px 12px;border: 1px solid var(--color-line);border-radius: 999px;background: var(--color-surface,transparent);color: var(--color-text);font-size: var(--text-sm);cursor: pointer}.sitting-strategy-btn:hover{background: var(--color-surface-soft,transparent)}.strategy-modal-backdrop{position: fixed;inset: 0;background: rgba(0,0,0,0.5);display: flex;align-items: center;justify-content: center;z-index: 1000;padding: 16px}.strategy-modal-dialog{background: var(--color-surface,#fff);color: var(--color-text);border-radius: 8px;max-width: 720px;width: 100%;max-height: 90vh;overflow-y: auto;padding: 24px;box-shadow: 0 12px 32px rgba(0,0,0,0.2)}.strategy-modal-header{display: flex;align-items: center;justify-content: space-between;margin-bottom: 16px;padding-bottom: 8px;border-bottom: 1px solid var(--color-line)}.strategy-modal-header h2{margin: 0;font-size: var(--text-lg,1.25rem)}.strategy-modal-close{background: none;border: 0;font-size: 1.75rem;line-height: 1;cursor: pointer;color: var(--color-text-muted);padding: 4px 12px}.strategy-modal-close:hover{color: var(--color-text)}.strategy-block{margin-top: 16px}.strategy-block h3{margin-bottom: 8px}.strategy-list{list-style: none;padding: 0;margin: 0;display: grid;gap: 12px}.strategy-item{padding: 12px 16px;border: 1px solid var(--color-line);border-radius: 6px;background: var(--color-surface-soft,transparent)}.strategy-item-head{display: flex;align-items: baseline;gap: 8px;flex-wrap: wrap}.strategy-item p{margin: 6px 0}.strategy-warning{color: var(--c-error,#b3261e);background: rgba(179,38,30,0.06);padding: 6px 10px;border-left: 3px solid currentColor;border-radius: 4px;margin-top: 8px}.strategy-module-chip{padding: 1px 8px;border: 1px solid var(--color-line);border-radius: 999px;font-size: 0.75rem;text-transform: uppercase;letter-spacing: 0.05em}.score-estimate{margin: 24px 0;padding: 16px;border: 1px solid var(--color-line);border-radius: var(--radius-md,8px);background: var(--color-surface-soft,transparent)}.score-estimate h3{margin-top: 0}.score-band-callout{margin-top: 16px;padding: 12px 16px;border-radius: 6px;border-left: 4px solid var(--color-line)}.score-band-fail{background: rgba(179,38,30,0.08);border-left-color: var(--color-incorrect,#b3261e)}.score-band-weak{background: rgba(255,140,0,0.08);border-left-color: #cc7a00}.score-band-borderline{background: rgba(255,193,7,0.10);border-left-color: #b08400}.score-band-pass{background: rgba(26,92,56,0.08);border-left-color: var(--c-success,#1a5c38)}.score-band-strong_pass{background: rgba(20,69,42,0.10);border-left-color: var(--PRIMARY_DARK,#14452a)}.audio-skin{display: inline-flex;flex-direction: column;gap: var(--space-1);border: 0.5px solid var(--color-line);border-radius: 6px;padding: var(--space-2);background: var(--color-surface,#fff);max-width: 100%}.audio-skin-native{position: absolute !important;width: 1px;height: 1px;overflow: hidden;clip: rect(0 0 0 0)}.audio-skin-controls{display: flex;align-items: center;gap: var(--space-2);flex-wrap: wrap;font-variant-numeric: tabular-nums}.audio-skin-btn{appearance: none;border: 0.5px solid var(--color-line);background: var(--color-surface,#fff);border-radius: 999px;padding: 4px 10px;cursor: pointer;font-size: var(--text-sm);min-height: 28px}.audio-skin-btn:hover{background: var(--color-surface-alt)}.audio-skin-play{font-size: var(--text-base);min-width: 36px}.audio-skin-time{color: var(--color-text-muted);font-size: var(--text-sm);margin-left: auto}.audio-skin-rates{display: inline-flex;gap: 4px}.audio-skin-rate{appearance: none;border: 0.5px solid var(--color-line);background: var(--color-surface,#fff);border-radius: 4px;padding: 2px 8px;cursor: pointer;font-size: var(--text-xs);min-height: 26px;font-variant-numeric: tabular-nums}.audio-skin-rate.active{background: var(--color-accent);color: var(--color-on-accent,#fff);border-color: var(--color-accent)}.footer-trust-strip{margin: 0 0 var(--space-2);padding: 6px 12px;font-size: var(--text-xs);color: var(--color-text);background: color-mix(in srgb,var(--color-accent,#14452a) 4%,transparent);border-top: 1px solid color-mix(in srgb,var(--color-accent,#14452a) 15%,transparent);border-bottom: 1px solid color-mix(in srgb,var(--color-accent,#14452a) 15%,transparent);text-align: center;font-weight: 500}.home-privacy-hero{margin: var(--space-3) 0 var(--space-4);padding: 10px 16px;font-size: var(--text-sm);color: var(--color-accent,#14452a);background: color-mix(in srgb,var(--color-accent,#14452a) 6%,transparent);border-left: 3px solid var(--color-accent,#14452a);border-radius: 4px;font-weight: 500;line-height: 1.5}.settings-verify-steps{margin: var(--space-2) 0 var(--space-3);padding-left: 1.5em;font-size: var(--text-sm);color: var(--color-text);line-height: 1.6}.settings-verify-steps li{margin-bottom: 4px}.trust-callout{margin: var(--space-3) 0;padding: 12px 16px;background: color-mix(in srgb,var(--color-accent,#14452a) 5%,transparent);border-left: 3px solid var(--color-accent,#14452a);border-radius: 0 6px 6px 0;font-size: var(--text-sm)}.trust-callout strong{display: block;margin-bottom: 4px;font-weight: 500;color: var(--color-accent)}.trust-callout p{margin: 0}.locale-auto-toast{position: fixed;bottom: 16px;right: 16px;max-width: 320px;background: var(--color-surface,#fff);border: 0.5px solid var(--color-line);border-radius: 6px;padding: var(--space-2) var(--space-3);font-size: var(--text-sm);display: flex;align-items: center;gap: var(--space-2);z-index: 1000;transition: opacity 200ms ease-out,transform 200ms ease-out}.locale-auto-toast.is-leaving{opacity: 0;transform: translateY(8px)}.locale-auto-toast-close{appearance: none;border: 0;background: transparent;font-size: var(--text-base);cursor: pointer;padding: 0 4px;margin-left: auto;color: var(--color-text-muted)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline: 2px solid var(--color-accent);outline-offset: 2px}.primary-nav a[aria-current="page"]{text-decoration-thickness: 2px}.syllabus-overview,.syllabus-study-order,.syllabus-progress,.syllabus-action{margin-top: var(--space-6)}.syllabus-grid{display: grid;grid-template-columns: repeat(3,1fr);gap: var(--space-4);margin-top: var(--space-4)}@media (max-width: 1023px){.syllabus-grid{grid-template-columns: repeat(2,1fr)}}@media (max-width: 599px){.syllabus-grid{grid-template-columns: 1fr}}.syllabus-card{display: flex;flex-direction: column;gap: var(--space-2);padding: var(--space-4) var(--space-5) var(--space-5);background: var(--color-surface);border: 0.5px solid var(--color-line);border-radius: var(--radius-md);text-decoration: none;color: var(--color-text);min-height: 200px;transition: background var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing),transform var(--motion-fast) var(--easing)}.syllabus-card:hover{background: var(--color-surface-alt);border-color: var(--color-line-strong)}.syllabus-card:focus-visible{outline: 2px solid var(--color-accent);outline-offset: 2px}.syllabus-card-index{font-size: var(--text-xs);font-weight: var(--weight-medium,500);letter-spacing: 0.08em;color: var(--color-text-muted);margin: 0;font-variant-numeric: tabular-nums}.syllabus-card-title{font-size: var(--text-md);font-weight: var(--weight-medium,500);color: var(--color-text);margin: 0;line-height: var(--leading-tight)}.syllabus-card-count{font-size: var(--text-sm);color: var(--color-text-muted);margin: 0;font-variant-numeric: tabular-nums}.syllabus-card-desc{font-size: var(--text-sm);color: var(--color-text);margin: 0;line-height: var(--leading-relaxed,1.55)}.syllabus-card-action{font-size: var(--text-sm);font-weight: var(--weight-medium,500);color: var(--color-accent);margin-top: auto;display: inline-flex;align-items: center;gap: var(--space-1)}.syllabus-card:hover .syllabus-card-action{color: var(--color-accent-hover)}.study-order-list{list-style: none;padding: 0;margin: var(--space-4) 0 0;display: grid;grid-template-columns: repeat(2,1fr);gap: var(--space-2) var(--space-5)}@media (max-width: 599px){.study-order-list{grid-template-columns: 1fr}}.study-order-item{border-bottom: 0.5px solid var(--color-line)}.study-order-link{display: flex;align-items: baseline;gap: var(--space-3);padding: var(--space-2) 0;font-size: var(--text-sm);color: var(--color-text);line-height: var(--leading-relaxed,1.55);text-decoration: none;transition: color var(--motion-fast) var(--easing)}.study-order-link:hover{color: var(--color-accent)}.study-order-link:hover .study-order-num{color: var(--color-accent)}.study-order-link:focus-visible{outline: 2px solid var(--color-accent);outline-offset: 2px;border-radius: var(--radius-sm)}.study-order-num{display: inline-block;min-width: 1.75em;font-variant-numeric: tabular-nums;font-weight: var(--weight-medium,500);color: var(--color-text-muted);letter-spacing: 0.04em;transition: color var(--motion-fast) var(--easing)}.study-order-text{flex: 1}.progress-list{list-style: none;padding: 0;margin: var(--space-4) 0 0;display: flex;flex-direction: column;gap: var(--space-2)}.progress-row{display: grid;grid-template-columns: 8.5em 1fr auto;align-items: center;gap: var(--space-4);padding: var(--space-2) 0;font-size: var(--text-sm)}@media (max-width: 599px){.progress-row{grid-template-columns: 1fr auto;grid-template-rows: auto auto}.progress-row .progress-bar{grid-column: 1 / -1}}.progress-label{color: var(--color-text);font-weight: var(--weight-medium,500)}.progress-bar{position: relative;display: block;height: 6px;background: var(--color-surface-alt);border-radius: var(--radius-pill);overflow: hidden}.progress-fill{display: block;height: 100%;background: var(--color-accent);border-radius: var(--radius-pill);transition: width var(--motion-base) var(--easing)}.progress-value{color: var(--color-text-muted);font-variant-numeric: tabular-nums;white-space: nowrap}.syllabus-action{margin-top: var(--space-6);padding: var(--space-5);background: var(--color-surface);border: 0.5px solid var(--color-line);border-radius: var(--radius-md);display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: var(--space-4)}.syllabus-action-prompt{margin: 0;font-size: var(--text-base);color: var(--color-text)}.syllabus-action-buttons{display: flex;flex-wrap: wrap;gap: var(--space-3)}.btn-action{display: inline-flex;align-items: center;justify-content: center;padding: var(--space-2) var(--space-5);font-size: var(--text-sm);font-weight: var(--weight-medium,500);text-decoration: none;border-radius: var(--radius-md);border: 0.5px solid transparent;min-height: 36px;transition: background var(--motion-fast) var(--easing),color var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing),transform var(--motion-fast) var(--easing),box-shadow var(--motion-fast) var(--easing)}.btn-action-primary{background: var(--color-accent);color: #fff;border-color: var(--color-accent)}.btn-action-primary:hover{background: var(--color-accent-hover);border-color: var(--color-accent-hover)}.btn-action-primary:active{}.btn-action-secondary{background: transparent;color: var(--color-text);border-color: var(--color-line-strong)}.btn-action-secondary:hover{background: var(--color-surface-alt);border-color: var(--color-text-muted)}.btn-action-secondary:active{}@media (prefers-reduced-motion: reduce){.btn-action-primary:hover,.btn-action-secondary:hover,.btn-action-primary:active,.btn-action-secondary:active{transform: none;box-shadow: none}}.app-header .icon-btn{display: inline-flex;align-items: center;justify-content: center;width: 32px;height: 32px;padding: 0;background: transparent;border: 0.5px solid transparent;border-radius: var(--radius-md);color: var(--color-text-on-header);cursor: pointer;transition: background var(--motion-fast) var(--easing),color var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing)}.app-header .icon-btn:hover{background: var(--color-surface);color: var(--color-text)}.app-header .icon-btn:focus-visible{outline: 2px solid var(--color-accent);outline-offset: 2px}.app-header .icon-btn .icon{width: 18px;height: 18px;display: block}.app-header .icon-btn .icon-btn-text{font-size: 12px;font-weight: var(--weight-semibold,600);letter-spacing: 0.04em;font-variant-numeric: tabular-nums;line-height: 1;color: inherit}@keyframes locale-toggle-pulse{0%,100%{box-shadow: 0 0 0 0 transparent}50%{box-shadow: 0 0 0 6px color-mix(in srgb,var(--color-accent,#14452a) 25%,transparent)}}.locale-toggle-pulse{animation: locale-toggle-pulse 1.2s ease-out 1}@media (prefers-reduced-motion: reduce){.locale-toggle-pulse{animation: none}}#fullscreen-toggle.is-fullscreen{color: var(--color-accent)}.changelog{max-width: var(--container-base);margin: var(--space-8) auto}.changelog h1{font-size: var(--text-2xl);font-weight: var(--weight-light);margin: 0 0 var(--space-6)}.changelog h2{font-size: var(--text-xl);font-weight: var(--weight-medium);margin: var(--space-8) 0 var(--space-3)}.changelog h3{font-size: var(--text-lg);margin: var(--space-6) 0 var(--space-2)}.changelog h4{font-size: var(--text-md);margin: var(--space-4) 0 var(--space-2)}.changelog p,.changelog li{font-size: var(--text-base);line-height: var(--leading-base)}.changelog ul{padding-left: var(--space-5)}.changelog hr{border: none;border-top: 0.5px solid var(--color-line);margin: var(--space-8) 0}.changelog code{font-family: ui-monospace,"SF Mono",Consolas,monospace;font-size: 0.95em;padding: 1px 4px;background: var(--color-surface);border: 0.5px solid var(--color-line);border-radius: var(--radius-sm)}.changelog pre{background: var(--color-surface);padding: var(--space-3);border-radius: var(--radius-md);overflow-x: auto}.changelog pre code{background: none;border: none;padding: 0}.home-cta{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 24px 28px;margin: 16px 0}.home-cta h2{margin: 0 0 8px}.home-cta-buttons{display: flex;flex-wrap: wrap;gap: 12px;margin-top: 14px}.home-cta-buttons .btn-primary,.home-cta-buttons .btn-secondary{text-decoration: none;padding: 10px 20px;min-height: 44px;display: inline-flex;align-items: center}.home-pillars{display: grid;grid-template-columns: repeat(auto-fit,minmax(220px,1fr));gap: var(--space-4);margin: var(--space-5) 0}.pillar-card{position: relative;background: var(--color-surface);border: 0.5px solid var(--color-line);border-radius: var(--radius-lg);padding: var(--space-5);padding-right: var(--space-10);text-decoration: none;color: inherit;display: block;min-height: 110px;cursor: pointer;transition: background var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing)}.pillar-card:hover{background: var(--color-surface-alt);border-color: var(--color-line-strong)}.pillar-card:focus-visible{outline: 2px solid var(--color-accent);outline-offset: 2px}.pillar-card h3{margin: 0 0 var(--space-2);font-size: var(--text-md);font-weight: var(--weight-medium);letter-spacing: var(--tracking-tight);color: var(--color-text)}.pillar-card p{margin: 0;font-size: var(--text-sm);color: var(--color-text-muted);line-height: var(--leading-base)}.pillar-card .card-index,.hub-card .card-index{color: var(--color-text-muted)}.pillar-arrow{position: absolute;right: var(--space-5);bottom: var(--space-5);color: var(--color-text-muted);font-size: var(--text-md);transition: color var(--motion-fast) var(--easing)}.pillar-card:hover .pillar-arrow{color: var(--color-text)}.home-recommend{display: flex;flex-wrap: wrap;align-items: baseline;gap: 8px 14px;background: var(--c-bg);border: 1px solid var(--c-border);border-left: 4px solid var(--color-accent,#14452a);border-radius: var(--r);padding: 10px 14px;margin: 16px 0;font-size: 14px}.home-recommend .rec-prompt{color: var(--c-text-muted,#555)}.home-recommend .rec-link{font-weight: 500;text-decoration: none}.home-recommend .rec-link:hover{text-decoration: underline}.home-recommend{flex-direction: column;align-items: stretch}.home-recommend-title{margin: 0;font-size: 13px;font-weight: 500;text-transform: uppercase;letter-spacing: 0.04em;color: var(--c-text-muted,#555)}.home-recommend-action{display: flex;flex-wrap: wrap;align-items: baseline;gap: 6px 12px;text-decoration: none;color: inherit;padding: 4px 0;min-height: 36px}.home-recommend-action:hover .home-recommend-label strong{text-decoration: underline}.home-recommend-label{font-size: 16px}.home-recommend-meta{font-variant-numeric: tabular-nums}.home-recommend-why{margin: 2px 0 0;line-height: 1.4}.home-resume{display: grid;grid-template-columns: repeat(auto-fit,minmax(260px,1fr));gap: 16px;margin: 16px 0}.resume-card{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 18px 20px}.resume-card h3{margin-top: 0}.resume-card .btn-primary,.resume-card .btn-secondary{text-decoration: none;padding: 8px 16px;display: inline-block;min-height: 44px;line-height: 28px}.home-streak{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 14px 18px;margin: 16px 0;display: flex;flex-wrap: wrap;align-items: center;gap: 16px}.streak-summary{display: flex;align-items: center;gap: 6px;font-weight: 500}.streak-num{font-size: 22px}.streak-label{font-weight: 400}.streak-heatmap{display: inline-flex;gap: 4px}.heat-cell{display: inline-block;width: 18px;height: 18px;border-radius: 3px;background: rgba(0,0,0,0.08);border: 1px solid rgba(0,0,0,0.04)}.heat-cell.studied{background: var(--color-accent,#14452a)}.home-footnote{margin-top: 12px}.secondary-nav input[type="search"]{flex: 0 0 auto;width: 180px;height: 32px;padding: 0 var(--space-3);font-size: var(--text-sm);background: var(--color-surface);border: 0.5px solid var(--color-line);border-radius: var(--radius-md);color: var(--color-text);transition: border-color var(--motion-fast) var(--easing),background var(--motion-fast) var(--easing)}.secondary-nav input[type="search"]:focus{outline: none;border-color: var(--color-line-strong);background: var(--color-bg)}.secondary-nav-link{color: var(--color-text-muted);text-decoration: none;font-size: var(--text-sm);padding: 0 var(--space-2);min-height: 32px;display: inline-flex;align-items: center;justify-content: center;border-radius: var(--radius-md);transition: color var(--motion-fast) var(--easing)}.secondary-nav-link:hover{color: var(--color-text)}.secondary-nav-link:focus-visible{outline: 2px solid var(--color-accent);outline-offset: 2px}.search-panel{position: absolute;z-index: 1050;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);max-height: 60vh;overflow: auto;padding: 8px 0}.search-group{padding: 4px 12px}.search-group h4{margin: 4px 0 6px;font-size: 12px;text-transform: uppercase;color: var(--c-text-muted,#555)}.search-group ul{list-style: none;margin: 0;padding: 0}.search-group li a{display: block;padding: 6px 8px;text-decoration: none;color: inherit;border-radius: 4px}.search-group li a:hover,.search-group li a.is-active{background: rgba(20,69,42,0.08)}.search-group li a.is-active{outline: 1px solid var(--color-accent);outline-offset: -1px}.search-empty{padding: 12px 16px}.search-status.visually-hidden{position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0,0,0,0);white-space: nowrap;border: 0}@media (max-width: 600px){.secondary-nav input[type="search"]{max-width: 100%}.home-resume,.home-pillars{grid-template-columns: 1fr}}.shortcuts-overlay{position: fixed;inset: 0;z-index: 1100;background: rgba(0,0,0,0.45);display: flex;align-items: center;justify-content: center;padding: 16px}.shortcuts-overlay[hidden]{display: none}.shortcuts-card{background: var(--c-surface);color: var(--c-text);border-radius: var(--r);padding: 20px 24px;max-width: 460px;width: 100%;max-height: 85vh;overflow: auto;position: relative}.shortcuts-close{position: absolute;top: 6px;right: 8px;background: none;border: none;font-size: 22px;cursor: pointer;min-width: 36px;min-height: 36px}.shortcuts-list{display: grid;grid-template-columns: auto 1fr;gap: 10px 16px;margin: 12px 0 0}.shortcuts-list dt{display: flex;gap: 4px;align-items: center}.shortcuts-list dd{margin: 0;align-self: center}.shortcuts-list kbd{display: inline-block;padding: 2px 8px;min-width: 22px;text-align: center;border: 1px solid var(--c-border);border-radius: 4px;background: var(--c-bg);font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size: 13px}.location-indicator{font-size: 12px;padding: 4px 16px;background: rgba(20,69,42,0.06);color: var(--c-text-muted,#555);border-bottom: 1px solid var(--c-border)}.location-indicator:empty{display: none}.settings-fieldset{border: 1px solid var(--c-border);border-radius: var(--r);padding: 12px 16px}.settings-fieldset legend{padding: 0 6px;font-weight: 500}.radio-row{display: flex;align-items: center;gap: 8px;padding: 4px 0;cursor: pointer}.furi-preview{margin-top: 10px;padding: 10px 12px;background: var(--c-bg);border-radius: 6px;border: 1px dashed var(--c-border);font-size: 16px}.kanji-glyph{cursor: pointer}.kanji-glyph:hover{text-decoration: underline dotted}ruby[data-glyph]{cursor: pointer}.kanji-popover{position: absolute;z-index: 1000;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 14px 18px;min-width: 240px;max-width: 320px}.kanji-popover-close{position: absolute;top: 4px;right: 6px;background: none;border: none;font-size: 20px;cursor: pointer;line-height: 1;padding: 4px 8px;min-width: 32px;min-height: 32px}.kanji-popover-glyph{font-size: 48px;line-height: 1;text-align: center;margin: 4px 0 8px}.kanji-popover-readings{display: grid;grid-template-columns: auto 1fr;gap: 4px 12px;margin: 8px 0;font-size: 14px}.kanji-popover-readings dt{font-weight: 500}.kanji-popover-readings dd{margin: 0}.kanji-popover-known{display: flex;align-items: center;gap: 8px;margin-top: 10px;cursor: pointer;padding: 6px 0}.kanji-popover-link{display: inline-block;margin-top: 8px;font-size: 14px}.reset-confirm-box{margin-top: 12px;padding: 14px 16px;border: 1px solid var(--c-error,#c33);border-radius: var(--r);background: rgba(204,51,51,0.04)}.reset-confirm-box code{background: rgba(0,0,0,0.06);padding: 1px 6px;border-radius: 3px}.reset-confirm-box input{display: block;margin: 8px 0;padding: 8px 10px;font-family: monospace;width: 100%;max-width: 260px}:root[data-reduce-motion="on"] *,:root[data-reduce-motion="on"] *::before,:root[data-reduce-motion="on"] *::after{animation-duration: 0.01ms !important;animation-iteration-count: 1 !important;transition-duration: 0.01ms !important;scroll-behavior: auto !important}.kanji-grid{list-style: none;padding: 0;margin: 12px 0;display: grid;grid-template-columns: repeat(auto-fill,minmax(60px,1fr));gap: 8px}.kanji-grid-cell{display: flex;align-items: center;justify-content: center;aspect-ratio: 1;font-size: 28px;text-decoration: none;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: 6px;min-width: 44px;min-height: 44px}.kanji-grid-cell:hover{background: rgba(20,69,42,0.08)}.kanji-detail{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 20px 24px}.kanji-glyph-row{}.kanji-glyph-big{font-size: 96px;line-height: 1;padding: 8px 24px;border: 1px solid var(--c-border);border-radius: var(--r);background: var(--c-bg)}.kanji-readings p{margin: 4px 0}.kanji-examples{margin-top: 24px}.kanji-examples h3{margin-bottom: 8px}.kanji-examples-table{width: 100%;border-collapse: collapse}.kanji-examples-table td{padding: 6px 12px 6px 0;border-bottom: 1px solid var(--c-border);vertical-align: baseline;font-size: 14px}.kanji-examples-table .ex-form{font-size: 18px;font-weight: 500;white-space: nowrap;min-width: 80px}.kanji-examples-table .ex-reading{color: var(--c-text-muted,#555);white-space: nowrap;min-width: 100px}.kanji-examples-table .ex-gloss{color: var(--c-text)}.kanji-sentences{margin-top: 24px}.kanji-sentences h3{margin-bottom: 8px}.kanji-sentences-list{list-style: none;margin: 0;padding: 0}.kanji-sentences-list li{padding: 8px 0;border-bottom: 1px solid var(--c-border)}.kanji-sentences-list li:last-child{border-bottom: none}.kanji-sentence-ja{margin: 0;font-size: 16px;line-height: 1.5}.kanji-sentence-en{margin: 2px 0 0}.kanji-stroke{margin-top: 24px}.kanji-stroke .stroke-svg{width: 100%;max-width: 320px;min-height: 200px;background: #fff;border: 1px solid var(--c-border);border-radius: var(--r);display: block}.kanji-stroke-credit{margin-top: 8px;font-size: 12px}.kanji-stroke-credit a{color: var(--color-accent,#14452a)}.kanji-nav{display: flex;justify-content: space-between;margin-top: 24px;padding-top: 16px;border-top: 1px solid var(--c-border)}.reading-nav{display: flex;justify-content: space-between;gap: var(--space-3,12px);margin-top: 24px;padding-top: 16px;border-top: 1px solid var(--c-border)}.reading-nav > a,.reading-nav > span{max-width: 48%;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}@media (min-width: 1100px) and (min-height: 640px){.kanji-detail{height: calc(100vh - 240px);min-height: 480px;display: grid;grid-template-columns: minmax(220px,280px) 1fr minmax(260px,320px);grid-template-rows: auto 1fr auto auto;grid-template-areas: "topbar topbar topbar" "glyph meta stroke" "glyph sentences stroke" "nav nav nav";column-gap: 24px;row-gap: 16px;padding: 16px 20px;overflow: hidden}.kanji-detail .srs-progress{grid-area: topbar;margin: 0}.kanji-detail .kanji-glyph-row{grid-area: glyph;display: flex;flex-direction: column;align-items: stretch;gap: 12px;margin: 0;padding: 0;overflow: auto;min-height: 0}.kanji-detail .kanji-glyph-cluster{display: flex;flex-direction: column;align-items: center;gap: 12px}.kanji-detail .kanji-glyph-big{font-size: clamp(72px,10vh,120px);padding: 4px 18px;margin: 0 auto}.kanji-detail .kanji-readings{text-align: center;width: 100%}.kanji-detail .kanji-readings p{margin: 2px 0;font-size: 13px}.kanji-detail .known-toggle{align-self: center;margin-top: auto}.kanji-detail .kanji-examples{grid-area: meta;margin: 0;overflow: auto;min-height: 0}.kanji-detail .kanji-examples h3{margin-top: 0;font-size: 15px}.kanji-detail .kanji-examples-table td{padding: 4px 8px;font-size: 13px}.kanji-detail .kanji-examples-table .ex-form{font-size: 16px}.kanji-detail .kanji-sentences{grid-area: sentences;margin: 0;overflow: auto;min-height: 0;max-height: 30vh}.kanji-detail .kanji-sentences h3{margin: 0 0 6px;font-size: 14px}.kanji-detail .kanji-sentence-ja{font-size: 14px}.kanji-detail .kanji-sentences-list li{padding: 4px 0}.kanji-detail .kanji-stroke{grid-area: stroke;margin: 0;display: flex;flex-direction: column;min-height: 0}.kanji-detail .kanji-stroke h3{margin: 0 0 8px;font-size: 15px}.kanji-detail .kanji-stroke .stroke-svg{width: 100%;max-width: none;flex: 1;min-height: 0;height: auto;aspect-ratio: 1 / 1;object-fit: contain}.kanji-detail .kanji-stroke-credit{margin-top: 4px;font-size: 11px}.kanji-detail .kanji-nav{grid-area: nav;margin: 0;padding-top: 8px}}body[data-route="levels"] .primary-nav,body[data-route="levels"] #search-input,body[data-route="n4"] .primary-nav,body[data-route="n4"] #search-input,body[data-route="n3"] .primary-nav,body[data-route="n3"] #search-input,body[data-route="n2"] .primary-nav,body[data-route="n2"] #search-input,body[data-route="n1"] .primary-nav,body[data-route="n1"] #search-input{display: none}.levels-page{max-width: var(--container-wide);margin: 0 auto;padding: var(--space-6) var(--space-5) var(--space-8)}.levels-header{margin-bottom: var(--space-6)}.levels-title{font-size: var(--text-2xl);font-weight: var(--weight-light);letter-spacing: var(--tracking-tight);line-height: var(--leading-tight);margin: 0 0 var(--space-3);color: var(--color-text)}.levels-subtitle{font-size: var(--text-base);color: var(--color-text);line-height: var(--leading-relaxed,1.55);margin: 0;max-width: 640px}.levels-grid{display: grid;grid-template-columns: repeat(auto-fit,minmax(260px,1fr));gap: var(--space-4);margin-top: var(--space-5)}.level-card{position: relative;display: flex;flex-direction: column;gap: var(--space-2);padding: var(--space-5);height: 220px;background: var(--color-surface);border: 0.5px solid var(--color-line);border-radius: var(--radius-md);text-decoration: none;color: var(--color-text);transition: background var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing)}.level-card:hover{background: var(--color-surface-alt);border-color: var(--color-line-strong)}.level-card:focus-visible{outline: 2px solid var(--color-accent);outline-offset: 2px}.level-card-code{display: block;font-size: var(--text-2xl);font-weight: var(--weight-light);letter-spacing: var(--tracking-tight);color: var(--color-text);line-height: 1}.level-card-label{font-size: var(--text-md);font-weight: var(--weight-medium,500);margin: var(--space-2) 0 0;color: var(--color-text)}.level-card-desc{font-size: var(--text-sm);color: var(--color-text-muted);line-height: var(--leading-relaxed,1.55);margin: 0;display: -webkit-box;-webkit-line-clamp: 4;-webkit-box-orient: vertical;overflow: hidden;max-height: 4lh}.level-card-arrow{position: absolute;right: var(--space-5);bottom: var(--space-4);font-size: var(--text-md);color: var(--color-text-muted);transition: color var(--motion-fast) var(--easing)}.level-card:hover .level-card-arrow{color: var(--color-text)}.level-card.is-disabled{opacity: 0.55;cursor: not-allowed;background: var(--color-surface)}.level-card.is-disabled:hover{background: var(--color-surface);border-color: var(--color-line)}.level-card.is-disabled .level-card-code,.level-card.is-disabled .level-card-label{color: var(--color-text-muted)}.level-card.is-disabled .level-card-desc{color: var(--color-text-faint)}.levels-foot{margin-top: var(--space-5);font-size: var(--text-sm);color: var(--color-text-muted)}.level-placeholder{max-width: 720px;margin: var(--space-6) auto;padding: 0 var(--space-5)}.level-placeholder-back{margin: 0 0 var(--space-4);font-size: var(--text-sm)}.level-placeholder-back a{color: var(--color-text-muted);text-decoration: none}.level-placeholder-back a:hover{color: var(--color-text)}.level-placeholder-title{font-size: var(--text-2xl);font-weight: var(--weight-light);letter-spacing: var(--tracking-tight);margin: 0 0 var(--space-2);color: var(--color-text)}.level-placeholder-label{font-size: var(--text-base);color: var(--color-text-muted);margin: 0 0 var(--space-5)}.level-placeholder-card{padding: var(--space-5);background: var(--color-surface);border: 0.5px solid var(--color-line);border-radius: var(--radius-md);margin-bottom: var(--space-5)}.level-placeholder-headline{font-size: var(--text-md);font-weight: var(--weight-medium,500);color: var(--color-text);margin: 0 0 var(--space-3)}.level-placeholder-card p{font-size: var(--text-sm);color: var(--color-text);line-height: var(--leading-relaxed,1.55);margin: 0 0 var(--space-3)}.level-placeholder-card p:last-child{margin-bottom: 0}.level-placeholder-foot{margin: var(--space-5) 0 0}.home-up-link{margin: 0 0 var(--space-3);font-size: var(--text-sm)}.home-up-link a{color: var(--color-text-muted);text-decoration: none}.home-up-link a:hover{color: var(--color-text)}.empty-state{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 32px 28px;text-align: center;margin: 24px 0}.empty-state strong{display: inline-block;margin-bottom: 6px}.empty-state p{margin: 8px 0}.empty-state-banner{background: rgba(20,69,42,0.04);border-left: 3px solid var(--color-accent,#14452a);padding: 12px 16px;margin: 16px 0;border-radius: 4px}.empty-state-banner p:first-child{margin-top: 0}.empty-state-banner p:last-child{margin-bottom: 0}.skeleton-wrap{display: flex;flex-direction: column;gap: 12px;padding: 8px 0}.skeleton{background: linear-gradient(90deg,rgba(0,0,0,0.05) 0%,rgba(0,0,0,0.09) 50%,rgba(0,0,0,0.05) 100%);background-size: 200% 100%;border-radius: 6px;animation: skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-title{height: 28px;width: 38%}.skeleton-tagline{height: 16px;width: 64%}.skeleton-card{height: 120px;width: 100%;border-radius: var(--r)}.skeleton-row{height: 18px;width: 100%}.skeleton-row:nth-child(odd){width: 92%}.skeleton-row:nth-child(even){width: 78%}.skeleton-ctas{display: flex;gap: 12px;margin-top: 4px}.skeleton-btn{height: 44px;width: 160px;border-radius: 6px}.skeleton-pillars{display: grid;grid-template-columns: 1fr 1fr;gap: 16px;margin-top: 8px}.skeleton-pillar{height: 110px;border-radius: var(--r)}.skeleton-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(60px,1fr));gap: 8px;margin-top: 8px}.skeleton-grid-cell{aspect-ratio: 1;border-radius: 6px}@keyframes skeleton-shimmer{0%{background-position: 200% 0}100%{background-position: -200% 0}}@media (prefers-reduced-motion: reduce){.skeleton{animation: none;background: rgba(0,0,0,0.06)}}@media (prefers-color-scheme: dark){.skeleton{background: linear-gradient(90deg,rgba(255,255,255,0.05) 0%,rgba(255,255,255,0.09) 50%,rgba(255,255,255,0.05) 100%);background-size: 200% 100%}}@media (max-width: 600px){.skeleton-pillars{grid-template-columns: 1fr}}.papers-index{background: var(--c-bg);padding: 8px 0 24px}.papers-index .page-lede{color: var(--c-muted);margin: 8px 0 24px;max-width: 640px;line-height: 1.6}.papers-foot-note{color: var(--c-muted);font-size: 12px;margin-top: 32px;padding-top: 16px;border-top: 1px solid var(--c-border)}.papers-foot-note code{font-size: 11px;background: var(--c-surface);padding: 2px 6px;border-radius: 3px}.paper-cat-grid{display: grid;grid-template-columns: repeat(2,1fr);gap: 16px;margin: 24px 0}@media (max-width: 720px){.paper-cat-grid{grid-template-columns: 1fr}}.paper-cat-card{display: flex;gap: 20px;align-items: flex-start;padding: 24px;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);text-decoration: none;color: var(--c-text);transition: border-color 180ms ease,background 180ms ease;min-height: 140px}.paper-cat-card:hover{border-color: var(--color-accent,#14452a);background: var(--c-bg)}.paper-cat-icon{flex: 0 0 auto;width: 56px;height: 56px;border-radius: 50%;border: 1px solid var(--c-border);display: flex;align-items: center;justify-content: center;background: var(--c-bg)}.paper-cat-letter{font-size: 28px;font-weight: 300;color: var(--color-accent,#14452a)}.paper-cat-meta{flex: 1 1 auto;min-width: 0}.paper-cat-meta h3{margin: 0 0 4px;font-size: 22px;font-weight: 400;color: var(--c-primary,var(--c-text))}.paper-cat-ja{margin-left: 8px;font-size: 14px;color: var(--c-muted);font-weight: 300}.paper-cat-desc{margin: 4px 0 12px;color: var(--c-muted);font-size: 14px;line-height: 1.5}.paper-cat-stats{display: flex;flex-wrap: wrap;gap: 8px;margin: 0;font-size: 12px;color: var(--c-muted)}.paper-stat-sep{opacity: 0.4}.paper-list-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(240px,1fr));gap: 12px;margin: 24px 0}.paper-card-row{position: relative;display: flex}.paper-card-row .paper-card{flex: 1}.paper-card-print{position: absolute;bottom: 8px;right: 12px;display: inline-flex;align-items: center;gap: 4px;padding: 4px 8px;font-size: 11px;font-weight: 500;color: var(--c-muted);border: 1px solid var(--c-border);border-radius: 4px;background: var(--c-bg,#fff);text-decoration: none;transition: color 120ms ease,border-color 120ms ease;min-height: 28px;z-index: 1}.paper-card-print:hover{color: var(--color-accent,#14452a);border-color: var(--color-accent,#14452a)}.paper-card-print-label{line-height: 1}.paper-card{display: flex;flex-direction: column;gap: 8px;padding: 16px 18px 36px;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);text-decoration: none;color: var(--c-text);transition: border-color 180ms ease;min-height: 100px;position: relative}.paper-card:hover{border-color: var(--color-accent,#14452a)}.paper-card-num{font-size: 17px;font-weight: 500;color: var(--c-primary,var(--c-text))}.paper-card-meta{display: flex;gap: 8px;flex-wrap: wrap;font-size: 12px;color: var(--c-muted)}.paper-q-count{font-weight: 500;color: var(--c-text)}.paper-source-range{font-family: monospace;font-size: 11px}.paper-badge{position: absolute;top: 12px;right: 12px;padding: 2px 8px;font-size: 11px;font-weight: 500;border-radius: 999px;letter-spacing: 0.05em}.paper-badge-new{color: var(--c-muted);background: var(--c-bg);border: 1px solid var(--c-border)}.paper-badge-done{color: var(--color-correct,#26703F);background: var(--color-correct-tint,#ECF4EE);border: 1px solid var(--color-correct,#26703F)}.paper-attempting{background: var(--c-bg);padding: 8px 0}.paper-progress-bar{display: flex;align-items: center;justify-content: space-between;padding: 12px 16px;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);margin-bottom: 24px}.paper-progress-info{display: flex;gap: 8px;font-size: 14px;color: var(--c-muted)}.paper-progress-current{font-size: 17px;font-weight: 500;color: var(--c-primary,var(--c-text))}.paper-progress-of{color: var(--c-muted)}.paper-progress-answered{color: var(--c-muted);font-size: 13px}.paper-quit{text-decoration: none;color: var(--c-muted);font-size: 13px;padding: 6px 12px;border: 1px solid var(--c-border);border-radius: 6px;background: var(--c-bg)}.paper-quit:hover{color: var(--color-incorrect,#B43A2A);border-color: var(--color-incorrect,#B43A2A)}.paper-passage{background: var(--c-surface);border: 1px solid var(--c-border);border-left: 3px solid var(--color-accent,#14452a);border-radius: var(--r);padding: 16px 18px;margin: 16px 0;font-size: 16px;line-height: 1.8;white-space: pre-line}.paper-passage-blockquote{margin: 0;border-left: 2px solid var(--c-border);padding-left: 12px}.paper-passage-line{margin: 4px 0}.paper-passage-table{border-collapse: collapse;margin: 8px 0;font-size: 15px;width: 100%}.paper-passage-table th,.paper-passage-table td{border: 1px solid var(--c-border);padding: 6px 10px;text-align: left;vertical-align: top}.paper-passage-table th{background: var(--c-surface-alt,rgba(0,0,0,0.04));font-weight: 600}.paper-question-stem{font-size: 18px;line-height: 1.8;margin: 24px 0 16px;padding: 16px 0}.paper-question-stem u{text-underline-offset: 4px;text-decoration-thickness: 2px}.paper-choices{display: flex;flex-direction: column;gap: 8px;margin: 16px 0;padding: 0}.paper-choice{display: flex;align-items: center;gap: 12px;padding: 14px 16px;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);cursor: pointer;transition: border-color 120ms ease,background 120ms ease;min-height: 52px}.paper-choice:hover{border-color: var(--color-accent,#14452a);background: var(--c-bg)}.paper-choice.selected{border-color: var(--color-accent,#14452a);background: var(--color-accent-tint,#EDF1EE)}.paper-choice input[type="radio"]{appearance: none;width: 20px;height: 20px;border: 2px solid var(--c-border);border-radius: 50%;margin: 0;flex: 0 0 auto;position: relative;cursor: pointer}.paper-choice input[type="radio"]:checked{border-color: var(--color-accent,#14452a)}.paper-choice input[type="radio"]:checked::after{content: '';position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 10px;height: 10px;border-radius: 50%;background: var(--color-accent,#14452a)}.paper-choice-letter{flex: 0 0 24px;font-weight: 500;color: var(--c-muted);font-size: 14px}.paper-choice.selected .paper-choice-letter{color: var(--color-accent,#14452a)}.paper-choice-text{flex: 1 1 auto;font-size: 16px;line-height: 1.5}.paper-controls{display: flex;justify-content: space-between;margin-top: 32px;padding-top: 16px;border-top: 1px solid var(--c-border);gap: 16px;align-items: flex-end}.paper-submit-cluster{display: flex;flex-direction: column;align-items: flex-end;gap: 6px}.paper-submit-hint{margin: 0;font-size: 13px;color: var(--c-warning,#b45309);text-align: right}.paper-submit-hint strong{font-weight: 500}.check-answer-hint{margin: 8px 0 12px;font-size: 13px;color: var(--c-muted);text-align: center}.settings-saved-toast{position: fixed;bottom: calc(24px + env(safe-area-inset-bottom,0px));left: 50%;transform: translateX(-50%) translateY(8px);z-index: 1200;padding: 10px 18px;background: var(--c-primary-dark,#14452a);color: #fff;font-size: 13px;font-weight: 500;border-radius: var(--radius-md);border: 1px solid rgba(0,0,0,0.08);pointer-events: none;opacity: 0;transition: opacity 180ms ease,transform 180ms ease}.settings-saved-toast.is-visible{opacity: 1;transform: translateX(-50%) translateY(0)}@media (prefers-reduced-motion: reduce){.settings-saved-toast{transition: opacity 0ms,transform 0ms}}.paper-results-summary{text-align: center;padding: 32px 16px;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);margin-bottom: 24px}.paper-results-summary h2{margin: 0 0 16px;font-weight: 400}.paper-score-display{display: flex;flex-direction: column;align-items: center;gap: 4px}.paper-score-big{font-size: 64px;font-weight: 300;line-height: 1;color: var(--color-accent,#14452a)}.paper-score-of{font-size: 28px;color: var(--c-muted);font-weight: 300}.paper-score-pct{font-size: 18px;color: var(--c-muted)}.paper-score-verdict{font-size: 16px;font-weight: 500;margin-top: 8px;padding: 4px 12px;border-radius: 999px;background: var(--color-accent-tint,#EDF1EE);color: var(--color-accent,#14452a)}.paper-results-actions{display: flex;gap: 12px;flex-wrap: wrap;margin: 24px 0}.paper-results-actions .btn-primary,.paper-results-actions .btn-secondary{text-decoration: none;padding: 10px 20px;border-radius: 6px;font-size: 14px;min-height: 44px;display: inline-flex;align-items: center}.paper-review{margin-top: 32px}.paper-review h3{font-weight: 400;margin-bottom: 16px}.paper-review-list{list-style: none;padding: 0;margin: 0;display: flex;flex-direction: column;gap: 16px}.paper-review-item{background: var(--c-surface);border: 1px solid var(--c-border);border-radius: var(--r);padding: 16px 18px;border-left: 3px solid transparent}.review-right{border-left-color: var(--color-correct,#26703F)}.review-wrong{border-left-color: var(--color-incorrect,#B43A2A)}.paper-review-head{display: flex;gap: 12px;align-items: center;margin-bottom: 8px;font-size: 13px}.paper-review-num{font-weight: 500}.paper-review-status{font-size: 18px;font-weight: 500}.review-right .paper-review-status{color: var(--color-correct,#26703F)}.review-wrong .paper-review-status{color: var(--color-incorrect,#B43A2A)}.paper-review-source{margin-left: auto;font-family: monospace;font-size: 11px}.paper-review-stem{font-size: 15px;line-height: 1.7;margin: 8px 0}.paper-review-choices{list-style: decimal;padding-left: 24px;margin: 12px 0;font-size: 14px}.paper-review-choices li{padding: 2px 4px}.choice-correct{color: var(--color-correct,#26703F);font-weight: 500}.choice-correct::after{content: ' ← correct';font-size: 12px;font-weight: 400}.choice-chosen-wrong{color: var(--color-incorrect,#B43A2A);text-decoration: line-through}.choice-chosen-wrong::after{content: ' ← your answer';font-size: 12px;font-weight: 400;text-decoration: none}.paper-review-rationale{margin: 12px 0 0;font-size: 13px;color: var(--c-muted);font-style: italic;padding: 8px 12px;background: var(--c-bg);border-radius: 4px}@media (max-width: 600px){.paper-cat-card{padding: 16px;gap: 12px}.paper-cat-icon{width: 44px;height: 44px}.paper-cat-letter{font-size: 22px}.paper-cat-meta h3{font-size: 18px}.paper-question-stem{font-size: 16px}.paper-score-big{font-size: 48px}}html[data-protect="on"],html[data-protect="on"] body{-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;-webkit-touch-callout: none;-webkit-tap-highlight-color: transparent}html[data-protect="on"] input,html[data-protect="on"] textarea,html[data-protect="on"] [contenteditable="true"],html[data-protect="on"] .allow-select,html[data-protect="on"] .allow-select *{-webkit-user-select: text;-moz-user-select: text;-ms-user-select: text;user-select: text}html[data-protect="on"] ::selection{background: transparent;color: inherit}html[data-protect="on"] ::-moz-selection{background: transparent;color: inherit}html[data-protect="on"] img,html[data-protect="on"] svg,html[data-protect="on"] ruby,html[data-protect="on"] rt{-webkit-user-drag: none;user-drag: none;pointer-events: auto}html[data-protect="on"][data-blur="true"] body{filter: blur(18px) saturate(0.4);pointer-events: none}html[data-protect="on"][data-blur="true"] body::before{content: "コンテンツは ほごされて います";position: fixed;inset: 0;display: flex;align-items: center;justify-content: center;background: rgba(255,255,255,0.92);font-family: "Noto Sans JP",sans-serif;font-size: 24px;color: #333;z-index: 99999;filter: none}@media print{html[data-protect="on"] body:not([data-route="print"]) *{visibility: hidden !important}html[data-protect="on"] body:not([data-route="print"])::before{content: "Printing is disabled. The content of this site is digital-only.";visibility: visible !important;display: block;padding: 40px;font-family: sans-serif}}.line-clamp,.vocab-card .vocab-gloss,.kanji-card .kanji-card-meaning,.grammar-card .grammar-gloss,.hub-card p,.syllabus-card .syllabus-card-desc{display: -webkit-box;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis}.vocab-card{height: 96px;overflow: hidden}.vocab-card .vocab-gloss{-webkit-line-clamp: 2}.kanji-card{height: 76px;overflow: hidden}.kanji-card .kanji-card-meaning{-webkit-line-clamp: 2}.grammar-card{height: 76px;overflow: hidden}.grammar-card .grammar-gloss{-webkit-line-clamp: 2}.hub-card{height: 200px}.hub-card p{-webkit-line-clamp: 3;max-height: 3lh}.syllabus-card{height: 220px}.syllabus-card .syllabus-card-desc{-webkit-line-clamp: 4;max-height: 4lh}.feedback-page{max-width: 720px;margin: var(--space-6) auto;padding: 0 var(--space-5)}.feedback-header{margin-bottom: var(--space-6)}.feedback-header h2{margin: 0 0 var(--space-3)}.feedback-intro{font-size: var(--text-base);color: var(--color-text);line-height: var(--leading-relaxed,1.55);margin: 0;max-width: 640px}.feedback-form{display: flex;flex-direction: column;gap: var(--space-5)}.feedback-field{display: flex;flex-direction: column;gap: var(--space-2)}.feedback-label{font-size: var(--text-sm);font-weight: var(--weight-medium,500);color: var(--color-text)}.feedback-required{color: var(--color-accent);font-weight: var(--weight-medium,500)}.feedback-help{font-size: var(--text-xs);color: var(--color-text-muted);line-height: var(--leading-base)}.feedback-form select,.feedback-form input[type="text"],.feedback-form input[type="email"],.feedback-form textarea{width: 100%;padding: var(--space-3) var(--space-4);font-size: var(--text-base);font-family: inherit;color: var(--color-text);background: var(--color-bg);border: 0.5px solid var(--color-line-strong);border-radius: var(--radius-md);transition: border-color var(--motion-fast) var(--easing),outline var(--motion-fast) var(--easing)}.feedback-form select:focus,.feedback-form input:focus,.feedback-form textarea:focus{outline: 2px solid var(--color-accent);outline-offset: -1px;border-color: var(--color-accent)}.feedback-form textarea{resize: vertical;min-height: 8em;font-family: ui-monospace,"SF Mono",Consolas,monospace;line-height: var(--leading-relaxed,1.55)}.feedback-error{padding: var(--space-3) var(--space-4);background: rgba(217,89,89,0.08);border: 0.5px solid #d95959;border-radius: var(--radius-md);color: #b14040;font-size: var(--text-sm)}.feedback-actions{display: flex;flex-wrap: wrap;gap: var(--space-3);margin-top: var(--space-2)}.feedback-privacy{margin: var(--space-4) 0 0;padding: var(--space-3) var(--space-4);background: var(--color-surface);border: 0.5px solid var(--color-line);border-radius: var(--radius-md);font-size: var(--text-xs);color: var(--color-text-muted);line-height: var(--leading-relaxed,1.55)}.feedback-privacy strong{color: var(--color-text);font-weight: var(--weight-medium,500)}.feedback-confirmation{margin-top: var(--space-5);padding: var(--space-5);background: var(--color-accent-tint);border: 0.5px solid var(--color-accent);border-radius: var(--radius-md);font-size: var(--text-sm);color: var(--color-text);line-height: var(--leading-relaxed,1.55)}.feedback-confirmation p{margin: 0 0 var(--space-3)}.feedback-confirmation .btn-action{margin-top: var(--space-2)}@media (max-width: 599px){.primary-nav a[data-route="test"],.primary-nav a[data-route="summary"]{display: none}#fullscreen-toggle{display: none}.syllabus-action{flex-direction: column;align-items: stretch;gap: var(--space-3)}.syllabus-action-buttons{flex-direction: column;width: 100%;gap: var(--space-2)}.syllabus-action-buttons .btn-action{width: 100%;text-align: center;justify-content: center}.levels-page{padding: var(--space-4) var(--space-3) var(--space-6)}.levels-grid{gap: var(--space-3)}.levels-title{font-size: var(--text-xl)}}@media (max-width: 768px){html,body{overflow-x: hidden}html{scroll-behavior: smooth}input[type="text"],input[type="search"],input[type="email"],input[type="number"],textarea,select,.secondary-nav input[type="search"]{font-size: 16px}button:active,.btn-primary:active,.btn-secondary:active,.btn-action:active,.icon-btn:active,.pillar-card a:active,.level-card.is-available:active,.syllabus-card a:active{transform: scale(0.97);opacity: 0.85;transition: transform 80ms ease,opacity 80ms ease}h2,.pattern-section-title,.vocab-section-title,.levels-subtitle + h2{font-size: 18px;line-height: 1.35}body{font-size: max(16px,var(--text-base))}main{padding-inline: 16px}.app-footer{padding-inline: 16px}.pattern-detail,.vocab-detail,.kanji-detail{padding: 16px;border-radius: 8px}img,video,iframe,pre,table,code{max-width: 100%}.app-header .icon-btn{width: 44px;height: 44px}.pattern-detail .pattern-nav a,.pattern-detail .back-link,.vocab-detail .back-link,.kanji-detail .back-link{min-height: 44px;padding-block: 12px;display: inline-flex;align-items: center}.footer-nav a{min-height: 44px;padding: 10px 8px;display: inline-flex;align-items: center}.known-toggle{min-height: 44px}}.exam-mode-toggle{display: inline-flex;align-items: center;gap: 8px;margin: 12px 0;font-size: var(--text-sm);color: var(--color-text-muted);cursor: pointer}.exam-mode-toggle input{width: 18px;height: 18px;cursor: pointer}.test-timer-chip{display: inline-block;padding: 4px 10px;border-radius: 999px;background: var(--color-surface-alt,#eef2ec);color: var(--color-text);font-variant-numeric: tabular-nums;font-weight: 500;font-size: 14px;line-height: 1;border: 1px solid var(--color-line,#d6d6d0);margin: 0 8px;letter-spacing: 0.02em}.test-timer-chip.warning{background: #fff4d6;border-color: #d4a019;color: #6b4a00}.test-timer-chip.danger{background: #fde0d6;border-color: #c8462b;color: #6e2010;animation: timer-pulse 1s ease-in-out infinite}@keyframes timer-pulse{0%,100%{opacity: 1}50%{opacity: 0.55}}@media (prefers-reduced-motion: reduce){.test-timer-chip.danger{animation: none}}.pass-badge{margin: 12px 0 4px;padding: 10px 14px;border-radius: 6px;font-size: var(--text-sm)}.pass-badge.pass{background: #e3efde;color: #1f3d1a;border: 1px solid #6ea860}.pass-badge.fail{background: #fbe9e1;color: #5e2412;border: 1px solid #c8462b}.score-time{margin-left: 12px}.category-breakdown{margin: 24px 0 16px}.category-table{width: 100%;border-collapse: collapse;margin-top: 8px;font-size: var(--text-sm)}.category-table th{text-align: left;padding: 8px 10px;background: var(--color-surface-alt,#eef2ec);border-bottom: 2px solid var(--color-line,#d6d6d0);font-weight: 500}.category-table td{padding: 8px 10px;border-bottom: 1px solid var(--color-line-soft,#ebebe6);vertical-align: middle}.category-table .cat-pct{font-variant-numeric: tabular-nums;font-weight: 500}.category-table .cat-score{font-variant-numeric: tabular-nums;color: var(--color-text-muted)}.category-table tr.fail .cat-pct{color: #c8462b}.category-table tr.pass .cat-pct{color: #2f6f29}.cat-bar-track{width: 120px;height: 8px;background: var(--color-line-soft,#ebebe6);border-radius: 999px;overflow: hidden}.cat-bar-fill{height: 100%;background: linear-gradient(90deg,#c8462b 0%,#d4a019 50%,#6ea860 100%);background-size: 200% 100%;background-position: 0% 0;transition: width 0.4s ease-out}@media (max-width: 600px){.category-table .cat-bar{display: none}}.kanji-filters{display: flex;flex-direction: column;gap: 10px;margin: 12px 0 24px;padding: 14px 16px;background: var(--color-surface,#faf9f5);border: 1px solid var(--color-line,#d6d6d0);border-radius: 8px}.kanji-filter-input{width: 100%;padding: 10px 14px;font-size: var(--text-md,16px);border: 1px solid var(--color-line,#d6d6d0);border-radius: 6px;background: var(--color-bg,#fff);color: var(--color-text);min-height: 44px;box-sizing: border-box}.kanji-filter-input:focus{outline: 2px solid var(--color-accent,#14452a);outline-offset: -1px;border-color: var(--color-accent,#14452a)}.kanji-filter-row{display: flex;flex-wrap: wrap;align-items: center;gap: 6px}.kanji-filter-label{font-size: var(--text-sm);color: var(--color-text-muted);margin-right: 4px;min-width: 60px}.kanji-chip{padding: 6px 12px;border: 1px solid var(--color-line,#d6d6d0);background: var(--color-bg,#fff);color: var(--color-text);border-radius: 999px;font-size: var(--text-sm);cursor: pointer;min-height: 36px;transition: background 120ms ease,border-color 120ms ease,color 120ms ease}.kanji-chip:hover{background: var(--color-surface-alt,#eef2ec)}.kanji-chip.active{background: var(--color-accent,#14452a);color: #fff;border-color: var(--color-accent,#14452a)}.kanji-filter-count{margin: 4px 0 0}@media (max-width: 600px){.kanji-chip{min-height: 44px;padding: 8px 14px}}.kanji-popover-header{display: flex;align-items: baseline;gap: 8px;margin-bottom: 4px}.kanji-popover-strokes{font-size: var(--text-sm);color: var(--color-text-muted);font-variant-numeric: tabular-nums;letter-spacing: 0.02em}.kanji-popover-additional{margin-top: 8px;border-top: 1px solid var(--color-line-soft,#ebebe6);padding-top: 6px;font-size: var(--text-sm)}.kanji-popover-additional summary{cursor: pointer;color: var(--color-text-muted);font-size: var(--text-xs,12px);padding: 2px 0;list-style: none}.kanji-popover-additional summary::marker{content: ''}.kanji-popover-additional summary::before{content: '▸ ';display: inline-block;transition: transform 120ms ease}.kanji-popover-additional[open] summary::before{content: '▾ '}.kanji-popover-additional dl{margin: 4px 0 0;display: grid;grid-template-columns: auto 1fr;gap: 2px 8px;font-size: var(--text-xs,12px)}.kanji-popover-additional dt{color: var(--color-text-muted);font-weight: 500}.kanji-popover-additional dd{margin: 0}.kanji-sort-row{gap: 8px}.kanji-sort-select{padding: 6px 10px;font-size: var(--text-sm);border: 1px solid var(--color-line,#d6d6d0);background: var(--color-bg,#fff);color: var(--color-text);border-radius: 6px;min-height: 36px;cursor: pointer}.kanji-sort-select:focus{outline: 2px solid var(--color-accent,#14452a);outline-offset: -1px}@media (max-width: 600px){.kanji-sort-select{min-height: 44px}}.footer-attribution{margin: 6px 0 0;font-size: 12px;color: var(--color-text-muted,#555);line-height: 1.5}.footer-attribution a{color: inherit;text-decoration: underline}.footer-attribution a:hover{color: var(--color-accent,#14452a)}.print-paper-screen{max-width: 880px;margin: 0 auto;padding: 16px}.print-paper-toolbar{display: flex;flex-wrap: wrap;gap: 12px;align-items: center;justify-content: space-between;margin-bottom: 16px;padding: 12px 14px;background: var(--color-surface,#f6f6f0);border: 1px solid var(--color-line,#d6d6d0);border-radius: var(--r)}.print-paper-toolbar-actions{display: inline-flex;gap: 10px;flex-wrap: wrap}.print-paper-toolbar .btn-primary,.print-paper-toolbar .btn-secondary{padding: 8px 14px;min-height: 36px;text-decoration: none;border-radius: 6px;font-size: 14px;cursor: pointer}.print-paper-toolbar .btn-primary{background: var(--color-accent,#14452a);color: #fff;border: 1px solid var(--color-accent,#14452a)}.print-paper-toolbar .btn-secondary{background: var(--color-bg,#fff);color: var(--color-text);border: 1px solid var(--color-line,#d6d6d0)}.print-paper-root{background: #fff;color: #111;font-family: 'Hiragino Mincho Pro','Yu Mincho','Noto Serif JP','Times New Roman',serif;font-size: 12pt;line-height: 1.6;padding: 32px;border: 1px solid var(--color-line,#d6d6d0);border-radius: var(--r);margin-bottom: 16px;position: relative;overflow: hidden;isolation: isolate}.print-paper-watermark{position: absolute;inset: 0;z-index: 0;pointer-events: none;user-select: none;-webkit-user-select: none}.print-paper-watermark svg{width: 100%;height: 100%;display: block}.print-paper-root > *:not(.print-paper-watermark){position: relative;z-index: 1}.print-paper-root h1,.print-paper-root h2,.print-paper-root h3{font-family: 'Hiragino Sans','Yu Gothic','Noto Sans JP','Helvetica Neue',sans-serif;font-weight: 600}.print-paper-cover{text-align: center;padding: 16px 0 24px;border-bottom: 2px solid #111;margin-bottom: 24px}.print-paper-brand{font-size: 11pt;letter-spacing: 0.16em;text-transform: uppercase;color: #555;margin: 0 0 8px}.print-paper-title{font-size: 22pt;margin: 0 0 4px;letter-spacing: 0.04em}.print-paper-title-en{font-size: 11pt;color: #555;margin: 0 0 12px;font-style: italic}.print-paper-cover-meta{display: grid;grid-template-columns: max-content 1fr;gap: 4px 14px;max-width: 480px;margin: 16px auto;text-align: left}.print-paper-cover-meta dt{font-weight: 600;text-align: right;padding-right: 4px}.print-paper-cover-meta dd{margin: 0}.print-paper-fillable{letter-spacing: 0.1em;font-family: 'Courier New',monospace}.print-paper-instructions{text-align: left;max-width: 600px;margin: 16px auto 0;padding: 12px 16px;background: #f9f9f4;border: 1px solid #e0e0d6;border-radius: 4px;font-size: 11pt}.print-paper-instructions h2{margin: 0 0 6px;font-size: 12pt;letter-spacing: 0.04em}.print-paper-instructions ol{padding-left: 24px;margin: 4px 0}.print-section{margin-top: 32px}.print-section-header{border-bottom: 1px solid #111;padding-bottom: 4px;margin-bottom: 16px}.print-section-header h2{margin: 0;font-size: 16pt}.print-section-meta{margin: 2px 0 0;font-size: 10pt;color: #555}.print-mondai{margin-top: 22px;break-inside: avoid;page-break-inside: avoid}.print-mondai-header{margin-bottom: 12px}.print-mondai-header h3{margin: 0;font-size: 13pt;border-left: 4px solid #111;padding-left: 8px}.print-mondai-instr{margin: 4px 0 8px 12px;font-size: 11pt;color: #333}.print-q-list{list-style: none;padding: 0;margin: 0;counter-reset: print-q}.print-q{counter-increment: print-q;margin: 0 0 14px;padding-left: 36px;position: relative;break-inside: avoid;page-break-inside: avoid}.print-q::before{content: counter(print-q) ".";position: absolute;left: 0;top: 0;font-weight: 600;font-size: 12pt;width: 30px;text-align: right;padding-right: 6px}.print-q-header{display: flex;justify-content: flex-end;gap: 10px;font-size: 9pt;color: #777;margin-bottom: 2px}.print-q-stem{margin: 2px 0 6px;line-height: 1.7}.print-q-choices{list-style: none;padding: 0;margin: 0;display: grid;grid-template-columns: 1fr 1fr;gap: 4px 16px}.print-choice{display: flex;gap: 6px;align-items: baseline}.print-choice-num{font-weight: 600;font-size: 12pt;width: 1.4em;flex-shrink: 0}.print-choice-text{flex: 1}.print-chokai-prompt{margin: 4px 0 8px;font-size: 12pt}.print-chokai-script{font-family: 'Hiragino Mincho Pro','Yu Mincho','Noto Serif JP',serif;font-size: 11pt;white-space: pre-wrap;background: #f6f6f0;border: 1px dashed #999;border-radius: 4px;padding: 10px 12px;margin: 4px 0 10px}.print-key{margin-top: 36px;padding-top: 24px;border-top: 2px dashed #111;break-before: page;page-break-before: always}.print-key h2{margin: 0 0 4px}.print-key-section{margin-top: 18px}.print-key-section h3{margin: 0 0 8px;font-size: 12pt}.print-key-list{list-style: none;padding: 0;margin: 0}.print-key-list li{display: grid;grid-template-columns: minmax(80px,max-content) 30px 1fr;gap: 4px 10px;align-items: baseline;border-bottom: 1px dotted #ccc;padding: 4px 0}.print-key-id{font-family: 'Courier New',monospace;font-size: 10pt;color: #555}.print-key-correct{font-weight: 600}.print-key-text{}.print-key-why{grid-column: 1 / -1;margin: 2px 0 0 90px;font-size: 10pt}.print-paper-footer{margin-top: 36px;padding-top: 8px;border-top: 1px solid #ccc;text-align: center;font-size: 9pt;color: #777}.print-paper-hint{text-align: center;margin: 16px 0}.print-paper-index{padding: 8px 0}.print-paper-index .page-lede{max-width: 700px}.print-paper-list{list-style: none;padding: 0;margin: 16px 0;display: grid;grid-template-columns: repeat(auto-fill,minmax(280px,1fr));gap: 12px}.print-paper-card{border: 1px solid var(--color-line,#d6d6d0);border-radius: var(--r);padding: 12px 14px;background: var(--color-bg,#fff);transition: background 120ms ease;display: flex;flex-direction: column;gap: 6px}.print-paper-card:hover{background: var(--color-surface,#f6f6f0)}.print-paper-link{display: flex;flex-direction: column;text-decoration: none;color: var(--color-text)}.print-paper-link strong{font-size: 14px}.print-paper-actions{display: inline-flex;gap: 8px;font-size: 12px;color: var(--color-text-muted,#555)}.print-paper-actions a{text-decoration: none;color: var(--color-accent,#14452a)}.print-paper-actions a:hover{text-decoration: underline}.print-paper-bad-id{background: #fdf6e3;border: 1px solid #e9d590;border-radius: 4px;padding: 8px 12px;margin: 12px 0}@media print{body[data-route="print"]{background: #fff !important;color: #000 !important;margin: 0 !important;padding: 0 !important}body[data-route="print"] header.site-header,body[data-route="print"] nav.primary-nav,body[data-route="print"] footer.site-footer,body[data-route="print"] .skip-link,body[data-route="print"] .print-paper-toolbar,body[data-route="print"] .print-paper-hint,body[data-route="print"] .back-link,body[data-route="print"] .home-up-link,body[data-route="print"] #install-banner,body[data-route="print"] #pwa-update-toast{display: none !important}body[data-route="print"] main{padding: 0 !important}body[data-route="print"] .print-paper-screen{max-width: none;margin: 0;padding: 0}body[data-route="print"] .print-paper-root{border: none;border-radius: 0;padding: 0;margin: 0;font-size: 11pt;line-height: 1.6;color: #000}body[data-route="print"] .print-section{break-before: page;page-break-before: always}body[data-route="print"] .print-section:first-of-type{break-before: auto;page-break-before: auto}body[data-route="print"] .print-key{break-before: page;page-break-before: always}@page{size: A4;margin: 18mm 16mm}body[data-route="print"] .print-q-stem,body[data-route="print"] .print-q-choices,body[data-route="print"] .print-mondai,body[data-route="print"] .print-q{break-inside: avoid-page;page-break-inside: avoid}body[data-route="print"] a{color: #000;text-decoration: none}body[data-route="print"] ruby{line-height: 1.9}body[data-route="print"] rt{font-size: 7pt}body[data-route="print"] .print-paper-root{overflow: visible}body[data-route="print"] .print-paper-watermark{position: fixed;top: 0;left: 0;width: 100vw;height: 100vh;-webkit-print-color-adjust: exact !important;print-color-adjust: exact !important;color-adjust: exact !important}body[data-route="print"] .print-paper-watermark svg{-webkit-print-color-adjust: exact !important;print-color-adjust: exact !important;color-adjust: exact !important}}.global-print-watermark{display: none}@media print{.global-print-watermark{display: block;position: fixed;top: 0;left: 0;width: 100vw;height: 100vh;z-index: 9999;pointer-events: none;user-select: none;-webkit-user-select: none;-webkit-print-color-adjust: exact !important;print-color-adjust: exact !important;color-adjust: exact !important}.global-print-watermark svg{width: 100%;height: 100%;display: block;-webkit-print-color-adjust: exact !important;print-color-adjust: exact !important;color-adjust: exact !important}body[data-route="print"] .global-print-watermark{display: none}}.mining-page{max-width: 960px;margin: 0 auto;padding: 16px}.mining-header h2{margin: 0 0 8px}.mining-toolbar{display: flex;flex-wrap: wrap;gap: 12px;align-items: center;justify-content: space-between;margin: 16px 0;padding: 12px;background: var(--surface-2,#f5f5f5);border-radius: 8px}.mining-filters{display: flex;flex-wrap: wrap;gap: 6px}.mining-filter{padding: 6px 12px;border: 1px solid var(--border,#ccc);background: var(--surface,white);border-radius: 16px;cursor: pointer;font-size: 0.9em;transition: background 0.15s}.mining-filter:hover{background: var(--surface-3,#eee)}.mining-filter.active{background: var(--primary,#14452a);color: white;border-color: var(--primary,#14452a)}.mining-filter.active .muted{color: rgba(255,255,255,0.8)}.mining-sort{display: flex;align-items: center;gap: 6px}.mining-sort-select{padding: 4px 8px;border: 1px solid var(--border,#ccc);border-radius: 4px;font-size: 0.9em;background: var(--surface,white)}.mining-list{list-style: none;padding: 0;margin: 0}.mining-row{display: grid;grid-template-columns: 1fr auto;grid-template-areas: "entry count" "cards cards";gap: 8px 12px;padding: 12px;border-bottom: 1px solid var(--border,#e5e5e5);align-items: start}.mining-row:hover{background: var(--surface-2,#fafafa)}.mining-entry{grid-area: entry;display: flex;flex-wrap: wrap;align-items: baseline;gap: 8px;text-decoration: none;color: inherit}.mining-entry:hover .mining-entry-label{text-decoration: underline}.mining-skill-badge{display: inline-flex;width: 22px;height: 22px;align-items: center;justify-content: center;border-radius: 50%;font-size: 0.75em;font-weight: 700;color: white;flex-shrink: 0}.mining-skill-vocab{background: #2166ac}.mining-skill-kanji{background: #b2182b}.mining-skill-grammar{background: #5aae61}.mining-entry-label{font-size: 1.1em;font-weight: 600}.mining-entry-reading{font-style: italic}.mining-count{grid-area: count;font-variant-numeric: tabular-nums;white-space: nowrap}.mining-cards{grid-area: cards;display: flex;flex-wrap: wrap;gap: 6px}.mining-card-chip{display: inline-flex;flex-direction: column;padding: 4px 10px 4px 8px;background: var(--surface,white);border: 1px solid var(--border,#d5d5d5);border-radius: 4px;font-size: 0.85em;text-decoration: none;color: inherit;max-width: 260px;transition: background 0.15s,transform 0.1s}.mining-card-chip:hover{background: var(--surface-2,#f5f5f5);transform: translateY(-1px)}.mining-card-chip.mining-card-missing{background: #fee;border-color: #d99;color: #c33;cursor: help}.mining-card-ja{font-weight: 500}.mining-card-en{display: block;font-style: italic;line-height: 1.2}@media (max-width: 600px){.mining-toolbar{flex-direction: column;align-items: stretch}.mining-filters{justify-content: center}.mining-row{grid-template-columns: 1fr;grid-template-areas: "entry" "count" "cards"}.mining-count{justify-self: start}.mining-card-chip{max-width: 100%}}.pd-refs{margin: 24px 0}.pd-refs-list{list-style: none;padding: 0;margin: 0}.pd-ref{padding: 12px 14px;margin-bottom: 12px;background: var(--surface-2,#f7f7f7);border-radius: 6px;border-left: 4px solid var(--border,#ccc)}.pd-ref-aozora_bunko{border-left-color: #b2182b}.pd-ref-government{border-left-color: #2166ac}.pd-ref-proverb{border-left-color: #5aae61}.pd-ref-folk_song{border-left-color: #9970ab}.pd-ref-nhk_easy{border-left-color: #f4a582}.pd-ref-header{margin-bottom: 4px}.pd-work-title{font-size: 1.05em;margin-right: 8px}.pd-author,.pd-status,.pd-context,.pd-role{display: block;margin: 4px 0 0;font-size: 0.9em}.pd-role em{font-style: italic}.pd-link{font-size: 0.85em;text-decoration: none;color: var(--link-blue,#1a5c38)}.pd-link:hover{text-decoration: underline}@media (max-width: 599px){.primary-nav a[data-route="test"],.primary-nav a[data-route="summary"]{display: inline-flex !important}}.study-order-link{min-height: 44px;padding-block: 12px}.btn-action{min-height: 44px}.home-up-link a,.home-up-link{display: inline-flex;align-items: center;min-height: 44px;padding-block: 10px}.back-link,.pattern-detail .back-link{display: inline-flex;align-items: center;min-height: 44px;padding-block: 10px}.toc-expand-all,.toc-collapse-all{min-height: 44px}input,textarea,select{font-size: max(1rem,16px)}.btn-tiny{min-height: 44px;padding-block: 8px}.authentic-card-kanji-refs a,.authentic-card-vocab-refs a,.authentic-card-grammar-refs a{display: inline-block;padding: 10px 6px;margin: 2px;min-width: 44px;text-align: center;vertical-align: middle}.brand-link{display: inline-flex;align-items: center;min-height: 44px;padding-block: 8px}.skip-link,.skip-link:focus{min-height: 44px;padding-block: 10px}.changelog-page a[href$=".md"],.examday-page .muted a,.weakareas-page .muted a{display: inline-block;min-height: 44px;padding-block: 12px}
