/* KallisToys — Catalogues page: dark banner with an animated catalogue shelf + library grid */
.kt-catalogues{--gold:#e6c88f;--cream:#fbf4ea;--kcp-ease:cubic-bezier(.22,.61,.36,1)}

/* ---------- banner ---------- */
.kcp-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,58%);align-items:center;min-height:380px;border-radius:var(--r,14px);overflow:hidden;isolation:isolate;color:var(--cream);background:#140f0c;box-shadow:0 0 0 1px rgba(201,166,107,.28)}
.kcp-bg{position:absolute;right:0;top:0;z-index:-3;width:62%;height:100%;object-fit:cover;object-position:center;filter:saturate(.85) brightness(.55) blur(1.5px);transform:scale(1.04);animation:kcpDrift 40s ease-in-out infinite alternate}
.kcp-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#140f0c 0%,#140f0c 36%,rgba(20,15,12,.82) 48%,rgba(20,15,12,.35) 72%,rgba(20,15,12,.55) 100%),radial-gradient(40% 70% at 70% 45%,rgba(255,200,130,.16),transparent 70%)}
.kcp-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#c9a66b 25%,#f0d9a6 50%,#c9a66b 75%,transparent)}
.kcp-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(28px,3.4vw,54px)}
.kcp-kicker{margin:0;color:var(--gold);font:700 11px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase}
.kcp-hero h1{margin:8px 0 12px;color:#fdf7ee;font:500 clamp(38px,3.8vw,60px)/1.02 var(--serif);letter-spacing:-.03em}
.kcp-hero h1 em{font-style:italic;color:#f0d3a8}
.kcp-lead{margin:0;max-width:46ch;color:#dccbba;font-size:15px;line-height:1.6}
.kcp-search{display:flex;align-items:center;gap:10px;width:min(440px,100%);height:48px;margin-top:22px;padding:0 5px 0 16px;box-sizing:border-box;border:1px solid rgba(240,217,166,.3);border-radius:999px;background:rgba(251,244,234,.07);backdrop-filter:blur(6px);transition:border-color .25s,background .25s}
.kcp-search:focus-within{border-color:rgba(240,217,166,.7);background:rgba(251,244,234,.11)}
.kcp-search .i{flex:none;width:17px;height:17px;color:var(--gold)}
.kcp-search input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;background:transparent;color:var(--cream);font:inherit;font-size:14px}
.kcp-search input::placeholder{color:rgba(251,244,234,.5)}
.kcp-search button{flex:none;height:38px;padding:0 18px;border:0;border-radius:999px;background:var(--cream);color:#1c1511;font:700 13px/1 var(--sans);cursor:pointer;transition:background .2s}
.kcp-search button:hover{background:#fff}
.kcp-stats{display:flex;align-items:center;gap:8px;margin:14px 0 0;color:rgba(251,244,234,.7);font-size:13px}
.kcp-stats b{color:var(--cream);font-weight:700}
.kcp-stats span{color:var(--gold)}

/* shelf */
.kcp-stage{position:relative;align-self:stretch;min-height:380px;perspective:900px;perspective-origin:50% 40%;pointer-events:none}
.kcp-glow{position:absolute;left:50%;bottom:44px;width:360px;height:40px;margin-left:-180px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,200,130,.28),transparent);filter:blur(4px)}
.kcp-book{--x:0px;--z:-200px;--ry:0deg;--o:0;--dim:.8;--w:175px;position:absolute;left:50%;bottom:64px;width:var(--w);height:250px;margin-left:calc(var(--w) / -2);transform-style:preserve-3d;
  opacity:var(--o);transform:translateX(var(--x)) translateZ(var(--z)) rotateY(var(--ry));transition:transform 1.6s var(--kcp-ease),opacity 1.2s var(--kcp-ease);
  -webkit-box-reflect:below 2px linear-gradient(transparent 72%,rgba(255,255,255,.16))}
.kcp-book.is-wide{height:196px}
.kcp-pages{position:absolute;inset:2px 0 2px 3px;border-radius:1px 3px 3px 1px;background:repeating-linear-gradient(90deg,#efe5d2 0 1px,#e0d2b8 1px 2px)}
.kcp-pages::before{content:"";position:absolute;inset:12% 14%;background:repeating-linear-gradient(0deg,rgba(90,70,50,.22) 0 1px,transparent 1px 7px)}
.kcp-cover{position:absolute;inset:0;border-radius:2px 4px 4px 2px;overflow:hidden;transform-origin:0 50%;backface-visibility:hidden;background:#2a211b;box-shadow:0 22px 36px rgba(0,0,0,.6),0 3px 6px rgba(0,0,0,.4)}
.kcp-cover img{display:block;width:100%;height:100%;object-fit:cover}
.kcp-cover::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.4),rgba(255,255,255,.14) 2.5%,transparent 6%),linear-gradient(118deg,rgba(255,255,255,.18) 0%,transparent 38%)}
.kcp-cover::after{content:"";position:absolute;inset:0;z-index:2;background:#0c0907;opacity:var(--dim);transition:opacity 1.4s var(--kcp-ease)}
.kcp-book[data-pos="0"]{--x:0px;--z:0px;--ry:0deg;--o:1;--dim:0;z-index:5}
.kcp-book[data-pos="-1"]{--x:-150px;--z:-120px;--ry:42deg;--o:1;--dim:.35;z-index:4}
.kcp-book[data-pos="1"]{--x:150px;--z:-120px;--ry:-42deg;--o:1;--dim:.35;z-index:4}
.kcp-book[data-pos="-2"]{--x:-250px;--z:-240px;--ry:54deg;--o:.7;--dim:.62;z-index:3}
.kcp-book[data-pos="2"]{--x:250px;--z:-240px;--ry:-54deg;--o:.7;--dim:.62;z-index:3}
.kcp-book[data-pos="-3"]{--x:-300px;--z:-320px;--ry:60deg;--o:0;z-index:2}
.kcp-book[data-pos="3"]{--x:300px;--z:-320px;--ry:-60deg;--o:0;z-index:2}
.kcp-book[data-pos="0"] .kcp-cover{animation:kcpPeek 3s 1.5s cubic-bezier(.45,0,.25,1) both}
.kcp-cap{position:absolute;left:50%;bottom:18px;z-index:7;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;max-width:92%;margin:0}
.kcp-cap-t{display:block;max-width:100%;overflow:hidden;color:#fdf7ee;font:italic 500 16px/1.2 var(--serif);white-space:nowrap;text-overflow:ellipsis;transition:opacity .55s ease,transform .8s var(--kcp-ease),filter .55s ease}
.kcp-cap-line{position:relative;width:90px;height:1px;background:linear-gradient(90deg,transparent,#e9c89a,transparent);transform:scaleX(0)}
.kcp-cap-line::after{content:"";position:absolute;left:50%;top:-2px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:#fff3dc;box-shadow:0 0 8px 2px rgba(255,210,150,.7);opacity:0}
.kcp-cap.is-in .kcp-cap-line{animation:kcpLine 1.4s var(--kcp-ease) both}
.kcp-cap.is-in .kcp-cap-line::after{animation:kcpGlint 1.6s .2s ease-out both}
.kcp-cap.is-swap .kcp-cap-t{opacity:0;transform:translateY(5px);filter:blur(3px)}
.kt-catalogues.is-paused .kcp-cover{animation-play-state:paused}
@keyframes kcpPeek{0%,100%{transform:rotateY(0)}38%,64%{transform:rotateY(-30deg)}}
@keyframes kcpLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes kcpGlint{0%{opacity:0;transform:translateX(-44px)}30%{opacity:1}100%{opacity:0;transform:translateX(44px)}}
@keyframes kcpDrift{from{transform:scale(1.04)}to{transform:scale(1.1) translateX(-1.5%)}}
@keyframes kcpUp{from{opacity:0;transform:translateY(12px)}}
@media (prefers-reduced-motion:no-preference){.kcp-copy>*{animation:kcpUp .9s var(--kcp-ease) both}.kcp-copy>:nth-child(2){animation-delay:.07s}.kcp-copy>:nth-child(3){animation-delay:.14s}.kcp-copy>:nth-child(4){animation-delay:.21s}.kcp-copy>:nth-child(5){animation-delay:.28s}}

/* ---------- library ---------- */
.kt-catalogues .kt-catalogues-library{margin-top:40px}
.kcp-library-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px 18px;margin-bottom:24px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.kcp-library-head h2{margin:0;color:var(--ink);font:500 clamp(24px,2.2vw,32px)/1.1 var(--serif);letter-spacing:-.01em}
.kcp-count{margin-left:auto;color:var(--ink-2);font-size:13px}
.kcp-clear{display:inline-flex;align-items:center;gap:5px;color:var(--red-text);font-size:13px;font-weight:700;text-decoration:none}
.kcp-clear .i{width:15px;height:15px}
.kcp-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:40px 26px}
.kcp-card{min-width:0}
.kcp-card>a{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}
.kcp-card-cover{position:relative;display:flex;align-items:flex-end;justify-content:center;aspect-ratio:4/5;min-height:0;padding:28px 30px 24px;box-sizing:border-box;border-radius:10px;background:radial-gradient(90% 70% at 50% 40%,#f3eee6,#e6ded2);perspective:900px}
.kcp-card-cover::after{content:"";position:absolute;left:14%;right:14%;bottom:18px;height:10px;border-radius:50%;background:radial-gradient(closest-side,rgba(40,25,15,.35),transparent);filter:blur(3px);transition:transform .6s var(--kcp-ease),opacity .6s}
.kcp-card-cover img{position:relative;z-index:1;display:block;max-width:100%;max-height:100%;width:auto;height:auto;border-radius:2px 3px 3px 2px;transform-origin:30% 100%;
  box-shadow:1px 0 0 #efe6d4,2px 0 0 #d9ccb4,3px 0 0 #efe6d4,4px 0 0 #d4c6ad,0 16px 24px -12px rgba(30,18,10,.55);transition:transform .7s var(--kcp-ease),box-shadow .7s var(--kcp-ease)}
.kcp-card:hover .kcp-card-cover img,.kcp-card>a:focus-visible .kcp-card-cover img{transform:translateY(-6px) rotateY(-14deg);box-shadow:1px 0 0 #efe6d4,2px 0 0 #d9ccb4,3px 0 0 #efe6d4,4px 0 0 #d4c6ad,5px 0 0 #e9dfcc,6px 0 0 #cfc0a6,0 28px 34px -14px rgba(30,18,10,.6)}
.kcp-card:hover .kcp-card-cover::after{transform:scaleX(.9);opacity:.8}
.kcp-card .kt-catalogue-cover-fallback{position:relative;z-index:1}
.kcp-card-meta{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 2px 0}
.kcp-card-meta strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;color:var(--ink);font:500 17px/1.28 var(--serif);transition:color .25s}
.kcp-card-open{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:4px;color:var(--ink-2);font-size:12.5px;font-weight:700;transition:color .25s}
.kcp-card-open .i{width:14px;height:14px;transition:transform .3s var(--kcp-ease)}
.kcp-card:hover strong,.kcp-card:hover .kcp-card-open{color:var(--red-text)}
.kcp-card:hover .kcp-card-open .i{transform:translateX(4px)}
.kcp-card.is-locked .kcp-card-open .i{transform:none}
.kcp-card>a:focus-visible{outline:none}
.kcp-card>a:focus-visible .kcp-card-cover{outline:2px solid var(--red);outline-offset:3px}
.kcp-pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:52px}
.kcp-pagination .page-numbers{display:grid;place-items:center;min-width:42px;height:42px;padding:0 14px;box-sizing:border-box;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:14px;font-weight:600;text-decoration:none;transition:border-color .2s}
.kcp-pagination a.page-numbers:hover{border-color:var(--ink)}
.kcp-pagination .current{border-color:#1c1511;background:#1c1511;color:#fbf4ea}
.kcp-pagination .dots{border-color:transparent;background:transparent}

/* ---------- sizes ---------- */
@media (max-width:1320px){.kcp-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1100px){.kcp-hero{grid-template-columns:minmax(0,1fr) minmax(0,50%)}.kcp-stage{transform:scale(.84);transform-origin:60% 60%}.kcp-book[data-pos="-2"],.kcp-book[data-pos="2"]{--o:0}}
@media (max-width:980px){.kcp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.kcp-hero{grid-template-columns:1fr}.kcp-bg{width:100%;opacity:.6}.kcp-hero::before{background:linear-gradient(180deg,rgba(20,15,12,.95) 0%,rgba(20,15,12,.8) 50%,rgba(20,15,12,.55) 100%)}.kcp-stage{min-height:300px;margin-top:-30px;transform:none}}
@media (max-width:620px){.kcp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 14px}.kcp-card-meta strong{font-size:15.5px}.kcp-stage{transform:scale(.8);transform-origin:50% 60%;margin:-40px 0 -30px}.kcp-count{margin-left:0;width:100%}}
@media (prefers-reduced-motion:reduce){.kcp-bg{animation:none}.kcp-book,.kcp-cap-t,.kcp-card-cover img{transition:none!important}.kcp-cover{animation:none!important}}
