/* KallisToys — Digital museum index: dark gallery banner + collection grid */
body .kdm{--gold:#e6c88f;--cream:#fbf4ea;--kdm-ease:cubic-bezier(.22,.61,.36,1);padding-bottom:80px}

/* ---------- banner ---------- */
body .kdm-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,720px);align-items:center;gap:28px;min-height:270px;padding:clamp(24px,2.6vw,38px);border-radius:var(--r,14px);overflow:hidden;isolation:isolate;color:var(--cream);
  background:radial-gradient(55% 120% at 74% 20%,#3a2a1f 0%,#1c1511 50%,#110d0a 100%);box-shadow:0 0 0 1px rgba(201,166,107,.28)}
body .kdm-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(255,255,255,.012) 0 1px,transparent 1px 7px),linear-gradient(0deg,rgba(0,0,0,.4),transparent 40%)}
body .kdm-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)}
body .kdm-copy{position:relative;z-index:2;min-width:0}
body .kdm-kicker{margin:0;color:var(--gold);font:700 11px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase}
body .kdm-hero h1{margin:6px 0 8px;color:#fdf7ee;font:500 clamp(34px,3.2vw,50px)/1.05 var(--serif);letter-spacing:-.02em}
body .kdm-lead{margin:0;max-width:46ch;color:#dccbba;font-size:15px;line-height:1.55}
body .kdm-lead b{color:var(--cream);font-weight:700}
body .kdm-search{display:flex;align-items:center;gap:10px;width:min(460px,100%);height:48px;margin-top:20px;padding:0 5px 0 16px;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}
body .kdm-search:focus-within{border-color:rgba(240,217,166,.7);background:rgba(251,244,234,.11)}
body .kdm-search .i{flex:none;width:17px;height:17px;color:var(--gold)}
body .kdm-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}
body .kdm-search input::placeholder{color:rgba(251,244,234,.5)}
body .kdm-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,transform .2s}
body .kdm-search button:hover{background:#fff;transform:translateX(1px)}

/* gallery wall */
body .kdm-wall{position:relative;align-self:stretch;min-height:250px;margin:-10px 0}
body .kdm-spot{position:absolute;left:50%;top:-60px;width:380px;height:360px;margin-left:-190px;background:radial-gradient(50% 60% at 50% 30%,rgba(255,214,160,.2),transparent 70%);pointer-events:none}
body .kdm-frame{--x:0px;--s:.5;--o:0;--dim:.7;position:absolute;left:50%;top:42%;width:236px;height:180px;margin:-90px 0 0 -118px;padding:4px;box-sizing:border-box;border-radius:3px;
  background:linear-gradient(145deg,#8a6a3e,#3d2c19 40%,#a7834d 70%,#4a3520);box-shadow:0 18px 30px rgba(0,0,0,.55),0 3px 6px rgba(0,0,0,.4);
  opacity:var(--o);transform:translateX(var(--x)) scale(var(--s));transition:transform 1.6s var(--kdm-ease),opacity 1.2s var(--kdm-ease)}
body .kdm-mat{position:relative;display:block;width:100%;height:100%;padding:9px;box-sizing:border-box;background:#f4efe6;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
body .kdm-mat img{display:block;width:100%;height:100%;object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
body .kdm-mat::after{content:"";position:absolute;inset:0;background:#0f0b08;opacity:var(--dim);transition:opacity 1.4s var(--kdm-ease)}
body .kdm-frame[data-pos="0"]{--x:0px;--s:1;--o:1;--dim:0;z-index:3}
body .kdm-frame[data-pos="-1"]{--x:-196px;--s:.72;--o:1;--dim:.5;z-index:2}
body .kdm-frame[data-pos="1"]{--x:196px;--s:.72;--o:1;--dim:.5;z-index:2}
body .kdm-frame[data-pos="-2"]{--x:-316px;--s:.52;--o:.45;--dim:.7;z-index:1}
body .kdm-frame[data-pos="2"]{--x:316px;--s:.52;--o:.45;--dim:.7;z-index:1}
body .kdm-plaque{position:absolute;left:50%;bottom:6px;z-index:4;transform:translateX(-50%);margin:0;padding:7px 14px;max-width:250px;border-radius:3px;background:linear-gradient(180deg,#f6f0e4,#e6dccb);box-shadow:0 6px 14px rgba(0,0,0,.4);color:#2a211b;text-align:center}
body .kdm-plaque-in{display:block;transition:opacity .5s ease,transform .7s var(--kdm-ease),filter .5s ease}
body .kdm-plaque b{display:block;font:700 9.5px/1.2 var(--sans);letter-spacing:.2em;color:#9e1b26}
body .kdm-plaque-in>span{display:block;overflow:hidden;margin-top:2px;font:500 12.5px/1.3 var(--serif);white-space:nowrap;text-overflow:ellipsis}
body .kdm-plaque.is-swap .kdm-plaque-in{opacity:0;transform:translateY(3px);filter:blur(2px)}
@media (prefers-reduced-motion:no-preference){
  body .kdm-copy>*{animation:kdmUp .9s var(--kdm-ease) both}
  body .kdm-copy>:nth-child(2){animation-delay:.07s}body .kdm-copy>:nth-child(3){animation-delay:.14s}body .kdm-copy>:nth-child(4){animation-delay:.21s}
  body .kdm-spot{animation:kdmSpot 6s ease-in-out infinite alternate}
}
@keyframes kdmUp{from{opacity:0;transform:translateY(12px)}}
@keyframes kdmSpot{from{opacity:.75}to{opacity:1}}

/* ---------- collection ---------- */
body .kdm-library{margin-top:34px}
body .kdm-library-head{display:flex;align-items:baseline;gap:14px 18px;flex-wrap:wrap;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
body .kdm-library-head h2{margin:0;color:var(--ink);font:500 clamp(24px,2.2vw,32px)/1.1 var(--serif);letter-spacing:-.01em}
body .kdm-count{margin-left:auto;color:var(--ink-2);font-size:13px;font-variant-numeric:tabular-nums}
body .kdm-clear{display:inline-flex;align-items:center;gap:5px;color:var(--red-text);font-size:13px;font-weight:700;text-decoration:none}
body .kdm-clear .i{width:15px;height:15px}
body .kdm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 22px}
body .kdm-card{min-width:0}
body .kdm-card>a{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}
body .kdm-card-image{position:relative;display:block;aspect-ratio:5/4;overflow:hidden;border-radius:10px;background:radial-gradient(120% 95% at 50% 42%,#e6e5e2 0%,#d4d3cf 100%);box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 10px 24px -18px rgba(33,25,22,.55)}
body .kdm-card-image::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(33,25,22,.08);pointer-events:none}
body .kdm-card-image{display:grid!important;place-items:center}
body .kdm-card-image img{position:absolute;inset:0;margin:auto;display:block;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;transition:transform 1.1s var(--kdm-ease);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent),linear-gradient(180deg,transparent,#000 7%,#000 93%,transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent),linear-gradient(180deg,transparent,#000 7%,#000 93%,transparent);mask-composite:intersect}
body .kdm-card-image .kdm-card-fallback{max-width:45%!important;max-height:45%!important;opacity:.8;-webkit-mask-image:none;mask-image:none}
body .kdm-card-copy{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:5px;padding:14px 2px 0}
body .kdm-no{color:var(--red-text);font:700 10.5px/1 var(--sans);letter-spacing:.18em;font-variant-numeric:tabular-nums}
body .kdm-card-copy strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;color:var(--ink);font:500 17.5px/1.28 var(--serif);letter-spacing:-.005em;transition:color .25s}
body .kdm-card-link{display:inline-flex;align-items:center;gap:6px;margin-top:6px;color:var(--ink-2);font-size:12.5px;font-weight:700;transition:color .25s}
body .kdm-card-link .i{width:14px;height:14px;transition:transform .3s var(--kdm-ease)}
body .kdm-card:hover .kdm-card-image img{transform:scale(1.045)}
body .kdm-card:hover strong{color:var(--red-text)}
body .kdm-card:hover .kdm-card-link{color:var(--red-text)}
body .kdm-card:hover .kdm-card-link .i{transform:translateX(4px)}
body .kdm-card>a:focus-visible{outline:none}
body .kdm-card>a:focus-visible .kdm-card-image{outline:2px solid var(--red);outline-offset:3px}
@media (prefers-reduced-motion:no-preference){body .kdm-card{animation:kdmUp .8s var(--kdm-ease) both}body .kdm-card:nth-child(4n+2){animation-delay:.05s}body .kdm-card:nth-child(4n+3){animation-delay:.1s}body .kdm-card:nth-child(4n+4){animation-delay:.15s}}

body .kdm-pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:48px}
body .kdm-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,color .2s}
body .kdm-pagination a.page-numbers:hover{border-color:var(--ink);color:var(--ink)}
body .kdm-pagination .current{border-color:#1c1511;background:#1c1511;color:#fbf4ea}
body .kdm-pagination .dots{border-color:transparent;background:transparent}

/* ---------- sizes ---------- */
@media (max-width:1180px){body .kdm-hero{grid-template-columns:minmax(0,1fr) minmax(0,480px)}body .kdm-frame[data-pos="-2"],body .kdm-frame[data-pos="2"]{--o:0}body .kdm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){body .kdm-hero{grid-template-columns:1fr}body .kdm-wall{min-height:220px;margin:0}}
@media (max-width:620px){body .kdm-hero{padding:22px 18px}body .kdm-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px}body .kdm-card-copy strong{font-size:15.5px}body .kdm-wall{transform:scale(.82);margin:-18px 0}body .kdm-count{margin-left:0;width:100%}}
@media (prefers-reduced-motion:reduce){body .kdm-frame,body .kdm-mat::after,body .kdm-plaque-in,body .kdm-card-image img{transition:none}}
