*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body.ipkb{background:var(--bk-bg);background-image:var(--bk-texture);color:var(--bk-text);font-family:var(--bk-font-body);font-size:17px;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}
.ipkb a{color:var(--bk-accent)}
.ipkb h1,.ipkb h2,.ipkb h3{font-family:var(--bk-font-display);line-height:1.15;margin:.2em 0 .4em;color:var(--bk-text)}
.ipkb h1{font-size:clamp(2rem,5vw,3.2rem)}
.ipkb-nav{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid color-mix(in srgb,var(--bk-accent) 45%,transparent)}
.ipkb-nav a{text-decoration:none;font-weight:600}
.ipkb-brand{font-family:var(--bk-font-display);font-size:1.2rem;letter-spacing:.02em}
.ipkb-wrap{max-width:1100px;margin:0 auto;padding:28px 20px 60px}
.ipkb-narrow{max-width:480px}
.ipkb-hero{padding:30px 0 20px}
.ipkb-kicker{text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;color:var(--bk-accent);margin:0}
.ipkb-lead{font-size:1.15rem;max-width:60ch}
.ipkb-small{font-size:.9rem}
.ipkb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}
.ipkb-card{background:var(--c-bg,var(--bk-surface));border:1px solid var(--c-accent,var(--bk-accent));border-radius:10px;overflow:hidden;transition:transform .25s ease}
.ipkb-card:hover{transform:translateY(-3px)}
.ipkb-card a{display:block;color:var(--c-text,var(--bk-text));text-decoration:none;padding:14px}
.ipkb-card h2{font-size:1.1rem;color:var(--c-text,var(--bk-text));margin:.6em 0 .1em}
.ipkb-card p{margin:0;color:var(--c-accent,var(--bk-accent));font-size:.9rem}
.ipkb-cover{display:block;width:100%;max-width:260px;aspect-ratio:2/3;object-fit:cover;border-radius:6px;box-shadow:0 14px 40px rgba(0,0,0,.5)}
.ipkb-typecover{display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:2/3;width:100%;max-width:260px;padding:18px;border-radius:6px;background:linear-gradient(160deg,var(--c-surface,var(--bk-surface)),var(--c-bg,var(--bk-bg)));border:1px solid var(--c-accent,var(--bk-accent));box-shadow:0 14px 40px rgba(0,0,0,.45)}
.ipkb-typecover .t{font-family:var(--bk-font-display);font-size:1.5rem;line-height:1.1;color:var(--c-text,var(--bk-text))}
.ipkb-typecover .a{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--c-accent,var(--bk-accent))}
.ipkb-books{display:flex;flex-direction:column;gap:28px}
.ipkb-bookrow{display:grid;grid-template-columns:minmax(120px,200px) 1fr;gap:24px;align-items:start;background:var(--bk-surface);border:1px solid color-mix(in srgb,var(--bk-accent) 40%,transparent);border-radius:12px;padding:20px}
@media (max-width:600px){.ipkb-bookrow{grid-template-columns:1fr}}
.ipkb-actions{display:flex;flex-wrap:wrap;gap:10px}
.ipkb-btn{display:inline-block;border:1px solid var(--bk-accent);background:var(--bk-accent);color:var(--bk-on-accent);font:600 .95rem/1 var(--bk-font-body);padding:12px 18px;border-radius:8px;cursor:pointer;text-decoration:none}
.ipkb-btn:hover{filter:brightness(1.08)}
.ipkb-btn[disabled]{opacity:.55;cursor:wait}
.ipkb-ghost{background:transparent;color:var(--bk-accent)}
.ipkb-panel{background:var(--bk-surface);border:1px solid var(--bk-accent);border-radius:12px;padding:22px}
.ipkb-panel form{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.ipkb-panel label{display:flex;flex-direction:column;gap:6px;font-size:.92rem}
.ipkb input,.ipkb textarea,.ipkb select{background:var(--bk-bg);color:var(--bk-text);border:1px solid color-mix(in srgb,var(--bk-accent) 60%,transparent);border-radius:8px;padding:11px 12px;font:inherit}
.ipkb input:focus,.ipkb textarea:focus,.ipkb select:focus{outline:2px solid var(--bk-accent);outline-offset:1px}
.ipkb-tabs{display:flex;gap:6px;flex-wrap:wrap}
.ipkb-tabs button{background:transparent;border:1px solid color-mix(in srgb,var(--bk-accent) 50%,transparent);color:var(--bk-text);border-radius:999px;padding:8px 14px;cursor:pointer;font:inherit;font-size:.9rem}
.ipkb-tabs button[aria-selected="true"]{background:var(--bk-accent);color:var(--bk-on-accent);border-color:var(--bk-accent)}
.ipkb-msg{min-height:1.4em}
.ipkb-alert{border:1px solid var(--bk-accent);border-radius:8px;padding:10px 14px}
.ipkb-creds{display:grid;gap:10px;margin:14px 0}
.ipkb-creds code{display:block;padding:10px;background:var(--bk-bg);border:1px solid var(--bk-accent);border-radius:6px;font-size:1rem;word-break:break-all;user-select:all}
.ipkb-qr{background:#fff;padding:10px;display:inline-block;border-radius:6px}
.ipkb a.ipkb-btn,.ipkb .ipkb-btn{color:var(--bk-on-accent)}
.ipkb a.ipkb-ghost,.ipkb .ipkb-ghost{color:var(--bk-accent)}
.ipkb-soon{cursor:default;opacity:.8}
/* BOOKS ALIVE wordmark */
.ipkb-brand{display:inline-flex;flex-direction:column;line-height:1;text-decoration:none!important;gap:3px}
.ipkb-brand .ba-word{font-family:var(--bk-font-display);font-weight:700;font-size:1.25rem;letter-spacing:.16em;color:var(--bk-accent)}
.ipkb-brand .ba-by{font-family:var(--bk-font-body);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--bk-text);opacity:.85}
.ipkb-nav .ba-where{flex:1;margin:0 18px;font-size:.9rem;color:var(--bk-text)}
.ipkb-nav .ba-where a{color:var(--bk-accent)}
@media (max-width:600px){.ipkb-nav .ba-where{display:none}.ipkb-brand .ba-word{font-size:1.05rem}}

/* pages5: author portrait + full bio */
.ipkb-author-hero.has-portrait{display:grid;grid-template-columns:240px minmax(0,1fr);gap:36px;align-items:start}
.ipkb-portrait{margin:0}
.ipkb-portrait img{display:block;width:240px;height:240px;object-fit:cover;border-radius:50%;border:3px solid var(--bk-accent);box-shadow:0 0 0 6px rgba(0,0,0,.25)}
.ipkb-bio p{max-width:68ch;line-height:1.7;margin:0 0 1em}
.ipkb-bio p.ipkb-lead{font-size:1.15rem}
.ipkb-site{margin:.4em 0 0}
.ipkb-site a{color:var(--bk-accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}
@media (max-width:720px){
  .ipkb-author-hero.has-portrait{grid-template-columns:1fr;gap:20px;justify-items:center;text-align:center}
  .ipkb-portrait img{width:180px;height:180px}
  .ipkb-bio p{margin-left:auto;margin-right:auto;text-align:left}
}

/* pages6: participant ways in on the library */
.ipkb-navlinks{display:flex;gap:18px;flex-wrap:wrap;justify-content:flex-end}
.ipkb-hero .ipkb-actions{margin:18px 0 8px}
.ipkb-jump{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px;font-size:.95rem}
.ipkb-jump span{margin-right:4px}
.ipkb-jump a{border:1px solid var(--bk-accent);border-radius:999px;padding:6px 14px;text-decoration:none}
.ipkb-jump a:hover{background:#141000}
.ipkb-section{padding:34px 0 10px;border-top:1px solid color-mix(in srgb,var(--bk-accent) 45%,transparent);margin-top:30px;scroll-margin-top:10px}
.ipkb-h2{font-size:clamp(1.5rem,3.4vw,2.2rem)}
.ipkb-roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px;margin-top:10px}
.ipkb-role{background:var(--bk-surface);border:1px solid var(--bk-accent);border-radius:12px;padding:22px;display:flex;flex-direction:column;scroll-margin-top:10px}
.ipkb-role:target{outline:2px solid var(--bk-accent2);outline-offset:3px}
.ipkb-role h3{font-size:1.45rem;margin-top:.1em}
.ipkb-role p{margin:0 0 .8em}
.ipkb-steps{margin:0 0 16px;padding-left:1.3em}
.ipkb-steps li{margin:0 0 .45em}
.ipkb-role .ipkb-actions{margin-top:auto}
.ipkb-scroll{overflow-x:auto}
.ipkb-split{border-collapse:collapse;min-width:420px;margin:6px 0 12px}
.ipkb-split th,.ipkb-split td{border:1px solid var(--bk-accent);padding:10px 16px;text-align:left}
.ipkb-split thead th{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
.ipkb-split td{font-weight:700;font-variant-numeric:tabular-nums}
@media (max-width:600px){.ipkb-navlinks{gap:12px;font-size:.9rem}}
