/* Premium Utilities & Micro-animations */
.hover-line {
    position: relative;
    text-decoration: none !important;
}

.hover-line::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: -2px;
    left: 0;
    background-color: var(--ntt-primary);
    transition: var(--ntt-transition);
}

.hover-line:hover::after {
    width: 100%;
}

.tracking-wider { letter-spacing: 0.05em; }
.tracking-widest { letter-spacing: 0.1em; }

.bg-gradient-to-t {
    background: linear-gradient(to top, var(--tw-gradient-stops));
}

.from-black\/90 { --tw-gradient-from: rgba(0, 0, 0, 0.9); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(0, 0, 0, 0)); }
.to-transparent { --tw-gradient-to: transparent; }

.small { font-size: 0.875rem; }
.x-small { font-size: 0.75rem; }

.fw-bold { font-weight: 700; }
.fw-medium { font-weight: 500; }

.show-line {
    position: relative;
    padding-bottom: 10px;
}

.show-line::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 4px;
    background: var(--ntt-primary);
    border-radius: 2px;
}

/* Transitions */
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 300ms; }
.duration-500 { transition-duration: 500ms; }
.duration-700 { transition-duration: 700ms; }

.hover\:scale-110:hover { transform: scale(1.1); }
.hover\:translate-y-\[-2px\]:hover { transform: translateY(-2px); }

.object-fit-cover { object-fit: cover; }