@font-face{font-family:OpenDyslexic;src:url('/assets/OpenDyslexic-Regular.woff') format('woff');font-weight:400;font-display:swap}@font-face{font-family:OpenDyslexic;src:url('/assets/OpenDyslexic-Bold.woff') format('woff');font-weight:700;font-display:swap}
:root{color-scheme:dark;--ink:#f4eee7;--muted:#bec0d0;--blue:#91d9ed;--gold:#e6bc81;--bg:#10121f;--line:#3a3c54}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 45% 0,#45305933,transparent 45%),var(--bg);color:var(--ink);font:16px/1.85 OpenDyslexic,sans-serif}button,input,select{font:inherit;color:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.6}h1{font-size:clamp(25px,3vw,36px)}h2{font-size:24px}h3{font-size:19px}img{display:block;max-width:100%}[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;left:16px;z-index:100;background:var(--blue);color:var(--bg);padding:12px}.skip-link:focus{top:12px}header,main,footer{width:min(1250px,calc(100% - 64px));margin:auto}header{display:flex;align-items:center;justify-content:space-between;min-height:96px;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:700;line-height:1.5}.brand img{border-radius:50%;border:1px solid #e6bc8177;padding:3px}.brand span span{color:var(--blue)}.brand small{font-size:12px;font-weight:400;color:var(--muted);display:block}.back-link{font-size:14px;border-bottom:1px solid #91d9ed88;padding:8px 0}.intro{padding:35px 0 27px}.eyebrow{font-size:12px;letter-spacing:.08em;color:var(--gold);margin-bottom:8px}.intro>p:last-child{color:var(--muted);margin-top:8px}.controls{display:flex;gap:18px;align-items:end;flex-wrap:wrap;background:#1b1d2f;border:1px solid var(--line);padding:20px;border-radius:8px}.controls label{display:flex;flex-direction:column;gap:7px;flex:1;min-width:165px}.controls .search{flex:2.4}.controls label>span{font-size:13px;color:var(--muted)}input,select{width:100%;background:#10121f;border:1px solid #535773;border-radius:4px;padding:11px 13px;min-height:49px;font-size:14px}.controls button{min-height:49px;background:transparent;border:1px solid #535773;border-radius:4px;padding:10px 16px;font-size:14px}.shelf-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:22px 0 5px;font-size:13px;color:var(--muted)}.shelf-heading p{color:var(--gold)}.bookcase{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 0;padding:0 16px;background:linear-gradient(90deg,#25233388,transparent 3%,transparent 97%,#25233388);border-inline:6px solid #383044;border-bottom:10px solid #463749;border-radius:5px}.book-slot{position:relative;padding:34px 20px 26px 29px;border-bottom:12px solid #463749;box-shadow:0 12px 0 -4px #0a0b1299;min-width:0}.book-slot:after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:3px;background:#a5827044}.book{position:relative;width:100%;aspect-ratio:5/7;perspective:1200px;isolation:isolate}.book-pages{position:absolute;inset:3px 0 2px 5px;background:repeating-linear-gradient(90deg,#e7dcc9 0 2px,#bfb4a1 2px 3px);box-shadow:3px 4px 9px #0007;border-radius:2px 5px 5px 2px;padding:7px 8px 7px 3px}.portrait-button{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:0;background:#e7dcc9;color:#302435;border:0;overflow:hidden;position:relative}.portrait-button img{width:100%;height:100%;object-fit:contain;object-position:center;background:#1b1724}.portrait-button .portrait-label{position:absolute;bottom:0;left:0;right:0;background:#10121fe8;color:#f4eee7;padding:8px 3px;font-size:12px;text-align:center}.unassigned-art{padding:12px;text-align:center;font-size:13px;line-height:1.8}.unassigned-art span{display:block;font-size:27px;margin-bottom:14px;color:#756075}.cover{position:absolute;inset:0;border:1px solid var(--edge);border-radius:3px 7px 7px 3px;background:linear-gradient(90deg,#0007 0 6px,#ffffff16 7px,#0002 12px,transparent 18px),linear-gradient(135deg,var(--cover),#151524);color:var(--foil);transform-origin:left center;transition:transform .65s cubic-bezier(.2,.65,.2,1),box-shadow .65s;transform-style:preserve-3d;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:17px 12px 17px 20px;box-shadow:5px 8px 15px #0005;z-index:2;text-align:center}.cover:before{content:'';position:absolute;inset:12px 10px 12px 17px;border:1px solid var(--edge);pointer-events:none}.cover .ornament{font-size:24px;margin:0 0 18px;opacity:.8}.cover strong{font-size:clamp(12px,1.15vw,16px);line-height:1.8;overflow-wrap:anywhere}.cover small{font-size:11px;margin-top:20px;font-weight:400;opacity:.85}.book-slot:nth-child(3n+1){--cover:#514266;--edge:#b49ace;--foil:#f0dafa}.book-slot:nth-child(3n+2){--cover:#24505c;--edge:#7eb8c7;--foil:#c8edf6}.book-slot:nth-child(3n){--cover:#603d57;--edge:#ca8bac;--foil:#ffe1ed}.book.is-open .cover{transform:rotateY(-148deg);box-shadow:2px 4px 12px #0004}.book.is-open{z-index:4}.book-caption{margin-top:16px;width:100%;min-height:44px;background:none;border:0;color:var(--muted);font-size:12px;padding:8px 0}.book-caption:hover{color:var(--blue)}#empty,#load-error{padding:70px 15px;text-align:center}footer{display:flex;justify-content:space-between;gap:18px;padding:40px 0;color:var(--muted);font-size:12px}footer a{color:var(--blue)}dialog{border:0;background:#282332;color:var(--ink);border-radius:9px;width:min(1000px,calc(100% - 40px));max-height:90dvh;padding:0;box-shadow:0 30px 100px #000b;overflow:auto}dialog::backdrop{background:#060815dc;backdrop-filter:blur(5px)}.modal-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;font-size:12px;color:#dec5e6;position:sticky;top:0;z-index:5;background:#282332}.modal-tools button{background:transparent;color:var(--ink);border:1px solid #685a76;border-radius:4px;min-height:44px;padding:6px 12px;font-size:14px}.modal-tools button span{font-size:22px;margin-left:8px}.spread{display:grid;grid-template-columns:1fr 1fr;margin:0 14px;color:#342c35;border:1px solid #c5b49d;border-radius:5px;background:#efe6d5;box-shadow:0 5px 0 #ad9b85,0 8px 0 #6c5a53}.page{padding:28px 32px 36px;min-width:0;position:relative}.left-page{background:linear-gradient(90deg,transparent 86%,#40332624);border-right:1px solid #95827388}.right-page{background:linear-gradient(90deg,#40332620,transparent 13%)}.page .eyebrow{color:#66516f}.profile-heading{margin-bottom:20px}.profile-heading h2{overflow-wrap:anywhere}.facts{margin:0;display:grid;grid-template-columns:1fr;gap:10px}.facts>div{border-bottom:1px solid #94827544;padding-bottom:8px}.facts dt{font-size:12px;color:#72566a}.facts dd{font-size:15px;line-height:1.75;margin:2px 0 0;overflow-wrap:anywhere}.right-page h3{margin:8px 0 18px}.personality{font-size:16px;line-height:2}.page-number{display:block;margin-top:30px;text-align:center;font-size:12px;color:#765e6c}.page-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 20px 15px}.page-controls button{border:1px solid #685a76;background:transparent;border-radius:4px;min-height:44px;padding:8px 12px;font-size:13px}.page-controls span{font-size:12px;color:var(--muted)}
@media(max-width:1050px){.bookcase{grid-template-columns:repeat(4,minmax(0,1fr))}.cover strong{font-size:14px}.controls .search{flex-basis:40%}.book-slot{padding-inline:24px 15px}}
@media(max-width:760px){header,main,footer{width:calc(100% - 32px)}header{min-height:80px}.intro{padding-top:25px}.bookcase{grid-template-columns:repeat(3,minmax(0,1fr));padding-inline:5px}.book-slot{padding:27px 12px 14px 20px}.cover{padding-inline:20px 10px}.cover strong{font-size:12px}.cover small{display:none}.cover .ornament{font-size:20px;margin-bottom:12px}.shelf-heading>span{display:none}.controls{gap:12px;padding:14px}.controls .search{flex-basis:100%}.controls label{min-width:120px}.controls button{width:100%}.spread{grid-template-columns:1fr}.left-page{border-right:0;border-bottom:1px solid #bbaa95;background:linear-gradient(0deg,#40332615,transparent 10%)}.right-page{background:linear-gradient(180deg,#40332615,transparent 10%)}.page{padding:25px}.page-controls{flex-wrap:wrap}.page-controls span{order:3;flex-basis:100%;text-align:center}.back-link{font-size:12px}.brand{font-size:16px}.brand small{font-size:11px}.page-number{margin-top:20px}}
@media(max-width:480px){.bookcase{grid-template-columns:repeat(2,minmax(0,1fr))}.book-slot{padding:27px 17px 12px 24px}.cover strong{font-size:14px}.cover .ornament{margin-bottom:18px}.intro p:last-child{font-size:14px}.brand img{width:38px;height:38px}.brand{gap:8px}.brand small{font-size:10px}dialog{width:calc(100% - 18px);max-height:94dvh}.modal-tools{padding:9px 13px;font-size:10px}.page-controls{padding-inline:14px}.page-controls button{font-size:12px}.spread{margin-inline:9px}.page{padding:23px}.book-caption{font-size:11px}.portrait-label{font-size:11px!important}footer{flex-direction:column}.cover:before{inset:10px 8px 10px 16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:360px){.bookcase{grid-template-columns:minmax(0,1fr)}.book-slot{padding:28px 35px 14px 45px}.book{max-width:210px;margin:auto}.cover strong{font-size:15px}.cover small{display:block}.back-link{max-width:70px;text-align:right;line-height:1.6}.brand small{font-size:10px}}
.character-header-links{display:flex;align-items:center;gap:20px}.character-header-links .collection-count{border-color:#e6bc8177;color:#e6bc81}.bunny-trail{width:100%;margin-top:-20px}@media(max-width:600px){.character-header-links{gap:10px}.character-header-links .back-link{font-size:10px}}
