/* LIBDYN Motion Styles (Time & Behavior) */

/* === GLOBAL TRANSITIONS === */
a {
    transition: opacity 0.2s ease;
}

a:hover {
    opacity: 0.7;
}

.site-header-inner {
    transition: padding 0.25s ease;
}

/* Scroll Compressed Header */
.site-header.scrolled .site-header-inner {
    padding: 12px var(--page-padding) !important;
    /* Force override of layout padding */
}

/* Nav Links */
.site-nav a {
    opacity: 0.75;
    transition: opacity 0.2s ease;
}

.site-nav a:hover,
.site-nav a.active {
    opacity: 1;
}

.site-nav a::after {
    opacity: 0;
    transition: opacity 0.2s ease;
}

.site-nav a.active::after {
    opacity: 0.9;
}

/* Buttons */
.primary-action {
    transition: all 0.2s ease;
}

.primary-action:hover {
    border-color: rgba(255, 255, 255, 0.7);
}

/* Inputs */
.field input:focus,
.field textarea:focus {
    transition: border-color 0.2s ease, background 0.2s ease;
}

/* === SIGNAL MOTION === */
.signal-text {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.signal-text.visible {
    opacity: 0.7;
    transform: translateY(0);
}

.signal-text.hide {
    opacity: 0;
    transform: translateY(-8px);
}

/* Signal Text 1 Specifics (Authoritative) */
.signal-text-1 {
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 900ms ease, transform 900ms ease;
    pointer-events: none;
}

.signal-text-1.visible {
    opacity: 0.65;
    transform: translateY(0);
}

.signal-text-1.fade-out {
    opacity: 0;
    transform: translateY(-4px);
}

/* Text 2 Fade */
.text-2 {
    opacity: 0;
    transition: opacity 1s ease;
}

.text-2.visible {
    opacity: 1;
}

/* === CONTACT REVEAL MOTION === */
#contact-reveal {
    transition: height 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

/* === DIALOGUE FORM VISIBILITY (Unified System) === */
.contact-form {
    opacity: 1;
    /* Default: Visible (Services, Contact) */
    transition: opacity 0.6s ease;
}

/* Home Page: Conversational Invocation (Hidden Initially) */
body.page-home .contact-form {
    opacity: 0;
    pointer-events: none;
}

/* Home Page: Revealed State (via JS #contact-reveal.revealed) */
body.page-home #contact-reveal.revealed .contact-form {
    opacity: 1;
    pointer-events: auto;
}

/* === EXIT REFLECTION MOTION === */
#exit-reflection {
    opacity: 0;
    transition: opacity 250ms ease;
}

/* Note: visibility rules handled by JS class toggling or inherent opacity 0 */

/* === FADE-LOCK (GPU Jitter Mask) === */
.page-content {
    opacity: 1;
    transition: opacity 120ms ease-out;
    will-change: opacity;
}

.page-content.locked {
    opacity: 0.98;
    /* NOT 0 — avoids flash, masks repaint */
}