:root {
  --ink: #171821;
  --ink-soft: #262631;
  --lime: #b6f044;
  --cyan: #64d9e9;
  --coral: #ff7772;
  --paper: #f7f6f1;
  --muted: #737784;
  --line: #e6e3db;
}

* { box-sizing: border-box; }
body { background: var(--paper); color: var(--ink); }

.nys-header { background: #1d1e27; border-bottom: 1px solid rgba(255,255,255,.06); }
.nys-header-inner { min-height: 65px; }
.nys-brand { letter-spacing: -.075em; line-height: 1; }
.nys-brand .brand-accent { color: var(--lime); }
.nys-brand .brand-dot { width: 7px; height: 7px; background: var(--coral); vertical-align: 7px; }
.nys-nav-link { color: #a9aab4; transition: background .2s ease, color .2s ease; }
.nys-nav-link:hover, .nys-nav-link.active { color: #fff; background: #343540; }
.nys-nav-link.active { box-shadow: inset 0 -2px var(--lime); }
.nys-avatar { background: var(--lime); color: var(--ink); min-width: 36px; height: 36px; }
.nys-bell { color: #bfc0c7; }
.nys-bell-dot { background: var(--lime); box-shadow: 0 0 0 2px #1d1e27; }

.hero-shell { background: radial-gradient(circle at 86% 37%, rgba(182,240,68,.08), transparent 25%), #11121b; }
.hero-copy { max-width: 560px; }
.hero-kicker { border: 1px solid #343641; color: #bfc0c7; background: rgba(255,255,255,.015); }
.hero-kicker-dot { background: var(--lime); }
.hero-title { font-size: clamp(4rem, 8vw, 7.3rem); line-height: .88; letter-spacing: -.085em; }
.hero-title-accent { color: var(--lime); }
.hero-lede { color: #aaaab4; max-width: 520px; }
.hero-primary { background: var(--lime); color: var(--ink); box-shadow: 0 3px 0 var(--coral); }
.hero-primary:hover { transform: translateY(-2px); box-shadow: 0 5px 0 var(--coral); }
.hero-secondary { border: 1px solid #343641; color: #f5f5f3; }
.hero-secondary:hover { background: #262631; }
.hero-tag { color: #aaabb5; background: #2c2d37; }
.hero-photo-frame { box-shadow: 24px 28px 0 rgba(0,0,0,.18); }
.hero-photo { min-height: 570px; }
.hero-photo-badge { background: #fff; color: var(--ink); }

.section-eyebrow { color: #d342c6; letter-spacing: .24em; }
.filter-pill { background: #efeee9; color: #6a6c76; }
.filter-pill.active { background: var(--ink); color: #fff; }
.event-card { border: 1px solid var(--line); box-shadow: 0 6px 16px rgba(23,24,33,.06); }
.event-card:hover { transform: translateY(-5px); box-shadow: 0 15px 25px rgba(23,24,33,.10); }
.event-card-image { height: 265px; }
.event-card-footer { border-top: 1px solid var(--line); }
.event-card-button { background: var(--ink); color: #fff; }
.event-card-button:hover { background: #383844; }
.closing-banner { background: var(--ink); }

.workspace { min-height: calc(100vh - 65px); }
.workspace-title { letter-spacing: -.065em; }
.stat-card { min-height: 124px; border: 1px solid var(--line); box-shadow: 0 5px 14px rgba(23,24,33,.045); }
.stat-card.stat-dark { background: var(--ink); color: #fff; border-color: var(--ink); }
.stat-card.stat-lime { background: var(--lime); border-color: var(--lime); }
.stat-label { color: #777a84; }
.stat-dark .stat-label { color: #aeb0ba; }
.panel { border: 1px solid var(--line); box-shadow: 0 5px 14px rgba(23,24,33,.045); }
.panel-muted { background: #f0efeb; }
.panel-title { letter-spacing: -.045em; }
.empty-icon { background: #fff; box-shadow: 0 4px 12px rgba(23,24,33,.08); }
.profile-avatar { background: var(--lime); color: var(--ink); }
.security-panel { background: var(--ink); color: #fff; }
.security-panel .security-value { color: #fff; }
.security-panel .security-link { color: var(--lime); }
.session-chip { background: #d8f4fb; color: #087e98; }
.admin-tabs { border: 1px solid var(--line); box-shadow: 0 4px 12px rgba(23,24,33,.06); }
.admin-tab { color: #777983; }
.admin-tab:hover { color: var(--ink); background: #f2f1ed; }
.admin-tab.active { color: #fff; background: var(--ink); }
.attention-panel { background: #fff; border: 1px solid var(--line); }
.notification-row { border-bottom: 1px solid var(--line); }
.notification-row:last-child { border-bottom: 0; }
.notification-icon { background: #fae2f5; color: #cb3db3; }
.admin-private-card { background: #f8e2fc; }

@media (max-width: 767px) {
  .hero-photo { min-height: 380px; }
  .hero-title { font-size: clamp(4rem, 19vw, 6rem); }
  .nys-nav-label { display: none; }
  .nys-nav-link { padding-left: .55rem; padding-right: .55rem; }
}
