:root{--ink: #0b1329;--navy: #1d3466;--sun: #ffb703;--amber: #ffc233;--mint: #62e3c4;--vermilion: #d9482b;--display: "Bricolage Grotesque", "Space Grotesk", system-ui, sans-serif;--body: "Newsreader", "Iowan Old Style", Georgia, serif;--ui: "Space Grotesk", system-ui, -apple-system, sans-serif;--radius: 16px;--bg-primary: #f4efe4;--bg-secondary: #fbf8f0;--text-primary: #232a3b;--text-heading: #0b1329;--text-secondary: #5f6579;--border-color: #d9d0bb;--accent-color: #c23d21;--accent-hover: #0b1329;--accent-contrast: #ffffff;--rating-color: #d98e00;--shadow: 0 2px 8px rgba(11, 19, 41, .1);--shadow-hover: 0 10px 20px rgba(11, 19, 41, .18)}html[data-theme=dark]{--bg-primary: #1d3466;--bg-secondary: #28427b;--text-primary: #e4e9f6;--text-heading: #ffffff;--text-secondary: #a9b9e0;--border-color: #3d5a9b;--accent-color: #ffc233;--accent-hover: #ffffff;--accent-contrast: #0b1329;--rating-color: #ffc233;--shadow: 0 2px 8px rgba(0, 0, 0, .3);--shadow-hover: 0 10px 20px rgba(0, 0, 0, .45)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease;font:400 1.125rem/1.6 var(--body);font-optical-sizing:auto;display:flex;flex-direction:column;min-height:100vh}main{flex:1 0 auto;width:100%}h1,h2,h3,h4{font-family:var(--display);color:var(--text-heading);letter-spacing:-.02em;line-height:1.15}h1{font-weight:800}h2{font-weight:700}h3{font-weight:600}:focus-visible{outline:3px solid var(--amber);outline-offset:2px}header{position:sticky;top:0;z-index:50;background-color:var(--ink);color:#fff;margin-bottom:2rem}.header-container{display:flex;align-items:center;gap:1.5rem;max-width:1400px;height:68px;margin:0 auto;padding:0 2rem}.header-title{font:700 1.9rem/1 var(--display);letter-spacing:-.01em;color:#fff;margin:0;white-space:nowrap}.header-title a{color:#fff;display:flex;align-items:center;gap:10px}.header-title a:hover{color:#fff;text-decoration:none}.header-title b{font-weight:800;color:var(--sun)}.brand-mark{width:20px;height:20px;border-radius:50%;background:conic-gradient(#6f8fff 0 33%,var(--amber) 0 66%,var(--mint) 0);display:inline-block;flex:none}.theme-toggle{background:none;border:2px solid rgba(255,255,255,.25);color:#e3e6f2;padding:.5rem 1rem;border-radius:999px;cursor:pointer;font:500 .875rem/1 var(--ui);transition:all .2s ease;display:flex;align-items:center;gap:.5rem;white-space:nowrap}.theme-toggle:hover{background-color:var(--sun);color:var(--ink);border-color:var(--sun)}header nav{margin-left:auto;display:flex;gap:4px}header nav a{display:inline-flex;align-items:center;padding:12px 16px;font:500 1.05rem/1 var(--ui);color:#e3e6f2;text-decoration:none;border-radius:999px;transition:background .15s,color .15s}header nav a:hover,header nav a[aria-current=page]{background-color:#ffffff1f;color:#fff;text-decoration:none}.intro{padding-top:0;padding-bottom:2rem;display:grid;grid-template-columns:minmax(0,1fr) clamp(180px,24vw,300px);gap:2rem;align-items:start}.intro p{margin-bottom:1rem}.flex-container{min-width:0}.headshot{margin-top:1rem;display:flex;justify-content:flex-end}.headshot img{display:block;width:100%;max-width:300px;height:auto;object-fit:cover;border-radius:.75rem}@media(max-width:720px){.intro{grid-template-columns:minmax(0,1fr) 180px;gap:1rem}}@media(max-width:560px){.intro{grid-template-columns:1fr}.headshot{justify-content:center;margin-top:0}}main{max-width:1400px;margin:0 auto;padding:1rem 2rem}.site-footer{margin-top:3rem;background:var(--ink);color:#b9bed2}.site-footer-content{max-width:1400px;margin:0 auto;padding:1.6rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.copyright{color:#b9bed2;font:400 .85rem var(--ui);display:flex;align-items:center;gap:10px}.copyright .brand-mark{width:16px;height:16px}.rss-link{display:inline-flex;align-items:center;gap:.45rem;color:#d9dcea;text-decoration:none;font:400 .85rem var(--ui)}.rss-link svg{width:1rem;height:1rem;fill:currentColor;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.rss-link:hover{color:var(--sun);text-decoration:none}.book-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4.5rem;margin-bottom:3rem}@media(max-width:1024px){.book-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.book-grid{grid-template-columns:repeat(2,1fr);gap:1rem}}@media(max-width:480px){.book-grid{grid-template-columns:1fr}}.book-card{display:flex;flex-direction:column;background-color:var(--bg-secondary);border-radius:var(--radius);overflow:hidden;transition:all .3s ease;box-shadow:var(--shadow);border:1px solid var(--border-color);cursor:pointer}.book-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}.book-cover{width:100%;aspect-ratio:2 / 3;object-fit:cover;background-color:var(--bg-primary)}.book-cover-placeholder{width:100%;aspect-ratio:2 / 3;background:linear-gradient(135deg,var(--border-color) 0%,var(--bg-primary) 100%);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:.875rem;text-align:center;padding:1rem}.book-info{padding:.75rem;display:flex;flex-direction:column;flex-grow:1;text-align:center}.book-title{font-family:var(--display);font-size:.95rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem;line-height:1.2;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.book-author{font-family:var(--ui);font-size:.78rem;color:var(--text-secondary);margin-bottom:.5rem}.book-rating{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.75rem;color:var(--rating-color);margin-top:auto}.stars{display:flex;gap:.125rem;letter-spacing:.125rem}.book-date{font-family:var(--ui);font-size:.72rem;color:var(--text-secondary);margin:.25rem 0 0}.star{color:var(--rating-color);font-size:1rem;line-height:1}.star.empty{color:var(--border-color);opacity:.5}.pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:3rem;padding:2rem 0}.pagination-button{padding:.75rem 1rem;border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-primary);border-radius:999px;cursor:pointer;transition:all .2s ease;font:600 .875rem/1 var(--ui)}.pagination-button:hover:not(:disabled){background-color:var(--accent-color);color:var(--accent-contrast);border-color:var(--accent-color);text-decoration:none}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.pagination-info{color:var(--text-secondary);font:500 .875rem var(--ui);margin:0 1rem}a{color:var(--accent-color);text-decoration:none;transition:color .2s ease}a:hover{color:var(--accent-hover);text-decoration:underline;text-underline-offset:.18em}@media(max-width:768px){header{position:static}.header-container{padding:.75rem 1rem;height:auto;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem}.header-title{font-size:1.5rem}header nav{order:3;width:100%;margin-left:0;justify-content:center}header nav a{padding:10px 14px;font-size:1rem}main{padding:0 1rem}}
