/* ==========================================================================
   Neon Rain — a city at night.
   Teal-black #0a1416 · amber smog #ff9e4f · cold cyan #3fd0d4 · warm white #f4e9dc
   Oswald (condensed, uppercase) for headlines, JetBrains Mono for readouts,
   IBM Plex Sans for text. An amber glow and rain over the opening frame, the
   name lit like a sign, projects as coded dossiers. Rain stops for reduced motion.
   ========================================================================== */

:root {
    --nx-amber: #ff9e4f;
    --nx-cyan: #3fd0d4;
    --nx-line: rgba(183, 198, 196, .14);
    --nx-wrap: min(1400px, 100% - 2 * var(--art-gutter));
    --art-lightbox-bg: rgba(5, 11, 12, .98);
    --art-lightbox-text: #b7c6c4;
    --vf-screen-bg: rgba(5, 11, 12, .985);
    color-scheme: dark;
}

body { line-height: 1.65; background-image: radial-gradient(ellipse 120% 60% at 50% -10%, rgba(255, 158, 79, .08), transparent 60%); background-repeat: no-repeat; }
h1, h2, h3, h4 { line-height: 1; letter-spacing: .01em; color: var(--art-heading); }
::selection { background: var(--nx-amber); color: #0a1416; }
.nx-code { font-family: var(--art-meta-font); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.btn, .wp-block-button__link { border-radius: 0; }
.wp-block-button__link, .btn-primary { background: transparent; border: 1px solid var(--nx-amber); color: var(--nx-amber); font-family: var(--art-meta-font); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; box-shadow: 0 0 18px -6px var(--nx-amber); }
.wp-block-button__link:hover, .btn-primary:hover { background: var(--nx-amber); color: #0a1416; }
.form-control, .form-select { background: rgba(255, 255, 255, .02); border: 1px solid var(--nx-line); border-radius: 0; color: var(--art-text); }
.form-control:focus { border-color: var(--nx-cyan); box-shadow: 0 0 0 1px var(--nx-cyan); }

/* ---------- Header ---------- */

.art-brand { white-space: nowrap; letter-spacing: .06em; }
.art-header { background: rgba(10, 20, 22, .82) !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--nx-line); }
.art-header__inner { max-width: none; padding-top: 14px; padding-bottom: 14px; }
.art-menu { gap: .2rem 1.5rem; }
.art-menu .nav-link.active, .art-menu .current-menu-item > .nav-link { color: var(--nx-amber); text-shadow: 0 0 12px rgba(255, 158, 79, .6); }
.vs-side-foot { flex-direction: row; align-items: center; margin: 0 0 0 1.4rem; }
@media (max-width: 991.98px) { .vs-side-foot { margin: 1rem 0 .5rem; } }

/* ---------- Opening: smog, rain, a lit sign ---------- */

.nx-open { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: min(calc(100vh - 64px), 920px); overflow: hidden; background: #050b0c; isolation: isolate; }
.nx-open__still { position: absolute; inset: 0; z-index: -3; }
.nx-open__img { width: 100%; height: 100% !important; object-fit: cover; opacity: .5; filter: saturate(.55) contrast(1.15) sepia(.25) hue-rotate(-10deg); }
.nx-smog { position: absolute; inset: 0; z-index: -2; pointer-events: none;
    background:
        radial-gradient(ellipse 70% 55% at 75% 20%, rgba(255, 158, 79, .45), transparent 65%),
        radial-gradient(ellipse 60% 50% at 10% 90%, rgba(63, 208, 212, .18), transparent 70%),
        linear-gradient(180deg, rgba(10, 20, 22, .1), rgba(10, 20, 22, .95) 92%); }
.nx-rain { position: absolute; inset: -20% 0 0; z-index: -1; pointer-events: none; opacity: .35;
    background-image:
        repeating-linear-gradient(100deg, transparent 0 22px, rgba(220, 235, 235, .22) 22px 23px, transparent 23px 61px),
        repeating-linear-gradient(100deg, transparent 0 37px, rgba(220, 235, 235, .14) 37px 38px, transparent 38px 89px);
    background-size: 100% 180px, 100% 260px; }
@media (prefers-reduced-motion: no-preference) {
    .nx-rain { animation: nx-rain .9s linear infinite; }
}
@keyframes nx-rain { to { background-position: -30px 180px, -40px 260px; } }

.nx-open__inner { position: relative; width: var(--nx-wrap); margin: 0 auto; padding: clamp(80px, 12vw, 160px) 0 clamp(28px, 4vw, 48px); }
.nx-open__kicker { margin: 0 0 1.2rem; color: var(--nx-cyan); }
.nx-open__title { margin: 0; font: var(--art-heading-weight) clamp(64px, 12vw, 208px)/.86 var(--art-heading-font); text-transform: uppercase; letter-spacing: .01em; color: #fff3e3;
    text-shadow: 0 0 8px rgba(255, 158, 79, .55), 0 0 30px rgba(255, 158, 79, .45), 0 0 80px rgba(255, 120, 40, .3); }
.nx-open__sub { max-width: 46ch; margin: 1.4rem 0 0; font-size: clamp(16px, 1.4vw, 19px); color: var(--art-text); }
.nx-status { position: relative; display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 0 clamp(24px, 4vw, 64px); width: var(--nx-wrap); margin: 0 auto; padding: 18px 0 26px; border-top: 1px solid var(--nx-line); }
.nx-status dt { font-weight: 400; color: var(--art-muted); }
.nx-status dd { margin: 4px 0 0; font-size: 15px; color: var(--art-heading); }
@media (max-width: 575.98px) { .nx-status { gap: 12px 32px; } }

/* ---------- Dossiers ---------- */

.nx-body { width: var(--nx-wrap); margin: 0 auto 140px; }
.nx-body .art-home-content { margin-top: 56px; }
.nx-section { margin-top: clamp(80px, 11vw, 150px); }
.nx-head, .nx-body .art-home-section__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 2rem; padding-bottom: .9rem; border-bottom: 1px solid var(--nx-line); }
.nx-head__title, .nx-body .art-home-section__head .edith-section-title { margin: 0; font: var(--art-heading-weight) clamp(40px, 5.4vw, 84px)/.9 var(--art-heading-font); text-transform: uppercase; letter-spacing: .01em; color: var(--art-heading); }
.nx-head .nx-code, .nx-body .edith-more { color: var(--art-muted); font-family: var(--art-meta-font); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.nx-head__more:hover, .nx-body .edith-more:hover { color: var(--nx-amber); }

.nx-dossiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(18px, 2.4vw, 32px); margin: 0; padding: 0; list-style: none; }
.nx-dossier__link { position: relative; display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 14px 14px 18px; border: 1px solid var(--nx-line); background: linear-gradient(180deg, rgba(255, 255, 255, .025), rgba(255, 255, 255, 0)); color: var(--art-text); text-decoration: none; transition: border-color .3s ease, box-shadow .3s ease; }
/* Corner brackets, lit amber on hover. */
.nx-dossier__link::before, .nx-dossier__link::after { content: ""; position: absolute; width: 14px; height: 14px; border: 1px solid var(--nx-amber); opacity: .5; transition: opacity .3s ease; }
.nx-dossier__link::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.nx-dossier__link::after { right: -1px; bottom: -1px; border-left: 0; border-top: 0; }
.nx-dossier__link:hover, .nx-dossier__link:focus-visible { border-color: rgba(255, 158, 79, .45); box-shadow: 0 0 40px -18px var(--nx-amber); }
.nx-dossier__link:hover::before, .nx-dossier__link:hover::after { opacity: 1; }
.nx-dossier__id { color: var(--nx-amber); }
.nx-dossier__media { position: relative; display: block; overflow: hidden; background: #050b0c; }
.nx-dossier__media::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(0, 0, 0, .18) 0 1px, transparent 1px 3px); pointer-events: none; }
.nx-dossier__img { display: block; width: 100%; aspect-ratio: 4 / 3 !important; object-fit: cover; filter: saturate(.85) contrast(1.05); transition: filter .4s ease; }
.nx-dossier__link:hover .nx-dossier__img { filter: none; }
.nx-dossier__title { margin-top: 4px; font: var(--art-heading-weight) clamp(26px, 2.4vw, 36px)/.95 var(--art-heading-font); text-transform: uppercase; color: var(--art-heading); }
.nx-dossier__stats { display: flex; gap: 1.6rem; color: var(--art-muted); }
.nx-dossier__stats b { font-weight: 400; color: var(--nx-cyan); margin-left: .4rem; }
.nx-dossier__medium { font-size: 13px; color: var(--art-muted); }
@media (max-width: 991.98px) { .nx-dossiers { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .nx-dossiers { grid-template-columns: 1fr; } }

/* Monitors */
.nx-monitors { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 32px; margin: 0; padding: 0; list-style: none; }
.nx-monitor .vf-film { border: 1px solid var(--nx-line); box-shadow: 0 0 60px -30px var(--nx-cyan); }
.nx-monitor .vf-film__media::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(0, 0, 0, .14) 0 1px, transparent 1px 3px); pointer-events: none; }
.nx-monitor__code { display: flex; justify-content: space-between; margin: 12px 0 4px; color: var(--nx-amber); }
.nx-monitor__title { margin: 0; color: var(--art-heading); }
.vf-film__play { background: rgba(255, 158, 79, .9); }

