:root{
  color-scheme:dark;
  --cream:#f2e2c1;--cream-dim:#c5b494;--gold:#b98d50;--gold-light:#e7c585;
  --wood:#29190f;--wood-deep:#160e09;--ink:#3f2c1b;--parchment:#e8d4ad;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:#120d09;color:var(--cream);font:18px/1.5 'EB Garamond',Georgia,serif;min-height:100vh}
button,input{font:inherit}button,a{touch-action:manipulation}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #f1d19a;outline-offset:4px}button{cursor:pointer;color:inherit}button:disabled{opacity:.35;cursor:not-allowed}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%)}
body::before{content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% -20%,#81533044,transparent 66%),radial-gradient(ellipse at 10% 80%,#56280f33,transparent 60%),repeating-linear-gradient(90deg,#0000 0 10px,#e2a55404 11px 12px),#17100b;z-index:-1}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;position:relative;z-index:2;padding:14px clamp(18px,4.5vw,78px);height:93px;background:linear-gradient(100deg,#1b110b,#342115 50%,#21150d);border-bottom:4px double #836034;box-shadow:0 7px 23px #0007}.brand{display:flex;align-items:center;gap:16px;color:inherit;text-decoration:none}.brand__seal{width:55px;height:55px;display:grid;place-items:center;font-size:31px;color:#d9ba82;border:2px double #9d763d;background:radial-gradient(circle,#6a4325,#291b10)}.brand small{display:block;font:9px 'Cinzel',Georgia,serif;color:#af956f;letter-spacing:.15em}.brand strong{font:500 clamp(19px,2vw,26px)/1.2 'Cinzel',Georgia,serif;letter-spacing:.035em;color:#f3d8a8}.topnav__create{text-decoration:none;font:12px 'Cinzel',serif;letter-spacing:.035em;padding:11px 17px;border:1px solid #916e40;color:#e4c693;background:linear-gradient(110deg,#56371f,#3b291b);transition:.2s}.topnav__create:hover{border-color:#f0ca8d;background:#75502d}
.hall{width:min(1490px,100%);margin:auto;padding:0 clamp(16px,4vw,64px)}.intro{text-align:center;max-width:910px;margin:0 auto;padding:57px 0 31px}.eyebrow{font:10px/1.7 'Cinzel',Georgia,serif;color:#c29b63;letter-spacing:.16em}.intro__ornament{font-size:27px;color:#b88e4e;letter-spacing:.4em;margin-bottom:10px;text-shadow:0 0 19px #b37938aa}.intro h1{font:500 clamp(36px,5.4vw,68px)/1.23 'Cinzel',serif;letter-spacing:.025em;margin:10px 0 20px;color:#f1deba;text-shadow:1px 4px #0009}.intro h1 em{font-style:normal;color:#c49a60}.intro__description{max-width:700px;margin:auto;color:#c6b193;font-size:20px;line-height:1.65}.intro__divider{display:flex;align-items:center;gap:13px;margin:28px 0 0;color:#b58b50}.intro__divider::before,.intro__divider::after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,#8d6c41)}.intro__divider::after{transform:rotate(180deg)}
.catalog__heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:17px}.catalog__heading h2{font:400 clamp(22px,2.5vw,31px)/1.2 'Cinzel',serif;color:#f1d5a5;margin:4px 0 0}.catalog__heading p{margin:0}.catalog__tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.catalog__count{color:#a9926f;font:12px 'Cinzel',Georgia,serif}.search-field{display:flex;align-items:center;gap:8px;border:1px solid #806039;background:#251910;padding:0 12px}.search-field span{font-size:27px;color:#d5b685}.search-field input{background:none;border:none;outline:0;color:#f3dcb4;font:16px 'EB Garamond',serif;padding:9px 0;width:218px}.search-field input::placeholder{color:#a99475}.search-field:focus-within{border-color:#e2b674}.search-field input:focus-visible{outline:0}
.shelves{background:linear-gradient(90deg,#130c07aa,transparent 7%,transparent 93%,#130c07aa),repeating-linear-gradient(90deg,#1b100a 0 50px,#261609 52px 55px),linear-gradient(100deg,#352011,#291910);border:15px solid #4b2c17;border-top-color:#684022;border-bottom-color:#24150c;box-shadow:inset 0 0 0 2px #a17a43,inset 0 0 35px #000b,0 20px 50px #0009;position:relative;min-height:420px;padding:18px 23px 14px}
.shelves::before,.shelves::after{content:'';position:absolute;inset:9px auto 9px 8px;width:5px;background:linear-gradient(90deg,#6b401f,#25170a);box-shadow:2px 0 10px #0008;pointer-events:none}.shelves::after{left:auto;right:8px;transform:scaleX(-1)}
.shelf{position:relative;min-height:354px;margin:0 -7px 10px;padding:13px 13px 16px;background:radial-gradient(ellipse at 50% 77%,#9b5d2220,transparent 63%);display:flex;align-items:end;flex-direction:column;justify-content:end}.shelf__books{display:flex;align-items:flex-end;gap:11px;min-height:319px;flex:1;width:100%;overflow-x:auto;scrollbar-color:#805733 #23170f;scrollbar-width:thin;padding:45px 14px 0;justify-content:flex-start}.shelf__ledge{height:20px;flex:none;width:calc(100% + 34px);margin:0 -17px -3px;background:linear-gradient(180deg,#9f6b39 0%,#573418 20%,#39210f 62%,#21140d 95%);border-top:2px solid #c39b5e;border-bottom:3px solid #1b0e08;box-shadow:0 9px 12px #080604a9,0 -6px 14px #0007;position:relative;z-index:1}.shelf__ledge::after{content:'✧ ══════════ ✥ ══════════ ✧';position:absolute;inset:1px 0 auto;text-align:center;color:#b89054;letter-spacing:.3em;font-size:10px;opacity:.6}
/* Szczegóły grzbietów ładuje wspólny spine.css */
.shelf__empty{display:flex;align-items:center;justify-content:center;width:100%;height:203px;color:#90754f;font:13px 'Cinzel',serif;letter-spacing:.07em;text-align:center;opacity:.7}.shelf__empty::before,.shelf__empty::after{content:'❧';margin:0 13px}.loading{text-align:center;margin:80px auto;color:#d5b68c}.loading__mark{font-size:42px;display:block;animation:pulse 2s ease-in-out infinite}@keyframes pulse{50%{opacity:.32}}.catalog__empty{padding:25px;text-align:center;border:1px solid #7b5d37;margin-top:17px;color:#ddc7a4;background:#291b11}.catalog__empty div{font-size:33px}.catalog__empty h3{font:19px 'Cinzel',serif;margin:4px}.catalog__empty p{color:#b8a384}.footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:13px;color:#a58c68;padding:27px 0 34px;font-size:14px}
/* A book physically leaves the shelf and travels to the reader. */
.pull-animation{position:fixed;z-index:105;pointer-events:none;will-change:transform,opacity;filter:drop-shadow(12px 12px 17px #000e);perspective:1400px}.pull-animation .book-spine{width:100%;height:100%;pointer-events:none;margin:0}
body.is-reading{overflow:hidden}
.reader{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px;isolation:isolate}.reader__scrim{position:absolute;inset:0;background:radial-gradient(ellipse at center,#1a100be8,#070604f7 76%);backdrop-filter:blur(8px)}.reader__window{z-index:1;position:relative;width:min(1200px,100%);max-height:min(930px,96dvh);display:flex;flex-direction:column;min-height:0;padding:22px clamp(15px,3vw,37px) 11px;background:repeating-linear-gradient(92deg,#0000 0 24px,#bb875806 25px 26px),linear-gradient(140deg,#3b2819,#1c160f 57%,#261a11);border:5px double #a37c47;box-shadow:inset 0 0 0 8px #23170e,inset 0 0 0 9px #78562e,0 30px 100px #000e;animation:reader-arrive .66s cubic-bezier(.18,.75,.16,1) both}@keyframes reader-arrive{from{opacity:0;transform:scale(.83) translateY(45px)}to{opacity:1;transform:scale(1) translateY(0)}}.reader__top{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:1px 4px 13px;border-bottom:1px solid #997246}.reader__identity{min-width:0}.reader__top h2{font:500 clamp(19px,3vw,29px) 'Cinzel',serif;color:#f1d8a5;margin:2px 0 2px;overflow-wrap:anywhere}.reader__top p{font-size:15px;color:#baa586;margin:0}.reader__close{border:1px solid #ae8b57;background:#493221;padding:9px 12px;color:#f1d7a7;font:12px 'Cinzel',serif}.reader__close:hover{background:#785031}
.reader__stage{flex:1;min-height:0;display:grid;place-items:center;padding:20px 10px 13px;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,#b17e3c39,transparent 63%)}.reader__book{display:flex;position:relative;width:min(100%,1100px);height:min(65dvh,665px);min-height:355px;background:#5e3922;border:10px solid #52301d;outline:2px solid #a77b46;box-shadow:0 0 0 6px #29170f,0 0 0 8px #956833,0 27px 30px #000b,inset 0 0 25px #0006;transform-style:preserve-3d;perspective:1800px}.reader__page{position:relative;flex:1;min-width:0;overflow:hidden;padding:29px clamp(15px,2.8vw,34px) 22px;color:#46301e;background:radial-gradient(ellipse at 35% 12%,#f4e7c9,#e0c79c 85%);box-shadow:inset 0 0 23px #80603733}.reader__page--left{box-shadow:inset -17px 0 21px #5b3b1d66,inset 0 0 22px #94622c2e}.reader__page--right{box-shadow:inset 17px 0 21px #5b3b1d66,inset 0 0 22px #94622c2e}.reader__gutter{position:absolute;z-index:2;left:calc(50% - 10px);width:20px;height:100%;background:linear-gradient(90deg,#5b33156b,#cfaf8080 49%,#51321977);pointer-events:none}.reader__flip{position:absolute;left:50%;top:0;width:50%;height:100%;z-index:5;pointer-events:none;background:radial-gradient(ellipse at 10% 50%,#bba17b,#e5d1a9 78%);transform-origin:left center;backface-visibility:hidden;display:none}.reader__flip.is-flipping{display:block;animation:turn-right .49s cubic-bezier(.36,.15,.48,.96) both}@keyframes turn-right{from{transform:rotateY(0deg);opacity:1}to{transform:rotateY(-179deg);opacity:0}}.reader__flip.is-back{left:0;transform-origin:right center;animation:turn-left .49s cubic-bezier(.36,.15,.48,.96) both}@keyframes turn-left{from{transform:rotateY(0);opacity:1}to{transform:rotateY(179deg);opacity:0}}
.reader__page[data-paper=royal]{background:radial-gradient(ellipse at center,#f6e3bd,#d5b67d);color:#552e20}.reader__page[data-paper=royal]::after{content:'';position:absolute;inset:9px;border:5px double #9a3f3290;pointer-events:none}.reader__page[data-paper=battle]{background:radial-gradient(ellipse at 93% 0,#b9a17a,#d9c19c 56%,#bea278);color:#3e271b}.reader__page[data-paper=monastery]{background:repeating-linear-gradient(0deg,#0000 0 26px,#99907731 27px 28px),linear-gradient(120deg,#f0ecde,#d9d1bb);color:#2e2920}.reader__page[data-paper=nocturne]{background:radial-gradient(ellipse at center,#34434b,#132331 94%);color:#ecd8b5}
.reader__page:not([data-paper=royal])::after{content:'';position:absolute;inset:10px;border:1px solid currentColor;opacity:.2;pointer-events:none}
.page-content{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;min-height:0}.page-kicker{font:9px 'Cinzel',serif;letter-spacing:.14em;opacity:.7;text-align:center;margin:0 0 12px}.page-title{font:500 clamp(16px,2vw,24px)/1.31 'Cinzel',serif;text-align:center;letter-spacing:.01em;margin:2px 0 13px;overflow-wrap:anywhere}.page-rule{width:39%;height:1px;background:currentColor;opacity:.55;margin:0 auto 17px}.page-body{font:clamp(14px,1.55vw,18px)/1.35 'EB Garamond',Georgia,serif;overflow:hidden;flex:1;min-height:0}.page-body p{margin:0 0 .72em;text-align:justify;hyphens:auto;overflow-wrap:anywhere}.page-body p:first-child::first-letter{font:1.8em/.8 'Cinzel',serif;color:#963c28;float:left;margin-right:4px}.reader__page[data-paper=nocturne] .page-body p:first-child::first-letter{color:#e5bf7d}.page-index{font:10px 'Cinzel',serif;text-align:center;letter-spacing:.08em;opacity:.74;padding-top:8px;margin-top:auto}.page-crest{max-width:140px;max-height:145px;width:42%;height:auto;object-fit:contain;display:block;margin:14px auto}.page-crest-fallback{font-size:69px;text-align:center;color:#956d43;margin:27px 0}.page-subtitle{text-align:center;font-style:italic;font-size:19px}.page-year{font:12px 'Cinzel',serif;text-align:center;margin:auto}.page-image{max-width:100%;max-height:65%;width:100%;height:auto;object-fit:contain;display:block;margin:auto;filter:sepia(.12);box-shadow:0 5px 10px #0004}.page-caption{text-align:center;font-style:italic;font-size:17px;margin:12px 0}.page-placeholder{text-align:center;font-style:italic;opacity:.8;margin:auto}.page-ending{font:20px 'Cinzel',serif;text-align:center;margin:22px 0}
.reader__controls{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 3px 0}.reader__arrow{border:1px solid #936b3e;background:#49301d;color:#edd19f;font:12px 'Cinzel',serif;padding:11px 16px;min-width:140px}.reader__arrow:hover:not(:disabled){background:#684324}.reader__counter{color:#d4b27f;font:12px 'Cinzel',serif;text-align:center}.reader__hint{text-align:center;font-size:12px;color:#a68c65;margin:6px 0 0}
@media(max-width:800px){.topbar{padding:11px 18px;height:78px}.intro{padding-top:36px}.intro__description{font-size:18px}.catalog__heading{flex-direction:column;align-items:start}.catalog__tools{width:100%;justify-content:space-between}.shelves{padding:10px 8px}.reader__window{padding:14px 13px 9px}.reader__book{height:min(63dvh,590px)}.reader__stage{padding:15px 6px}.reader__page{padding:20px 17px}}
@media(max-width:600px){.brand__seal{width:39px;height:43px;font-size:23px}.brand strong{font-size:16px}.brand small{font-size:7px;letter-spacing:.05em}.topnav__create{font-size:10px;padding:8px}.intro h1{font-size:35px}.intro__ornament{font-size:21px}.catalog__heading h2{font-size:23px}.search-field{width:100%}.search-field input{width:100%}.shelf__books{gap:8px;padding-left:5px}.book-spine{width:calc(var(--book-width) * .88);min-width:61px}.reader__window{max-height:97dvh}.reader__book{width:min(100%,480px);height:min(62dvh,620px);border-width:7px}.reader__page--right{display:none}.reader__page{padding:21px 23px}.reader__gutter{left:auto;right:0;width:13px}.reader__flip{left:0;width:100%}.reader__flip.is-back{left:0}.reader__top h2{font-size:20px}.reader__top p{font-size:13px}.reader__close span{display:none}.reader__arrow{min-width:81px;font-size:10px;padding:9px}.reader__arrow span{display:none}.reader__counter{font-size:10px}.reader__hint{font-size:10px}.page-title{font-size:18px}.page-body{font-size:16px}.footer{justify-content:center;text-align:center}}
@media(max-height:680px){.reader__book{height:55dvh;min-height:240px}.reader__stage{padding:10px}.page-body{font-size:14px}.reader__hint{display:none}.page-kicker{margin-bottom:6px}.page-rule{margin-bottom:9px}.reader__page{padding-top:14px;padding-bottom:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}


@media(max-width:600px){.topbar{height:auto;min-height:78px;flex-wrap:wrap}.brand{flex:1 1 100%}.topnav{display:flex;gap:7px;width:100%}.topnav__create{flex:1;text-align:center;font-size:9px;padding:8px 4px}}
