:root { --ring: 0 0 0 3px rgba(245, 158, 11, .45); }
.focus-ring:focus { outline: none; box-shadow: var(--ring); }
.glass { backdrop-filter: blur(10px); background: rgba(255, 255, 255, .65); }
.dark .glass { background: rgba(17, 24, 39, .45); }
.bg-grid { background-size: 24px 24px; }
.skeleton { position: relative; overflow: hidden; background: rgba(0, 0, 0, .06); }
.dark .skeleton { background: rgba(255, 255, 255, .06); }
.skeleton::after { content: ''; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent); animation: shimmer 1.4s infinite; }
@keyframes shimmer { 100% { transform: translateX(100%); } }
.reveal { opacity: 0; transform: translateY(12px); }
.reveal.revealed { opacity: 1; transform: none; transition: all .6s cubic-bezier(.22, 1, .36, 1); }
