/* ─── Custom Properties & Fonts ───────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700&family=Share+Tech+Mono&display=swap');

@font-face {
    font-family: 'Dreamer TM';
    src: url('fonts/DreamerTM.otf') format('opentype'),
         url('fonts/DreamerTM.ttf') format('truetype'),
         url('fonts/Dreamer%20TM.otf') format('opentype'),
         url('fonts/Dreamer%20TM.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

:root {
    --bg-color:       #000000;
    --text-color:     #7d7d7d;
    --muted:          #555555;
    --border:         rgba(137,137,137,0.15);
    --highlight:      #FFEA00;
    --accent-green:   #22FF66;
    --font-heading:   'Dreamer TM', 'Syne', sans-serif;
    --font-subheading:'Share Tech Mono', 'JetBrains Mono', monospace;
    --font-body:      'Share Tech Mono', 'JetBrains Mono', monospace;
    --nav-h:          80px;
    --cursor-size:    14px;
    --pad:            4vw;

    /* Share Tech Mono RGB Effect Control (Distinct 90s CRT Signal Degradation) */
    --mono-rgb-cyan:    rgba(0, 229, 255, 0.60);
    --mono-rgb-red:     rgba(255, 0, 85, 0.60);
    --mono-rgb-glow:    rgba(0, 229, 255, 0.20);
    --mono-split-x:     1.4px;
    --mono-split-blur:  0.5px;
    --mono-glow-blur:   4px;

    /* Bio Text Analog Effect (Tuner / effect.psd) */
    --bio-split-x:      0.65px;
    --bio-split-blur:   1px;
    --bio-split-opacity:0.9;
    --bio-glow-blur:    6px;
    --bio-glow-opacity: 0.45;
    --bio-letter-spacing: 0.07em;
}

.accent-green {
    color: var(--accent-green) !important;
    font-weight: 500;
}

/* 1. DREAMER TM: 100% CLEAN NAV / HEADINGS (No text-shadow, no degradation) */
h1, h2, h3, h4, h5, h6,
.subpage-title,
.nav-links a,
.nav-brand,
.title,
.heading,
.grid-title,
.font-dreamer {
    font-family: var(--font-heading) !important;
    text-transform: lowercase !important;
    color: #7d7d7d;
    text-shadow: none !important;
    filter: none !important;
}

.project-name,
.project-detail,
.subpage-header p,
.subheading,
.loader-text {
    font-family: var(--font-subheading) !important;
    font-weight: 400;
    letter-spacing: 0.03em;
    text-transform: lowercase !important;
    color: #888888;
}

.subpage-header {
    padding: 1.5rem var(--pad) 1rem 4vw;
    margin-top: 0;
    margin-bottom: 1rem;
}

.subpage-title {
    font-size: 2.5rem;
    line-height: 1.2;
    color: #888888;
    letter-spacing: 0.04em;
}

/* ─── MINIMAL HIGH-VISIBILITY BACK BUTTON ────────────────── */
.back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #888888 !important;
    text-decoration: none;
    padding: 0;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    border-radius: 0;
    box-shadow: none !important;
    margin-bottom: 1.5rem;
    margin-left: 0;
    transition: color 0.15s ease, transform 0.15s ease;
    user-select: none;
}

.back-btn svg {
    width: 22px;
    height: 13px;
    fill: currentColor;
    display: block;
}

.back-btn:hover {
    color: #ffffff !important;
    transform: translateX(-4px);
}

.back-btn:active,
.back-btn.flash-green {
    color: #22FF66 !important;
    text-shadow: none !important;
    box-shadow: none !important;
    filter: none !important;
    transform: translateX(-6px);
}

/* ─── Reset ─────────────────────────────────────────────── */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
::-webkit-scrollbar { display: none; }
body { -ms-overflow-style: none; scrollbar-width: none; }
::selection { background: var(--highlight); color: #000; }
a, button, img, video { cursor: none; }

/* ─── Base ───────────────────────────────────────────────── */
body {
    background: var(--bg-color);
    color: var(--text-color);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.6;
    letter-spacing: 0.02em;
    cursor: none;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}
/* ─── Ultra Precision Square Custom Cursor ───────────────── */
.custom-cursor {
    position: fixed;
    top: 0;
    left: 0;
    width: 14px;
    height: 14px;
    background-color: #ffffff;
    border: 1px solid #000000;
    border-radius: 0px;
    pointer-events: none;
    z-index: 9999999;
    transform: translate(-50%, -50%);
    opacity: 1;
    transition: width 0.2s cubic-bezier(0.25, 1, 0.5, 1), height 0.2s cubic-bezier(0.25, 1, 0.5, 1), border 0.2s ease, background-color 0.2s ease;
}

.custom-cursor.hover {
    width: 52px;
    height: 52px;
    background-color: transparent;
    border: 1.5px solid #22FF66;
    border-radius: 0px;
    box-shadow: none !important;
    filter: none !important;
}

.custom-cursor.click-green {
    background-color: #22FF66 !important;
    border-color: #22FF66 !important;
    box-shadow: none !important;
    filter: none !important;
    text-shadow: none !important;
    mix-blend-mode: normal !important;
}

.project-entry:hover .project-media,
.media-container:hover .project-media {
    transform: scale(1.08) !important;
    box-shadow: 0 14px 45px rgba(0,0,0,0.85);
}

/* ─── 3D POINT CLOUD & OPENING VIDEO LOADER ───────────── */
.loader-overlay {
    position: fixed;
    top: 0; left: 0; width: 100vw; height: 100vh;
    background-color: #000000;
    z-index: 100000;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1), visibility 1.2s ease;
}

.opening-video-container {
    position: absolute;
    top: 0; left: 0;
    width: 100vw; height: 100vh;
    z-index: 30;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #000000;
    overflow: hidden;
    cursor: none !important;
    pointer-events: none !important;
    opacity: 1;
    transition: opacity 0.35s ease;
}

