/* TinyWorld Institute — Library / living glossary */
:root {
  --school-100: #b8503f;
  --school-200: #d77738;
  --school-300: #d8a72f;
  --school-400: #718455;
  --school-500: #4f88a3;
  --school-600: #866183;
}
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.library-hero { padding-bottom: 76px; }
.library-hero-grid { display:grid; grid-template-columns: minmax(0, 1.1fr) minmax(310px,.72fr); gap:70px; align-items:end; }
.library-hero h1 { max-width: 760px; }
.library-hero-note { background:rgba(255,250,240,.84); border:1px solid var(--line); border-radius:30px; padding:32px; box-shadow:0 14px 42px rgba(61,67,52,.07); position:relative; }
.library-hero-note::before { content:""; position:absolute; width:88px; height:2px; background:var(--terracotta); top:0; left:32px; }
.library-hero-note p:last-child { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:1.28rem; line-height:1.68; color:var(--sage-deep); }
.library-hero-note span { color:var(--terracotta); padding:0 .22em; }
.schools-section { background:rgba(255,250,240,.48); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.library-section-head { max-width:850px; }
.school-visual-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
.school-visual-card { --school-color:var(--sage); --school-wash:rgba(113,130,99,.10); position:relative; border:1px solid color-mix(in srgb, var(--school-color) 38%, transparent); border-radius:30px; overflow:hidden; background:linear-gradient(180deg,var(--school-wash),rgba(255,250,240,.93) 48%); box-shadow:0 12px 38px rgba(61,67,52,.06); display:flex; flex-direction:column; transition:transform .18s ease, box-shadow .18s ease; }
.school-visual-card:hover { transform:translateY(-4px); box-shadow:0 18px 46px rgba(61,67,52,.11); }
.school-100 { --school-color:var(--school-100); --school-wash:rgba(184,80,63,.13); }
.school-200 { --school-color:var(--school-200); --school-wash:rgba(215,119,56,.13); }
.school-300 { --school-color:var(--school-300); --school-wash:rgba(216,167,47,.15); }
.school-400 { --school-color:var(--school-400); --school-wash:rgba(113,132,85,.14); }
.school-500 { --school-color:var(--school-500); --school-wash:rgba(79,136,163,.14); }
.school-600 { --school-color:var(--school-600); --school-wash:rgba(134,97,131,.14); }
.school-icon { padding:24px 24px 0; display:grid; place-items:center; }
.school-icon img { width:min(100%,300px); aspect-ratio:1/1; object-fit:cover; border-radius:50%; box-shadow:0 10px 30px color-mix(in srgb, var(--school-color) 22%, transparent); transition:transform .18s ease; }
.school-visual-card:hover .school-icon img { transform:scale(1.018); }
.school-copy { padding:24px 27px 28px; display:flex; flex-direction:column; flex:1; }
.school-number { color:var(--school-color); text-transform:uppercase; letter-spacing:.16em; font-size:.76rem; font-weight:800; margin:0 0 10px; }
.school-copy h3 { font-size:clamp(1.62rem,2.3vw,2.18rem); margin-bottom:14px; }
.school-copy > p:not(.school-number) { font-size:.98rem; }
.school-copy .governing-question { min-height:4.8em; color:var(--brown); line-height:1.5; }
.school-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin-top:auto; padding-top:16px; }
.school-filter-link { display:inline-flex; padding:10px 14px; border-radius:99px; background:var(--school-color); color:white; text-decoration:none; font-weight:750; font-size:.9rem; }
.school-substack-link { color:var(--school-color); font-weight:700; font-size:.88rem; text-underline-offset:3px; }