/* Transmission log, shop */
.art-news-list__item { border-top: 1px solid var(--nx-line); padding: 1rem 0; }
.art-news-list__num { font-family: var(--art-meta-font); font-size: 11px; color: var(--nx-amber); }
.art-news-list__date { font-family: var(--art-meta-font); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--art-muted); }
.art-news-list__title { font: var(--art-heading-weight) clamp(20px, 1.8vw, 26px)/1.1 var(--art-heading-font); text-transform: uppercase; letter-spacing: .02em; color: var(--art-heading); text-decoration: none; }
.art-news-list__title:hover { color: var(--nx-amber); }
.edith-card { padding: 12px; border: 1px solid var(--nx-line); }
.edith-card__media, .edith-news-card__media--empty { background: var(--art-surface); }

/* ---------- Inner pages ---------- */

.edith-page__title, .edith-post__title { font: var(--art-heading-weight) clamp(52px, 8vw, 132px)/.88 var(--art-heading-font); text-transform: uppercase; letter-spacing: .01em; color: #fff3e3; text-shadow: 0 0 24px rgba(255, 158, 79, .35); }
.edith-kicker, .art-project-meta { font-family: var(--art-meta-font); text-transform: uppercase; letter-spacing: .12em; }
.edith-content blockquote { border-left: 2px solid var(--nx-amber); padding-left: 1.2rem; color: var(--art-heading); }
.vf-cap__meta, .vf-work__meta { font-family: var(--art-meta-font); text-transform: uppercase; letter-spacing: .1em; font-size: 11px; }
.fran-gallery .fran-artwork img { box-shadow: none; }

/* ---------- Footer ---------- */

.art-footer { border-top: 1px solid var(--nx-line); }
.art-footer__name { font: 500 clamp(32px, 4vw, 56px)/1 var(--art-heading-font); text-transform: uppercase; color: #fff3e3; text-shadow: 0 0 20px rgba(255, 158, 79, .4); }
