/* KallisToys — animated "Sell to KallisToys" banner (homepage side tile).
   Pure CSS transitions driven by a tiny scene timer in sell-banner.js. Transform/opacity only. */
.ksb{--ksb-ease:cubic-bezier(.22,.61,.36,1);position:relative;display:block;height:100%;min-height:170px;border-radius:var(--r,14px);overflow:hidden;isolation:isolate;color:#fffdf9;text-decoration:none;
  background:radial-gradient(90% 130% at 78% 50%,#b82734 0%,#9e1b26 42%,#6f1019 100%);font-family:'Manrope',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
.ksb::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(38% 60% at 74% 50%,rgba(255,196,170,.20),transparent 70%)}
.ksb::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;box-shadow:inset 0 0 60px rgba(40,4,8,.35)}

@media (prefers-reduced-motion:no-preference){.ksb{animation:ksbIn .9s .28s cubic-bezier(.2,.8,.2,1) both}}
@keyframes ksbIn{from{opacity:0;transform:translateY(10px)}}

/* copy */
.ksb-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;height:100%;box-sizing:border-box;padding:18px 0 18px 22px;max-width:calc(100% - 262px)}
.ksb-kicker{margin:0 0 7px;font:700 11px/1 'Manrope',system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;opacity:.85}
.ksb-h{margin:0;font:500 23px/1.14 'Source Serif 4',Georgia,serif;letter-spacing:-.01em;text-wrap:balance;color:#fffdf9}
.ksb-line{position:relative;margin:7px 0 0;min-height:1.5em;font-size:13.5px;line-height:1.5;color:#ffe1e3}
.ksb-line span{display:block}
.ksb-cap{position:absolute;left:0;top:0;white-space:nowrap;font:italic 400 15px/1.4 'Source Serif 4',Georgia,serif;color:#fff3ef;opacity:0;transform:translateY(5px);filter:blur(3px);transition:opacity .9s var(--ksb-ease),transform 1.1s var(--ksb-ease),filter .9s var(--ksb-ease)}
.ksb-cap em{color:#ffc2c6}
.ksb.is-on .ksb-base{opacity:0}
.ksb[data-scene="1"] .ksb-cap[data-s="1"],.ksb[data-scene="2"] .ksb-cap[data-s="2"],.ksb[data-scene="3"] .ksb-cap[data-s="3"]{opacity:1;transform:none;filter:none;transition-delay:.35s}
.ksb-cta{display:inline-flex;align-items:center;gap:6px;margin-top:13px;font-size:13.5px;font-weight:700}
.ksb-arrow{position:absolute;right:18px;bottom:18px;z-index:3;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,253,249,.4);transition:background .3s,color .3s,border-color .3s,transform .3s}
.ksb-arrow svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ksb:hover .ksb-arrow,.ksb:focus-visible .ksb-arrow{background:#fffdf9;border-color:#fffdf9;color:#9e1b26;transform:translateX(2px)}
.ksb:focus-visible{outline:2px solid #fffdf9;outline-offset:3px}

/* reel */
.ksb-reel{position:absolute;right:82px;top:47%;z-index:1;width:210px;height:170px;margin-top:-85px;pointer-events:none}
.ksb-float{position:absolute;inset:0;animation:ksbFloat 9s ease-in-out infinite}
.ksb-card{--x:0px;--y:10px;--r:-3deg;--s:.94;--o:0;--d:0s;position:absolute;left:50%;top:50%;width:82px;height:106px;margin:-53px 0 0 -41px;box-sizing:border-box;padding:7px;border-radius:6px;
  background:linear-gradient(180deg,#fffdf8,#f3ece1);box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 10px 20px rgba(40,4,8,.42),0 2px 4px rgba(40,4,8,.25);
  opacity:var(--o);transform:translate(var(--x),var(--y)) rotate(var(--r)) scale(var(--s));transform-origin:50% 115%;
  transition:transform 1.7s var(--ksb-ease) var(--d),opacity 1.2s var(--ksb-ease) var(--d);will-change:transform,opacity}
.ksb-card::before{content:"";position:absolute;inset:3px;border:1px solid rgba(158,27,38,.16);border-radius:3px}
.ksb-card img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(0,0,0,.18))}
.ksb-card:nth-child(1){z-index:5}.ksb-card:nth-child(2){z-index:4}.ksb-card:nth-child(3){z-index:3}.ksb-card:nth-child(4){z-index:2}.ksb-card:nth-child(5){z-index:1}

/* scene 1 — one piece */
.ksb[data-scene="1"] .ksb-card:nth-child(1){--o:1;--y:0px;--s:1;--r:-3deg}
/* scene 2 — a whole collection fans out behind it */
.ksb[data-scene="2"] .ksb-card{--o:1;--s:.96}
.ksb[data-scene="2"] .ksb-card:nth-child(1){--y:-2px;--r:0deg;--s:1}
.ksb[data-scene="2"] .ksb-card:nth-child(2){--x:-34px;--y:4px;--r:-9deg;--d:.12s}
.ksb[data-scene="2"] .ksb-card:nth-child(3){--x:34px;--y:4px;--r:9deg;--d:.24s}
.ksb[data-scene="2"] .ksb-card:nth-child(4){--x:-62px;--y:13px;--r:-16deg;--d:.36s}
.ksb[data-scene="2"] .ksb-card:nth-child(5){--x:62px;--y:13px;--r:16deg;--d:.48s}
/* scene 3 — gathered into one neat stack, sealed */
.ksb[data-scene="3"] .ksb-card{--o:1;--s:1}
.ksb[data-scene="3"] .ksb-card:nth-child(1){--x:-10px;--y:-3px;--r:-4deg}
.ksb[data-scene="3"] .ksb-card:nth-child(2){--x:-5px;--y:0px;--r:3deg;--d:.06s}
.ksb[data-scene="3"] .ksb-card:nth-child(3){--x:-10px;--y:1px;--r:-8deg;--d:.12s}
.ksb[data-scene="3"] .ksb-card:nth-child(4){--x:-4px;--y:2px;--r:7deg;--d:.18s}
.ksb[data-scene="3"] .ksb-card:nth-child(5){--x:-7px;--y:3px;--r:-1deg;--d:.24s}
/* scene 0 — soft fade before the loop restarts */
.ksb[data-scene="0"] .ksb-card{--o:0;--y:-6px;--s:.97;transition-duration:1.2s,.9s}

/* the wax seal */
.ksb-seal{position:absolute;left:50%;top:50%;z-index:6;width:62px;height:62px;margin:-31px 0 0 -31px;opacity:0;transform:translate(30px,14px) rotate(-18deg) scale(1.45);
  transition:transform 1.1s cubic-bezier(.34,1.3,.5,1),opacity .6s ease;filter:drop-shadow(0 8px 10px rgba(40,4,8,.5))}
.ksb-seal img{display:block;width:100%;height:100%;object-fit:contain}
.ksb-ring{position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(255,230,220,.7);opacity:0}
.ksb[data-scene="3"] .ksb-seal{opacity:1;transform:translate(26px,32px) rotate(-10deg) scale(1);transition-delay:.9s}
.ksb[data-scene="3"] .ksb-ring{animation:ksbRing 1.8s 1.55s ease-out both}
.ksb[data-scene="0"] .ksb-seal{opacity:0;transform:translate(26px,28px) rotate(-10deg) scale(.96);transition-duration:.9s}

/* dust */
.ksb-dust{position:absolute;inset:0;z-index:0;pointer-events:none}
.ksb-dust i{position:absolute;width:3px;height:3px;border-radius:50%;background:#ffd9cf;box-shadow:0 0 6px 1px rgba(255,200,180,.6);opacity:0;animation:ksbDust 11s linear infinite}
.ksb-dust i:nth-child(1){left:62%;top:78%;animation-delay:0s}
.ksb-dust i:nth-child(2){left:80%;top:70%;animation-delay:-3.5s;width:2px;height:2px}
.ksb-dust i:nth-child(3){left:70%;top:88%;animation-delay:-6s}
.ksb-dust i:nth-child(4){left:88%;top:84%;animation-delay:-8.2s;width:2px;height:2px}
.ksb-dust i:nth-child(5){left:55%;top:92%;animation-delay:-1.8s;width:2px;height:2px}

.ksb.is-paused .ksb-float,.ksb.is-paused .ksb-dust i{animation-play-state:paused}

@keyframes ksbFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes ksbRing{0%{opacity:.55;transform:scale(.7)}100%{opacity:0;transform:scale(1.9)}}
@keyframes ksbDust{0%{opacity:0;transform:translate(0,0)}15%{opacity:.55}80%{opacity:.35}100%{opacity:0;transform:translate(-14px,-70px)}}

/* sizes (container-based: the tile's own width, not the viewport) */
.ksb{container-type:inline-size}
@container (max-width:500px){.ksb-reel{right:44px;transform:scale(.66);transform-origin:100% 50%}.ksb-copy{max-width:calc(100% - 204px)}.ksb-h{font-size:21px}}
@container (max-width:400px){.ksb-reel{right:40px;transform:scale(.58)}.ksb-copy{max-width:calc(100% - 158px);padding-left:18px}.ksb-h{font-size:19px}.ksb-cap{font-size:13.5px;white-space:normal;width:100%}.ksb-line{min-height:2.8em}.ksb-cta{margin-top:9px}}

/* no motion: the finished composition, no loop */
@media (prefers-reduced-motion:reduce){
  .ksb-float,.ksb-dust i{animation:none}
  .ksb-card,.ksb-seal,.ksb-cap{transition:none!important}
}

.ksb>.ksb-copy:not(.ksb-news-copy),.ksb>.ksb-reel{transition:opacity .65s ease,filter .65s ease}.ksb.is-news>.ksb-copy:not(.ksb-news-copy),.ksb.is-news>.ksb-reel{opacity:0;filter:blur(4px);pointer-events:none}.ksb .ksb-news-copy{position:absolute;inset:0;opacity:0;transform:translateY(14px);transition:opacity .85s .25s ease,transform 1s .25s var(--ksb-ease);pointer-events:none}.ksb.is-news .ksb-news-copy{opacity:1;transform:none}.ksb-news-line{font:12px/1.45 'Manrope',sans-serif;margin:8px 0 0;color:#ffe1e3}.ksb .ksb-news-copy .ksb-cta{margin-top:12px}.ksb-news-art{position:absolute;right:66px;top:50%;width:150px;height:150px;margin-top:-75px;perspective:800px;pointer-events:none;z-index:1}.ksb-news-sheet{position:absolute;inset:9px 26px;background:#f6eee1;border:1px solid #dccab3;border-radius:4px;box-shadow:0 10px 16px -8px #30061099;opacity:0;transform:translate(70px,28px) rotateY(-55deg) rotate(18deg) scale(.85);transform-origin:20% 50%;transition:transform 1.35s cubic-bezier(.2,.75,.2,1),opacity .6s}.ksb-news-middle{background:#ead8be}.ksb-news-back{background:#d4b68d}.ksb.is-news .ksb-news-back{opacity:1;transform:translate(17px,3px) rotate(15deg);transition-delay:.15s}.ksb.is-news .ksb-news-middle{opacity:1;transform:translate(-11px,1px) rotate(-11deg);transition-delay:.3s}.ksb.is-news .ksb-news-front{opacity:1;transform:rotate(4deg);transition-delay:.45s}.ksb-news-front{padding:9px 8px;box-sizing:border-box;display:flex;flex-direction:column;gap:4px}.ksb-news-mast{font:700 8px/1 Georgia,serif;letter-spacing:.1em;color:#392e23;text-align:center}.ksb-news-rule{border-top:2px solid #9e1b26}.ksb-news-photo{height:50px;background:#eee3d1;display:block;overflow:hidden}.ksb-news-photo img{display:block;width:100%;height:100%;object-fit:contain}.ksb-news-headline{font:700 10px/1.1 Georgia,serif;color:#362a20}.ksb-news-lines{height:13px;background:repeating-linear-gradient(to bottom,#b7a792 0,#b7a792 1px,transparent 1px,transparent 4px);width:90%}.ksb-news-stamp{position:absolute;right:-18px;bottom:13px;background:#9e1b26;color:#fff8ed;border:1px solid #c16c64;box-shadow:0 3px 7px #30121144;border-radius:2px;padding:5px 7px;font:700 6px/1 'Manrope',sans-serif;letter-spacing:.1em;opacity:0;transform:scale(1.5) rotate(-12deg)}.ksb.is-news .ksb-news-stamp{animation:ksbNewsStamp .55s 1.5s cubic-bezier(.2,.7,.2,1.4) forwards}.ksb.is-news .ksb-dust{opacity:.3}.ksb.is-news .ksb-arrow{transition-delay:.15s}@keyframes ksbNewsStamp{to{opacity:1;transform:scale(1) rotate(-8deg)}}
@container(max-width:500px){.ksb-news-art{right:42px;transform:scale(.82);transform-origin:right center}}@container(max-width:400px){.ksb-news-art{right:34px;transform:scale(.65)}.ksb-news-line{font-size:11px}.ksb .ksb-news-copy .ksb-h{font-size:19px}.ksb .ksb-news-copy .ksb-cta{font-size:12px;margin-top:8px}}
@media(prefers-reduced-motion:reduce){.ksb .ksb-news-copy,.ksb>.ksb-copy:not(.ksb-news-copy),.ksb>.ksb-reel,.ksb-news-sheet{transition:none}.ksb.is-news .ksb-news-stamp{animation:none;opacity:1;transform:rotate(-8deg)}}

.ksb .ksb-news-art{transform:scale(1.18);transform-origin:center}.ksb .ksb-news-copy{padding-top:22px}.ksb.is-news{background:radial-gradient(100% 150% at 80% 45%,#b33438,#851321 58%,#560e1c)}.ksb-news-lens{position:absolute;left:30px;top:35px;width:36px;height:36px;border:3px solid #c7a36a;border-radius:50%;box-shadow:0 3px 8px #24130766,inset 0 0 0 1px #fff8;background:linear-gradient(130deg,#fff7,#ffffff08 55%);backdrop-filter:contrast(1.3) brightness(1.15);opacity:0}.ksb-news-lens:after{content:"";position:absolute;width:7px;height:25px;top:27px;left:29px;background:linear-gradient(90deg,#4e2d24,#a26b43,#42221a);border-radius:4px;transform:rotate(-35deg);transform-origin:50% 0}.ksb.is-news .ksb-news-lens{opacity:1;animation:ksbInspect 5s 1.6s ease-in-out infinite}.ksb.is-paused .ksb-news-lens,.ksb.is-paused .ksb-gavel{animation-play-state:paused}@keyframes ksbInspect{0%,100%{transform:translate(-15px,-7px) rotate(-8deg)}45%{transform:translate(20px,10px) rotate(8deg)}75%{transform:translate(-4px,34px) rotate(-4deg)}}
.ksb .ksb-auction-copy{position:absolute;inset:0;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .7s .2s,transform .9s .2s;padding-top:22px}.ksb.is-auction{background:radial-gradient(100% 140% at 80% 40%,#a24448,#661d35 55%,#390f25)}.ksb.is-auction>.ksb-copy:not(.ksb-auction-copy),.ksb.is-auction>.ksb-reel{opacity:0;filter:blur(4px);pointer-events:none}.ksb.is-auction .ksb-auction-copy{opacity:1;transform:none;filter:none}.ksb-auction-date{font:700 14px/1.4 'Manrope',sans-serif;color:#ffe3ab;margin:9px 0 0}.ksb-auction-time{font:12px/1.4 'Manrope',sans-serif;color:#ffe4d9;margin:2px 0 0}.ksb-auction-copy .ksb-h{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ksb-auction-copy .ksb-cta{margin-top:9px;font-size:12px}.ksb-auction-art{position:absolute;width:170px;height:145px;right:56px;top:50%;margin-top:-72px;opacity:0;transform:translateY(25px) rotate(8deg) scale(.85);transition:opacity .8s .2s,transform 1.1s .2s cubic-bezier(.2,.8,.2,1);pointer-events:none}.ksb.is-auction .ksb-auction-art{opacity:1;transform:none}.ksb-calendar{position:absolute;left:20px;top:4px;width:100px;height:124px;background:#fff3dd;border-radius:5px;box-shadow:4px 5px 0 #d8bfa0,0 14px 24px #24091566;transform:rotate(-7deg);display:flex;flex-direction:column;align-items:center;overflow:hidden}.ksb-calendar-top{display:block;width:100%;background:#8b192e;text-align:center;font:700 8px/1 'Manrope',sans-serif;letter-spacing:.16em;padding:9px;color:#fff1d3}.ksb-calendar b{font:600 48px/1 'Source Serif 4',Georgia,serif;color:#672237;padding-top:9px}.ksb-calendar-month{font:700 12px/1.3 'Manrope',sans-serif;text-transform:uppercase;color:#672237}.ksb-calendar-line{width:35px;border-top:2px solid #c9ab80;margin-top:10px}.ksb-gavel{position:absolute;right:3px;bottom:29px;width:65px;height:65px;transform-origin:50% 85%;filter:drop-shadow(0 5px 4px #250d1488)}.ksb-gavel:before{content:"";position:absolute;left:14px;top:3px;width:52px;height:24px;border-radius:5px;background:linear-gradient(#f8dfa9,#ac6d35 40%,#c89754 60%,#634027);transform:rotate(-30deg);border:1px solid #edc994}.ksb-gavel:after{content:"";position:absolute;left:22px;top:19px;width:10px;height:50px;border-radius:4px;background:linear-gradient(90deg,#5d301e,#c18d50,#693e22);transform:rotate(35deg)}.ksb-gavel-base{position:absolute;bottom:7px;right:3px;width:66px;height:12px;background:linear-gradient(#deb175,#7f4b2a);border-radius:50%;box-shadow:0 6px 0 #60351f,0 10px 12px #2b0e1466}.ksb.is-auction .ksb-gavel{animation:ksbHammer 4s 1s ease-in-out infinite}@keyframes ksbHammer{0%,65%,100%{transform:rotate(-16deg) translateY(-6px)}80%{transform:rotate(12deg) translateY(9px)}87%{transform:rotate(3deg) translateY(3px)}}
@container(max-width:500px){.ksb .ksb-news-art{right:38px;transform:scale(.95);transform-origin:right center}.ksb-auction-art{right:38px;transform:scale(.85) translateY(20px);transform-origin:right center}.ksb.is-auction .ksb-auction-art{transform:scale(.85)}}@container(max-width:400px){.ksb .ksb-news-art{right:31px;transform:scale(.76)}.ksb-auction-art{right:28px;transform:scale(.67) translateY(20px)}.ksb.is-auction .ksb-auction-art{transform:scale(.67)}.ksb-auction-date{font-size:12px}.ksb-auction-time{font-size:11px}.ksb-auction-copy .ksb-h{font-size:19px}.ksb-auction-copy .ksb-cta{font-size:11px}}
@media(prefers-reduced-motion:reduce){.ksb.is-news .ksb-news-lens,.ksb.is-auction .ksb-gavel{animation:none}.ksb-auction-copy,.ksb-auction-art{transition:none}}
.ksb-gavel{width:72px;height:90px;right:-8px;bottom:22px;transform-origin:50% 88%;transform:rotate(-28deg)}
.ksb-gavel::before,.ksb-gavel::after{content:none}
.ksb-gavel svg{display:block;width:100%;height:100%;overflow:visible}
@keyframes ksbHammer{0%,60%,100%{transform:rotate(-28deg)}76%{transform:rotate(-42deg)}88%{transform:rotate(-24deg)}}