.opening-video-container.fade-out-video {
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: 1 !important;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
}

.opening-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    cursor: none !important;
    pointer-events: none !important;
    user-select: none !important;
    -webkit-user-select: none !important;
}

.intro-play-corner {
    position: absolute;
    left: 51%;
    top: 45%;
    transform: translate(-50%, -50%);
    z-index: 100;
    cursor: pointer;
    pointer-events: auto;
    user-select: none;
    color: #000000;
    opacity: 0.95;
    transition: opacity 0.4s ease, transform 0.25s ease;
}

.intro-play-corner.fade-out-prompt {
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translate(-50%, -50%) scale(0.8) !important;
}

.intro-play-triangle {
    width: 36px;
    height: 36px;
    display: block;
    fill: #000000;
    transition: transform 0.25s ease, opacity 0.25s ease;
    filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.25));
}

.intro-play-corner:hover .intro-play-triangle {
    transform: scale(1.15);
    opacity: 1;
}

.intro-enter-prompt {
    position: absolute;
    left: 50.5%;
    top: 62.5%;
    transform: translate(-50%, -50%);
    z-index: 100;
    cursor: pointer;
    text-align: center;
    pointer-events: auto;
    user-select: none;
    transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), transform 0.5s ease;
}

.intro-enter-prompt.fade-out-prompt {
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translate(-50%, calc(-50% + 8px)) !important;
}

.intro-enter-prompt .enter-text {
    color: #000000 !important;
    font-family: var(--font-heading), 'Dreamer TM', 'Syne', sans-serif !important;
    font-size: 1.18rem;
    font-weight: 700;
    -webkit-text-stroke: 0.35px #000000;
    letter-spacing: 0.78em;
    text-transform: lowercase;
    display: inline-block;
    text-shadow: none !important;
    transition: opacity 0.3s ease, transform 0.3s ease;
    animation: enterPulse 2.6s infinite ease-in-out;
}

.intro-enter-prompt:hover .enter-text {
    transform: scale(1.04);
    opacity: 1;
}

/* Hide all customizer/editor tools */
.intro-tuner-toggle,
.intro-tuner-panel,
.effect-tuner-toggle,
.effect-tuner-panel {
    display: none !important;
}
.intro-tuner-toggle {
    position: absolute;
    bottom: 1.2rem;
    left: 1.4rem;
    z-index: 102;
    background: rgba(0, 0, 0, 0.75);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(8px);
    border-radius: 6px;
    padding: 6px 12px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.76rem;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: all 0.25s ease;
    pointer-events: auto;
}

.intro-tuner-toggle:hover {
    background: #000000;
    border-color: #22FF66;
    color: #22FF66;
}

.intro-tuner-panel {
    position: absolute;
    bottom: 3.8rem;
    left: 1.4rem;
    z-index: 102;
    background: rgba(10, 10, 10, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(16px);
    border-radius: 10px;
    padding: 16px 18px;
    width: 320px;
    max-width: 90vw;
    color: #f0f0f0;
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.78rem;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.7);
    display: none;
    flex-direction: column;
    gap: 12px;
    pointer-events: auto;
}

.intro-tuner-panel.open {
    display: flex;
}

.intro-tuner-panel h4 {
    margin: 0;
    font-size: 0.85rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #22FF66;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    padding-bottom: 6px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.intro-tuner-section {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.intro-tuner-section-title {
    font-size: 0.72rem;
    color: #aaaaaa;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: bold;
}

.intro-tuner-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.intro-tuner-row label {
    font-size: 0.74rem;
    color: #cccccc;
    flex: 1;
}

.intro-tuner-row input[type="range"] {
    flex: 1.4;
    accent-color: #22FF66;
    cursor: pointer;
}

.intro-tuner-row select {
    background: #222222;
    color: #ffffff;
    border: 1px solid #444444;
    border-radius: 4px;
    padding: 3px 6px;
    font-family: inherit;
    font-size: 0.74rem;
}

.intro-tuner-row span.tuner-val {
    width: 48px;
    text-align: right;
    font-size: 0.72rem;
    color: #22FF66;
}

.intro-tuner-buttons {
    display: flex;
    gap: 8px;
    margin-top: 4px;
}

.intro-tuner-btn {
    flex: 1;
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    padding: 6px 10px;
    font-family: inherit;
    font-size: 0.72rem;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
}

.intro-tuner-btn:hover {
    background: #22FF66;
    color: #000000;
    border-color: #22FF66;
}

.intro-tuner-btn.primary {
    background: #22FF66;
    color: #000000;
    font-weight: bold;
    border-color: #22FF66;
}

.intro-tuner-btn.primary:hover {
    background: #ffffff;
    color: #000000;
}