.library-explorer-section { background:#f7f0e4; border-bottom:1px solid var(--line); }
.explorer-heading-grid { display:grid; grid-template-columns:1fr auto; gap:44px; align-items:end; margin-bottom:38px; }
.explorer-heading-grid .lead { max-width:760px; }
.edition-card { min-width:280px; max-width:360px; padding:19px 22px; border:1px solid var(--line); background:rgba(255,250,240,.7); border-radius:20px; display:grid; gap:5px; color:var(--brown); }
.edition-card strong { color:var(--sage-deep); font-family:Georgia,"Times New Roman",serif; font-size:1rem; }
.edition-label { color:var(--terracotta); text-transform:uppercase; font-size:.7rem; letter-spacing:.14em; font-weight:800; }
.edition-card span:last-child { font-size:.88rem; }
.explorer-controls { background:rgba(255,250,240,.9); border:1px solid var(--line); border-radius:28px; padding:24px; box-shadow:0 12px 34px rgba(61,67,52,.05); }
.library-search { position:relative; display:flex; align-items:center; background:white; border:1px solid rgba(78,92,67,.28); border-radius:18px; min-height:64px; padding-left:54px; transition:border-color .15s ease, box-shadow .15s ease; }
.library-search:focus-within { border-color:var(--sage); box-shadow:0 0 0 3px rgba(113,130,99,.12); }
.search-symbol { position:absolute; left:21px; top:50%; transform:translateY(-54%) rotate(-12deg); font-family:Georgia,serif; font-size:2rem; color:var(--sage); }
.library-search input { border:0; outline:0; background:transparent; width:100%; padding:16px 84px 16px 0; font:inherit; font-size:1.06rem; color:var(--charcoal); }
.library-search input::placeholder { color:#82887f; }
.library-search button { position:absolute; right:10px; border:0; background:var(--sage-soft); color:var(--sage-deep); border-radius:99px; padding:8px 12px; font:inherit; font-size:.82rem; font-weight:700; cursor:pointer; }
.search-help { margin:10px 4px 22px; font-size:.85rem; color:#6b756a; }
.filter-group + .filter-group, .secondary-filters + .filter-group { margin-top:18px; }
.filter-label { font-weight:750; color:var(--sage-deep); font-size:.86rem; margin:0 0 9px 2px; }
.school-filter-row { display:flex; flex-wrap:wrap; gap:8px; }
.school-filter { --school-color:var(--sage); appearance:none; border:1px solid var(--line); background:rgba(255,255,255,.72); color:var(--sage-deep); border-radius:99px; min-height:38px; padding:8px 13px; font:inherit; font-weight:700; font-size:.86rem; cursor:pointer; display:inline-flex; align-items:center; gap:7px; }
.school-filter span { width:10px; height:10px; border-radius:50%; background:var(--school-color); box-shadow:0 0 0 2px color-mix(in srgb,var(--school-color) 18%,transparent); }
.school-filter:hover, .school-filter.active { border-color:var(--school-color); background:color-mix(in srgb,var(--school-color) 11%,white); color:color-mix(in srgb,var(--school-color) 76%,#263026); }
/* Assign each filter its School color after the base button rule so the
   generic --school-color value cannot override the School class. */
.school-filter[data-school="100"] { --school-color:var(--school-100); }
.school-filter[data-school="200"] { --school-color:var(--school-200); }
.school-filter[data-school="300"] { --school-color:var(--school-300); }
.school-filter[data-school="400"] { --school-color:var(--school-400); }
.school-filter[data-school="500"] { --school-color:var(--school-500); }
.school-filter[data-school="600"] { --school-color:var(--school-600); }
.school-filter[data-school="all"], .school-filter.cross-library { --school-color:var(--sage-deep); }
.secondary-filters { display:flex; align-items:end; gap:14px; margin-top:18px; }
.secondary-filters label { display:grid; gap:7px; flex:1; max-width:460px; color:var(--sage-deep); font-size:.86rem; font-weight:750; }
.secondary-filters select { width:100%; min-height:43px; border:1px solid var(--line); border-radius:12px; background:white; padding:8px 38px 8px 12px; color:var(--charcoal); font:inherit; }
.reset-filters { border:0; background:transparent; color:var(--terracotta); font:inherit; font-weight:750; text-decoration:underline; text-underline-offset:3px; padding:10px 2px; cursor:pointer; }
.alphabet-filter { display:flex; flex-wrap:wrap; gap:5px; }
.alphabet-filter button { width:34px; height:34px; border-radius:50%; border:1px solid transparent; background:transparent; color:#657064; font:inherit; font-size:.84rem; cursor:pointer; }
.alphabet-filter button:hover:not(:disabled), .alphabet-filter button.active { border-color:var(--line); background:white; color:var(--terracotta); font-weight:800; }
.alphabet-filter button:disabled { opacity:.25; cursor:not-allowed; }
.results-toolbar { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin:26px 3px 14px; color:#687169; font-size:.88rem; }
.results-toolbar p { margin:0; }
#results-count { color:var(--sage-deep); font-weight:750; }
.glossary-results { display:grid; gap:10px; }
.glossary-entry { --school-color:var(--sage); border:1px solid var(--line); border-left:4px solid var(--school-color); background:rgba(255,250,240,.9); border-radius:17px; overflow:hidden; box-shadow:0 5px 18px rgba(61,67,52,.025); scroll-margin-top:112px; }
.glossary-entry summary { list-style:none; cursor:pointer; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:center; padding:18px 20px 18px 18px; }
.glossary-entry summary::-webkit-details-marker { display:none; }
.glossary-entry summary:hover { background:color-mix(in srgb,var(--school-color) 5%,transparent); }
.entry-heading { min-width:0; display:grid; gap:3px; }
.entry-term-row { display:flex; flex-wrap:wrap; gap:8px; align-items:baseline; }
.entry-term { font-family:Georgia,"Times New Roman",serif; color:var(--sage-deep); font-size:1.34rem; line-height:1.2; }
.entry-status { font-size:.77rem; color:#707870; }
.entry-summary-meta { display:flex; align-items:center; gap:8px; }
.school-badge { --school-color:var(--sage); display:inline-flex; align-items:center; gap:5px; color:var(--school-color); font-size:.76rem; font-weight:800; letter-spacing:.04em; white-space:nowrap; }
.school-badge::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--school-color); }
.entry-toggle { position:relative; width:24px; height:24px; flex:0 0 24px; }
.entry-toggle::before,.entry-toggle::after { content:""; position:absolute; left:5px; right:5px; top:11px; height:1.5px; background:var(--terracotta); }
.entry-toggle::after { transform:rotate(90deg); transition:transform .15s ease; }
.glossary-entry[open] .entry-toggle::after { transform:rotate(0); }
.glossary-entry[open] summary { border-bottom:1px solid var(--line); }
.entry-body { padding:23px 24px 26px 22px; }
.entry-definition { max-width:850px; }
.entry-definition p { margin:0 0 12px; font-size:1rem; }
.entry-definition p:last-child { margin-bottom:0; }
.entry-indexes { display:flex; flex-wrap:wrap; gap:7px; margin:19px 0 0; }
.index-pill { --school-color:var(--sage); border:1px solid color-mix(in srgb,var(--school-color) 38%,transparent); background:color-mix(in srgb,var(--school-color) 8%,white); color:color-mix(in srgb,var(--school-color) 76%,#263026); border-radius:99px; padding:5px 9px; font-size:.74rem; font-weight:750; }
.entry-reading { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; border-top:1px solid var(--line); margin-top:22px; padding-top:20px; }
.reading-block h4 { margin:0 0 8px; color:var(--terracotta); text-transform:uppercase; letter-spacing:.12em; font-size:.7rem; }
.reading-block a { display:block; color:var(--sage-deep); font-family:Georgia,"Times New Roman",serif; line-height:1.35; text-underline-offset:3px; margin:0 0 6px; }
.reading-block .pending-link { display:block; color:#6d756d; font-family:Georgia,"Times New Roman",serif; line-height:1.35; margin:0 0 6px; }
.pending-note { display:block; color:#92978f; font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:.7rem; margin-top:3px; }
.related-terms { display:flex; flex-wrap:wrap; gap:7px; }
.related-term { appearance:none; border:1px solid var(--line); background:white; color:var(--sage-deep); border-radius:99px; padding:6px 9px; font:inherit; font-size:.77rem; cursor:pointer; }
.related-term:hover { border-color:var(--terracotta); color:var(--terracotta); }
.related-term-static { font-size:.77rem; padding:6px 0; color:#697269; }
.permalink { margin-top:18px; display:inline-block; color:#788077; font-size:.75rem; text-underline-offset:3px; }
.no-results { padding:34px; text-align:center; border:1px dashed var(--line); border-radius:20px; color:#697269; background:rgba(255,250,240,.6); }

.latest-library-section { background:var(--cream); }
.latest-heading { display:flex; justify-content:space-between; align-items:end; gap:36px; margin-bottom:18px; }
.latest-heading > div { max-width:760px; }
.feed-status { color:#727b71; font-size:.86rem; min-height:1.4em; margin-bottom:18px; }
.latest-articles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.latest-article { border:1px solid var(--line); background:rgba(255,250,240,.76); border-radius:20px; padding:23px; display:flex; flex-direction:column; min-height:190px; }
.latest-article time { color:var(--terracotta); text-transform:uppercase; letter-spacing:.12em; font-size:.68rem; font-weight:800; }
.latest-article h3 { font-size:1.42rem; margin:12px 0 10px; }
.latest-article p { color:#667066; font-size:.88rem; margin:0 0 16px; }
.latest-article a { margin-top:auto; color:var(--sage-deep); font-weight:750; text-underline-offset:3px; }
.feed-fallback { grid-column:1/-1; border:1px dashed var(--line); border-radius:20px; padding:24px; background:rgba(255,250,240,.5); }

.framework-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.framework-card { border:1px solid var(--line); border-radius:24px; background:rgba(255,250,240,.78); padding:27px; }
.framework-card h3 { font-size:1.6rem; }
.framework-sequence { font-family:Georgia,"Times New Roman",serif; color:var(--terracotta); font-size:1.05rem; line-height:1.6; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:14px 0; margin:16px 0; }
.framework-list { margin:0; padding-left:1.2rem; }
.framework-list li + li { margin-top:7px; }
.inverted-button { background:white!important; color:var(--sage-deep)!important; border-color:white!important; }
.living-library-note { position:relative; z-index:1; margin-top:28px; max-width:840px; border-top:1px solid rgba(255,255,255,.22); padding-top:20px; color:#e7ecdf; font-size:.9rem; }
.noscript-note { padding:18px; border:1px solid var(--line); border-radius:12px; }

@media (max-width: 1040px) {
  .school-visual-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .latest-articles { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .library-hero-grid, .explorer-heading-grid { grid-template-columns:1fr; }
  .library-hero-note { max-width:650px; }
  .edition-card { min-width:0; max-width:520px; }
  .entry-reading { grid-template-columns:1fr; }
  .latest-heading { align-items:flex-start; flex-direction:column; }
  .framework-grid { grid-template-columns:1fr; }
}
@media (max-width: 680px) {
  .library-hero { padding-top:58px; padding-bottom:54px; }
  .library-hero-grid { gap:36px; }
  .library-hero-note { padding:24px; }
  .library-hero-note p:last-child { font-size:1.12rem; }
  .school-visual-grid { grid-template-columns:1fr; gap:16px; }
  .school-icon img { width:min(100%,280px); }
  .school-copy .governing-question { min-height:0; }
  .school-visual-card { border-radius:24px; }
  .explorer-controls { padding:16px; border-radius:20px; }
  .library-search { min-height:58px; padding-left:45px; }
  .search-symbol { left:16px; }
  .library-search input { font-size:1rem; padding-right:72px; }
  .secondary-filters { align-items:stretch; flex-direction:column; }
  .secondary-filters label { max-width:none; width:100%; }
  .results-toolbar { align-items:flex-start; flex-direction:column; gap:5px; }
  .results-note { display:none; }
  .glossary-entry summary { grid-template-columns:1fr auto; gap:10px; padding:16px 15px; }
  .entry-summary-meta .school-badge:nth-of-type(n+3) { display:none; }
  .entry-term { font-size:1.22rem; }
  .entry-status { font-size:.72rem; }
  .entry-body { padding:20px 17px 22px; }
  .latest-articles { grid-template-columns:1fr; }
  .latest-heading .button { width:100%; }
}

.glossary-guide { margin:0 0 22px; border:1px solid var(--line); border-radius:18px; background:rgba(255,250,240,.56); overflow:hidden; }
.glossary-guide summary { cursor:pointer; list-style:none; padding:15px 18px; color:var(--sage-deep); font-weight:750; }
.glossary-guide summary::-webkit-details-marker { display:none; }
.glossary-guide summary::after { content:"+"; float:right; color:var(--terracotta); font-family:Georgia,serif; font-size:1.25rem; line-height:1; }
.glossary-guide[open] summary::after { content:"−"; }
.glossary-guide[open] summary { border-bottom:1px solid var(--line); }
.glossary-guide-body { padding:18px; max-width:980px; }
.glossary-guide-body > p { margin-top:0; }
.status-legend { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 24px; margin-top:16px; }
.status-legend p { margin:0; padding:9px 0; border-top:1px solid rgba(78,92,67,.12); font-size:.86rem; color:#667066; }
.status-legend strong { color:var(--sage-deep); }
@media (max-width:680px){.status-legend{grid-template-columns:1fr}}
