:root{color-scheme:light;--ink:#201b19;--muted:#726965;--paper:#f7f2e9;--card:#fffdf8;--accent:#a8414b;--line:#ded5c8;--focus:#315f8d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);min-width:760px}button,input,select{font:inherit}.site-header{display:flex;align-items:baseline;justify-content:space-between;padding:24px clamp(32px,6vw,96px);border-bottom:1px solid var(--line);background:rgba(255,253,248,.82)}.brand{color:var(--ink);font:700 1.4rem Georgia,serif;text-decoration:none;letter-spacing:-.02em}.brand span{color:var(--accent)}.site-header p,footer{color:var(--muted);font-size:.85rem}main{max-width:1480px;margin:auto;padding:54px clamp(32px,6vw,96px) 80px}.hero{max-width:720px;margin-bottom:38px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--accent);font-weight:700;font-size:.72rem}.hero h1{font:500 clamp(2.8rem,5vw,5rem)/.98 Georgia,serif;letter-spacing:-.045em;margin:.3rem 0}.catalog-controls{display:grid;grid-template-columns:minmax(250px,2fr) repeat(4,minmax(130px,1fr));gap:12px;padding:18px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 30px rgba(63,47,36,.06)}.catalog-controls label{display:grid;gap:7px;color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.catalog-controls input,.catalog-controls select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:8px 10px;text-transform:none;letter-spacing:0}.catalog-controls :focus-visible,.publication-card a:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 55%,transparent);outline-offset:3px}.catalog-state{min-height:24px;margin:26px 0 18px;color:var(--muted)}.publication-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:32px 22px}.publication-card{min-width:0}.cover-link{display:block;position:relative;aspect-ratio:3/4;border-radius:10px;overflow:hidden;background:#ded6ca;box-shadow:0 12px 30px rgba(40,31,27,.14);transition:transform .18s ease,box-shadow .18s ease}.cover-link:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(40,31,27,.21)}.cover-link img{width:100%;height:100%;display:block;object-fit:cover}.immersive-badge{position:absolute;top:10px;right:10px;padding:6px 9px;border-radius:999px;background:rgba(31,26,25,.88);color:white;font-size:.68rem;font-weight:750;letter-spacing:.04em}.card-copy{padding:14px 3px 0}.card-copy h2{font:600 1.16rem/1.2 Georgia,serif;margin:0 0 5px}.card-copy h2 a{color:inherit;text-decoration:none}.card-meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:.76rem}.card-meta span+span:before{content:"·";margin-right:8px}.card-summary{color:#534b48;font-size:.86rem;line-height:1.5;margin:.65rem 0}.tag-list{display:flex;gap:6px;flex-wrap:wrap}.tag{background:#ebe2d6;color:#635650;border-radius:999px;padding:4px 8px;font-size:.68rem}.read-link{display:inline-block;margin-top:11px;color:var(--accent);font-weight:750;font-size:.84rem;text-underline-offset:3px}footer{padding:24px clamp(32px,6vw,96px);border-top:1px solid var(--line)}[hidden]{display:none!important}@media(max-width:1050px){.catalog-controls{grid-template-columns:repeat(2,1fr)}.search-field{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.cover-link{transition:none}}
.skip-link{position:fixed;top:8px;left:8px;z-index:100;transform:translateY(-160%);background:var(--ink);color:white;padding:10px 14px;border-radius:6px}.skip-link:focus{transform:none}.site-header nav{display:flex;gap:24px}.site-header nav a{color:var(--ink);font-weight:700;text-decoration-thickness:2px;text-underline-offset:5px}.shelf{scroll-margin-top:24px;margin:50px 0 68px}.shelf-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:20px}.shelf-heading .eyebrow{margin:0}.shelf-heading h2{font:500 clamp(2rem,3vw,3rem) Georgia,serif;margin:0}.shelf-grid{grid-template-columns:repeat(6,minmax(170px,1fr))}.card-copy h3{font:600 1.16rem/1.2 Georgia,serif;margin:0 0 5px}.card-copy h3 a{color:inherit;text-decoration:none}.cover-placeholder{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(145deg,#d9cdbd,#bba99a);color:rgba(255,255,255,.75);font:700 4rem Georgia,serif}.cover-link img{position:relative}.cover-link.is-missing:after{content:"Cover unavailable";position:absolute;inset:auto 12px 14px;text-align:center;color:white;font-size:.75rem}.card-badges{position:absolute;z-index:2;left:8px;right:8px;bottom:8px;display:flex;gap:5px;flex-wrap:wrap}.badge{padding:5px 7px;border-radius:999px;background:rgba(255,253,248,.92);color:#322b28;font-size:.61rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;box-shadow:0 1px 4px rgba(0,0,0,.14)}.badge.experience{background:rgba(32,27,25,.9);color:white}.badge.status-discontinued{background:#6f625e;color:white}.catalog-state button{border:1px solid var(--ink);background:transparent;border-radius:6px;padding:7px 10px;font-weight:700;cursor:pointer}.state-spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:library-spin .7s linear infinite}@keyframes library-spin{to{transform:rotate(1turn)}}footer{display:flex;justify-content:space-between;align-items:center}footer .brand{font-size:1rem}@media(max-width:1280px){.shelf-grid{grid-template-columns:repeat(4,minmax(180px,1fr))}}@media(prefers-reduced-motion:reduce){.state-spinner{animation:none;border-color:var(--accent)}}