.intro-tuner-toast {
    position: absolute;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
    background: #22FF66;
    color: #000000;
    font-weight: bold;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 0.72rem;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.intro-tuner-toast.active {
    opacity: 1;
}

@keyframes enterPulse {
    0%, 100% {
        opacity: 0.82;
    }
    50% {
        opacity: 1;
    }
}

@keyframes pulseHint {
    0%, 100% { opacity: 0.6; transform: scale(1); }
    50% { opacity: 0.95; transform: scale(1.03); }
}

video::-webkit-media-controls,
video::-webkit-media-controls-start-playback-button,
video::-webkit-media-controls-play-button,
video::-webkit-media-controls-enclosure,
video::-webkit-media-controls-overlay-play-button,
video::-webkit-media-controls-container,
video::-webkit-media-controls-panel,
*::-webkit-media-controls,
*::-webkit-media-controls-start-playback-button,
*::-webkit-media-controls-play-button,
*::-webkit-media-controls-enclosure,
*::-webkit-media-controls-overlay-play-button,
*::-webkit-media-controls-container,
*::-webkit-media-controls-panel {
    display: none !important;
    -webkit-appearance: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
}

.opening-video.glitch-out {
    animation: videoGlitch 0.4s steps(2, end) forwards;
}

@keyframes videoGlitch {
    0% { transform: translate(0, 0) scale(1); filter: contrast(100%) hue-rotate(0deg); opacity: 1; }
    20% { transform: translate(-10px, 5px) scale(1.02); filter: contrast(300%) invert(100%); opacity: 0.9; }
    40% { transform: translate(12px, -8px) scale(0.98); filter: contrast(500%) hue-rotate(180deg); opacity: 0.7; }
    60% { transform: translate(-15px, -5px) scale(1.04); filter: invert(80%); opacity: 0.5; }
    80% { transform: translate(8px, 10px) scale(1.01); filter: contrast(200%); opacity: 0.3; }
    100% { opacity: 0; transform: translate(0, 0) scale(1); }
}

.loading-cloud-container {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    z-index: 25;
    opacity: 1;
    pointer-events: auto;
    transition: opacity 0.8s ease;
}

.loading-cloud-container.active {
    opacity: 1;
    pointer-events: auto;
}

.loader-overlay.fade-out {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.project-meta {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.project-name {
    font-family: var(--font-heading) !important;
    font-size: 1.15rem;
    text-transform: lowercase !important;
    letter-spacing: 0.04em;
    color: #888888;
}

.project-detail {
    font-family: var(--font-heading) !important;
    font-size: 0.9rem;
    text-transform: lowercase !important;
    letter-spacing: 0.04em;
    color: #777777;
    white-space: nowrap;
}

#loading-cloud-container {
    width: 100vw;
    height: 100vh;
    max-width: 100vw;
    max-height: 100vh;
    overflow: visible;
}

.loader-text {
    margin-top: 1.5rem;
    font-family: var(--font-heading) !important;
    font-size: 1.1rem;
    text-transform: lowercase !important;
    letter-spacing: 0.15em;
    color: #888888;
    animation: pulse 1.5s infinite alternate;
}

@keyframes pulse {
    0% { opacity: 0.4; }
    100% { opacity: 1; }
}

/* ─── TOP NAV & LOGO ────────────────────────────────────── */
.top-nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: 95px;
    z-index: 1000;
    background: var(--bg-color);
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 5vw;
}

.nav-brand-logo {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 5px 0;
}

.brand-logo-img {
    height: 56px;
    width: auto;
    object-fit: contain;
    filter: invert(1);
    opacity: 0.95;
    transition: opacity .2s, transform .2s ease;
}
.brand-logo-img:hover { opacity: 1; transform: scale(1.03); }

.nav-links {
    display: flex;
    align-items: center;
    gap: 3.5rem;
}

.nav-links a {
    font-family: var(--font-heading) !important;
    font-size: 1.15rem;
    text-decoration: none;
    color: #7d7d7d;
    text-transform: lowercase !important;
    letter-spacing: 0.08em;
    transition: opacity .2s, color .2s;
}
.nav-links a:hover { opacity: 1; color: #22FF66; text-shadow: none !important; }
.nav-links a.active {
    color: #22FF66 !important;
    opacity: 1;
    text-shadow: none !important;
    box-shadow: none !important;
    filter: none !important;
}

/* ─── CONTACT DROPDOWN MENU ─────────────────────────────────── */
.nav-contact-dropdown {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.nav-contact-dropdown .contact-dropdown-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: rgba(12, 12, 12, 0.96);
    border: none;
    border-radius: 6px;
    padding: 0.75rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
    backdrop-filter: blur(12px);
    z-index: 10000;
    white-space: nowrap;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.7);
}

.nav-contact-dropdown:hover .contact-dropdown-menu,
.nav-contact-dropdown.open .contact-dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.contact-dropdown-menu a {
    font-size: 0.92rem !important;
    color: #a0a0a0 !important;
    transition: color 0.2s ease, opacity 0.2s ease !important;
    text-transform: lowercase !important;
    letter-spacing: 0.05em !important;
    text-decoration: none !important;
}

.contact-dropdown-menu a:hover {
    color: #22FF66 !important;
    opacity: 1 !important;
}

/* ─── IG DROPDOWN MENU ─────────────────────────────────────── */
.nav-ig-dropdown {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.nav-ig-dropdown .ig-dropdown-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: rgba(12, 12, 12, 0.96);
    border: none;
    border-radius: 6px;
    padding: 0.75rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
    backdrop-filter: blur(12px);
    z-index: 10000;
    white-space: nowrap;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.7);
}

.nav-ig-dropdown:hover .ig-dropdown-menu,
.nav-ig-dropdown.open .ig-dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.ig-dropdown-menu a {
    font-size: 0.92rem !important;
    color: #a0a0a0 !important;
    transition: color 0.2s ease, opacity 0.2s ease !important;
    text-transform: lowercase !important;
    letter-spacing: 0.05em !important;
}

.ig-dropdown-menu a:hover {
    color: #22FF66 !important;
    opacity: 1 !important;
}

/* ─── Page wrapper ───────────────────────────────────────── */
.page-content {
    padding-top: calc(var(--nav-h) + 0.5rem);
    min-height: 100vh;
}

/* ─── SCATTERED GALLERY LAYOUT ────── */
.scattered-gallery {
    column-count: 5;
    column-gap: 0.9rem;
    padding: 1rem var(--pad) 5rem 6vw;
    max-width: 1280px;
    margin-left: auto;
    margin-right: 2vw;
    width: 100%;
    position: relative;
}

/* ─── HOME LAYOUT ────────────────────────────────────────── */
.home-container {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    padding: 2rem 5vw 4rem;
    gap: 4vw;
}

