:root{--paper: #f3eee6;--paper-2: #faf7f2;--ink: #1b1714;--ink-soft: #5c534a;--faint: #8a7d70;--line: #e2d6c6;--seal: #8d3b2f;--seal-deep: #69281f;--pine: #1c2822;--gold: #a68456;--gold-2: #d8c4a4;--serif: "Fraunces", "Palatino Linotype", Palatino, Georgia, serif;--reading: "Newsreader", Georgia, serif;--sans: "Outfit", "Avenir Next", "Segoe UI", sans-serif;--header-h: 4.6rem;--wrap: 1120px;--shadow: 0 24px 60px rgba(48, 32, 18, .12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:1.05rem;line-height:1.5}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.55;background-image:radial-gradient(rgba(70,48,24,.045) .7px,transparent .7px);background-size:5px 5px}app-root,.site{position:relative;z-index:1}img{max-width:100%}button,input,textarea,select{font:inherit;color:inherit}::selection{background:#e7c7b8;color:var(--ink)}:focus-visible{outline:2px solid var(--seal);outline-offset:3px}.skip{position:absolute;left:1rem;top:-4rem;z-index:40;background:var(--paper-2);color:var(--ink);padding:.45rem .7rem}.skip:focus{top:.6rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.wrap{width:min(var(--wrap),calc(100% - 2.4rem));margin-inline:auto}.site-header{position:sticky;top:0;z-index:20;background:#1c2822f5;color:#f6f1e8;border-bottom:1px solid rgba(216,196,164,.28);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-inner{min-height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;position:relative}.brand{color:inherit;text-decoration:none;padding:.7rem 0}.brand-name{display:block;font-family:var(--serif);font-weight:560;font-size:1.55rem;letter-spacing:-.03em;line-height:1}.brand-role{display:block;margin-top:.28rem;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2)}.menu-btn{display:none;border:1px solid rgba(216,196,164,.45);background:transparent;color:#f6f1e8;padding:.4rem .7rem;letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;cursor:pointer}nav[aria-label=Principal]{display:flex;gap:1.35rem;align-items:center}nav[aria-label=Principal] a{color:inherit;text-decoration:none;font-size:.92rem;letter-spacing:.02em;padding:.3rem 0;border-bottom:1px solid transparent}nav[aria-label=Principal] a.is-active,nav[aria-label=Principal] a:hover{border-bottom-color:var(--gold)}.kicker{margin:0 0 .7rem;color:var(--seal);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase}h1,h2,h3{font-weight:560}.hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(180px,280px);gap:4rem;align-items:end;padding:4.2rem 0 3.2rem}.hero h1{margin:0;font-family:var(--serif);font-size:clamp(3.4rem,7vw,6rem);letter-spacing:-.045em;line-height:.9}.role{margin:.8rem 0 1.5rem;letter-spacing:.16em;text-transform:uppercase;font-size:.78rem;color:var(--ink-soft)}.letter p{font-family:var(--reading);font-size:1.28rem;line-height:1.5;color:var(--ink-soft);max-width:40rem}.letter .kicker,.letter .role,.letter h1{font-family:var(--sans)}.letter h1{font-family:var(--serif);color:var(--ink)}.signature{font-family:var(--serif)!important;font-style:italic;font-size:1.7rem!important;color:var(--ink)!important;line-height:1.25!important}.portrait{margin:0;justify-self:end;width:min(100%,250px)}.portrait img,.identity img{display:block;width:100%;aspect-ratio:1;object-fit:cover;filter:grayscale(1) contrast(1.04);box-shadow:14px 14px 0 var(--seal)}.portrait figcaption{margin-top:1.3rem;text-align:right;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;color:var(--faint)}.band{background:var(--pine);color:#f6f1e8}.band-inner{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1.7rem 0}.stat{margin:0}.stat b{display:block;font-family:var(--serif);font-weight:560;font-size:clamp(2.2rem,4vw,3rem);letter-spacing:-.04em;line-height:1}.stat span{display:block;margin-top:.35rem;color:var(--gold-2);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.shelf-section{padding:3.2rem 0 1rem}.section-head,.page-head,.admin-bar,.head-actions,.footer-inner{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.section-head h2,.group h2,.year-block h2,.prose h2,.dialog-body h2{font-family:var(--serif);letter-spacing:-.03em}.section-head h2{margin:0;font-size:2rem}.section-head a,.prose a,.identity a,.contact-list a,.site-footer a{color:var(--seal-deep)}.shelf,.cover-grid{display:grid;gap:1.15rem}.shelf{grid-auto-flow:column;grid-auto-columns:150px;overflow-x:auto;padding:1.2rem 0 .6rem;scroll-snap-type:x mandatory}.cover-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.tome{color:inherit;text-decoration:none;scroll-snap-align:start}.tome h3,.book h3{margin:.45rem 0 0;font-family:var(--serif);font-size:1.05rem;letter-spacing:-.02em;line-height:1.25}.tome p,.by,.meta,.note{margin:.15rem 0 0}.tome>p:not(.by):not(.meta):not(.note){color:var(--ink-soft);font-size:.86rem}.by{color:var(--seal);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.meta{color:var(--faint);font-size:.86rem}.meta span+span:before{content:" \b7  "}.note{font-family:var(--reading);font-style:italic;color:var(--ink-soft)}.cover{width:72px;aspect-ratio:2 / 3;background:#e6dccb;overflow:hidden}.tome .cover,.cover-grid .cover{width:100%}.cover img{width:100%;height:100%;object-fit:cover;display:block}.cover-fallback{display:block;height:100%;background:linear-gradient(90deg,rgba(28,40,34,.16),transparent 16%),repeating-linear-gradient(#ddd2c2,#ddd2c2 8px,#e7dfd2 8px 16px)}.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1rem 0 3rem}.path{display:flex;flex-direction:column;min-height:11rem;padding:1.3rem 1.25rem 1.4rem;text-decoration:none;color:inherit;background:var(--paper-2);border:1px solid var(--line)}.path:hover{border-color:var(--seal)}.path strong{font-family:var(--serif);font-size:1.85rem;font-weight:560;letter-spacing:-.03em;margin:.2rem 0 .45rem}.path span:last-child{color:var(--ink-soft)}.page-head{align-items:end;padding:3rem 0 1.3rem;margin-bottom:1.4rem;border-bottom:1px solid var(--line)}.page-head h1,.login h1{margin:0;font-family:var(--serif);font-size:clamp(2.7rem,6vw,4.6rem);letter-spacing:-.045em;line-height:.92}.lede{max-width:28rem;margin:0;color:var(--ink-soft);font-family:var(--reading);font-size:1.2rem}.search{display:flex;align-items:center;gap:.8rem;border-bottom:1px solid var(--ink);margin:.4rem 0 .6rem}.search input{flex:1;border:0;background:transparent;padding:.7rem 0;font-family:var(--reading);font-size:1.35rem;outline:none}.text-btn,.index button,.admin-table th button{border:0;background:transparent;cursor:pointer;padding:0}.text-btn{color:var(--seal)}.count{margin:0 0 1rem;color:var(--faint);font-size:.92rem}.tri,.index{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.tri button,.index a,.index button{border:1px solid var(--line);background:transparent;color:var(--ink-soft);text-decoration:none;font-size:.86rem;padding:.42rem .75rem;cursor:pointer}.tri button.is-on,.index button.is-on{background:var(--pine);border-color:var(--pine);color:#f6f1e8}.jump{display:flex;flex-direction:column;gap:.3rem;max-width:22rem;margin-bottom:1rem;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.jump select,.card input,.dialog-body input,.dialog-body textarea{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:.55rem 0;text-transform:none;letter-spacing:0;font-size:1rem;color:var(--ink)}.group{margin-top:2.2rem;scroll-margin-top:calc(var(--header-h) + .8rem)}.group h2{margin:0;padding-bottom:.45rem;border-bottom:1px solid var(--ink);font-size:clamp(1.7rem,3vw,2.3rem);display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.group h2 span,.year-block header p{font-family:var(--sans);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.book{display:grid;grid-template-columns:72px 1fr;gap:1rem;align-items:center;padding:.85rem .2rem;border-bottom:1px solid var(--line)}.book:hover{background:#fffcf7b3}.year-block{margin:2.4rem 0 3rem}.year-block header{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--ink);margin-bottom:1.1rem}.year-block h2{margin:0;font-size:clamp(2.4rem,5vw,3.6rem);letter-spacing:-.04em}.prose section,.press-block{padding:1.5rem 0;border-top:1px solid var(--line)}.prose h2{margin:0 0 .8rem;font-size:2rem}.prose p,.prose li{font-family:var(--reading);font-size:1.16rem;line-height:1.5}.press-block{display:grid;grid-template-columns:minmax(9rem,16rem) 1fr;gap:1.5rem}.press-block ul,.pubs,.contact-list{margin:0;padding-left:1.1rem}.cv-grid{display:grid;grid-template-columns:260px 1fr;gap:3.2rem;align-items:start;padding-bottom:3rem}.identity{position:sticky;top:calc(var(--header-h) + 1.2rem)}.identity h2{margin:1.3rem 0 .2rem;font-family:var(--serif);font-size:1.8rem}.identity>p{margin:0 0 1rem;color:var(--ink-soft)}.identity dl{margin:0}.identity dl div{padding:.7rem 0;border-top:1px solid var(--line)}.identity dt{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.identity dd{margin:.15rem 0 0}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:grid;grid-template-columns:7.2rem 1fr;gap:1rem;padding:.75rem 0;border-top:1px solid var(--line)}.timeline span{color:var(--seal);font-size:.92rem;letter-spacing:.03em}.timeline p,.pubs li,.contact-list li{margin:0}.site-footer{margin-top:3rem;border-top:1px solid var(--line);padding:1.4rem 0 2rem;color:var(--ink-soft);font-size:.92rem}.footer-inner p{margin:0}.status{color:var(--ink-soft);font-family:var(--reading);font-size:1.3rem}.banner{background:#f4e6cf;border:1px solid #e2c896;padding:.8rem 1rem;margin:0 0 1rem}.banner.is-error{background:#f8e4df;border-color:#e3b2a8;color:var(--seal-deep)}.login{max-width:32rem;padding:4rem 0 5rem}.card,dialog{background:var(--paper-2);border:1px solid var(--line)}.card{padding:1.3rem 1.3rem 1.4rem;display:grid;gap:1rem}.btn{appearance:none;border:1px solid var(--pine);background:var(--pine);color:#f6f1e8;padding:.65rem .95rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn.ghost{background:transparent;color:var(--ink)}.btn.danger{background:transparent;color:var(--seal-deep);border-color:var(--seal)}.btn:disabled{opacity:.55;cursor:wait}.to-top{position:fixed;right:1.1rem;bottom:1.1rem;z-index:25;border:1px solid var(--gold);background:var(--pine);color:#f6f1e8;font:inherit;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;padding:.75rem .9rem;cursor:pointer;box-shadow:var(--shadow)}.hint,.field-error{margin:0;font-size:.88rem}.field-error{color:var(--seal-deep)}.admin{padding-bottom:3rem}.admin-bar{margin:.4rem 0 .8rem;align-items:center}.table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.92rem}.admin-table th,.admin-table td{text-align:left;padding:.55rem .45rem;border-bottom:1px solid var(--line);vertical-align:middle}.admin-table th button{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.admin-table .cover-cell{width:4.5rem}.admin-table app-cover{display:block;width:52px}.admin-table .cover{width:52px;height:78px}.admin-table .cover img{object-fit:contain;object-position:center}.actions{display:flex;flex-wrap:wrap;gap:.35rem;white-space:nowrap}dialog{width:min(740px,calc(100vw - 1.5rem));padding:0;color:var(--ink);box-shadow:var(--shadow)}dialog::backdrop{background:#1b17147a}.dialog-body{padding:1.4rem;display:grid;gap:.9rem}.dialog-body h2{margin:0;font-size:2rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1.2rem}.dialog-body label,.card label{display:grid;gap:.25rem;font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em}@media(max-width:860px){.menu-btn{display:inline-flex}nav[aria-label=Principal]{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.4rem 1.2rem 1rem;background:var(--pine);border-bottom:1px solid rgba(216,196,164,.28)}nav[aria-label=Principal].is-open{display:flex}.hero,.band-inner,.path-grid,.cv-grid,.press-block,.form-grid,.page-head,.footer-inner,.admin-bar{grid-template-columns:1fr;display:grid}.page-head,.footer-inner,.admin-bar,.head-actions{display:flex;flex-wrap:wrap}.portrait{justify-self:start}.identity{position:static}.timeline li{grid-template-columns:1fr;gap:.15rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.site-header,.site-footer,.path-grid,.shelf-section,.band,.to-top{display:none}body{background:#fff}body:before{display:none}.portrait img,.identity img{box-shadow:none}}
