/* HSK grammar study guides extend Laowai's existing paper and type system. */
.grammar-hsk{--hsk-ink:var(--ink,#24332c);--hsk-muted:var(--muted,#56645a);--hsk-paper:var(--paper,#f3f0e8);--hsk-line:var(--line,#c9c4b6);--hsk-green:var(--green,#244c3b)}
.grammar-hsk main{padding-bottom:56px}
.grammar-hsk ::selection{background:#dce6b8;color:#24332c}
.grammar-hsk :is(a,button,input){text-underline-offset:.22em}
.grammar-hsk :is(a,button,input):focus-visible,.hsk-grammar-related a:focus-visible,.hsk-grammar-wordlist-link a:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.grammar-hsk .breadcrumb{margin-bottom:18px;flex-wrap:wrap}
.hsk-grammar-editions,.hsk-grammar-levels{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.hsk-grammar-editions a,.hsk-grammar-levels a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid var(--hsk-line,#c9c4b6);border-radius:12px;color:var(--hsk-green,#244c3b);text-decoration:none;font-size:.94rem}
.hsk-grammar-editions a[aria-current],.hsk-grammar-levels a[aria-current]{background:var(--hsk-green,#244c3b);border-color:var(--hsk-green,#244c3b);color:var(--paper,#f3f0e8)}
.hsk-grammar-editions a:hover,.hsk-grammar-levels a:hover{background:#e5e9dc;color:#244c3b}
.hsk-grammar-opening{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:48px;margin:32px 0 48px;padding:0}
.grammar-hsk h1{font-size:2.75rem;line-height:1.1;letter-spacing:-.025em;text-wrap:balance;margin:0 0 20px;max-width:23ch}
.grammar-hsk h2{font-size:1.65rem;line-height:1.25;margin:0 0 18px;letter-spacing:-.015em}
.grammar-hsk h3{font-size:1.2rem;line-height:1.4;letter-spacing:0;margin:0 0 12px;font-family:var(--font-body,system-ui,sans-serif);font-weight:600}
.grammar-hsk p{font-size:1rem;line-height:1.7;max-width:70ch}
.hsk-grammar-opening p{margin:12px 0 16px}
.grammar-hsk .hsk-grammar-lead{font-size:1.25rem;line-height:1.45;color:var(--hsk-green,#244c3b)}
.hsk-grammar-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;align-items:center}
.hsk-grammar-actions a{min-height:48px;display:inline-flex;align-items:center;padding:12px 18px;line-height:1.4}
.hsk-grammar-scene{margin:0;min-width:0}
.hsk-grammar-scene>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;border-radius:12px}
.hsk-grammar-scene figcaption{padding-top:16px}
.hsk-grammar-scene figcaption p{margin:5px 0}
.hsk-grammar-scene figcaption p[lang=zh-Hans]{font:1.65rem/1.55 var(--hanzi,"Songti SC",serif);color:var(--hsk-ink,#24332c)}
.hsk-grammar-scene figcaption p[lang=zh-Latn]{font-size:.94rem;color:var(--hsk-muted,#56645a)}
.hsk-grammar-scene figcaption a{display:inline-block;min-height:44px;padding:10px 0}
.hsk-grammar-text-opening{grid-template-columns:minmax(0,760px)}
.hsk-grammar-hub-opening{margin:32px 0 40px}
.hsk-grammar-hub-levels{margin:48px 0}
.hsk-grammar-level-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;margin:24px 0 40px}
.hsk-grammar-level-index>section{padding:24px 0;border-bottom:1px solid var(--hsk-line,#c9c4b6)}
.hsk-grammar-level-index h2{font-size:1.4rem;margin-bottom:10px}
.hsk-grammar-level-index p{margin:6px 0}
.hsk-grammar-contents{margin:48px 0;padding:24px 0;border-block:1px solid var(--hsk-line,#c9c4b6)}
.hsk-grammar-contents label{display:block;font-size:.94rem;margin-bottom:8px;color:var(--hsk-ink,#24332c)}
.hsk-grammar-contents input{display:block;width:100%;max-width:560px;min-height:48px;background:#faf8f1;border:1px solid var(--hsk-line,#c9c4b6);border-radius:12px;padding:12px 14px;font:inherit;color:var(--hsk-ink,#24332c);caret-color:var(--hsk-green,#244c3b)}
.hsk-grammar-contents input::placeholder{color:var(--hsk-muted,#56645a);opacity:1}
.hsk-grammar-contents nav{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:16px;max-width:900px}
.hsk-grammar-contents nav a{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;line-height:1.4}
.grammar-hsk .hsk-grammar-status{font-size:.9rem;color:var(--hsk-muted,#56645a);margin:12px 0 0;font-variant-numeric:tabular-nums}
.hsk-grammar-group{margin:56px 0;scroll-margin-top:24px}
.hsk-grammar-topic{display:block;padding:28px 0;border-top:1px solid var(--hsk-line,#c9c4b6);scroll-margin-top:24px}
.hsk-grammar-topic-copy{max-width:78ch}
.hsk-grammar-inline-scene{margin:24px 0;max-width:620px}
.hsk-grammar-inline-scene img{display:block;width:100%;height:auto;border-radius:12px;aspect-ratio:3/2;object-fit:contain}
.hsk-grammar-inline-scene figcaption{padding-top:14px}
.hsk-grammar-inline-scene figcaption p{margin:5px 0}
.hsk-grammar-inline-scene [lang=zh-Hans]{font:1.4rem/1.6 var(--hanzi,"Songti SC",serif)}
.hsk-grammar-inline-scene [lang=zh-Latn]{font-size:.94rem;color:var(--hsk-muted,#56645a)}
.hsk-grammar-topic-copy>p{margin:8px 0 14px}
.grammar-hsk .hsk-grammar-pattern{font:1.15rem/1.7 var(--hanzi,"Songti SC",serif);color:var(--hsk-green,#244c3b);overflow-wrap:anywhere}
.hsk-grammar-example{padding:14px 20px;margin:20px 0;background:#e8eddf;border-radius:12px}
.hsk-grammar-example p{margin:4px 0}
.hsk-grammar-example p[lang=zh-Hans]{font:1.35rem/1.65 var(--hanzi,"Songti SC",serif);overflow-wrap:anywhere}
.hsk-grammar-example p[lang=zh-Latn]{font-size:.94rem;color:#4b5b50}
.hsk-grammar-topic-links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:12px}
.hsk-grammar-topic-links a{display:inline-flex;align-items:center;min-height:44px;padding:8px 0}
.hsk-grammar-next{margin:56px 0 32px;padding-top:28px;border-top:1px solid var(--hsk-line,#c9c4b6)}
.hsk-grammar-next>a{display:inline-flex;align-items:center;min-height:44px;margin:8px 24px 8px 0}
.hsk-grammar-sources{margin:24px 0}
.hsk-grammar-sources summary{min-height:44px;padding:12px 0;cursor:pointer;color:var(--hsk-green,#244c3b)}
.hsk-grammar-sources p,.grammar-hsk .hsk-grammar-basis{font-size:.9rem;color:var(--hsk-muted,#56645a);max-width:75ch}
.hsk-grammar-related{margin:40px 0;padding:24px 0;border-block:1px solid var(--line,#c9c4b6)}
.hsk-grammar-related h2{font:600 1.2rem/1.4 var(--font-body,system-ui,sans-serif);margin:0 0 12px}
.hsk-grammar-related p{margin:6px 0;font-size:.95rem;line-height:1.6}
.hsk-grammar-related a{display:inline-flex;min-height:44px;align-items:center;padding:8px 0;text-underline-offset:.22em}
.hsk-grammar-wordlist-link,.hsk-grammar-directory-link{margin:12px 0 24px}
.hsk-grammar-wordlist-link>a,.hsk-grammar-directory-link>a{display:inline-flex;align-items:center;min-height:44px;padding:12px 16px;line-height:1.4}
.grammar-hsk [hidden]{display:none!important}
@media(max-width:800px){.hsk-grammar-opening{grid-template-columns:1fr;gap:28px;margin-top:24px}.grammar-hsk h1{font-size:2.1rem;max-width:23ch}.hsk-grammar-scene{max-width:620px}.hsk-grammar-level-index{gap:0 28px}}
@media(max-width:480px){.grammar-hsk h1{font-size:1.9rem}.grammar-hsk h2{font-size:1.45rem}.hsk-grammar-editions,.hsk-grammar-levels{gap:6px}.hsk-grammar-levels a{padding:9px 11px;font-size:.875rem}.hsk-grammar-level-index{grid-template-columns:1fr}.hsk-grammar-actions{display:grid;grid-template-columns:1fr}.hsk-grammar-actions a{justify-content:center}.hsk-grammar-scene figcaption p[lang=zh-Hans]{font-size:1.5rem}.hsk-grammar-example{padding:14px 16px}.hsk-grammar-contents,.hsk-grammar-group{margin:36px 0}.hsk-grammar-topic{padding:24px 0}.hsk-grammar-contents nav{gap:4px 18px}}
@media(prefers-color-scheme:dark){body.grammar-hsk{--paper:#1c2822;--ink:#e5e7df;--muted:#b8c0b6;--line:#566158;--green:#bfd7a0;--hsk-ink:#e5e7df;--hsk-muted:#b8c0b6;--hsk-paper:#1c2822;--hsk-line:#566158;--hsk-green:#bfd7a0;background:#1c2822;color:#e5e7df}.grammar-hsk .site-header{background:#1c2822;color:#e5e7df}.hsk-grammar-editions a[aria-current],.hsk-grammar-levels a[aria-current]{color:#24332c}.hsk-grammar-contents input{background:#26372d}.hsk-grammar-example{background:#2e4235}.hsk-grammar-example p[lang=zh-Latn]{color:#c0c9be}.hsk-grammar-editions a:hover,.hsk-grammar-levels a:hover{background:#344d3c;color:#e5e7df}.grammar-hsk .breadcrumb,.grammar-hsk .breadcrumb a{color:#b8c0b6}.grammar-hsk .hsk-grammar-actions .paper-link:not(.dark){background:transparent;color:#e5e7df}}
.hsk-grammar-article-scene{margin:24px 0;max-width:620px}.hsk-grammar-article-scene img{display:block;width:100%;height:auto;border-radius:12px}