.home-left-bio {
    max-width: 280px;
    min-width: 200px;
    padding-top: 0.5rem;
    position: sticky;
    top: calc(var(--nav-h) + 2rem);
    transition: max-width 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.home-left-bio.expanded {
    max-width: 580px;
}

.home-bio-tag {
    display: block;
    font-family: var(--font-heading) !important;
    font-size: 0.92rem;
    text-transform: lowercase !important;
    letter-spacing: 0.08em;
    color: #22FF66;
    margin-bottom: 1rem;
}

.home-bio-text {
    font-family: var(--font-body);
    font-size: 0.92rem;
    line-height: 1.6;
    color: #888888;
}

/* ─── SELECTED PRESS STYLES ─────────────────────────────────── */
.press-link {
    font-family: var(--font-body);
    font-size: 0.85rem;
    color: #888888;
    text-decoration: none;
    line-height: 1.45;
    display: inline-block;
    transition: color 0.25s ease, transform 0.25s ease;
}

.press-outlet {
    color: #22FF66;
    font-weight: 500;
}

.press-title {
    color: #888888;
}

.press-link:hover {
    color: #22FF66;
    transform: translateX(4px);
}

.press-link:hover .press-outlet {
    color: #22FF66;
}

.read-more-btn:hover,
.press-btn:hover,
.view-all-press-btn:hover {
    color: #22FF66 !important;
}

/* ─── SMOOTH EXPANDABLE PANELS & STAGGERED REVEALS ───────── */
.expandable-panel {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    transition: grid-template-rows 0.55s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.45s ease;
}

.expandable-panel.is-open {
    grid-template-rows: 1fr;
    opacity: 1;
}

.expandable-inner {
    min-height: 0;
    overflow: hidden;
}

/* ─── GREEN CODE TERMINAL (TYPEWRITER & HUM EFFECT) ────── */
.press-code-terminal {
    font-family: 'Space Mono', 'JetBrains Mono', monospace;
    font-size: 0.88rem;
    color: #00ff66;
    background: transparent;
    border: none;
    padding: 0.5rem 0;
    margin-top: 0.8rem;
    width: 100%;
    max-width: 850px;
    box-shadow: none;
    line-height: 1.85;
    letter-spacing: 0.03em;
    text-shadow: 0 0 6px rgba(0, 255, 102, 0.4);
    white-space: pre-wrap;
    word-break: break-word;
}

.press-code-terminal a {
    color: #00ff66 !important;
    text-decoration: underline !important;
    text-underline-offset: 4px;
    transition: opacity 0.2s ease, text-shadow 0.2s ease;
}

.press-code-terminal a:hover {
    opacity: 1 !important;
    color: #ffffff !important;
    text-shadow: 0 0 10px #00ff66, 0 0 20px #00ff66 !important;
}

.green-cursor {
    display: inline-block;
    width: 7px;
    height: 14px;
    background: #00ff66;
    margin-left: 4px;
    vertical-align: middle;
    animation: blinkGreenCursor 0.7s infinite;
    box-shadow: 0 0 8px #00ff66;
}

@keyframes blinkGreenCursor {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

/* Staggered Bio Text Columns */
.read-more-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
    align-items: flex-start;
    padding-top: 1rem;
    border-top: none;
    margin-top: 1rem;
    width: 100%;
}

.read-more-grid > p {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.expandable-panel.is-open .read-more-grid > p:nth-child(1) {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.1s;
}

.expandable-panel.is-open .read-more-grid > p:nth-child(2) {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.22s;
}

/* Staggered Press Items */
.press-list > li {
    opacity: 0;
    transform: translateX(-10px);
    transition: opacity 0.4s ease, transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}

.expandable-panel.is-open .press-list > li:nth-child(1) { opacity: 1; transform: translateX(0); transition-delay: 0.06s; }
.expandable-panel.is-open .press-list > li:nth-child(2) { opacity: 1; transform: translateX(0); transition-delay: 0.12s; }
.expandable-panel.is-open .press-list > li:nth-child(3) { opacity: 1; transform: translateX(0); transition-delay: 0.18s; }
.expandable-panel.is-open .press-list > li:nth-child(4) { opacity: 1; transform: translateX(0); transition-delay: 0.24s; }
.expandable-panel.is-open .press-list > li:nth-child(5) { opacity: 1; transform: translateX(0); transition-delay: 0.30s; }
.expandable-panel.is-open .press-list > li:nth-child(6) { opacity: 1; transform: translateX(0); transition-delay: 0.36s; }

.scattered-gallery .project-entry {
    width: 100%;
    display: inline-block;
    margin-bottom: 0.9rem;
    break-inside: avoid;
    transition: opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1), transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), filter 0.45s ease;
    text-decoration: none;
    color: inherit;
    position: relative;
}

/* ─── CATEGORY & PROJECT LISTS ────── */
.project-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 0.5rem 1.4vw;
    padding: 1rem var(--pad) 4rem;
    max-width: 84vw;
    margin-left: auto;
    position: relative;
}

.project-list .project-entry {
    width: 22%;
    max-width: 230px;
    min-width: 160px;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    transition: opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1), transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), filter 0.45s ease;
    text-decoration: none;
    color: inherit;
    position: relative;
}

.project-list .project-entry[href*="sindicato-on-the-road"] {
    margin-top: -6.5rem;
}

/* ─── DRAG & DROP REORDERING STYLES ───────────────────── */
.project-list .project-entry[draggable="true"] {
    cursor: grab;
    user-select: none;
}
.project-list .project-entry[draggable="true"]:active,
.project-list .project-entry.is-dragging {
    cursor: grabbing;
    opacity: 0.45 !important;
    transform: scale(0.96);
    transition: opacity 0.15s ease, transform 0.15s ease;
}
.project-list .project-entry.drag-over {
    outline: 2px dashed rgba(255, 255, 255, 0.45);
    outline-offset: 6px;
    border-radius: 4px;
}
.project-list .project-entry img {
    pointer-events: none;
    -webkit-user-drag: none;
    user-select: none;
}



