/* Gemeinsames Motion Design für alle Seiten */
@keyframes mIn { 0% { opacity:0; transform:translateY(22px) scale(.97); filter:blur(6px); } 100% { opacity:1; transform:none; filter:none; } }
@keyframes mRow { 0% { opacity:0; transform:translateX(-18px); } 100% { opacity:1; transform:none; } }
@keyframes mOrb { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(12vw,10vh) scale(1.15); } }
@keyframes mSheen { 0% { transform:translateX(-120%) skewX(-20deg); } 100% { transform:translateX(240%) skewX(-20deg); } }
body::after { content:""; position:fixed; width:55vw; height:55vw; min-width:320px; min-height:320px; left:-15vw; top:-18vh; border-radius:50%; z-index:-2; pointer-events:none;
  background:radial-gradient(circle, rgba(127,182,255,.28), transparent 70%); filter:blur(46px); animation:mOrb 24s ease-in-out infinite; }
main > *, .card, .panel, .box, section, table, form { animation:mIn .8s cubic-bezier(.2,.9,.3,1.15) both; }
main > *:nth-child(2) { animation-delay:.08s; } main > *:nth-child(3) { animation-delay:.16s; } main > *:nth-child(4) { animation-delay:.24s; }
li, .row, .item, .ticket, .t { animation:mRow .6s cubic-bezier(.2,.9,.3,1) both; }
li:nth-child(2), .item:nth-child(2) { animation-delay:.06s; } li:nth-child(3), .item:nth-child(3) { animation-delay:.12s; } li:nth-child(4), .item:nth-child(4) { animation-delay:.18s; }
.card, .panel, .box, .feat, .board-card, .server { position:relative; overflow:hidden; transition:transform .45s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease; }
.card:hover, .panel:hover, .feat:hover, .board-card:hover { transform:translateY(-3px); box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 24px 56px rgba(0,0,0,.45); }
.card::after, .panel::after { content:""; position:absolute; top:0; bottom:0; left:0; width:40%; pointer-events:none; background:linear-gradient(100deg,transparent,rgba(255,255,255,.1),transparent); transform:translateX(-120%); }
.card:hover::after, .panel:hover::after { animation:mSheen 1.2s ease forwards; }
button, .btn, input[type=submit], .copy { transition:transform .35s cubic-bezier(.34,1.56,.64,1), background .3s ease, box-shadow .3s ease; }
button:hover, .btn:hover, .copy:hover { transform:translateY(-2px) scale(1.02); }
button:active, .btn:active { transform:scale(.97); }
a { transition:color .3s ease, text-shadow .3s ease; }
a:hover { text-shadow:0 0 12px rgba(127,182,255,.55); }
input:focus, textarea:focus, select:focus { box-shadow:0 0 0 4px rgba(127,182,255,.18) !important; }
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation:none !important; transition:none !important; } }
/* Hintergrund-Tab: Animationen pausieren */
html.cx-hidden *, html.cx-hidden *::before, html.cx-hidden *::after { animation-play-state: paused !important; }
