/* Link preview card v2 (KJ 2026-11-13, kw-line; master: content-engine/data/kw-publish/link-preview/). Built from the child theme's own brand
   tokens (--kn-*: radius, colours, fonts), so each site keeps its look; the fallbacks are for a theme without them. Fixed position and
   added on demand by link-preview-v2.js. The card is as wide as its title (340-560 px; the
   description never widens it) so titles stay on one line, so it never moves the page. Desktop only. */
.kn-lp{position:fixed;z-index:2147483000;top:0;left:0;box-sizing:border-box;display:flex;align-items:center;gap:14px;width:max-content;min-width:340px;max-width:min(560px,calc(100vw - 16px));
  padding:14px;margin:0;background:#fff;color:var(--kn-ink,#1d2433);border:1px solid var(--kn-line,#dfe3ea);border-radius:var(--kn-r-l,12px);
  box-shadow:0 12px 32px rgba(17,24,39,.16),0 2px 6px rgba(17,24,39,.08);font:400 14px/1.4 var(--kn-body,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif);
  text-align:left;cursor:pointer;animation:kn-lp-in .14s ease-out}
.kn-lp[hidden]{display:none}
.kn-lp-img{flex:0 0 84px;width:84px;height:84px;overflow:hidden;border-radius:var(--kn-r-m,8px);background:var(--kn-soft,#f2f4f7)}
.kn-lp-img img{display:block;width:84px;height:84px;max-width:none;margin:0;object-fit:cover;border:0;border-radius:0}
.kn-lp--noimg .kn-lp-img{display:none}
.kn-lp-text{flex:1 1 auto;display:flex;flex-direction:column;gap:3px;min-width:0}
.kn-lp-site{padding-right:24px;font-size:12px;line-height:1.3;color:var(--kn-muted,#5b6475);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kn-lp-site:empty,.kn-lp-desc:empty{display:none}
.kn-lp-title{font:700 16px/1.3 var(--kn-head,inherit);color:var(--kn-main,#1d2433);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kn-lp-desc{font-size:13.5px;line-height:1.4;color:var(--kn-ink,#1d2433);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:0;min-width:100%}
.kn-lp-x{position:absolute;top:6px;right:8px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font:400 18px/1 system-ui,sans-serif;
  color:var(--kn-muted,#5b6475);border-radius:var(--kn-r-s,4px);cursor:pointer}
.kn-lp-x:hover{background:var(--kn-soft,#f2f4f7);color:var(--kn-ink,#1d2433)}
.kn-lp:hover .kn-lp-title{text-decoration:underline;text-underline-offset:2px}
@keyframes kn-lp-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.kn-lp--above{animation-name:kn-lp-in-up}
@keyframes kn-lp-in-up{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.kn-lp,.kn-lp--above{animation:none}}
@media (hover:none),(pointer:coarse){.kn-lp{display:none!important}}