/* Hover Dimming Focus Mode: Fades all sibling projects except the one being hovered (Disabled on individual project pages) */
body:not(.project-page) .scattered-gallery.has-hovered .project-entry:not(.is-hovered),
body:not(.project-page) .project-list.has-hovered .project-entry:not(.is-hovered),
body:not(.project-page) .scattered-gallery:has(.project-entry:hover) .project-entry:not(:hover),
body:not(.project-page) .project-list:has(.project-entry:hover) .project-entry:not(:hover) {
    opacity: 0.5 !important;
    filter: grayscale(10%);
}

body.project-page .project-entry,
body.project-page .project-entry:not(:hover),
body.project-page .scattered-gallery .project-entry,
body.project-page .scattered-gallery:has(.project-entry:hover) .project-entry:not(:hover) {
    opacity: 1 !important;
    filter: none !important;
}

/* Media containers */
.media-container {
    width: 100%;
    overflow: hidden;
    position: relative;
}

.project-media {
    width: 100%;
    height: auto;
    display: block;
    box-shadow: 0 8px 30px rgba(0,0,0,0.45);
    transition: transform .5s cubic-bezier(0.2, 0.8, 0.2, 1), filter .5s ease;
    transform-origin: center center;
    border-radius: 2px;
}

.project-entry:hover .project-media {
    transform: scale(1.03);
    box-shadow: 0 12px 40px rgba(0,0,0,0.7);
}

/* ─── HUD TECH CONNECTED PREVIEW POPUPS (FAINT LINES & SATELLITE SQUARES) ─── */
.hud-preview-container {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    z-index: 10000;
    transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.35s ease;
}

.project-entry:hover {
    z-index: 900 !important;
}

.project-entry:hover .hud-preview-container {
    opacity: 1;
    visibility: visible;
}

.hud-connecting-lines {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    overflow: visible;
    pointer-events: none;
}

/* Individual Floaty Satellite Photo Cards */
.hud-float-card {
    position: absolute;
    background: transparent;
    border: none;
    box-shadow: none;
    overflow: visible;
    pointer-events: auto;
    transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.45s ease;
    display: block;
}

.hud-float-card img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain !important;
    border: 1px solid rgba(255, 255, 255, 0.45);
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.9);
    border-radius: 2px;
    transition: transform 0.4s ease;
}

.hud-float-card:hover img {
    transform: scale(1.08);
}

/* Floating Satellite 1: Top Right Floating Card */
.hud-float-1 {
    top: -75px;
    right: -70px;
    max-width: 115px;
    max-height: 115px;
    transform: translate(12px, -12px) scale(0.9);
}

/* Floating Satellite 2: Side Main Floating Card */
.hud-float-2 {
    top: 45%;
    right: calc(100% + 48px);
    max-width: 145px;
    max-height: 120px;
    transform: translateY(-50%) translateX(-18px) scale(0.92);
}

/* Floating Satellite 3: Bottom Left Floating Card */
.hud-float-3 {
    bottom: -75px;
    left: -65px;
    max-width: 120px;
    max-height: 120px;
    transform: translate(-12px, 12px) scale(0.9);
}

/* Floating Satellite 4: Top-Left Micro Detail Card */
.hud-float-4 {
    top: -70px;
    left: -75px;
    max-width: 85px;
    max-height: 85px;
    transform: translate(-12px, -12px) scale(0.9);
}

/* Alternate orientation for left-aligned project items */
.project-entry:nth-child(5n+1) .hud-float-2,
.project-entry:nth-child(5n+4) .hud-float-2 {
    right: auto;
    left: calc(100% + 48px);
    transform: translateY(-50%) translateX(18px) scale(0.92);
}

/* Alternate orientation for left-aligned project items */
.project-entry:nth-child(5n+1) .hud-float-2,
.project-entry:nth-child(5n+4) .hud-float-2 {
    right: auto;
    left: calc(100% + 55px);
    transform: translateY(-50%) translateX(20px) scale(0.92);
}

.project-entry:hover .hud-float-1,
.project-entry:hover .hud-float-3,
.project-entry:hover .hud-float-4 {
    transform: translate(0, 0) scale(1);
}

.project-entry:hover .hud-float-2 {
    transform: translateY(-50%) translateX(0) scale(1) !important;
}

.project-entry:hover .hud-float-3 {
    transform: translate(0, 0) scale(1);
}
    height: 100%;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #000000;
    font-family: var(--font-heading);
    font-size: 0.75rem;
    letter-spacing: 0.05em;
}

/* Placeholder — Solid Pure White Squares/Cubes (Empty / Blank Inside) */
.placeholder-media {
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #ffffff;
    border: none;
    display: block;
    box-shadow: 0 8px 30px rgba(255, 255, 255, 0.08);
    transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.4s ease;
    border-radius: 2px;
}
.project-entry:hover .placeholder-media {
    transform: scale(1.03);
    box-shadow: 0 12px 40px rgba(255, 255, 255, 0.2);
}
/* Brand Logo Tiles for Commissions (Netflix, Sake Nami, Casa Bon, Sakagura, Bud Light) */
.brand-logo-tile {
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    padding: 2rem;
}

.brand-logo-tile .brand-logo-text {
    display: block !important;
    font-family: var(--font-heading) !important;
    font-size: 1.4rem;
    font-weight: 800;
    color: #000000;
    letter-spacing: 0.12em;
    text-transform: uppercase !important;
    text-align: center;
    user-select: none;
}

/* ─── BRAND LOGOS SECTION AT BOTTOM OF COMMISSIONS ───────── */
.brand-footer-section {
    clear: both;
    width: 100%;
    padding: 4rem var(--pad) 5rem 5vw;
    border-top: 1px solid var(--border);
    margin-top: 4rem;
    position: relative;
    z-index: 10;
}

