/*
Theme Name: Neon Cabinet
Theme URI: https://example.com/neon-cabinet
Author: GeekPress Themes
Author URI: https://example.com
Description: A 1980s arcade-cabinet skin for the GeekPress movie/TV/game database plugin. Chunky neon-pixel frames, CRT scan-lines + bloom, hot-magenta on deep violet-black with electric-purple and cyan pops, and "HIGH SCORE" pixel typography. Reskins AND re-skeletons every GeekPress front-end context (catalog, movie, game, name, profile, articles, fields, userpages, mediaviewer) via the --geekui-* token contract — the plugin markup never changes.
Version: 1.1.6
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: neon-cabinet
Tags: dark, custom-colors, full-width-template, theme-options, gaming, arcade
*/

@import url('https://fonts.googleapis.com/css2?family=Bungee&family=Chivo:wght@400;500;700;900&family=DM+Mono:wght@400;500&family=Press+Start+2P&display=swap');

:root{
  --nc-bg:#0c0814; --nc-bg-2:#140d22; --nc-surface:#170f2a;
  --nc-text:#f6ecff; --nc-text-dim:#c3aede; --nc-mute:#8a7caa;
  --nc-accent:#ff2ec4; --nc-accent-2:#b15cff; --nc-accent-d:#c8179a; --nc-ink:#18021c;
  --nc-border:rgba(255,46,196,.5); --nc-cyan:#2ce4ff; --nc-yellow:#ffe14d;
  --nc-pixel:'Press Start 2P',monospace; --nc-title:'Bungee',sans-serif;
  --nc-base:'Chivo',system-ui,sans-serif; --nc-mono:'DM Mono',ui-monospace,monospace;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; font-family:var(--nc-base); font-size:16px; line-height:1.65;
  color:var(--nc-text); background-color:var(--nc-bg);
  background-image:
    radial-gradient(120% 80% at 50% 0%, rgba(177,92,255,.12), transparent 60%),
    linear-gradient(rgba(255,46,196,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,46,196,.05) 1px, transparent 1px);
  background-size:auto, 40px 40px, 40px 40px;
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
}
body::after{
  content:""; position:fixed; inset:0; z-index:9999; pointer-events:none;
  /* Scanlines: a 3px pitch at low alpha. At 2px/.32 the lines were coarse
     enough to visibly shred small bright UI (the topbar buttons read as
     striped rather than lit). */
  background:
    repeating-linear-gradient(0deg, transparent 0 2px, rgba(0,0,0,.16) 2px 3px),
    radial-gradient(130% 130% at 50% 50%, transparent 62%, rgba(0,0,0,.38));
  mix-blend-mode:multiply;
}
a{ color:var(--nc-accent); text-decoration:none; }
a:hover{ color:var(--nc-accent-2); }
img{ max-width:100%; height:auto; display:block; }
h1,h2,h3,h4{ font-family:var(--nc-title); text-transform:uppercase; line-height:1.1; margin:0 0 .5em; }
::selection{ background:var(--nc-accent); color:var(--nc-ink); }

/* layout shell */
.nc-shell{ max-width:1180px; margin:0 auto; padding:0 22px; }

/* site header */
.nc-header{
  position:sticky; top:0; z-index:50; border-bottom:2px solid var(--nc-border);
  background:color-mix(in srgb, var(--nc-bg) 88%, transparent); backdrop-filter:blur(8px);
}
.nc-header__bar{ display:flex; align-items:center; gap:18px; padding:14px 22px; max-width:1180px; margin:0 auto; }
.nc-brand{ font-family:var(--nc-title); font-size:20px; color:var(--nc-accent); text-shadow:0 0 16px rgba(255,46,196,.5); }
.nc-brand small{ font-family:var(--nc-pixel); font-size:8px; color:var(--nc-accent-2); display:block; }
.nc-nav{ display:flex; gap:8px; flex-wrap:wrap; margin-left:auto; }
.nc-nav a{ font-family:var(--nc-mono); font-size:13px; color:var(--nc-text-dim); padding:6px 10px; border:2px solid transparent; text-transform:uppercase; }
.nc-nav a:hover{ border-color:var(--nc-border); color:var(--nc-accent); }
.nc-marquee{ height:5px; background:linear-gradient(90deg,var(--nc-accent),var(--nc-accent-2),var(--nc-cyan),var(--nc-accent)); background-size:200% 100%; animation:nc-scroll 3s linear infinite; }
@keyframes nc-scroll{ to{ background-position:200% 0; } }

/* content */
.nc-main{ padding:40px 0 80px; }
.nc-article{
  border:2px solid var(--nc-border); background:var(--nc-surface);
  box-shadow:5px 5px 0 var(--nc-accent-d); padding:26px; margin-bottom:30px;
}
.nc-article__title{ font-size:30px; color:var(--nc-text); text-shadow:0 0 16px rgba(255,46,196,.3); }
.nc-meta{ font-family:var(--nc-mono); font-size:12px; color:var(--nc-mute); text-transform:uppercase; margin-bottom:14px; }
.nc-content{ color:var(--nc-text-dim); }
.nc-content a{ border-bottom:1px solid var(--nc-border); }

.nc-btn{
  display:inline-block; font-family:var(--nc-title); text-transform:uppercase; font-size:12px;
  padding:12px 20px; background:var(--nc-accent); color:var(--nc-ink);
  border:2px solid #000; box-shadow:4px 4px 0 var(--nc-accent-d); cursor:pointer;
  transition:transform .08s, box-shadow .08s;
}
.nc-btn:hover{ transform:translate(-1px,-1px); box-shadow:5px 5px 0 var(--nc-accent-d); color:var(--nc-ink); }
.nc-btn:active{ transform:translate(4px,4px); box-shadow:none; }

/* search form */
.search-form{ display:flex; gap:8px; }
.search-field{ font-family:var(--nc-mono); padding:11px 14px; background:var(--nc-bg-2); color:var(--nc-text); border:2px solid var(--nc-border); }
.search-field:focus{ outline:none; border-color:var(--nc-cyan); }

/* 404 */
.nc-404{ text-align:center; padding:80px 0; }
.nc-404__code{ font-family:var(--nc-pixel); font-size:46px; color:var(--nc-accent); text-shadow:0 0 24px rgba(255,46,196,.6); }
.nc-404__msg{ font-family:var(--nc-pixel); font-size:13px; color:var(--nc-accent-2); margin-top:18px; }

/* footer */
.nc-footer{ border-top:2px solid var(--nc-border); padding:30px 22px; text-align:center; }
.nc-footer__note{ font-family:var(--nc-pixel); font-size:9px; color:var(--nc-mute); }

/* widgets / lists */
.nc-list{ list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.nc-list a{ display:block; padding:10px 14px; border:2px solid var(--nc-border); background:var(--nc-surface); font-family:var(--nc-mono); }
.nc-list a:hover{ border-color:var(--nc-accent); transform:translate(-2px,-2px); box-shadow:4px 4px 0 var(--nc-accent-d); }

@media (prefers-reduced-motion:reduce){ .nc-marquee{ animation:none; } }
@media (max-width:720px){ .nc-nav{ display:none; } }
