/* Library refinement: Expolita's paper, wine ink, gold and Alegreya. */
.library-page [hidden] { display:none!important; }
.library-page a { text-underline-offset:.2em; }
.library-page .brand img { display:block; flex:none; }
.library-page .btn { min-height:44px; }
.library-header { display:flex; align-items:center; gap:24px; min-height:94px; border-bottom:1px solid var(--line); font-family:var(--sans); }
.library-header > a:nth-child(2),.library-header .language-links { margin-left:auto; }
.library-header .language-links { margin-block:0; }
.library-layout { display:grid; grid-template-columns:190px minmax(0,1fr); gap:clamp(32px,5vw,76px); align-items:start; padding-block:54px 72px; }
.library-toc { position:sticky; top:28px; font:400 16px/1.5 var(--sans); }
.library-toc .library-back { display:block; font-weight:700; margin-bottom:24px; text-decoration:none; color:var(--ink); }
.library-toc nav { display:grid; gap:4px; }
.library-toc nav a { padding:10px 0; color:var(--ink-2); text-decoration:none; border-bottom:1px solid var(--line); }
.library-toc nav a:hover { color:var(--wine); }
.library-toc p { color:var(--muted); font-size:15px; margin-top:24px; }
.library-article { min-width:0; max-width:850px; }
.library-hero h1,.library-index-hero h1 { font:700 clamp(2.5rem,5vw,4.1rem)/1.06 var(--serif); letter-spacing:-.025em; text-wrap:balance; max-width:22ch; }
.library-lead { font:400 clamp(1.15rem,1.6vw,1.35rem)/1.6 var(--serif); max-width:64ch; color:var(--ink-2); margin-top:24px; }
.library-meta,.library-item-meta { font:500 15px/1.5 var(--sans); color:var(--muted); }
.library-meta { margin-top:20px; }
.library-hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }
.library-section,.practice-block,.library-editor,.library-caution { margin-top:52px; scroll-margin-top:24px; }
.library-page h2 { font:700 clamp(1.7rem,3vw,2.15rem)/1.2 var(--serif); letter-spacing:-.015em; margin-bottom:20px; text-wrap:balance; }
.library-section > p,.practice-block > p { font-size:18px; line-height:1.65; max-width:70ch; color:var(--ink-2); margin-top:14px; }
.rule-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-block:1px solid var(--line-strong); }
.rule-item { padding:24px 24px 24px 0; }
.rule-item:nth-child(even) { border-left:1px solid var(--line); padding-left:24px; padding-right:0; }
.rule-item:nth-child(n+3) { border-top:1px solid var(--line); }
.rule-item:last-child:nth-child(odd) { grid-column:1/-1; }
.rule-item h3 { color:var(--wine); font:700 23px/1.25 var(--serif); letter-spacing:-.01em; margin-bottom:12px; }
.rule-item p { font:400 18px/1.65 var(--sans); color:var(--ink-2); }
.library-examples { list-style:none; padding:0; margin:22px 0 0; }
.library-examples li { padding:24px 0; border-bottom:1px solid var(--line); }
.example-text { font:500 23px/1.5 var(--serif); color:var(--ink); }
.example-text span { display:block; font:500 14px/1.5 var(--sans); color:var(--muted); margin-block:12px 4px; }
.example-text s { color:var(--ink-2); text-decoration-color:var(--alert); }
.example-text ins { display:block; color:var(--green); text-underline-offset:.2em; }
.library-examples li > p { margin-block:10px 16px; color:var(--ink-2); font:400 17px/1.6 var(--sans); }
.practice-block { border-top:2px solid var(--wine); padding-top:30px; }
.practice-block > p:nth-of-type(2) { font:400 15px/1.5 var(--sans); color:var(--muted); }
.practice-meter { display:flex; gap:16px; align-items:center; margin-block:26px 8px; font:500 15px/1.5 var(--sans); color:var(--ink-2); }
.practice-meter progress { width:150px; height:8px; accent-color:var(--wine); border:0; border-radius:4px; overflow:hidden; background:var(--paper-3); }
.practice-meter progress::-webkit-progress-bar { background:var(--paper-3); }
.practice-meter progress::-webkit-progress-value { background:var(--wine); }
.practice-questions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 32px; padding-left:24px; margin:0; }
.practice-questions li { padding:22px 0 22px 3px; border-bottom:1px solid var(--line); min-width:0; }
.practice-questions li::marker { color:var(--wine); font:700 16px/1.5 var(--sans); }
.practice-questions label { display:block; font:500 18px/1.55 var(--sans); margin-bottom:12px; }
.practice-questions input { display:block; width:100%; min-height:48px; padding:10px 14px; border:1px solid var(--line-strong); border-radius:var(--nib-sm); font:400 19px/1.4 var(--serif); background:var(--paper); color:var(--ink); caret-color:var(--wine); }
.practice-questions input:focus-visible,.practice-solutions summary:focus-visible,.library-search input:focus-visible { outline:2px solid var(--wine); outline-offset:4px; }
.practice-questions input[aria-invalid=true] { border-color:var(--alert); background:var(--rose); }
.practice-questions input[aria-invalid=false] { border-color:var(--green); }
.practice-questions [data-feedback] { margin-top:10px; font:400 16px/1.5 var(--sans); }
.practice-questions [data-feedback]:empty { display:none; }
.practice-questions [data-result=correct] { color:var(--green); }
.practice-questions [data-result=incorrect] { color:var(--wine-deep); }
.practice-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
[data-score] { font:700 18px/1.5 var(--sans); color:var(--wine); margin-top:20px; }
.practice-solutions { padding-block:16px; border-block:1px solid var(--line); margin-top:26px; }
.practice-solutions summary { cursor:pointer; color:var(--wine); font:700 17px/1.5 var(--sans); min-height:44px; align-content:center; }
.practice-solutions ol { padding-left:24px; }
.practice-solutions li { margin-top:14px; font:400 17px/1.6 var(--sans); }
.library-caution { padding:24px 28px; background:var(--paper-2); border-radius:var(--nib); }
.library-caution h2 { font-size:25px; }
.library-caution p { margin:0; font:400 17px/1.6 var(--sans); }
.library-editor .desk-grid { grid-template-columns:minmax(0,1fr) minmax(230px,.6fr); }
.library-editor .sheet::before { left:20px; }
.library-editor .sheet-input,.library-editor .sheet-mirror { padding:24px 24px 24px 44px; }
.library-editor .desk-title { font-size:25px; }
.library-sources { border-top:1px solid var(--line); padding-top:28px; }
.library-sources p { font:400 16px/1.6 var(--sans); }
.library-sources ul { padding-left:22px; margin-block:18px; font:400 17px/1.6 var(--sans); }
.library-sources li + li { margin-top:12px; }
.library-related ul { list-style:none; padding:0; }
.library-related li { display:flex; justify-content:space-between; align-items:baseline; gap:16px; border-bottom:1px solid var(--line); padding-block:16px; }
.library-related a { font:700 22px/1.35 var(--serif); }
.library-related span { white-space:nowrap; font:400 15px/1.5 var(--sans); color:var(--muted); }
.library-footer { display:flex; align-items:center; flex-wrap:wrap; gap:20px 32px; padding-block:28px 40px; border-top:1px solid var(--line); font:400 16px/1.5 var(--sans); }
.library-footer .brand { margin-right:auto; }
.library-index-page { padding-block:54px 72px; }
.library-index-hero { max-width:780px; }
.library-index-hero > p:first-of-type { font:400 22px/1.6 var(--serif); color:var(--ink-2); margin-top:22px; max-width:60ch; }
.library-search { margin-top:38px; display:grid; grid-template-columns:minmax(0,620px) 1fr; column-gap:24px; align-items:center; }
.library-search label { grid-column:1/-1; font:700 17px/1.5 var(--sans); margin-bottom:10px; }
.library-search input { width:100%; min-height:52px; padding:12px 16px; border:1px solid var(--line-strong); border-radius:var(--nib); background:var(--paper); font:400 19px/1.5 var(--sans); }
.library-search input::placeholder { color:var(--muted); opacity:1; }
[data-search-count] { color:var(--muted); font:400 16px/1.5 var(--sans); }
[data-no-results] { margin-top:30px; font:400 18px/1.6 var(--sans); }
.library-topic { margin-top:50px; }
.library-topic > h2 { display:flex; gap:16px; align-items:baseline; padding-bottom:18px; border-bottom:1px solid var(--line-strong); }
.library-topic > h2 span { color:var(--muted); font:400 17px/1.5 var(--sans); }
.library-directory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 60px; list-style:none; padding:0; margin:0; }
.library-directory li { padding:24px 0; border-bottom:1px solid var(--line); min-width:0; }
.library-directory h3 { font:700 27px/1.25 var(--serif); letter-spacing:-.01em; }
.library-directory li > a { text-decoration:none; color:var(--wine); }
.library-directory li > a:hover { text-decoration:underline; }
.library-directory li > p { margin-block:12px; color:var(--ink-2); font:400 18px/1.6 var(--sans); max-width:60ch; }
@media(max-width:1050px) { .library-layout { grid-template-columns:160px minmax(0,1fr); gap:32px; } .library-editor .desk-grid { grid-template-columns:1fr; } }
@media(max-width:800px) { .library-layout { display:block; padding-top:30px; } .library-toc { position:static; margin-bottom:30px; } .library-toc .library-back,.library-toc p { display:none; } .library-toc nav { display:flex; flex-wrap:wrap; gap:4px 20px; } .library-toc nav a { padding:10px 0; border:0; } .library-header { gap:16px; min-height:82px; flex-wrap:wrap; padding-block:14px; } .library-header .btn { display:none; } .library-hero h1 { max-width:25ch; } }
@media(max-width:560px) { .library-hero h1,.library-index-hero h1 { font-size:40px; } .library-index-page { padding-top:32px; } .rule-comparison,.practice-questions,.library-directory { grid-template-columns:1fr; } .rule-item:nth-child(even) { border-left:0; padding-left:0; } .rule-item:not(:first-child) { border-top:1px solid var(--line); } .rule-item { padding:20px 0; } .practice-questions { gap:0; } .library-lead { font-size:20px; } .library-section,.practice-block,.library-editor,.library-caution { margin-top:38px; } .library-hero-actions .btn { flex:1; } .library-caution { padding:22px; } .library-header .brand-word { font-size:25px; } .library-search { grid-template-columns:1fr; row-gap:10px; } .library-footer { align-items:flex-start; } .library-footer .brand { width:100%; } .library-related li { flex-wrap:wrap; gap:6px; } .practice-actions .btn { width:100%; justify-content:center; } }
