/* =========================================================
   Night Signal · home-2026.css (index only). Prefix ix-.
   ========================================================= */

/* hero */
.ix-hero { padding-top: clamp(24px, 4vw, 56px); background: var(--night); overflow: clip; }
.ix-hero-in { display: grid; gap: var(--s-7); align-items: center; padding-bottom: var(--s-8); }
.ix-copy { min-width: 0; }
.ix-h1 { font-size: var(--t-hero); line-height: .86; margin-bottom: var(--s-5); }
.ix-copy .lede { max-width: 46ch; }
.ix-fig { position: relative; --fade-t: 0; --fade-r: 0; }
.ix-fig picture { aspect-ratio: 3 / 2; }
.ix-cap { position: absolute; left: 0; bottom: 0; z-index: 3; display: grid; gap: 2px; padding: var(--s-3) var(--s-4); background: var(--night-2); border-left: 3px solid var(--signal-hi); max-width: calc(100% - 24px); }
.ix-cap b { font: 800 1.5rem/1 var(--font-display); text-transform: uppercase; letter-spacing: .02em; }
.ix-cap .mono { color: var(--on-night-dim); }
.ix-proof { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--night-line-2); padding: 0; margin: 0; }
.ix-proof li { display: grid; align-content: start; gap: 2px; padding: var(--s-5) var(--s-5) var(--s-5) 0; max-width: none; }
.ix-proof li + li { padding-left: var(--s-5); border-left: 1px solid var(--night-line); }
.ix-proof .mono { color: var(--signal-hi); }
.ix-proof b { font: 800 clamp(3.25rem, 2rem + 4.5vw, 6rem)/.9 var(--font-display); letter-spacing: .005em; font-variant-numeric: tabular-nums; }
.ix-proof span:last-child { font-size: var(--t-small); color: var(--on-night-dim); }
@media (min-width: 1000px) {
  .ix-hero-in { grid-template-columns: minmax(0, 6.2fr) minmax(0, 6fr); gap: var(--s-6); }
  .ix-fig picture { aspect-ratio: 1 / 1.05; }
  .ix-fig { margin-right: calc((100vw - min(100vw - 2 * var(--gutter), var(--wrap))) / -2); }
}
@media (min-width: 1000px) and (max-width: 1500px) { .ix-fig { margin-right: 0; } }
@media (max-width: 999px) { .ix-cap { position: static; max-width: none; border-left: 0; border-top: 3px solid var(--signal-hi); } .ix-fig { --fade-b: 1; } }
@media (max-width: 599px) {
  .ix-proof li, .ix-proof li + li { padding: var(--s-4) var(--s-2) var(--s-4) 0; }
  .ix-proof li + li { padding-left: var(--s-3); }
  .ix-proof b { font-size: clamp(2.5rem, 12vw, 3.25rem); }
  .ix-proof span:last-child { font-size: var(--t-meta); }
}

/* 01 bill */
.ix-rows { border-bottom: 1px solid var(--night-line-2); }
.ix-row { display: grid; grid-template-columns: 56px minmax(0, 260px) minmax(0, 1fr) auto; align-items: center; gap: var(--s-6); padding: var(--s-5) var(--s-4); border-top: 1px solid var(--night-line-2); }
.ix-row:hover { background: var(--night-3); }
.ix-no { color: var(--c-dim); }
.ix-row picture { aspect-ratio: 3 / 2; }
.ix-txt h3 { font: 800 clamp(2.5rem, 1.6rem + 3vw, 4.25rem)/.92 var(--font-display); text-transform: uppercase; letter-spacing: .005em; margin-bottom: var(--s-2); }
.ix-row:hover .ix-txt h3 a { color: var(--c-sig); }
.ix-txt p { margin: 0; color: var(--c-fg-soft); max-width: 44ch; }
.ix-pr { display: grid; grid-template-columns: auto auto; align-items: center; justify-items: end; gap: 0 var(--s-3); margin: 0; text-align: right; }
.ix-pr small { grid-column: 1 / -1; color: var(--c-sig); font-size: var(--t-meta); }
.ix-pr b { font: 800 clamp(3rem, 2rem + 3vw, 4.75rem)/.9 var(--font-display); font-variant-numeric: tabular-nums; }
.ix-pr .ar { width: 28px; height: 28px; color: var(--c-sig); }
@media (max-width: 899px) {
  .ix-row { grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-3) var(--s-4); padding: var(--s-4) 0; }
  .ix-no { display: none; }
  .ix-row picture { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
  .ix-pr { justify-items: end; }
}

/* 02 run sheet (bone) */
.ix-run-in { display: grid; gap: var(--s-8); }
.ix-run-head h2 { max-width: 10ch; margin-bottom: var(--s-6); }
.ix-eq { max-width: 280px; }
.ix-steps { list-style: none; counter-reset: step; padding: 0; }
.ix-steps li { counter-increment: step; display: grid; grid-template-columns: 88px 120px minmax(0, 1fr); gap: var(--s-4) var(--s-5); align-items: start; padding: var(--s-6) 0; border-top: 2px solid var(--ink); max-width: none; }
.ix-steps li:last-child { border-bottom: 2px solid var(--ink); }
.ix-steps li::before { content: counter(step, decimal-leading-zero); font: 800 4.5rem/.8 var(--font-display); color: var(--c-sig); }
.ix-steps .when { padding-top: 6px; color: var(--c-fg); }
.ix-steps h3 { font: 700 1.5rem/1.2 var(--font-text); margin-bottom: var(--s-2); }
.ix-steps p { margin: 0; color: var(--c-fg-soft); }
@media (min-width: 1000px) { .ix-run-in { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--s-9); } }
@media (max-width: 599px) {
  .ix-steps li { grid-template-columns: 64px minmax(0, 1fr); }
  .ix-steps li::before { font-size: 3.5rem; grid-row: span 2; }
  .ix-steps .when { padding-top: 0; }
}

