/* ── Arcade grid background (subtle) ── */ .arcade-grid-bg { position: relative; } .arcade-grid-bg::after { content: ''; position: absolute; inset: 0; background-image: linear-gradient(var(--fk-grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--fk-grid-line) 1px, transparent 1px); background-size: 40px 40px; pointer-events: none; opacity: 0.5; } /* ── Page transitions ── */ .page-enter { animation: fadeInUp 0.5s var(--fk-ease-out) both; } @keyframes fadeInUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } } /* ── Image hover zoom ── */ .img-hover-zoom { overflow: hidden; } .img-hover-zoom img { transition: transform 0.6s var(--fk-ease-out); } .img-hover-zoom:hover img { transform: scale(1.04); }