:root {
  --black:#050509;
  --black-soft:#0d0e16;
  --line:#343852;
  --paper:#ecebe7;
  --muted:#a9adbd;
  --silver:#c8ccdd;
  --lilac:#8b67a8;
  --ochre:#c28b32;
  --sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --serif:Georgia,"Times New Roman",serif;
}
* { box-sizing:border-box; }
html { background:var(--black); color:var(--paper); scroll-behavior:smooth; }
body { margin:0; background:radial-gradient(circle at 70% 0%,#17192a 0,transparent 30rem),var(--black); font-family:var(--serif); line-height:1.55; }
body.modal-open { overflow:hidden; }
a { color:inherit; }
button,input { font:inherit; }
.library-header { min-height:78svh; padding:clamp(1.2rem,4vw,4rem); display:flex; flex-direction:column; justify-content:flex-end; border-bottom:1px solid var(--line); background:linear-gradient(0deg,rgba(2,2,5,.92),rgba(2,2,5,.18)),center 45%/cover no-repeat url('assets/maria/art-13.webp'); }
.back-link { position:absolute; top:1.4rem; left:clamp(1.2rem,4vw,4rem); padding:.55rem .75rem; border:1px solid rgba(230,232,242,.45); border-radius:.35rem; background:rgba(0,0,3,.7); text-decoration:none; font:700 .72rem var(--sans); letter-spacing:.08em; text-transform:uppercase; }
.library-kicker,.section-label { margin:0 0 .55rem; color:var(--silver); font:700 .72rem var(--sans); letter-spacing:.15em; text-transform:uppercase; }
.library-header h1 { max-width:10ch; margin:0; color:#fff; font-size:clamp(3.6rem,10vw,8.8rem); line-height:.8; letter-spacing:-.055em; }
.library-lead { max-width:49rem; margin:1.7rem 0 0; color:#ececf1; font-size:clamp(1.08rem,2vw,1.38rem); }
main { width:min(112rem,100%); margin:auto; }
.vocabulary { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(2rem,7vw,8rem); padding:clamp(4rem,8vw,8rem) clamp(1.2rem,4vw,4rem); border-bottom:1px solid var(--line); }
.vocabulary h2,.collection h2 { margin:0; font-size:clamp(2.2rem,5vw,4.5rem); line-height:.95; letter-spacing:-.04em; }
.principles-list { margin:2rem 0 0; padding:0; list-style:none; counter-reset:principle; display:grid; gap:1rem; }
.principles-list li { counter-increment:principle; display:grid; grid-template-columns:2rem 1fr; gap:.8rem; color:#d8d9df; }
.principles-list li::before { content:counter(principle,decimal-leading-zero); color:var(--ochre); font:700 .72rem var(--sans); padding-top:.25rem; }
.palette { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin-top:1.25rem; }
.swatch { display:flex; align-items:center; gap:.7rem; padding:.6rem; border:1px solid var(--line); background:#090a10; }
.swatch-color { width:2.6rem; height:2.6rem; border:1px solid rgba(255,255,255,.22); flex:0 0 auto; }
.swatch strong,.swatch small { display:block; font-family:var(--sans); }
.swatch strong { font-size:.76rem; }
.swatch small { color:var(--muted); font-size:.68rem; margin-top:.1rem; }
.collection { padding:clamp(4rem,8vw,8rem) clamp(1.2rem,4vw,4rem); }
.collection-head { display:flex; justify-content:space-between; align-items:end; gap:2rem; }
.search-label { display:grid; gap:.35rem; width:min(24rem,100%); color:var(--muted); font:700 .68rem var(--sans); letter-spacing:.1em; text-transform:uppercase; }
.search-label input { width:100%; padding:.72rem .85rem; border:1px solid var(--line); border-radius:.3rem; background:#090a10; color:#fff; outline:none; }
.search-label input:focus { border-color:#929bbb; box-shadow:0 0 0 3px rgba(146,155,187,.16); }
.filters { display:flex; flex-wrap:wrap; gap:.5rem; margin:2rem 0; }
.filter-button { padding:.55rem .72rem; border:1px solid var(--line); border-radius:999px; background:#090a10; color:#d6d8e1; cursor:pointer; font:700 .68rem var(--sans); letter-spacing:.07em; text-transform:uppercase; }
.filter-button:hover,.filter-button.is-active { background:#31364e; border-color:#8d97bd; color:#fff; }
.library-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; }
.library-card { min-width:0; border:1px solid var(--line); background:#090a10; overflow:hidden; }
.library-card.is-glossary { grid-row:span 2; }
.card-image { display:block; width:100%; aspect-ratio:4/3; padding:0; border:0; background:#000; cursor:zoom-in; overflow:hidden; }
.is-glossary .card-image { aspect-ratio:3/4; }
.card-image img { width:100%; height:100%; display:block; object-fit:contain; transition:transform .35s ease; }
.card-image:hover img { transform:scale(1.015); }
.card-copy { padding:1.2rem; }
.card-number { margin:0 0 .45rem; color:var(--ochre); font:700 .67rem var(--sans); letter-spacing:.14em; text-transform:uppercase; }
.card-copy h3 { margin:0; font-size:1.45rem; line-height:1.05; }
.card-copy > p:not(.card-number) { color:#c3c5cf; margin:.75rem 0; }
.card-meta { display:flex; justify-content:space-between; gap:.7rem; color:#858a9f; font:.65rem var(--sans); }
.empty-state { padding:3rem; text-align:center; color:var(--muted); border:1px solid var(--line); }
.library-modal { width:min(94vw,96rem); max-height:94svh; padding:0; border:1px solid #555d7d; background:#030306; color:var(--paper); }
.library-modal::backdrop { background:rgba(0,0,0,.88); backdrop-filter:blur(5px); }
.library-modal__close { position:fixed; top:calc(3svh + .8rem); right:calc(3vw + .8rem); z-index:2; display:grid; place-items:center; width:2.6rem; height:2.6rem; padding:0; border:1px solid #e0e3ef; border-radius:50%; background:#050509; color:#fff; font-size:1.8rem; line-height:1; cursor:pointer; }
.library-modal img { display:block; width:100%; max-height:68svh; object-fit:contain; background:#000; }
.library-modal__copy { padding:1.25rem 1.5rem 1.5rem; }
.library-modal__copy h2 { margin:0; font-size:clamp(1.8rem,4vw,3.2rem); line-height:1; }
.library-modal__copy > p:not(.section-label) { color:#c6c8d2; }
.modal-tags { font:700 .7rem var(--sans); color:#9da5c4!important; }
.download-link { display:inline-flex; margin-top:.4rem; padding:.65rem .8rem; border:1px solid #8c96ba; border-radius:.3rem; text-decoration:none; font:700 .7rem var(--sans); letter-spacing:.08em; text-transform:uppercase; }
.library-footer { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding:1.2rem clamp(1.2rem,4vw,4rem); border-top:1px solid var(--line); color:var(--muted); font:.72rem var(--sans); }
.library-footer p { margin:0; }
@media (max-width:900px) {
  .vocabulary { grid-template-columns:1fr; }
  .library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .library-card.is-glossary { grid-row:auto; }
}
@media (max-width:620px) {
  .library-header { min-height:70svh; }
  .library-header h1 { font-size:clamp(3.1rem,17vw,5rem); }
  .collection-head { align-items:stretch; flex-direction:column; }
  .library-grid { grid-template-columns:1fr; }
  .palette { grid-template-columns:1fr; }
  .card-meta { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.001ms!important; } }