/* 03 listen */
.ix-listen { background: var(--night); padding-block: var(--sec); }
.ix-listen-in { display: grid; gap: var(--s-7); align-items: center; }
.ix-listen-fig picture { aspect-ratio: 4 / 3; }
.ix-deck { padding: var(--s-6); background: var(--night-2); border: 1px solid var(--night-line-2); border-top: 3px solid var(--signal); }
.ix-deck-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--s-4) var(--s-5); }
.ix-deck-row > div { flex: 1 1 260px; }
.ix-deck h3 { font: 800 clamp(2.5rem, 2rem + 2vw, 3.75rem)/.92 var(--font-display); text-transform: uppercase; margin-bottom: var(--s-3); }
.ix-deck p { color: var(--on-night-soft); }
.ix-deck .badge { color: var(--signal-hi); }
.ix-bpm { display: grid; justify-items: end; margin: 0; line-height: .8; }
.ix-bpm b { font: 800 clamp(5rem, 3rem + 7vw, 9rem)/.8 var(--font-display); color: var(--signal-hi); font-variant-numeric: tabular-nums; }
.ix-bpm .mono { margin-top: var(--s-2); color: var(--on-night-dim); }
@media (min-width: 1000px) { .ix-listen-in { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--s-8); } }

/* 04 line-up */
.ix-acts { border-bottom: 1px solid var(--night-line-2); }
.ix-act { position: relative; display: grid; grid-template-columns: 56px minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 220px); align-items: center; gap: var(--s-5); padding: var(--s-6) 0 var(--s-6) var(--s-2); border-top: 1px solid var(--night-line-2); }
.ix-act-no { color: var(--c-dim); }
.ix-act h3 { font: 800 clamp(4.5rem, 2rem + 10vw, 9rem)/.82 var(--font-display); text-transform: uppercase; letter-spacing: .005em; }
.ix-act p { margin: 0; color: var(--c-fg-soft); max-width: 30ch; }
.ix-act-mark { justify-self: end; font: 800 8rem/.8 var(--font-display); color: transparent; -webkit-text-stroke: 1px var(--night-line-2); letter-spacing: .02em; }
@media (max-width: 1099px) { .ix-act-mark { display: none; } .ix-act { grid-template-columns: 48px minmax(0, 1.3fr) minmax(0, 1fr); } }
@media (max-width: 699px) { .ix-act { grid-template-columns: minmax(0, 1fr); gap: var(--s-2); padding: var(--s-5) 0; } .ix-act-no { display: none; } .ix-act h3 { font-size: clamp(4rem, 22vw, 6rem); } }

/* 05 prices (bone) */
.ix-pricegrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--ink); }
.ix-pricegrid article { padding: var(--s-5) var(--s-5) var(--s-6); }
.ix-pricegrid article + article { border-left: 1px solid var(--c-rule-2); }
.ix-pricegrid article:first-child { padding-left: 0; }
.ix-pricegrid h3 { font: 600 var(--t-meta)/1.3 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--c-sig); }
.ix-pricegrid strong { display: block; margin: var(--s-3) 0; font: 800 clamp(4.5rem, 2rem + 5vw, 7rem)/.85 var(--font-display); font-variant-numeric: tabular-nums; }
.ix-pricegrid p { margin: 0; color: var(--c-fg-soft); }
@media (max-width: 999px) { .ix-pricegrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ix-pricegrid article:nth-child(3) { border-left: 0; padding-left: 0; } .ix-pricegrid article:nth-child(n+3) { border-top: 1px solid var(--c-rule-2); } }
@media (max-width: 559px) { .ix-pricegrid { grid-template-columns: minmax(0, 1fr); } .ix-pricegrid article, .ix-pricegrid article + article { border-left: 0; padding-left: 0; border-top: 1px solid var(--c-rule-2); } }

/* 06 reviews */
.ix-quotes { display: grid; gap: var(--s-7); }
.ix-q { margin: 0; padding: var(--s-6) 0 0; border-top: 2px solid var(--night-line-2); }
.ix-q p:not(.badge) { margin: 0 0 var(--s-5); font: 500 1.1875rem/1.55 var(--font-text); max-width: 40ch; }
.ix-q footer { font: 500 var(--t-meta)/1.4 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--c-dim); }
.ix-q-lead p:not(.badge) { font: 500 clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem)/1.3 var(--font-text); max-width: 24em; letter-spacing: -.01em; }
@media (min-width: 1000px) { .ix-quotes { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: auto auto; column-gap: var(--s-9); } .ix-q-lead { grid-row: span 2; } }

/* CTA */
.ix-cta { background: var(--night-2); border-top: 1px solid var(--night-line); }
.ix-cta-fig { margin: 0; }
.ix-cta-fig picture { display: block; height: clamp(220px, 36vw, 540px); overflow: hidden; background: var(--night-3); }
.ix-cta-fig img { width: 100%; height: 100%; object-fit: cover; filter: var(--img-grade); }
.ix-cta-in { display: grid; gap: var(--s-5) var(--s-9); padding-block: var(--sec); align-items: start; }
.ix-cta-in .kicker { grid-column: 1 / -1; margin: 0; }
.ix-cta-in h2 { font-size: clamp(3.5rem, 1.5rem + 8vw, 8rem); line-height: .86; max-width: 9ch; }
.ix-cta-in .actions { margin-top: var(--s-5); }
@media (min-width: 1000px) { .ix-cta-in { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } .ix-cta-in .lede { margin-top: var(--s-3); } }

