:root{--ivory:#fbf8f1;--paper:#fff;--ink:#23252b;--muted:#5b5f6a;--navy:#12296b;--gold:#b8860b;--line:#e6dfce;--r:6px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font:17px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
h1,h2,h3{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;line-height:1.15;margin:0 0 .5em;font-weight:600}
h1{font-size:clamp(2.2rem,6vw,3.8rem)}h2{font-size:clamp(1.6rem,3.5vw,2.3rem)}h3{font-size:1.15rem}
a{color:var(--navy)}img{max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--paper);padding:8px;z-index:9}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
header.top{border-bottom:1px solid var(--line);background:var(--paper)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.logo img{display:block;height:72px;width:auto}
nav a{margin-left:20px;text-decoration:none;color:var(--ink);padding:6px 0;border-bottom:2px solid transparent}
nav a:hover,nav a[aria-current]{border-color:var(--gold)}
@media(max-width:560px){nav a{margin:0 16px 0 0}.logo img{height:60px}}
section{padding:64px 0}.alt{background:var(--paper);border-block:1px solid var(--line)}
.hero{padding:72px 0}.hero .wrap{display:grid;gap:40px;align-items:center;grid-template-columns:1.1fr .9fr}
@media(max-width:800px){.hero .wrap{grid-template-columns:1fr}}
.lead{font-size:1.15rem;color:var(--muted);max-width:34em}
.btn{display:inline-block;padding:12px 22px;border-radius:var(--r);background:var(--navy);color:#fff;text-decoration:none;font-weight:600;border:2px solid var(--navy);cursor:pointer;font-size:1rem;transition:transform .15s}
.btn:hover{transform:translateY(-2px)}
.shelf{display:flex;justify-content:center}.shelf img{width:34%;box-shadow:0 10px 28px rgba(0,0,0,.25);border-radius:2px;margin-left:-6%;background:var(--paper)}
.shelf img:first-child{margin-left:0}.shelf img:nth-child(2){transform:translateY(-14px)}
.hero-logo{width:100%;max-width:420px;margin:auto;display:block}
.grid{display:grid;gap:28px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.cover{aspect-ratio:7/10;background:transparent;display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.cover img{width:100%;height:100%;object-fit:contain}
.ph{color:var(--muted);text-align:center;padding:16px;font-size:.9rem;border:1px dashed var(--line);width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.card h3 a{text-decoration:none;color:var(--ink)}.card h3 a:hover{text-decoration:underline}
.meta{color:var(--muted);font-size:.9rem;margin:0 0 8px}.card p.d{font-size:.95rem;margin:0 0 12px;flex:1}
.chips{display:flex;flex-wrap:wrap;gap:10px}.chip{padding:8px 16px;border:1px solid var(--gold);border-radius:99px;text-decoration:none;color:var(--ink)}.chip:hover{background:var(--gold);color:#000}
.filters{display:grid;gap:12px;grid-template-columns:2fr 1fr 1fr 1fr;margin-bottom:32px}
@media(max-width:700px){.filters{grid-template-columns:1fr 1fr}.filters>div:first-child{grid-column:1/-1}}
input,select,textarea{font:inherit;padding:11px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);color:var(--ink);width:100%}
label{display:block;font-weight:600;margin:14px 0 4px}.filters label{margin-top:0}
.empty{padding:40px;border:1px dashed var(--gold);border-radius:var(--r);text-align:center;color:var(--muted)}
.book{display:grid;gap:48px;grid-template-columns:minmax(220px,380px) 1fr;align-items:start}
@media(max-width:760px){.book{grid-template-columns:1fr}}
.book .cover{box-shadow:0 12px 32px rgba(0,0,0,.2)}.buy{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}
.notice{background:#fff6d6;color:#3b2f00;border-left:4px solid var(--gold);padding:12px 16px;margin-bottom:24px}
.prose{max-width:46em}.msg{margin-top:12px;font-weight:600}
footer{background:var(--paper);border-top:1px solid var(--line);padding:40px 0;font-size:.95rem;color:var(--muted)}
footer .wrap{display:grid;gap:24px;grid-template-columns:auto 1fr}footer img{height:72px;width:auto;display:block}
footer a{color:var(--muted);margin-right:16px}@media(max-width:600px){footer .wrap{grid-template-columns:1fr}}
.hp{position:absolute;left:-9999px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.wrap.prose{max-width:1120px}.prose>*{max-width:46em}
.hero-logo{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px}
/* uniform cards */
.cover{aspect-ratio:7/10;background:transparent;align-items:center;justify-content:center}
.cover img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 4px 14px rgba(0,0,0,.22);border-radius:2px}
.book .cover{aspect-ratio:auto}.book .cover img{width:100%;max-height:none}
.card h3.t{font-size:1.05rem;line-height:1.25;min-height:2.5em;margin:0 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .sub{min-height:2.7em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
.card .btn{margin-top:auto;text-align:center}
.grid{align-items:stretch}

/* Editorial polish */
:root{--ivory:#faf7f0;--navy:#182b58;--gold:#b08a3c;--line:#e8e0d2}
body{line-height:1.7}
section{padding:clamp(42px,6vw,72px) 0}
.hero{background:linear-gradient(115deg,#f8f3e8 0%,#fffdf8 68%)}
.hero .lead{max-width:39em}
.card{padding:18px;box-shadow:0 4px 18px rgba(35,37,43,.035);transition:transform .18s ease,box-shadow .18s ease}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(35,37,43,.09)}
.card .btn{margin-top:12px}
.book .cover{padding:8px;background:#fff;border:1px solid var(--line);border-radius:8px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:1px}
@media(max-width:560px){header.top .wrap{align-items:center}nav{display:flex;flex-wrap:wrap;gap:4px 16px}nav a{margin:0}.hero{padding:44px 0}.card{padding:14px}}
@media(hover:none){.card:hover{transform:none;box-shadow:0 4px 18px rgba(35,37,43,.035)}}

/* Mobile tap targets */
@media(max-width:560px){nav a{padding:12px 0}.chip{padding:12px 18px}.btn{padding:14px 22px}}

/* Book page: smaller cover on phones so the Amazon button is visible sooner */
@media(max-width:760px){.book{gap:24px}.book .cover{max-width:260px;margin:0 auto}}


/* Fields the owner must fill before publishing */
.todo{background:#ffe08a;color:#000;padding:0 4px;border-radius:3px;font-weight:600}
.prose ul{padding-left:1.2em}

body[data-page=legal] .prose hr,body[data-page=privacy] .prose hr,body[data-page=cookies] .prose hr{border:0;border-top:1px solid #d9d4c7;margin:2.5em 0}
body[data-page=legal] .prose h2,body[data-page=privacy] .prose h2,body[data-page=cookies] .prose h2{margin-top:1.6em}

.pimg{height:1.35em;width:auto;max-width:100%;vertical-align:middle}
