/* /library/ curated resource hub (server/library.mjs). Small on purpose: mega menu + card list. */
.lib-bar{background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:40}
.lib-in{display:flex;align-items:center;gap:1rem;min-height:52px}
.lib-tg{position:absolute;opacity:0;pointer-events:none}
.lib-tgl{display:none}
.lib-items{display:flex;align-items:center;gap:.15rem;flex:1 1 auto;flex-wrap:wrap}
.lib-items>a,.lib-dd>summary{display:inline-flex;align-items:center;gap:.3rem;padding:.55rem .7rem;border-radius:8px;color:var(--ink);font-weight:500;font-size:.92rem;cursor:pointer;list-style:none;white-space:nowrap}
.lib-dd>summary::-webkit-details-marker{display:none}
.lib-items>a:hover,.lib-dd>summary:hover,.lib-dd[open]>summary{color:var(--teal);background:var(--tl)}
.lib-items>a.lib-home{color:var(--teal);font-weight:700}
.lib-dd[open]>summary svg{transform:rotate(180deg)}
.lib-mega{position:absolute;left:1rem;right:1rem;top:100%;margin-top:2px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 44px rgba(11,31,58,.16);padding:1.1rem 1.25rem;z-index:60;max-width:var(--max);margin-inline:auto}
.lib-mega.lib-sm{left:auto;right:auto;min-width:230px;padding:.5rem}
.lib-dd{position:static}
.lib-cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.25rem}
.lib-colh{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.45rem}
.lib-mega a{display:block;padding:.32rem .4rem;border-radius:6px;color:var(--ink);font-size:.9rem}
.lib-mega a:hover{background:var(--teal-soft);color:var(--teal)}
.lib-mega a.lib-knec{color:var(--teal);font-weight:600}
.lib-all{margin-top:.8rem;border-top:1px solid var(--line);padding-top:.7rem!important;font-weight:600;color:var(--teal)!important}
.lib-search{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:.15rem .2rem .15rem .9rem;background:#fff;flex:0 1 240px}
.lib-search input{border:0;outline:0;font:inherit;font-size:.9rem;min-width:0;flex:1;background:transparent}
.lib-search button{border:0;background:var(--teal);color:#fff;border-radius:999px;width:32px;height:32px;display:grid;place-items:center;cursor:pointer}
.lib-wrap{padding:1.25rem 0 2.5rem}
.lib-crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;font-size:.85rem;color:var(--muted);margin-bottom:1rem}
.lib-crumb li+li::before{content:"/";margin-right:.35rem;color:#cbd5e1}
.lib-crumb a:hover{color:var(--teal)}
.lib-h1{font-size:clamp(1.6rem,3vw,2.3rem);font-weight:800;letter-spacing:-.02em;line-height:1.2;margin-bottom:.5rem}
.lib-lead{color:var(--muted);max-width:68ch;margin-bottom:1rem}
.lib-count{font-size:.85rem;font-weight:600;color:var(--teal);margin-bottom:.75rem}
.lib-list{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.lib-card{display:flex;align-items:center;gap:.85rem;border:1px solid var(--line);border-radius:14px;padding:.7rem;background:#fff;height:100%}
a.lib-card:hover{border-color:#99f6e4;box-shadow:0 10px 24px rgba(15,118,110,.08)}
.lib-th{flex:0 0 96px;width:96px;height:72px;border-radius:10px;overflow:hidden;background:var(--tl)}
.lib-th img{width:96px;height:72px;object-fit:cover}
.lib-th-ph{display:grid;place-items:center;font-weight:700;font-size:.8rem;color:var(--teal);background:linear-gradient(135deg,var(--teal-soft),#fff)}
.lib-bd{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.15rem}
.lib-sub{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--teal)}
.lib-t{font-weight:600;font-size:.93rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lib-chips{display:flex;flex-wrap:wrap;gap:.25rem}
.lib-chips span{font-size:.72rem;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:.05rem .45rem;color:var(--muted)}
.lib-act{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;flex:0 0 auto}
.lib-pr{font-weight:700;font-size:.9rem}
.lib-btn{background:var(--teal);color:#fff;border-radius:999px;padding:.4rem .85rem;font-size:.82rem;font-weight:600}
a.lib-card:hover .lib-btn{background:var(--teal-dark)}
.lib-btn.is-off{border:0;font:inherit;font-size:.82rem;font-weight:600;background:#e2e8f0;color:#475569;cursor:not-allowed}
.lib-more{margin-top:1rem;font-size:.9rem;color:var(--muted)}
.lib-more a,.lib-pills a{color:var(--teal);font-weight:600}
.lib-also{margin-top:1.75rem}
.lib-also h2,.lib-gh{font-size:1.05rem;font-weight:700;margin:1.5rem 0 .6rem}
.lib-gh-top{font-size:1.3rem;margin-top:2rem}
.lib-pills{display:flex;flex-wrap:wrap;gap:.5rem}
.lib-pills a{border:1px solid var(--line);border-radius:999px;padding:.35rem .8rem;font-size:.88rem}
.lib-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.lib-tile,.lib-sec{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;padding:.75rem .9rem;background:#fff}
.lib-tile:hover,.lib-sec:hover{border-color:var(--teal);background:var(--tl)}
.lib-tile span,.lib-sec span{font-size:.8rem;color:var(--muted)}
.lib-tile-k b{color:var(--teal)}
.lib-secs{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.75rem;margin-top:.5rem}
.lib-sec b{font-size:1.05rem}
.lib-free{margin:.25rem 0 1.25rem}.lib-free h2{font-size:1.05rem;font-weight:700;margin-bottom:.6rem}.lib-free .lib-sub{color:#15803d}
.lib-pack{display:flex;align-items:center;gap:1rem;border:1.5px solid var(--teal);border-radius:14px;padding:.85rem 1rem;background:var(--tl);margin:0 0 1.25rem}
.lib-pack-bd{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.15rem}.lib-pack-k{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--teal)}.lib-pack-m{font-size:.85rem;color:var(--muted)}
.lib-faq{margin-top:1.75rem;max-width:72ch}.lib-faq h2{font-size:1.05rem;font-weight:700;margin-bottom:.5rem}.lib-faq details{border-bottom:1px solid var(--line);padding:.6rem 0}.lib-faq summary{font-weight:600;cursor:pointer}.lib-faq p{color:var(--muted);margin-top:.4rem}
.lib-terms{position:sticky;top:0;z-index:5;display:flex;gap:.4rem;background:#fff;padding:.5rem 0;margin-bottom:.25rem;overflow-x:auto}.lib-terms a{border:1px solid var(--line);border-radius:999px;padding:.35rem .9rem;font-weight:600;font-size:.88rem;color:var(--teal);white-space:nowrap}.lib-terms a:hover{background:var(--tl)}
.lib-term{scroll-margin-top:4rem}
@media (max-width:900px){
  .lib-in{flex-wrap:wrap;gap:.5rem;padding:.4rem 0}
  .lib-tgl{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--teal);padding:.45rem .2rem;cursor:pointer}
  .lib-search{flex:1 1 160px}
  .lib-items{display:none;flex-direction:column;align-items:stretch;flex-basis:100%;order:3;gap:0;padding-bottom:.4rem}
  .lib-tg:checked~.lib-items{display:flex}
  .lib-tg:checked+.lib-tgl svg{transform:rotate(180deg)}
  .lib-items>a,.lib-dd>summary{display:flex;justify-content:space-between;padding:.7rem .4rem;border-bottom:1px solid var(--line);border-radius:0}
  .lib-mega,.lib-mega.lib-sm{position:static;box-shadow:none;border:0;border-radius:0;padding:.25rem 0 .6rem .6rem;margin:0}
  .lib-cols{grid-template-columns:1fr 1fr;gap:.75rem}
  .lib-list{grid-template-columns:1fr}
}
@media (max-width:480px){
  .lib-th,.lib-th img{flex-basis:64px;width:64px;height:48px}
  .lib-card{gap:.6rem;padding:.6rem}
}
.lib-pop{margin-top:1.5rem}.lib-pop-note{color:var(--muted);font-size:.9rem;margin:-.3rem 0 .8rem}
.lib-main{position:sticky;top:0;z-index:50}.lib-main .lib-bar{box-shadow:0 1px 0 var(--line)}
.lib-logo{flex:0 0 auto;display:inline-flex;align-items:center}.lib-logo img{height:28px;width:auto}
.lib-login{flex:0 0 auto;font-weight:600;color:var(--teal);font-size:.92rem;padding:.4rem .2rem}
@media (max-width:900px){.lib-main .lib-in{justify-content:space-between}.lib-main .lib-search{order:4;flex-basis:100%}}
/* homepage2 */
.h2-hero{background:linear-gradient(180deg,var(--tl) 0%,#fff 85%);padding:2.5rem 0 2rem}
.h2-hero-in{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}
.h2-eyebrow{display:inline-block;color:var(--teal);background:var(--teal-soft);font-weight:600;font-size:.85rem;padding:.3rem .7rem;border-radius:999px;margin-bottom:.9rem}
.h2-copy h1{font-size:clamp(1.8rem,3.6vw,2.7rem);line-height:1.12;letter-spacing:-.03em;font-weight:800;margin-bottom:.8rem}
.h2-lead{color:var(--muted);font-size:1.05rem;max-width:52ch;margin-bottom:1.2rem}
.h2-stats{list-style:none;display:flex;gap:1.5rem;flex-wrap:wrap}.h2-stats b{display:block;font-size:1.35rem;color:var(--teal)}.h2-stats span{color:var(--muted);font-size:.85rem}
.h2-picker{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:1.25rem}
.h2-steps{list-style:none;display:flex;gap:.4rem;margin-bottom:.9rem}.h2-steps li{flex:1;text-align:center;font-size:.8rem;font-weight:600;color:var(--muted);background:var(--bg);border-radius:999px;padding:.35rem .3rem}.h2-steps li.on{background:var(--teal);color:#fff}
.h2-ph{font-weight:700;margin:.4rem 0 .5rem;font-size:.95rem}
.h2-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}
.h2-chip{font:inherit;font-size:.85rem;border:1px solid var(--line);background:#fff;border-radius:999px;padding:.4rem .75rem;cursor:pointer;color:var(--ink)}
.h2-chip:hover{border-color:var(--teal);color:var(--teal)}.h2-chip.on{background:var(--teal);border-color:var(--teal);color:#fff}.h2-chip:disabled{opacity:.4;cursor:not-allowed}
.h2-out{border-top:1px solid var(--line);padding-top:.8rem;margin-top:.4rem;display:flex;flex-direction:column;gap:.6rem}.h2-res{color:var(--muted);font-size:.92rem}.h2-go{align-self:flex-start}
.h2-sec{padding:2.6rem 0}.h2-alt{background:var(--bg)}
.h2-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.h2-group{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem}.h2-group h3{font-size:1rem;margin-bottom:.6rem}
.h2-how{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;counter-reset:h}.h2-how li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.1rem;counter-increment:h}.h2-how li::before{content:counter(h);display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--teal);color:#fff;font-weight:700;margin-bottom:.5rem}.h2-how b{display:block;margin-bottom:.25rem}.h2-how span{color:var(--muted);font-size:.92rem}
.h2-school{background:linear-gradient(180deg,#fff,var(--tl))}
.h2-mods{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.h2-mod{border:1px solid var(--line);background:#fff;border-radius:14px;padding:1.1rem;display:flex;flex-direction:column;gap:.3rem}.h2-mod:hover{border-color:var(--teal)}.h2-mod b{color:var(--teal)}.h2-mod span{color:var(--muted);font-size:.9rem}
@media (max-width:900px){.h2-hero-in,.h2-how{grid-template-columns:1fr}.h2-mods{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.h2-mods{grid-template-columns:1fr}.h2-hero{padding-top:1.5rem}}
