.eb-sconce,.eb-ghost,.eb-ghost-body,.eb-bat,.eb-bat-wings,.eb-dangler,.eb-climber,.eb-cobweb,.eb-spider{position:absolute}@keyframes eb-frames{to{background-position:calc(-1 * var(--eb-strip)) 0}}.eb-sconce{animation:eb-frames .5s steps(2,end) infinite}.eb-spider{left:0;bottom:0;animation:eb-frames .3s steps(2,end) infinite}@keyframes eb-dangle{0%{transform:translateY(calc(-1px * var(--eb-drop)))}20%{transform:translateY(calc(-1px * var(--eb-drop)))}50%{transform:translateY(0)}75%{transform:translateY(0)}88%{transform:translateY(calc(-1px * var(--eb-drop)))}to{transform:translateY(calc(-1px * var(--eb-drop)))}}.eb-dangler{top:0;animation:eb-dangle 20s infinite}@keyframes eb-climb{0%{transform:translateY(0)}10%{transform:translateY(0)}45%{transform:translateY(calc(-1px * var(--eb-travel)))}60%{transform:translateY(calc(-1px * var(--eb-travel)))}95%{transform:translateY(0)}to{transform:translateY(0)}}@keyframes eb-climb-face{0%{transform:scaleY(1)}52%{transform:scaleY(-1)}97%{transform:scaleY(1)}}.eb-climber{animation:eb-climb var(--eb-cycle) var(--eb-offset) infinite}.eb-climber .eb-spider{animation:eb-frames .3s steps(2,end) infinite,eb-climb-face var(--eb-cycle) step-end var(--eb-offset) infinite}.eb-cobweb--right{transform:scaleX(-1)}@keyframes eb-bat{0%{transform:translate(calc(1px * var(--eb-from)))}20%{transform:translate(calc(1px * var(--eb-to)))}to{transform:translate(calc(1px * var(--eb-to)))}}.eb-bat{animation:eb-bat 40s infinite}.eb-bat-wings{left:0;top:0;animation:eb-frames .18s steps(2,end) infinite}.eb-ghost{animation:eb-bat 60s infinite}@keyframes eb-ghost-bob{0%,to{transform:translateY(0)}25%{transform:translateY(-2px)}50%{transform:translateY(-4px)}75%{transform:translateY(-2px)}}.eb-ghost-body{left:0;top:0;animation:eb-ghost-bob 2.4s step-end infinite}.eb{font-family:"Press Start 2P",ui-monospace,Courier New,monospace;letter-spacing:0;position:relative;width:100%;height:100%;overflow:hidden;cursor:default;-webkit-user-select:none;user-select:none;touch-action:none}.eb-stage{position:absolute;bottom:0;left:0;transform-origin:0 100%;overflow:hidden;image-rendering:pixelated}.eb-wall,.eb-world,.eb-room,.eb-floor{position:absolute}.eb-wall{top:0;left:0;image-rendering:pixelated;will-change:transform}.eb-wall-prop{position:absolute}.eb-world{top:0;bottom:0;left:0;will-change:transform}.eb-floor{left:0;right:0;bottom:0;image-rendering:pixelated}.eb-room{left:0;right:0;height:0}.eb-case{position:absolute;bottom:0;background:#881400;box-shadow:inset 1px 1px #e45c10,inset -1px -1px #3c0800}.eb-case-inner{position:absolute;top:3px;right:3px;bottom:3px;left:3px;background:#0c0c3c;box-shadow:inset 1px 1px #3c0800}.eb-board{position:absolute;left:0;right:0;height:2px;background:#a81000;box-shadow:inset 0 1px #e45c10}.eb-book{position:absolute;margin:0;padding:0;border:0;border-radius:0;font:inherit;cursor:pointer;outline:none}.eb-book:focus-visible{box-shadow:inset 0 0 0 1px #f8f8f8}.eb-plate,.eb-badge{position:absolute;left:50%;transform:translate(-50%);white-space:nowrap;line-height:8px;font-size:8px;color:#1c1c1c}.eb-plate{padding:2px 3px;background:#f8b800;box-shadow:inset 1px 1px #f8d878,inset -1px -1px #ac7c00,0 1px #1c1c1c}.eb-badge{padding:1px 3px;background:#ac7c00;box-shadow:inset 1px 1px #f8b800,inset -1px -1px #503000,0 1px #1c1c1c}.eb-gap{position:absolute;background:#0c0c3c}.eb-ladder{position:absolute;bottom:0;background:linear-gradient(#e45c10,#e45c10) 0 0 / 2px 100% repeat-y,linear-gradient(#e45c10,#e45c10) 12px 0 / 2px 100% repeat-y,repeating-linear-gradient(to bottom,#881400 0 2px,transparent 2px 9px);box-shadow:0 1px #1c1c1c}.eb-season{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.eb-reader{position:absolute;transform-origin:50% 50%}.eb-hud{position:absolute;top:0;left:0;right:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 8px;font-size:8px;line-height:8px;color:#f8f8f8;background:#0c0c3c;border-bottom:2px solid #6844fc}.eb-hud-zone,.eb-hud-count{min-width:0;overflow:hidden;white-space:nowrap}.eb-hud-zone{display:flex;align-items:center;gap:4px;color:#f8b800}.eb-hud-count{justify-self:end}.eb-hud-nav{display:flex;flex:none;gap:1px}.eb-nav{margin:0;padding:3px 1px 3px 2px;font:inherit;line-height:1;display:flex;align-items:center;justify-content:center;color:#0c0c3c;background:#f8b800;box-shadow:inset 1px 1px #f8d878,inset -1px -1px #ac7c00;border:0;border-radius:0;cursor:pointer;outline:none}.eb-nav span{display:block}.eb-nav:focus-visible{box-shadow:inset 0 0 0 1px #f8f8f8,inset -1px -1px #ac7c00}.eb-marker{display:block;flex:none}.eb-hud-zone span{animation:eb-blink .45s steps(1,end) 2}@keyframes eb-blink{0%,49%{opacity:1}50%,to{opacity:.25}}.eb-hud-count{color:#b8b8f8}.eb-hearts{display:flex;flex:none}.eb-heart{display:block;flex:none}@keyframes eb-open{0%{transform:scaleY(.2)}to{transform:scaleY(1)}}.eb-portrait{position:relative;flex:none;width:24px;height:34px;border:1px solid}.eb-portrait-spine{position:absolute;top:0;bottom:0;left:0;width:3px}.eb-portrait-rule{position:absolute;left:5px;right:2px;top:3px;height:1px}.eb-portrait-rule--low{top:auto;bottom:3px}.eb-portrait-line{position:absolute;left:6px;height:2px}.eb-portrait-line--title{top:8px;right:3px}.eb-portrait-line--sub{top:12px;width:9px}.eb-portrait-line--by{bottom:8px;width:12px;height:1px}.eb-sheet{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;font-family:"Press Start 2P",ui-monospace,Courier New,monospace;letter-spacing:0;background:#0c0c3c;color:#f8f8f8;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:pan-y;overscroll-behavior:contain}@keyframes eb-grow{0%{transform:translate(var(--eb-from-x),var(--eb-from-y)) scale(var(--eb-from-sx),var(--eb-from-sy));opacity:.4}to{transform:none;opacity:1}}@keyframes eb-shrink{0%{transform:none;opacity:1}to{transform:translate(var(--eb-from-x),var(--eb-from-y)) scale(var(--eb-from-sx),var(--eb-from-sy));opacity:0}}@keyframes eb-turn-next{0%{transform:translate(28%);opacity:.3}to{transform:none;opacity:1}}@keyframes eb-turn-prev{0%{transform:translate(-28%);opacity:.3}to{transform:none;opacity:1}}@keyframes eb-fade{0%{opacity:1}to{opacity:0}}.eb-sheet--grow,.eb-sheet--shrink{transform-origin:0 0}.eb-sheet--grow{animation:eb-grow var(--eb-zoom) steps(4,end)}.eb-sheet--shrink{animation:eb-shrink var(--eb-zoom) steps(4,end) forwards}.eb-sheet--next{animation:eb-turn-next var(--eb-exit) steps(4,end)}.eb-sheet--prev{animation:eb-turn-prev var(--eb-exit) steps(4,end)}.eb-sheet--open{transform-origin:top center;animation:eb-open .12s steps(3,end)}.eb-sheet--fade{animation:eb-fade var(--eb-exit) steps(4,end) forwards}.eb-sheet-bar{flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1em;padding:.75em 1em;border-bottom:2px solid #6844fc}.eb-sheet-shelf{min-width:0;overflow:hidden;white-space:nowrap;color:#f8b800}.eb-sheet-turn{display:flex;gap:.5em}.eb-sheet-close{justify-self:end}.eb-sheet-plate{flex:none;margin:0;font:inherit;line-height:1;border-radius:0;cursor:pointer;outline:none;display:flex;align-items:center;justify-content:center;padding:.4em;color:#0c0c3c;background:#f8b800;border:0;box-shadow:inset 2px 2px #f8d878,inset -2px -2px #ac7c00}.eb-sheet-plate span{display:block}.eb-sheet-plate:focus-visible{box-shadow:inset 0 0 0 2px #f8f8f8,inset -2px -2px #ac7c00}.eb-sheet-body{flex:1;min-height:0;padding:1em;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:none}.eb-sheet-body::-webkit-scrollbar{display:none}.eb-sheet-head{display:flex;align-items:flex-start;gap:1em}.eb-sheet-cover{position:relative;flex:none;overflow:hidden;width:clamp(96px,min(26vmin,30vw),340px);aspect-ratio:24 / 34}.eb-sheet-detail{flex:1;min-width:0}.eb-cover-box{position:absolute;top:0;right:0;bottom:0;left:0}.eb-sheet-cover-art{transform-origin:0 0}.eb-cover-step,.eb-cover-photo{display:block;width:100%;height:100%}.eb-cover-step{image-rendering:pixelated}.eb-cover-photo{object-fit:cover}.eb-sheet-title{margin:0;font-size:inherit;font-weight:400;line-height:1.5em;color:#f8f8f8;overflow-wrap:anywhere}.eb-sheet-by{margin:1em 0 0;line-height:1.5em;color:#3cbcfc;overflow-wrap:anywhere}.eb-sheet-facts{margin:1.25em 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(24em,100%),1fr));gap:.5em 1.5em}.eb-sheet-fact{display:flex;align-items:center;flex-wrap:wrap;gap:.75em}.eb-sheet-fact dt{color:#f8b800;white-space:nowrap}.eb-sheet-fact dd{display:flex;align-items:center;gap:.75em;margin:0}.eb-sheet-number,.eb-sheet-none,.eb-sheet-words{color:#b8b8f8}.eb-sheet-fact--wide{grid-column:1 / -1;flex-wrap:nowrap;align-items:flex-start}.eb-sheet-fact--wide dd{min-width:0;overflow-wrap:break-word}.eb-sheet-summary{margin:1.5em 0 0;color:#f8f8f8;overflow-wrap:break-word}.eb-loading{image-rendering:pixelated}.eb-loading-text{position:absolute;left:0;right:0;top:40%;margin:0;text-align:center;color:#f8b800;padding-left:3ch}.eb-loading-dots{display:inline-block;width:3ch;text-align:left;vertical-align:top}.eb-loading-dots span{display:inline-block;overflow:hidden;white-space:nowrap;vertical-align:top;animation:eb-loading-dots 1.2s steps(4,end) infinite}@keyframes eb-loading-dots{0%{width:0}to{width:4ch}}.eb-loading-floor{position:absolute;left:0;right:0;bottom:0}.eb-loading-reader{position:absolute;left:50%;transform:translate(-50%)}@keyframes eb-loading-step{0%{background-image:var(--eb-step-a)}50%{background-image:var(--eb-step-b)}}.eb-loading-reader{animation:eb-loading-step .34s step-end infinite}:root{--cherry: #f4325e;--cherry-deep: #c21d52;--tangerine: #ff7a33;--tangerine-deep: #c4501a;--lemon: #ffc93c;--lemon-deep: #8a6512;--lime: #3fc45f;--lime-deep: #1f7a37;--raspberry: #35b9e8;--raspberry-deep: #0f6f96;--grape: #8b45d9;--grape-deep: #7326b8;--bubblegum: #ff6bb3;--bubblegum-deep: #c2246f;--paper: #fff6f2;--paper-lit: #fffdfb;--paper-sunk: #ffeee6;--ink: #2a1436;--ink-soft: #5a3f66;--ink-faint: #6e5578;--rule: rgba(42, 20, 54, .14);--night: #1b0e2e;--night-soft: #2e1852;--night-ink: #fff1f7;--night-faint: #c3a8d8;--stick: #e8cba0;--stick-lit: #f6e2c2;--stick-shade: #c9a678;--stick-edge: #855626;--danger: var(--cherry-deep);--danger-strong: #a8123f;--danger-tint: #ffe3ea;--success: var(--lime-deep);--success-strong: #16702e;--success-tint: #dcf3e2;--notice: var(--lemon-deep);--notice-tint: #fff1cf;--focus: var(--grape-deep);color-scheme:light;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;background:var(--paper);color:var(--ink)}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow-x:hidden;background:linear-gradient(180deg,var(--paper-lit) 0%,var(--paper-sunk) 100%)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.status-message{display:flex;align-items:center;justify-content:center;height:100%;color:var(--ink-faint)}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:var(--ink-faint)}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(2rem,4vw,3rem)}.author{color:var(--ink-soft);font-weight:600}.app-shell{position:relative;width:100vw;height:100vh;height:100dvh;overflow:hidden}.carousel{display:flex;width:100vw;height:100vh;height:100dvh;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none}.carousel::-webkit-scrollbar{display:none}.carousel-panel{flex:0 0 100%;width:100%;height:100%;scroll-snap-align:start;overflow-y:auto;position:relative}.mode-inner{max-width:1200px;margin:0 auto;padding:48px 20px 60px}.bookshelf{display:grid;gap:36px}.shelf-row{display:grid}.shelf-case{background:linear-gradient(180deg,#2a14360d,#2a143621);border-radius:10px 10px 4px 4px;padding:20px 16px 0;cursor:pointer}.shelf-case:hover{background:linear-gradient(180deg,#2a143614,#2a14362b)}.shelf-case:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.shelf-books--stacked{columns:260px;column-gap:18px;padding-bottom:4px}.shelf-books--upright{display:flex;flex-wrap:wrap;align-items:flex-end;gap:3px;padding-bottom:4px}.shelf-ledge{position:relative;height:14px;border-radius:0 0 6px 6px;background:linear-gradient(180deg,var(--stick-lit) 0%,var(--stick) 38%,var(--stick-shade) 72%,var(--stick-edge) 100%);box-shadow:0 6px 10px #2a143642,inset 0 2px #ffffff8c}.shelf-label{position:absolute;left:18px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:5px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#3d2b00;background:linear-gradient(180deg,#ffe08a 0%,var(--lemon) 45%,#d9a417 100%);border:1px solid rgba(255,246,214,.8);box-shadow:0 2px 5px #2a143659,inset 0 1px #fff9;white-space:nowrap}.shelf-count{font-size:10px;font-weight:700;color:#3d2b00;opacity:.78;letter-spacing:normal;text-transform:none}.spine-wrap{position:relative;display:flex}.shelf-books--stacked .spine-wrap{break-inside:avoid}.shelf-books--upright .spine-wrap{align-items:flex-end}.spine-wrap:focus{outline:none}.spine-wrap:focus-visible .spine{outline:2px solid var(--focus);outline-offset:2px}.spine{display:flex;cursor:pointer}.shelf-books--stacked .spine{align-items:center;padding:0 12px;border-radius:2px;box-shadow:0 1px #00000059,inset 0 1px #ffffff24}.shelf-books--upright .spine{align-items:flex-end;justify-content:center;padding:10px 0;border-radius:3px 3px 1px 1px;box-shadow:1px 0 #ffffff1f inset,-1px 0 4px #00000040}.spine-title{color:#f3ead9;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shelf-books--stacked .spine-title{font-size:12px;max-width:100%}.shelf-books--upright .spine-title{writing-mode:vertical-rl;font-size:11px;max-height:100%}.highlight-mode{position:relative;width:100%;height:100%;overflow:hidden;perspective:1800px}.highlight-empty{display:flex;align-items:center;justify-content:center;color:var(--night-faint)}.highlight-page{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;transform-origin:right center;animation:page-turn-in .6s cubic-bezier(.22,1,.36,1) both;cursor:pointer}@keyframes page-turn-in{0%{transform:rotateY(85deg);opacity:.2}to{transform:rotateY(0);opacity:1}}.highlight-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:blur(60px) saturate(1.4) brightness(.55);transform:scale(1.2)}.highlight-cover-frame{position:absolute;top:0;right:0;bottom:0;left:0}.highlight-cover{width:100%;height:100%;object-fit:contain;object-position:center}.highlight-ribbon-clip{position:absolute;overflow:hidden;z-index:3;pointer-events:none;--cover-w: 720px}.highlight-ribbon{position:absolute;top:min(84px,var(--cover-w) * .1167);right:max(-162px,var(--cover-w) * -.225);width:min(600px,var(--cover-w) * .8333);padding:min(14px,var(--cover-w) * .0194) 0;text-align:center;white-space:pre-line;line-height:1.08;transform:rotate(45deg);background:linear-gradient(180deg,#ffe08a 0%,var(--lemon) 45%,#d9a417 100%);color:#3d2b00;font-size:min(36px,var(--cover-w) * .05);font-weight:700;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 6px 18px #2a143673;border:max(1px,min(3px,var(--cover-w) * .00417)) solid rgba(255,246,214,.7)}.highlight-overlay{position:absolute;left:0;right:0;bottom:0;padding:28px 32px 32px;background:linear-gradient(180deg,transparent 0%,rgba(27,14,46,.58) 40%,rgba(27,14,46,.94) 100%);color:var(--night-ink)}.highlight-overlay h2{font-size:clamp(1.4rem,3vw,2.2rem);margin-bottom:6px}.highlight-overlay .author{color:var(--night-faint)}.highlight-overlay .rating{color:var(--lemon);font-weight:600;margin:6px 0}.highlight-overlay .user-rating{color:var(--lemon);font-size:18px;letter-spacing:.1em;margin:2px 0 6px}.highlight-overlay .genres{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px;padding:0;list-style:none}.highlight-overlay .genres li{padding:2px 10px;border:1px solid var(--lemon);border-radius:999px;color:var(--lemon);font-size:13px;font-weight:600;line-height:1.5}.highlight-overlay .subjects{max-width:640px;margin:4px 0 8px;font-size:14px;color:var(--night-faint)}.highlight-overlay .subjects-label{color:var(--night-ink);font-weight:600}.highlight-overlay .description{max-width:640px;font-size:14px;color:var(--night-ink);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.highlight-close{position:absolute;top:16px;right:16px;z-index:5;width:36px;height:36px;border-radius:50%;border:none;background:#00000073;color:#fff;font-size:20px;line-height:1;cursor:pointer}.highlight-progress{position:absolute;bottom:14px;left:20px;right:20px;display:flex;gap:4px;z-index:5}.highlight-dot{flex:1;height:3px;border-radius:2px;background:#ffffff4d}.highlight-dot.active{background:var(--paper)}.classic-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;height:100%}.classic-loading-shelf{width:200px}.classic-loading-books{display:flex;align-items:flex-end;justify-content:center;gap:3px;height:100px}.classic-loading-book{width:18px;border-radius:3px 3px 1px 1px;box-shadow:1px 0 #ffffff1f inset,-1px 0 4px #00000040;animation:classic-loading-lift 1.4s ease-in-out infinite}@keyframes classic-loading-lift{0%,40%,to{transform:translateY(0)}20%{transform:translateY(-14px)}}@media (prefers-reduced-motion: reduce){.classic-loading-book{animation:none}}.pairing-screen{display:flex;align-items:center;justify-content:center}.pairing-card{text-align:center;padding:40px}.pairing-instructions{max-width:460px;margin:0 auto;color:var(--ink-faint)}.pairing-code{margin:28px 0 0;font-size:clamp(3rem,12vw,8rem);font-weight:700;letter-spacing:.12em;font-variant-numeric:tabular-nums}.pairing-pair{display:flex;align-items:center;justify-content:center;gap:clamp(20px,4vw,56px);margin-top:28px;flex-wrap:wrap}.pairing-qr{width:clamp(140px,18vw,260px);height:auto;border-radius:12px;background:#fff;padding:10px;box-shadow:0 8px 24px #2a14362e}.pairing-pair .pairing-code{margin:0}