.brand-footer-title {
    font-family: var(--font-subheading) !important;
    font-size: 0.95rem;
    font-weight: 400;
    color: #666666;
    letter-spacing: 0.05em;
    text-transform: lowercase !important;
    margin-bottom: 2rem;
    transition: color 0.25s ease;
}

.brand-footer-title:hover {
    color: #ffffff;
}

.brand-logos-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem 3.8rem;
    align-items: center;
    justify-content: flex-start;
    padding-top: 1.5rem;
}

.brand-logo-svg,
.brand-logo-img-item {
    height: 24px;
    width: auto;
    max-height: 28px;
    max-width: 110px;
    object-fit: contain;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    opacity: 0.75;
    transition: opacity 0.25s ease, transform 0.25s ease;
    cursor: pointer;
}

.brand-logo-svg:hover,
.brand-logo-img-item:hover {
    opacity: 1;
    transform: translateY(-1px);
}

.brand-logo-img-item.brand-logo-large {
    height: 36px !important;
    max-height: 42px !important;
    max-width: 130px !important;
}

.brand-logo-img-item.brand-logo-uber {
    height: 44px !important;
    max-height: 52px !important;
    max-width: 150px !important;
    opacity: 0.88;
}

/* ─── CONTACT MINIMALIST WHITE CARD OVERLAY ───────────────── */
.scattered-gallery img,
.scattered-gallery video,
.media-container img,
.media-container video,
.project-media {
    cursor: pointer;
    object-fit: cover;
    pointer-events: auto !important;
}

video::-webkit-media-controls,
video::-webkit-media-controls-enclosure,
video::-webkit-media-controls-panel,
video::-webkit-media-controls-play-button,
video::-webkit-media-controls-start-playback-button,
video::-webkit-media-controls-overlay-play-button,
video::-webkit-media-controls-timeline,
video::-webkit-media-controls-current-time-display,
video::-webkit-media-controls-time-remaining-display,
video::-webkit-media-controls-time-control-group,
video::-webkit-media-controls-volume-control-hover-background,
video::-webkit-media-controls-volume-slider-container,
video::-webkit-media-controls-volume-slider,
video::-webkit-media-controls-mute-button,
video::-webkit-media-controls-fullscreen-button,
video::-webkit-media-controls-toggle-closed-captions-button,
video::-webkit-media-controls-cast-button {
    display: none !important;
    -webkit-appearance: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.video-play-badge {
    display: none !important;
}

.video-play-badge svg {
    width: 14px;
    height: 14px;
    fill: #ffffff;
    margin-left: 0;
}

.video-play-badge:hover {
    opacity: 1;
    transform: scale(1.2);
}

.contact-modal-overlay {
    position: fixed;
    top: 0; left: 0;
    width: 100vw; height: 100vh;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(3px);
    z-index: 250000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}

.contact-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

.contact-card {
    background: #ffffff;
    color: #000000;
    padding: 2.2rem 2.8rem;
    width: auto;
    min-width: 320px;
    position: absolute;
    top: calc(var(--nav-h) - 10px);
    right: max(4vw, 160px);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.65);
    transform: translateY(-8px) scale(0.97);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    border-radius: 2px;
}

.contact-modal-overlay.active .contact-card {
    transform: translateY(0) scale(1);
}

.contact-close {
    position: absolute;
    top: 1rem;
    right: 1.2rem;
    background: none;
    border: none;
    color: #000000;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.2s;
}

.contact-close:hover { opacity: 1; }

.contact-card-title {
    font-family: var(--font-heading) !important;
    font-size: 1.2rem;
    font-weight: 700;
    color: #000000 !important;
    text-transform: lowercase !important;
    letter-spacing: 0.06em;
    margin-bottom: 1.2rem;
}

.contact-card-content {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.contact-link {
    font-family: var(--font-subheading) !important;
    font-size: 0.88rem;
    font-weight: 400;
    color: #111111;
    text-decoration: none;
    text-transform: lowercase !important;
    letter-spacing: 0.02em;
    pointer-events: auto !important;
    cursor: pointer !important;
    display: inline-block;
    transition: color 0.2s ease, transform 0.2s ease;
}

.contact-link:hover {
    color: #777777;
    transform: translateX(4px);
}

/* ─── Scroll reveal (Findings & Curiosities Fade-in) ─────── */
.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.65s ease, transform 0.65s ease;
}
.reveal.active { opacity: 1; transform: translateY(0); }

/* ─── Mobile ─────────────────────────────────────────────── */
@media (max-width: 768px) {
    .nav-links { gap: 1rem; }
    .nav-links a { font-size: 0.92rem; }
    .scattered-gallery { padding: 1.5rem 1.5rem 4rem; gap: 2.5rem; }
    .scattered-gallery .project-entry {
        width: 100%;
        max-width: 100%;
        align-self: center !important;
        margin: 0 !important;
    }
    .project-list .project-entry[href*="sindicato-on-the-road"] {
        margin-top: 0;
    }
    .custom-cursor { display: none; }
    body { cursor: auto; }
    a, button, img, video { cursor: pointer; }
}

/* ─── LIGHTBOX MODAL ───────────────────────────────────────── */
.lightbox-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.93);
    z-index: 200000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(12px);
    cursor: pointer;
}

.lightbox-modal.active {
    opacity: 1;
    visibility: visible;
}

.lightbox-img {
    max-width: 92vw;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 2px;
    box-shadow: 0 15px 50px rgba(0,0,0,0.9);
    transform: scale(0.94);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    cursor: default;
}

.lightbox-modal.active .lightbox-img {
    transform: scale(1);
}

.lightbox-close {
    position: absolute;
    top: 25px;
    right: 35px;
    color: #ffffff;
    font-size: 2.5rem;
    font-family: var(--font-heading);
    cursor: pointer;
    opacity: 0.7;
    transition: opacity 0.2s;
    user-select: none;
    line-height: 1;
}

