@keyframes k3v3-breathe { 0%,100% { transform:scale(1); opacity:.62 } 50% { transform:scale(1.018); opacity:.82 } }
@keyframes k3v3-light-pass { from { transform:translate3d(-18%,0,0); opacity:0 } 22% { opacity:.5 } to { transform:translate3d(118%,0,0); opacity:0 } }
[data-k3v3-reveal] { clip-path:inset(0 0 100% 0); transform:translate3d(0,1.5rem,0); transition:clip-path var(--k3v3-reveal) var(--k3v3-ease-luxe), transform var(--k3v3-reveal) var(--k3v3-ease-luxe); }
[data-k3v3-reveal].is-visible { clip-path:inset(0); transform:none; }
[data-k3v3-line] { overflow:hidden; }
[data-k3v3-line] > span { display:block; transform:translateY(115%); transition:transform var(--k3v3-reveal) var(--k3v3-ease-luxe); transition-delay:var(--k3v3-delay,0ms); }
[data-k3v3-line].is-visible > span { transform:none; }
[data-k3v3-ambient] { animation:k3v3-breathe 11s ease-in-out infinite; }
.k3v3-spectral-line::after { content:""; display:block; height:1px; width:38%; background:linear-gradient(90deg,transparent,var(--k3v3-cyan),transparent); animation:k3v3-light-pass 8s var(--k3v3-ease-luxe) infinite; }
@media (prefers-reduced-motion: reduce) {
  [data-k3v3-reveal], [data-k3v3-line] > span { clip-path:none!important; transform:none!important; transition:none!important; }
  [data-k3v3-ambient], .k3v3-spectral-line::after { animation:none!important; }
}

/* ═══ K3 V3 — Voiles de transition signatures (tier SAFE / reduced-motion) ═══ */
.k3t-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:99998;pointer-events:none}
.k3t-veil{position:fixed;inset:-2%;z-index:99998;pointer-events:none;opacity:0;
  --k3t-dur:800ms;--k3t-obsid:#05070d;--k3t-lapis:#253c8f;--k3t-opal:#dee3e8;--k3t-cyan:#62d7e8;
  transition:opacity calc(var(--k3t-dur)*.55) cubic-bezier(.19,1,.22,1),transform var(--k3t-dur) cubic-bezier(.19,1,.22,1),clip-path var(--k3t-dur) cubic-bezier(.19,1,.22,1)}
.k3t-out.k3t-run{opacity:1}
.k3t-in{opacity:1}
.k3t-in.k3t-run{opacity:0}

/* Opal Aperture — ouverture architecturale opaline, lumière qui révèle */
.k3t-opal{background:linear-gradient(112deg,var(--k3t-obsid) 12%,#31435f 48%,var(--k3t-opal) 50%,#31435f 52%,var(--k3t-obsid) 88%);
  clip-path:inset(0 50% 0 50%)}
.k3t-opal.k3t-out.k3t-run{clip-path:inset(0 0 0 0)}
.k3t-opal.k3t-in{clip-path:inset(0 0 0 0)}
.k3t-opal.k3t-in.k3t-run{clip-path:inset(0 50% 0 50%)}

/* Proof Dissolve — disparition dans la matière, edge froid */
.k3t-dissolve{background:linear-gradient(160deg,#0b1220,var(--k3t-obsid) 60%),radial-gradient(120% 90% at 30% 40%,rgba(98,215,232,.14),transparent 60%);
  background-blend-mode:screen;transform:scale(1)}
.k3t-dissolve.k3t-out.k3t-run{transform:scale(1.035)}
.k3t-dissolve.k3t-in.k3t-run{transform:scale(1)}

/* Fibre Archive — feuillet architectural qui s'ouvre */
.k3t-fibre{background:linear-gradient(100deg,var(--k3t-obsid) 0 46%,rgba(222,227,232,.16) 50%,var(--k3t-obsid) 54% 100%);
  transform-origin:left center;transform:scaleX(.02)}
.k3t-fibre.k3t-out.k3t-run{transform:scaleX(1)}
.k3t-fibre.k3t-in{transform:scaleX(1)}
.k3t-fibre.k3t-in.k3t-run{transform:scaleX(.02);transform-origin:right center}

/* Continuity Weave — entrecroisement asymétrique lent */
.k3t-weave{background:
  repeating-linear-gradient(63deg,transparent 0 34px,rgba(174,185,203,.10) 34px 36px),
  repeating-linear-gradient(-54deg,transparent 0 42px,rgba(98,215,232,.07) 42px 44px),
  linear-gradient(180deg,var(--k3t-obsid),#0b1220)}
.k3t-weave.k3t-out.k3t-run{transform:translateY(0)}
.k3t-weave.k3t-out{transform:translateY(3.5%)}
.k3t-weave.k3t-in.k3t-run{transform:translateY(-3.5%)}

/* Lapis Depth Relay — déplacement en profondeur, nappe lapis */
.k3t-lapis{background:radial-gradient(90% 70% at 50% 46%,rgba(37,60,143,.85),var(--k3t-obsid) 78%)}
.k3t-lapis.k3t-out{transform:scale(1.12);opacity:0}
.k3t-lapis.k3t-out.k3t-run{transform:scale(1)}
.k3t-lapis.k3t-in.k3t-run{transform:scale(.94)}

/* Carrara Spectral Cut — coupe minérale, spectral discret */
.k3t-spectral{background:linear-gradient(97deg,transparent 0 44%,rgba(222,227,232,.85) 49.4%,rgba(98,215,232,.5) 50%,rgba(222,227,232,.85) 50.6%,transparent 56% 100%),linear-gradient(180deg,#0b1220,var(--k3t-obsid));
  transform:translateX(-102%)}
.k3t-spectral.k3t-out.k3t-run{transform:translateX(0)}
.k3t-spectral.k3t-in{transform:translateX(0)}
.k3t-spectral.k3t-in.k3t-run{transform:translateX(102%)}

/* Quiet Seal — disparition lente vers une composition stable */
.k3t-seal{background:linear-gradient(180deg,var(--k3t-obsid),#03040a)}
.k3t-seal.k3t-out{opacity:0}
.k3t-seal.k3t-in.k3t-run{opacity:0}

@media (prefers-reduced-motion:reduce){
  .k3t-veil{transition:opacity 240ms ease-out,transform 240ms ease-out;clip-path:none!important;transform:none!important}
  .k3t-veil.k3t-out{transform:translateY(6px)!important}
  .k3t-veil.k3t-in.k3t-run{transform:none!important}
}
