*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#131311;--color-surface:#1c1c19;--color-border:#2c2c28;--color-text:#e9e8e2;--color-muted:#918f85;--color-accent:#c9a24d;--radius:8px;--max-w:1000px}[data-theme=light]{--color-bg:#faf9f6;--color-surface:#fff;--color-border:#e6e3da;--color-text:#201f1b;--color-muted:#6b6858;--color-accent:#96702a}html{color-scheme:dark;font-size:19px}[data-theme=light] html{color-scheme:light}body{background:var(--color-bg);color:var(--color-text);font-family:Georgia,Iowan Old Style,Palatino Linotype,serif;line-height:1.6}a{color:inherit}.container{max-width:var(--max-w);margin:0 auto;padding:0 1.5rem}.site-header{padding:1.5rem 0}.site-header .container{justify-content:space-between;align-items:center;display:flex}.site-title{letter-spacing:.02em;color:var(--color-text);font-size:1.1rem;font-weight:600;text-decoration:none}.theme-toggle{border:1px solid var(--color-border);width:34px;height:34px;color:var(--color-muted);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:flex}.theme-toggle:hover{color:var(--color-text);border-color:var(--color-accent)}.icon-moon,[data-theme=light] .icon-sun{display:none}[data-theme=light] .icon-moon{display:block}.intro{text-align:center;padding:2.5rem 0 3.5rem}.author-photo{object-fit:cover;border-radius:50%;width:96px;height:96px;margin-bottom:1rem}.intro h1{margin-bottom:1.25rem;font-size:1.9rem;font-weight:600}.bio{text-align:left;max-width:52ch;margin:0 auto}.bio p{color:var(--color-muted);margin-bottom:.9rem;font-size:1rem}.bio p:last-child{margin-bottom:0}.book-grid{grid-template-columns:repeat(3,1fr);gap:2rem 1.5rem;padding-bottom:3.5rem;display:grid}@media (width<=640px){.book-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=400px){.book-grid{grid-template-columns:1fr}}.book-card{flex-direction:column;gap:.6rem;display:flex}.book-cover{border-radius:4px;transition:transform .2s;display:block;overflow:hidden;box-shadow:0 6px 20px #00000059}.book-cover:hover{transform:translateY(-3px)}.book-cover img{width:100%;height:auto;display:block}.book-title{color:var(--color-text);font-size:.88rem;font-weight:600;line-height:1.35;text-decoration:none}.book-title:hover{color:var(--color-accent)}.book-links{gap:1.25rem;margin-top:auto;padding-top:.5rem;display:flex}.book-links a{color:var(--color-muted);transition:color .15s;display:flex}.book-links a:hover{color:var(--color-accent)}.book-links svg{fill:currentColor;width:32px;height:32px}.signup{border-top:1px solid var(--color-border);text-align:center;padding:3rem 0}.signup h2{margin-bottom:.5rem;font-size:1.2rem;font-weight:600}.signup p{color:var(--color-muted);margin-bottom:1.5rem;font-size:.9rem}.signup-form{flex-wrap:wrap;justify-content:center;gap:.6rem;max-width:420px;margin:0 auto;display:flex}.signup-form input[type=email]{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);flex:220px;padding:.65em .9em;font-family:inherit;font-size:.9rem}.signup-form input[type=email]:focus{border-color:var(--color-accent);outline:none}.signup-form button{border-radius:var(--radius);background:var(--color-accent);color:#1a1408;cursor:pointer;border:none;padding:.65em 1.4em;font-family:inherit;font-size:.9rem;font-weight:600;transition:opacity .15s}.signup-form button:hover{opacity:.85}.signup-response{margin-top:.9rem;font-size:.85rem}.signup-response.success{color:#6db86f}.signup-response.error{color:#d17a7a}.signup-honeypot{position:absolute;left:-9999px}.site-footer{border-top:1px solid var(--color-border);color:var(--color-muted);text-align:center;padding:1.5rem 0;font-size:.8rem}.site-footer a{text-underline-offset:2px;text-decoration:underline}.site-footer a:hover{color:var(--color-accent)}.prose{max-width:68ch;margin:0 auto;padding:3rem 0;font-size:.95rem}.prose h1{margin-bottom:1.5rem;font-size:1.6rem}.prose h2{margin:1.75rem 0 .6rem;font-size:1.05rem}.prose p,.prose ul{color:var(--color-text);margin-bottom:1rem}.prose ul{padding-left:1.4rem}.prose a{text-underline-offset:2px;text-decoration:underline}
