.ti-stamp-stage { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 2147483644; }
.ti-stamp-art { display: block; width: 100%; height: 100%; object-fit: contain; flex: none; user-select: none; }
.ti-stamp-burst { position: absolute; width: var(--stamp-size); height: var(--stamp-size); pointer-events: none; isolation: isolate; animation: ti-stamp-flight var(--duration) linear both; will-change: transform,opacity; }
.ti-stamp-face { position: relative; z-index: 2; filter: drop-shadow(0 2px 3px #0003); }
.ti-stamp-color-glow { position: absolute; z-index: 1; inset: 9%; border-radius: 44%; background: color-mix(in srgb,var(--stamp-color) 62%,transparent); filter: blur(16px); opacity: .9; animation: ti-stamp-color-pulse var(--duration) ease-in-out both; }
.ti-stamp-look-glow .ti-stamp-face { filter: drop-shadow(0 0 7px var(--stamp-color)) drop-shadow(0 0 15px color-mix(in srgb,var(--stamp-color) 75%,transparent)); }
.ti-stamp-glint { position: absolute; z-index: 3; width: 13%; aspect-ratio: 1; opacity: 0; background: #fff; filter: drop-shadow(0 0 5px #fff); clip-path: polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%); animation: ti-stamp-glimmer 650ms var(--delay) ease-in-out 2 both; }
.ti-stamp-aura { position: absolute; inset: 8%; border-radius: 50%; opacity: 0; border: 2px solid var(--fx-color); }
.ti-stamp-particle { position: absolute; top: 50%; left: 50%; width: 6px; height: 6px; border-radius: 2px; background: var(--fx-color); box-shadow: 0 0 7px var(--fx-color); animation: ti-stamp-scatter var(--duration) var(--delay) both; }
.ti-stamp-actor { position: absolute; top: 102%; left: 50%; max-width: 160px; padding: 3px 9px; border: 1px solid #e5d5a866; border-radius: 4px; background: #131d20e8; color: #fff; font: 600 11px/1.3 sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transform: translateX(-50%); }
.ti-stamp-avatar { position: absolute; z-index: 5; right: -4px; bottom: -4px; width: 20px; height: 20px; object-fit: cover; border: 1px solid #a970ff; border-radius: 50%; background: #18181b; box-shadow: 0 1px 5px #0009; }
.ti-stamp-chain { position: absolute; top: -25%; left: 50%; transform: translateX(-50%) rotate(-6deg); font: 800 15px/1.3 Georgia,serif; color: #fff1b6; white-space: nowrap; text-shadow: 0 2px 2px #000; }
.ti-stamp-fx-nova .ti-stamp-aura, .ti-stamp-fx-royal .ti-stamp-aura { animation: ti-stamp-ring var(--duration) both; box-shadow: 0 0 0 5px #ffffff15,0 0 0 9px var(--fx-color); }
.ti-stamp-look-glow .ti-stamp-aura { animation: ti-stamp-ring var(--duration) both; box-shadow: 0 0 0 4px #ffffff18,0 0 0 8px var(--stamp-color); }
.ti-stamp-fx-royal .ti-stamp-particle { width: 8px; height: 5px; border-radius: 2px; background: var(--fx-color); animation-name: ti-stamp-confetti; }
.ti-stamp-fx-royal .ti-stamp-particle:nth-child(4n+2) { background: #ff88b7; box-shadow: 0 0 7px #ff88b7; }
.ti-stamp-fx-royal .ti-stamp-particle:nth-child(4n+3) { background: #ffe36f; box-shadow: 0 0 7px #ffe36f; }
.ti-stamp-fx-royal .ti-stamp-particle:nth-child(4n) { background: #70e5e1; box-shadow: 0 0 7px #70e5e1; }
.ti-stamp-fx-royal .ti-stamp-particle:nth-child(4n+1) { background: #a991ff; box-shadow: 0 0 7px #a991ff; }
.ti-stamp-fx-meteor .ti-stamp-aura { inset: 40% 30% 40% -80%; border: 0; border-radius: 0; background: linear-gradient(90deg, transparent, var(--fx-color)); transform: rotate(-30deg); animation: ti-stamp-trail var(--duration) both; }
.ti-stamp-fx-quiet { animation: ti-stamp-fade 650ms linear both; transform: translate(-50%,-50%); }
/* Position, scale and opacity share one timeline; ascent never waits for the entrance. */
@keyframes ti-stamp-flight {
  0% { opacity: 0; transform: translate(calc(-50% - var(--drift)), -50%) scale(.72); }
  12% { opacity: .9; transform: translate(calc(-50% - var(--drift) * .88), calc(-50% - var(--rise) * .12)) scale(.87); }
  28% { opacity: 1; transform: translate(calc(-50% - var(--drift) * .72), calc(-50% - var(--rise) * .28)) scale(.98); }
  65% { opacity: 1; transform: translate(calc(-50% - var(--drift) * .35), calc(-50% - var(--rise) * .65)) scale(1.03); }
  100% { opacity: 0; transform: translate(-50%, calc(-50% - var(--rise))) scale(1.05); }
}
@keyframes ti-stamp-fade { 0%,100% { opacity: 0; } 15%,75% { opacity: 1; } }
@keyframes ti-stamp-glimmer { 0%,100% { opacity: 0; transform: translate(-50%,-50%) scale(.2) rotate(-15deg); } 45% { opacity: 1; transform: translate(-50%,-50%) scale(1) rotate(15deg); } }
@keyframes ti-stamp-scatter { 0%,8% { opacity: 0; transform: rotate(var(--angle)) translateY(-15px) scale(.1); } 22% { opacity: 1; } 70%,100% { opacity: 0; transform: rotate(var(--angle)) translateY(calc(var(--stamp-size) * -.8)) rotate(90deg) scale(.4); } }
@keyframes ti-stamp-rays { 0%,10% { opacity: 0; transform: rotate(var(--angle)) translateY(-25px) scaleY(.1); } 28% { opacity: .9; } 80%,100% { opacity: 0; transform: rotate(var(--angle)) translateY(calc(var(--stamp-size) * -.95)) scaleY(1.3); } }
@keyframes ti-stamp-confetti { 0%,10% { opacity: 0; transform: rotate(var(--angle)) translateY(-12px) scale(.3); } 24% { opacity: 1; } 100% { opacity: 0; transform: rotate(var(--angle)) translateY(calc(var(--stamp-size) * -.9)) rotate(220deg) scale(.7); } }
@keyframes ti-stamp-ring { 0%,8% { opacity: 0; transform: scale(.3); } 25% { opacity: .85; } 80%,100% { opacity: 0; transform: scale(2); } }
@keyframes ti-stamp-trail { 0% { opacity: 0; transform: translate(-60px,35px) rotate(-30deg) scaleX(.2); } 25% { opacity: .65; } 55%,100% { opacity: 0; transform: rotate(-30deg) scaleX(1); } }
@keyframes ti-stamp-color-pulse { 0%,100% { opacity: 0; transform: scale(.65); } 24%,72% { opacity: .9; transform: scale(1.12); } }
@media (prefers-reduced-motion: reduce) { .ti-stamp-burst { animation: ti-stamp-fade 650ms linear both; transform: translate(-50%,-50%); } .ti-stamp-particle,.ti-stamp-aura,.ti-stamp-glint,.ti-stamp-color-glow { display: none; } }