.lightbox-close:hover {
    opacity: 1;
}

.lightbox-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
    cursor: pointer;
    opacity: 0.45;
    transition: opacity 0.2s ease, transform 0.2s ease;
    user-select: none;
    z-index: 200005;
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    outline: none;
}

.lightbox-arrow:hover {
    opacity: 1;
    transform: translateY(-50%) scale(1.15);
}

.lightbox-prev {
    left: 25px;
}

.lightbox-next {
    right: 25px;
}

@media (max-width: 768px) {
    .lightbox-prev {
        left: 8px;
    }
    .lightbox-next {
        right: 8px;
    }
    .lightbox-arrow {
        padding: 10px;
    }
}

/* Project Footer Descriptions - JetBrains Mono (Smaller Font & Wider Width) */
.project-footer-description,
.project-footer-description p,
.project-footer-description ul,
.project-footer-description li,
.project-footer-description div {
    font-family: var(--font-body) !important;
    font-size: 0.92rem !important;
    line-height: 1.6 !important;
}

.project-footer-description p,
.project-footer-description div {
    max-width: 980px !important;
}

/* ─── FULL VHS TAPE TEXT & LOGO GLITCH EFFECT (FROM EFFECT.PSD) ─── */

.vhs-effect {
    position: relative;
    display: inline-block;
    color: #ffffff;
    text-shadow: 
        0.05em 0 0 rgba(255, 0, 85, 0.75),
        -0.025em -0.05em 0 rgba(0, 255, 100, 0.75),
        0.025em 0.05em 0 rgba(0, 229, 255, 0.75);
    animation: vhsGlitch 600ms infinite alternate;
}

.vhs-effect::before,
.vhs-effect::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    clip: rect(0, 0, 0, 0);
}

.vhs-effect::before {
    left: 2px;
    text-shadow: -2px 0 #ff0055;
    animation: vhsNoiseBefore 2s infinite linear alternate-reverse;
}

.vhs-effect::after {
    left: -2px;
    text-shadow: -2px 0 #00e5ff, 2px 2px #ff0055;
    animation: vhsNoiseAfter 3s infinite linear alternate-reverse;
}

@keyframes vhsGlitch {
    0% { text-shadow: 0.05em 0 0 rgba(255, 0, 85, 0.75), -0.05em -0.025em 0 rgba(0, 255, 100, 0.75), -0.025em 0.05em 0 rgba(0, 229, 255, 0.75); }
    15% { text-shadow: -0.05em -0.025em 0 rgba(255, 0, 85, 0.75), 0.025em 0.025em 0 rgba(0, 255, 100, 0.75), -0.05em -0.05em 0 rgba(0, 229, 255, 0.75); }
    50% { text-shadow: 0.025em 0.05em 0 rgba(255, 0, 85, 0.75), 0.05em 0 0 rgba(0, 255, 100, 0.75), 0 -0.05em 0 rgba(0, 229, 255, 0.75); }
    100% { text-shadow: -0.025em 0 0 rgba(255, 0, 85, 0.75), -0.025em -0.025em 0 rgba(0, 255, 100, 0.75), -0.025em -0.05em 0 rgba(0, 229, 255, 0.75); }
}

@keyframes vhsNoiseBefore {
    0% { clip: rect(12px, 9999px, 44px, 0); }
    20% { clip: rect(85px, 9999px, 12px, 0); }
    40% { clip: rect(30px, 9999px, 90px, 0); }
    60% { clip: rect(65px, 9999px, 20px, 0); }
    80% { clip: rect(10px, 9999px, 75px, 0); }
    100% { clip: rect(50px, 9999px, 30px, 0); }
}

@keyframes vhsNoiseAfter {
    0% { clip: rect(40px, 9999px, 10px, 0); }
    20% { clip: rect(15px, 9999px, 80px, 0); }
    40% { clip: rect(70px, 9999px, 25px, 0); }
    60% { clip: rect(25px, 9999px, 60px, 0); }
    80% { clip: rect(90px, 9999px, 15px, 0); }
    100% { clip: rect(5px, 9999px, 85px, 0); }
}

/* ─── ART DIRECTION: DEGRADED INTERFACE SYSTEM ───────────── */

/* 1. DREAMER TM: 100% CLEAN NAV / HEADINGS (No text-shadow, no degradation) */
h1, h2, h3, h4, h5, h6,
.subpage-title,
.nav-links a,
.nav-brand,
.title,
.heading,
.grid-title,
.font-dreamer,
.read-me-btn,
.press-btn {
    font-family: 'Dreamer TM', var(--font-heading) !important;
    text-transform: lowercase !important;
    filter: none !important;
}

/* 2. RUBENTAMAYO Signature / Brand Logo -> Signal Degraded Texture */
.brand-logo-img,
.signature-logo {
    filter: invert(1) 
            drop-shadow(2.0px 0px 0px rgba(0, 229, 255, 0.70)) 
            drop-shadow(-2.0px 0px 0px rgba(255, 0, 85, 0.70)) !important;
    opacity: 0.95;
    transition: filter 200ms cubic-bezier(0.16, 1, 0.3, 1), opacity 200ms ease;
}

/* 3. Subheadings / Mono Text -> Digital/Archive Screen Degradation */
p,
span,
div,
a:not(.nav-links a):not(.read-me-btn):not(.nav-brand-logo),
label,
button:not(.press-btn),
.project-name,
.project-detail,
.home-bio-text,
.about-bio-p,
.subheading,
.loader-text,
.loader-hint,
.degraded-mono,
.brand-footer-title,
.subpage-header p,
.project-footer-description p,
.site-footer p,
.project-client,
.project-year,
.project-role,
.press-code-terminal,
.meta-label,
.meta-value,
.project-name {
    font-family: 'Share Tech Mono', var(--font-subheading), monospace !important;
    letter-spacing: 0.04em;
    text-shadow: 
        var(--mono-split-x) 0 var(--mono-split-blur) var(--mono-rgb-cyan),
        calc(-1 * var(--mono-split-x)) 0 var(--mono-split-blur) var(--mono-rgb-red),
        0 0 var(--mono-glow-blur) var(--mono-rgb-glow);
    transition: text-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1), color 200ms ease;
}

