/* Shared pieces for the platform tools: toast, name card modal, reveal and pop animations. Each tool skins the rest. */
.kx-toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:90;max-width:calc(100% - 32px);
  background:#F6F3EA;color:#111;padding:12px 18px;border-radius:12px;font:700 1rem/1.25 var(--body);transition:opacity .2s,transform .2s;word-break:break-all;box-shadow:0 10px 30px -10px #000}
.kx-toast.is-on{opacity:1;transform:translate(-50%,0)}
html.kx-lock{overflow:hidden}
.kx-card{--kc1:#EFA300;--kc2:#E05A00;position:fixed;inset:0;z-index:85;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;padding:16px}
.kx-card[hidden]{display:none}
.kx-card__box{width:100%;max-width:760px;background:#0B0A09;border:1px solid color-mix(in srgb,var(--kc1) 40%,#222);border-radius:18px;padding:16px;box-shadow:0 30px 60px -20px #000}
.kx-card__head{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px;color:var(--kc1);font:700 1rem/1 var(--body);letter-spacing:.16em}
.kx-card__x{width:40px;height:40px;border-radius:10px;border:1px solid #2A2722;background:transparent;color:#F6F3EA;font-size:1.6rem;line-height:1;cursor:pointer}
.kx-card__img{display:block;width:100%;height:auto;border-radius:12px}
.kx-card__acts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 0}
.kx-card__acts button{height:48px;border-radius:12px;border:1px solid var(--kc1);background:transparent;color:var(--kc1);font:700 1rem/1 var(--body);cursor:pointer}
.kx-card__acts button:first-child{background:linear-gradient(90deg,var(--kc1),var(--kc2));color:#0B0A08;border-color:transparent}
@media (max-width:480px){.kx-card__acts{grid-template-columns:1fr}}
@keyframes kxPop{0%{transform:scale(.88);opacity:.3}60%{transform:scale(1.05);opacity:1}100%{transform:scale(1)}}
@keyframes kxIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .kx-pop{animation:kxPop .45s cubic-bezier(.2,.8,.2,1.2)}
  .kx-item{animation:kxIn .4s calc(var(--i,0) * 26ms) cubic-bezier(.2,.7,.2,1) both}
  .kx-card:not([hidden]) .kx-card__box{animation:kxPop .35s cubic-bezier(.2,.8,.2,1.1)}
  .kx-rv{opacity:0;transform:translateY(20px)}
  .kx-rv.kx-in{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
}
.kx-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