/* Effect.psd Text Degradation Settings across Homepage, About, & Project Descriptions */
.home-bio-text,
.about-bio-p,
.subpage-header p,
.project-footer-description,
.project-footer-description p,
.project-footer-description div,
.project-footer-description ul,
.project-footer-description li,
.project-description-text,
.project-description,
.project-desc,
.project-info-text,
.project-statement {
    text-shadow: 
        var(--bio-split-x) 0 var(--bio-split-blur) rgba(0, 229, 255, var(--bio-split-opacity)),
        calc(-1 * var(--bio-split-x)) 0 var(--bio-split-blur) rgba(255, 0, 85, var(--bio-split-opacity)),
        0 0 var(--bio-glow-blur) rgba(0, 229, 255, var(--bio-glow-opacity)) !important;
    letter-spacing: var(--bio-letter-spacing) !important;
    transition: text-shadow 0.15s ease, letter-spacing 0.15s ease;
}

.project-name,
.project-meta .project-name {
    text-shadow: 
        1.15px 0 0.5px rgba(0, 229, 255, 0.54),
        -1.15px 0 0.5px rgba(255, 0, 85, 0.54),
        0 0 3px rgba(255, 255, 255, 0.18) !important;
}

.project-detail,
.project-meta .project-detail {
    text-shadow: 
        0.8px 0 0.35px rgba(0, 229, 255, 0.40),
        -0.8px 0 0.35px rgba(255, 0, 85, 0.40) !important;
}

/* Hover Subtle Signal Stabilization for Mono elements */
.project-name:hover,
.degraded-mono:hover,
.brand-footer-title:hover,
.about-bio-p:hover,
a:hover .project-name,
a:hover .project-detail {
    text-shadow: 
        calc(var(--mono-split-x) * 1.5) 0 calc(var(--mono-split-blur) * 1.2) rgba(0, 229, 255, 0.50),
        calc(-1.5 * var(--mono-split-x)) 0 calc(var(--mono-split-blur) * 1.2) rgba(255, 0, 85, 0.50),
        0 0 calc(var(--mono-glow-blur) * 1.5) rgba(0, 229, 255, 0.25) !important;
    color: #ffffff !important;
}

/* 4. Film Grain & Dust Overlay on Navigation Media (Photo & Video) */
.media-container {
    position: relative;
    overflow: hidden;
}

/* Minimal dust specks & horizontal static signal overlay */
.media-container::after {
    content: " ";
    display: block;
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: url('film_grain_overlay.png');
    background-repeat: repeat;
    background-size: 512px 512px;
    opacity: 0.28;
    mix-blend-mode: screen;
    pointer-events: none;
    z-index: 10;
    transition: opacity 200ms cubic-bezier(0.16, 1, 0.3, 1);
}

.project-media,
.project-entry img,
.project-entry video,
.gallery-grid img,
.gallery-grid video {
    filter: none;
    transition: filter 200ms cubic-bezier(0.16, 1, 0.3, 1), transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
    will-change: filter, transform;
}

/* On Desktop Hover, Tap, or Active Lightbox -> Dust & Static Disappear 100% Crisp */
.media-container:hover::after,
.project-entry:hover .media-container::after,
.gallery-grid a:hover .media-container::after {
    opacity: 0 !important;
}

.media-container:hover .project-media,
.project-entry:hover .project-media,
.project-entry:hover img,
.project-entry:hover video,
.gallery-grid img:hover,
.gallery-grid video:hover,
.lightbox-modal.active .lightbox-img {
    filter: none !important;
    opacity: 1 !important;
}

/* Subtle interface background noise overlay */
body::after {
    content: " ";
    display: block;
    position: fixed;
    top: 0; left: 0; bottom: 0; right: 0;
    background-image: url('film_grain_overlay.png');
    background-repeat: repeat;
    background-size: 512px 512px;
    z-index: 999;
    pointer-events: none;
    opacity: 0.12;
    mix-blend-mode: screen;
}

/* ─── LIVE HOMEPAGE TEXT EFFECT TUNER HUD (effect.psd) ─────── */
.effect-tuner-toggle {
    position: fixed;
    bottom: 1.2rem;
    right: 1.4rem;
    z-index: 10000;
    background: rgba(10, 10, 10, 0.88);
    color: #00e5ff;
    border: 1px solid rgba(0, 229, 255, 0.45);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 6px;
    padding: 7px 14px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    cursor: pointer;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.6);
    transition: all 0.25s ease;
    user-select: none;
    pointer-events: auto;
}

.effect-tuner-toggle:hover {
    background: #000000;
    border-color: #ff0055;
    color: #ff0055;
    box-shadow: 0 0 14px rgba(255, 0, 85, 0.45);
    transform: translateY(-1px);
}

.effect-tuner-panel {
    position: fixed;
    bottom: 3.8rem;
    right: 1.4rem;
    z-index: 10000;
    background: rgba(12, 12, 14, 0.96);
    border: 1px solid rgba(0, 229, 255, 0.35);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-radius: 10px;
    padding: 16px 18px;
    width: 320px;
    max-width: 90vw;
    color: #f0f0f0;
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.76rem;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.85);
    display: none;
    flex-direction: column;
    gap: 11px;
    user-select: none;
    pointer-events: auto;
}

.effect-tuner-panel.open {
    display: flex;
}

.effect-tuner-panel h4 {
    margin: 0;
    font-size: 0.82rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #00e5ff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    padding-bottom: 6px;
}

