/* ============================================================
   FINGERPRINT IDEAS, "production" system (base layer, ported from the night system)
   The one dark system shared by the home lobby and FPI Growth.
   Warm black, paper-cream type, orange means "act" and nothing else.
   Structure is hairlines, not colored bands. Loaded after styles.css
   on pages with <body class="night">.
   ============================================================ */

.press {
  --n-bg: #f4f1ea;
  --n-bg-2: #ffffff;
  --n-panel: #ffffff;
  --n-text: #121110;
  --n-soft: #3a3833;
  --n-mute: #5f5b54;
  --n-faint: #8a857c;
  --n-line: rgba(18, 17, 15, 0.13);
  --n-line-hi: rgba(18, 17, 15, 0.26);
  --n-orange: #e53d19;
  --n-orange-hi: #c92f0e;
  --n-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --n-max: 1320px;
  background: var(--n-bg);
  color: var(--n-text);
  cursor: auto;
}
.press a, .press button, .press .btn { cursor: pointer; }
.press ::selection { background: var(--n-orange); color: var(--n-bg); }

/* Flip the press-room tokens inside <main> so every existing component
   renders on the night surface without new markup. Header and footer
   keep their own rules below. */
.press main {
  --paper: var(--n-bg);
  --paper-deep: var(--n-bg-2);
  --paper-edge: #221d18;
  --mat: var(--n-bg-2);
  --ink: var(--n-text);
  --ink-soft: var(--n-soft);
  --ink-faint: var(--n-mute);
  --hairline: 1px solid var(--n-line);
  --hairline-strong: 1px solid var(--n-line);
  --tape: rgba(18, 17, 15, 0.12);
}

/* ---------- header: one dark glass bar on every night page ---------- */
.press .site-header {
  background: rgba(255, 255, 255, 0.72);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  backdrop-filter: blur(18px) saturate(1.2);
  border-bottom: 1px solid var(--n-line);
}
.press .nav-top, .press .nav-phone { color: var(--n-text); }
.press .nav-top:hover, .press .nav-item.open > .nav-top { background: rgba(18, 17, 15, 0.07); }
.press .nav-menu { background: #ffffff; border: 1px solid var(--n-line-hi); box-shadow: 0 30px 70px -30px rgba(18, 17, 15, 0.18); }
.press .nav-intro { color: var(--n-faint); border-bottom-color: var(--n-line); }
.press .nav-menu a { color: var(--n-text); }
.press .nav-menu a:hover { background: rgba(18, 17, 15, 0.06); }
.press .nav-menu .nd { color: var(--n-mute); }
.press .nav-phone:hover { color: var(--n-orange-hi); }
.press .nav-cta { background: var(--n-orange); border-color: var(--n-orange); color: #fff; box-shadow: none; rotate: 0deg; }
.press .nav-cta:hover { background: var(--n-text); border-color: var(--n-text); color: var(--n-bg); }
.press .nav-toggle { color: var(--n-text); border-color: var(--n-line-hi); }
.press .burger, .press .burger::before, .press .burger::after { background: var(--n-text); }
@media (max-width: 1000px) {
  .press .main-nav { background: var(--n-bg); border-color: var(--n-line); }
  .press .nav-menu { background: transparent; border: 0; box-shadow: none; }
}

/* ---------- sections: one surface, hairline rules, no bands ---------- */
.press main > .section,
.press main > section.section-dark,
.press main > section.section-orange,
.press main > section.worktable {
  background: transparent !important;
  color: var(--n-text);
  border-bottom: 0;
  border-top: 1px solid var(--n-line);
}
.press .section-inner { max-width: var(--n-max); }

/* Section head: number + title on the left, plain note on the right. */
.press .section-head { align-items: flex-end; border-bottom: 0; }
.press .section-head h2 { font-size: clamp(2.4rem, 5.4vw, 4.6rem); line-height: 0.95; letter-spacing: 0.005em; max-width: 14ch; }
.press .section-head .side-note {
  font-family: var(--font-body);
  font-style: normal;
  font-size: 1.02rem;
  line-height: 1.6;
  color: var(--n-mute);
  border-left: 1px solid var(--n-line-hi);
  max-width: 38ch;
}
.press .section-head .side-note::before { content: none; }

/* Kickers become quiet sentence-case labels. */
.press .kicker {
  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--n-mute);
  margin-bottom: 0.9rem;
}
.press .kicker::before { width: 6px; height: 6px; }

/* Poster tricks retire on the night surface: no outline words, no
   misregistration shadows, no hand-scrawled notes. One roman voice. */
.press .outline-type { color: inherit; -webkit-text-stroke: 0; text-stroke: 0; }
.press .misreg, .press .misreg-cyan, .press .misreg-soft { text-shadow: none; }
.press main .note, .press main .hero-pre, .press main .hero-stamp, .press .caution { display: none; }
.press main [style*="color:var(--orange)"] { color: inherit !important; }

/* Buttons: flat, square, sentence case. Orange is the one action. */
.press .btn {
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  border: 1px solid var(--n-line-hi);
  border-radius: 2px;
  padding: 0.85em 1.35em;
  color: var(--n-text);
  background: transparent;
  rotate: 0deg;
  box-shadow: none;
}
.press .btn:hover { transform: none; box-shadow: none; border-color: var(--n-text); background: rgba(18, 17, 15, 0.06); }
.press .btn-orange { background: var(--n-orange); border-color: var(--n-orange); color: #fff; }
.press .btn-orange:hover { background: var(--n-orange-hi); border-color: var(--n-orange-hi); }
.press .btn-ink { background: var(--n-text); border-color: var(--n-text); color: var(--n-bg); }
.press .btn-ink:hover { background: #fff; color: var(--n-bg); }

/* Reveal: never hide real content waiting on scroll. */
.press .reveal, .press .reveal-stagger > * { opacity: 1 !important; translate: none !important; transform: none !important; }

/* ---------- footer: same on every night page ---------- */
.press .site-footer { background: var(--n-bg); border-top: 1px solid var(--n-line); }
.press .footer-mega { color: transparent; -webkit-text-stroke: 1px var(--n-line-hi); opacity: 0.9; }
.press .footer-mega em { color: transparent; -webkit-text-stroke: 1px rgba(229, 61, 25, 0.6); }

/* ---------- components on the night surface ---------- */

/* Index numbers and step numbers are wayfinding, not accent. */
.press .process-step .num, .press .big-num, .press .card-index { color: var(--n-faint) !important; }
.press .ghost-num { display: none; }
.press .process-step h3 { color: var(--n-text) !important; }
.press .process-step .step-tag,
.press .ticket .chip,
.press .wired .chip {
  background: none; border: 0; border-radius: 0; padding: 0; color: var(--n-mute);
  font-size: 0.82rem; font-weight: 500; letter-spacing: 0; text-transform: none;
}
.press .wired { gap: 0.2rem 0.9rem !important; }
.press .process-step:hover { background: transparent; padding-left: 0; }
.press .process-list { border-top: 1px solid var(--n-line) !important; }
.press .process-step { border-bottom: 1px solid var(--n-line); }

/* Anything that was paper on a table sits flat now: no tilt, no tape, no lip. */
.press .taped::before, .press .footer-card::before { display: none; }
.press .service-card, .press .job-ticket, .press .process-sheet, .press .check-cell,
.press .stamp-wall .stamp, .press .footer-card {
  rotate: 0deg !important; transform: none !important; margin-top: 0 !important; box-shadow: none !important;
}

/* What we do: four quiet columns on hairlines; the CMYK chip shrinks to a 3px print bar. */
.press .services-grid { gap: 0; border-top: 1px solid var(--n-line); border-left: 1px solid var(--n-line); }
.press .service-card { background: transparent; border: 0; border-right: 1px solid var(--n-line); border-bottom: 1px solid var(--n-line); padding: 1.6rem 1.5rem 1.8rem; }
.press .service-card:hover { background: var(--n-panel); }
.press .service-card .swatch, .press .service-card [class*="swatch"], .press .service-card .chip-color { height: 3px !important; min-height: 0 !important; margin: 0 0 0.6rem; }
.press .service-card .swatch *, .press .service-card [class*="swatch"] * { display: none; }
.press .service-card li { border-bottom: 1px solid var(--n-line); text-decoration: none; }
.press .service-card li::before { color: var(--n-faint); }

/* Case studies: dark panels, the facts read first. */
.press .ticket { background: var(--n-panel); border: 1px solid var(--n-line); box-shadow: none; color: var(--n-text); }
.press a.ticket:hover { transform: none; box-shadow: none; border-color: var(--n-line-hi); background: rgba(18, 17, 15, 0.06); }
.press .ticket-top { color: var(--n-faint); border-bottom: 1px solid var(--n-line); letter-spacing: 0.04em; text-transform: none; font-weight: 500; font-size: 0.82rem; }
.press .ticket li::before { background: var(--n-faint); width: 0.3rem; height: 0.3rem; top: 0.65em; }
.press .ticket .go { color: var(--n-text); }
.press a.ticket:hover .go { color: var(--n-orange-hi); }
.press .status.live { color: #6fcf8f; border-width: 1px; letter-spacing: 0.04em; text-transform: none; font-weight: 600; }

/* Client names: a plain set list, not rubber stamps. */
.press .stamp-wall { gap: 0; border-top: 1px solid var(--n-line); display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.press .stamp-wall .stamp {
  font-family: var(--font-display); font-size: clamp(1.3rem, 2.2vw, 1.8rem); letter-spacing: 0.01em;
  color: var(--n-soft) !important; border: 0; border-bottom: 1px solid var(--n-line); border-radius: 0;
  padding: 1.1rem 0; background: none; opacity: 1; text-align: left;
}
.press .stamp-wall .stamp::after, .press .stamp-wall .stamp::before { display: none; }

/* The job ticket sheet: straight, no binder holes. */
.press .process-sheet { background: transparent; border: 1px solid var(--n-line); padding: clamp(1.4rem, 3vw, 2.6rem); }
.press .process-sheet::before { display: none; }
.press .sheet-head { border-bottom-color: var(--n-line-hi); }
.press .barcode { opacity: 0.25; }

/* Who we serve and the Roundtable rules: columns on hairlines. */
.press .industry { background: transparent; border-color: var(--n-line) !important; }

/* Print shop prices: three columns, orange only on the one featured action. */
.press .shop-grid { gap: 0; border: 1px solid var(--n-line); }
.press .job-ticket { background: transparent; border: 0; border-right: 1px solid var(--n-line); outline: 0 !important; }
.press .job-ticket:last-child { border-right: 0; }
.press .job-ticket:hover { background: var(--n-panel); }
.press .ticket-head { border-bottom: 1px solid var(--n-line); }
.press .ticket-badge { background: none !important; color: var(--n-mute) !important; border: 1px solid var(--n-line-hi); letter-spacing: 0.02em; text-transform: none; font-weight: 500; rotate: 0deg; }
.press .job-ticket.featured .ticket-badge { color: var(--n-orange-hi) !important; border-color: rgba(229, 61, 25, 0.5); }
.press .ticket-body li::before { color: var(--n-faint); }
.press .ticket-foot { border-top: 1px solid var(--n-line); }
.press .ticket-foot .btn-ink { background: transparent; color: var(--n-text); border-color: var(--n-line-hi); }
.press .ticket-foot .btn-ink:hover { border-color: var(--n-text); }
@media (max-width: 860px) {
  .press .job-ticket { border-right: 0; border-bottom: 1px solid var(--n-line); }
  .press .job-ticket:last-child { border-bottom: 0; }
}

/* Press check: quiet spec row instead of a stat-row hero. */
.press .press-check { gap: 0; border-top: 1px solid var(--n-line); border-bottom: 1px solid var(--n-line); }
.press .check-cell { text-align: left; padding: 1.3rem 1.4rem 1.4rem 0; border-right: 1px solid var(--n-line); margin-right: 1.4rem; }
.press .check-cell:last-child { border-right: 0; margin-right: 0; }
.press .check-cell .stat-num { font-size: clamp(2rem, 3.4vw, 2.8rem); text-shadow: none !important; color: var(--n-text) !important; -webkit-text-stroke: 0; }
.press .check-cell .stat-label { text-transform: none; letter-spacing: 0; font-weight: 500; font-size: 0.9rem; color: var(--n-mute); }

/* Final call: the fingerprint is a watermark, not wallpaper. */
.press .cta-final { background: transparent; border-top: 1px solid var(--n-line); }
.press .cta-final .fingerprint-bg { opacity: 0.07 !important; }
.press .cta-final .btn-ink { background: transparent; color: var(--n-text); border-color: var(--n-line-hi); }
.press .contact-line { color: var(--n-mute); }
.press .contact-line a { color: var(--n-text); }

/* Footer on night pages: the card is plain type, labels are plain words. */
.press .footer-card { background: transparent; color: var(--n-text); border: 0; padding: 0; max-width: 300px; }
.press .footer-card address a { color: var(--n-text); }
.press .footer-card .barcode { opacity: 0.2; }
.press .footer-links .stamp {
  border: 0; background: none; color: var(--n-faint) !important; padding: 0; rotate: 0deg; transform: none;
  font-family: var(--font-body); font-size: 0.85rem; font-weight: 600; letter-spacing: 0; text-transform: none;
}
.press .footer-links .stamp::after, .press .footer-links .stamp::before { display: none; }
.press .footer-note { display: none; }
.press .footer-strip { border-top: 1px solid var(--n-line); }

@media (prefers-reduced-motion: reduce) {
  .press * { scroll-behavior: auto !important; }
}
.press .press-check { justify-content: flex-start; align-items: stretch; flex-wrap: nowrap; }
.press .check-cell { flex: 1 1 0; }
.press .service-card li a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--n-line-hi); }
@media (max-width: 700px) {
  .press .press-check { flex-wrap: wrap; }
  .press .check-cell { flex: 1 1 40%; border-right: 0; margin-right: 0; border-bottom: 1px solid var(--n-line); }
}

/* ---------- pass 2 polish ---------- */
.press .funnel-row .num { color: var(--n-faint); }
.press .funnel-row:last-child h3 { color: var(--n-text); }
.press .press-strip a { font-size: 0.92rem; font-weight: 600; letter-spacing: 0; text-transform: none; border: 1px solid var(--n-line-hi); border-radius: 2px; padding: 0.7rem 1.1rem; }
.press .press-strip a:hover { background: rgba(18, 17, 15, 0.06); color: var(--n-text); border-color: var(--n-text); }

/* six services sit as two rows of three */
.press .services-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.press .service-card .card-index { position: static; display: block; font-family: var(--font-body); font-size: 0.82rem; font-weight: 500; order: -2; }
.press .service-card .swatch { order: -1; width: 36px; }
@media (max-width: 900px) { .press .services-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .press .services-grid { grid-template-columns: 1fr; } }

/* manifesto: one italic serif voice, no outlined caps, no stamp */
.press .manifesto .floater, .press .process-sheet .stamp { display: none; }
.press .manifesto blockquote { color: var(--n-text); }
.press .manifesto blockquote strong { font-family: inherit !important; font-style: inherit; text-transform: none !important; color: var(--n-text) !important; -webkit-text-stroke: 0 !important; text-shadow: none !important; font-weight: 400; border-bottom: 1px solid rgba(229, 61, 25, 0.7); letter-spacing: 0; font-size: 1em; }
.press .manifesto cite { color: var(--n-faint); letter-spacing: 0.02em; text-transform: none; }

/* client names line up with the grid */
.press .stamp-wall { max-width: none; margin: 0; }

/* footer address readable */
.press .footer-card address { color: var(--n-soft); }
.press .footer-card .card-meta { color: var(--n-faint); letter-spacing: 0.06em; }
.press .services-grid { align-items: stretch; }

/* ============================================================
   Sitewide: every inner page on the night system
   ============================================================ */

/* Page heroes: type first, the fingerprint is a faint watermark,
   the stamp label becomes a quiet line. */
.press .page-hero { background: transparent; }
.press .hero-print { opacity: 0.06 !important; }
.press .page-hero .stamp {
  border: 0; background: none; color: var(--n-mute) !important; padding: 0; rotate: 0deg; transform: none;
  font-family: var(--font-body); font-size: 0.9rem; font-weight: 600; letter-spacing: 0; text-transform: none; display: inline-flex; align-items: center; gap: 0.6em;
}
.press .page-hero .stamp br { display: none; }
.press .page-hero .stamp::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--n-orange); }
.press .page-hero .stamp::after { display: none; }
.press .page-hero .lede { color: var(--n-soft); }
.press .page-hero h1 [class*="misreg"], .press .page-hero h1 span { color: inherit !important; }

/* CMYK strip: a thin print bar, never a band */
.press .cmyk-strip { border-bottom: 0; }
.press .cmyk-strip span { height: 3px; opacity: 0.85; }

/* Spec rows: sentence-case label over value */
.press .spec { border-top: 1px solid var(--n-line); }
.press .spec dt { font-size: 0.85rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--n-faint); }
.press .spec dd { color: var(--n-soft); }
.press .spec dd a { color: var(--n-text); }

/* FAQ */
.press .faq-item { border-color: var(--n-line) !important; }

/* Do / don't columns (Big Head Prints): flat, two columns on hairlines */
.press .policy-block { background: transparent; border: 1px solid var(--n-line); box-shadow: none; rotate: 0deg !important; margin-top: 0 !important; }
.press .policy-block header { background: transparent !important; color: var(--n-text) !important; border-bottom: 1px solid var(--n-line); font-family: var(--font-display); }
.press .policy-block.bad header { color: var(--n-orange-hi) !important; }
.press .policy-block li { border-bottom-color: var(--n-line); }

/* Platform board headings (systems.html) */
.press .platform-board { border-top-color: var(--n-line-hi); }
.press .platform-col { border-right-color: var(--n-line); }
.press .platform-col h3, .press .platform-col h4, .press .platform-col .stamp, .press .platform-col > b, .press .platform-col > span:first-child {
  color: var(--n-text) !important; letter-spacing: 0.01em; text-transform: none;
}

/* Halftone dots and big decorative numerals stay quiet */
.press .halftone { opacity: 0.25; }

/* ---------- the job ticket form (start.html) ---------- */
.press .form-sheet {
  background: var(--n-panel); border: 1px solid var(--n-line); box-shadow: none; rotate: 0deg;
  padding: clamp(1.4rem, 4vw, 3rem);
}
.press .form-sheet::before { display: none; }
.press .form-sheet .sheet-head { border-bottom: 1px solid var(--n-line); }
.press .form-sheet .job-no { color: var(--n-text); }
.press .field label { color: var(--n-soft); letter-spacing: 0.02em; text-transform: none; font-size: 0.9rem; font-weight: 600; }
.press .field label .hint { font-family: var(--font-body); font-size: 0.85rem; font-weight: 500; rotate: 0deg; color: var(--n-faint); }
.press .field input, .press .field textarea, .press .field select,
.press .tq-f input, .press .tq-f select { color: var(--n-text); border-bottom-color: var(--n-line-hi); }
.press .field textarea { background: rgba(18, 17, 15, 0.03); border: 1px solid var(--n-line-hi); }
.press .field input:focus, .press .field textarea:focus, .press .tq-f input:focus, .press .tq-f select:focus { border-color: var(--n-orange); background-color: rgba(229, 61, 25, 0.05); outline: none; }
.press .field input::placeholder, .press .field textarea::placeholder, .press .tq-f input::placeholder { color: var(--n-faint); }
.press .field input[type="date"] { color-scheme: light; }
.press .focus-mark { display: none; }
.press .chip span {
  font-family: var(--font-body); font-size: 0.9rem; font-weight: 500; letter-spacing: 0; text-transform: none;
  border: 1px solid var(--n-line-hi); border-radius: 999px; padding: 0.5em 1em; color: var(--n-soft); rotate: 0deg !important; background: transparent;
}
.press .chip:hover span { transform: none; border-color: var(--n-text); color: var(--n-text); }
.press .chip input:checked + span { background: var(--n-text); border-color: var(--n-text); color: var(--n-bg); transform: none; box-shadow: none; }
.press .chip-row.sm .chip span { font-size: 0.85rem; border-width: 1px; }
.press .upload-zone { border: 1px dashed var(--n-line-hi); background: rgba(18, 17, 15, 0.03); color: var(--n-soft); }
.press .upload-zone:hover, .press .upload-zone.drag { border-color: var(--n-orange); background: rgba(229, 61, 25, 0.05); }
.press .upload-zone .meta-mono { letter-spacing: 0.02em; text-transform: none; font-weight: 500; color: var(--n-faint); }
.press .upload-list li { background: var(--n-panel); border-color: var(--n-line); color: var(--n-soft); }
.press .tq { background: transparent; border: 1px solid var(--n-line); border-left: 2px solid var(--n-orange); }
.press .tq-growth { border-left-color: var(--n-line-hi); }
.press .tq-tag { background: var(--n-text); color: var(--n-bg); letter-spacing: 0.04em; }
.press .tq-growth .tq-tag { background: var(--n-line-hi); color: var(--n-text); }
.press .tq-f > span, .press .tq-q { color: var(--n-faint); letter-spacing: 0.02em; text-transform: none; font-size: 0.8rem; }
.press .tq-num { color: var(--n-faint); }
.press .tq-f select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23121110' stroke-width='1.6'/%3E%3C/svg%3E"); }
.press .tq-f select option, .press .field select option { background: #ffffff; color: var(--n-text); }
.press .tq-item { border-bottom-color: var(--n-line); }
.press .tq-add { border: 1px dashed var(--n-line-hi); color: var(--n-soft); }
.press .tq-add:hover { border-color: var(--n-text); color: var(--n-text); }
.press .tq-basics { border: 1px solid var(--n-line); }
.press .tq-note { color: var(--n-mute); }
.press .art-check li.warn { background: rgba(255, 196, 0, 0.08); border: 1px solid rgba(255, 196, 0, 0.45); color: var(--n-text); }
.press .art-check li.ok { background: transparent; border: 1px solid var(--n-line); color: var(--n-soft); }
.press .art-check li.ok::before { color: #6fcf8f; }
.press .form-foot { border-top: 1px solid var(--n-line); }
.press .form-status { color: var(--n-mute); }
.press .form-status.error { color: var(--n-orange-hi); }
.press .form-success { background: var(--n-bg-2); color: var(--n-text); }
.press .form-success .stamp.mega { color: var(--n-orange-hi); border-color: var(--n-orange-hi); }
.press .form-success p { color: var(--n-soft); }
.press .ticket-recap { background: var(--n-panel); border: 1px solid var(--n-line); color: var(--n-soft); }
.press .hp-field { display: none; }

/* ---------- floating chat launcher: dark glass, plain words ---------- */
.press .fpi-chat-btn {
  background: rgba(255, 255, 255, 0.86); color: var(--n-text); border: 1px solid var(--n-line-hi);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  font-family: var(--font-body); font-weight: 600; font-size: 0.9rem; letter-spacing: 0; text-transform: none;
  rotate: 0deg; box-shadow: 0 14px 40px -16px rgba(18, 17, 15, 0.18); border-radius: 999px;
}
.press .fpi-chat-btn:hover { transform: translateY(-2px); box-shadow: 0 18px 44px -16px rgba(18, 17, 15, 0.18); border-color: var(--n-text); }
.press .fpi-chat-btn.open { background: var(--n-text); color: var(--n-bg); }
.press .fpi-chat-note { font-family: var(--font-body); font-size: 0.85rem; font-weight: 500; rotate: 0deg; color: var(--n-soft); background: rgba(255, 255, 255, 0.9); border: 1px solid var(--n-line); padding: 0.4em 0.8em; border-radius: 4px; }
.press .fpi-chat-panel { background: #ffffff; color: var(--n-text); border: 1px solid var(--n-line-hi); box-shadow: 0 30px 70px -30px rgba(18, 17, 15, 0.18); rotate: 0deg; }
.press .fpi-chat-panel-head { border-bottom: 1px solid var(--n-line); }
.press .fpi-chat-panel-head span { letter-spacing: 0.02em; text-transform: none; color: var(--n-faint); }

/* Case studies */
.press .case-aside { background: var(--n-panel); border: 1px solid var(--n-line); }
.press .case-spec { border-top-color: var(--n-line-hi); }
.press .case-spec dt { letter-spacing: 0.02em; text-transform: none; font-weight: 600; font-size: 0.82rem; color: var(--n-faint); }
.press .ledger-row .num { color: var(--n-faint) !important; }

.press .chip-row .chip { background: transparent; border: 0; padding: 0; box-shadow: none; }
.press .chip input:checked + span { transition: none; }
.press .tq legend, .press .tq-num { color: var(--n-text); } .press .tq-num { color: var(--n-faint); }

/* ---------- content layer on the night surface ---------- */
.press .quote { background: var(--n-panel); border-color: var(--n-line-hi); }
.press .quote-form input, .press .quote-form textarea { background: var(--n-bg-2); border-color: var(--n-line-hi); color: var(--n-text); }
.press .quote-form input::placeholder, .press .quote-form textarea::placeholder { color: var(--n-faint); }
.press .guide-row:hover { background: rgba(18, 17, 15, 0.04); }
.press .guide-list, .press .takeaways, .press .guide-table, .press .aside-block, .press .case-minis { border-top-color: var(--n-line-hi); }
.press .guide-table th { border-bottom-color: var(--n-line-hi); }
.press .guide-prose a { text-decoration-color: var(--n-orange); }
.press .takeaways li::before { background: var(--n-orange); }
.press .quote-status { color: var(--n-orange-hi); }
.press .guide-prose h2, .press .sub-head, .press .guide-title, .press .case-mini strong, .press .guide-group-title, .press .quote h3 { color: var(--n-text); }
.press .calc-table input, .press .calc-form input, .press .calc-form select { background: var(--n-bg-2); border-color: var(--n-line-hi); color: var(--n-text); }
.press .calc-out { border-top-color: var(--n-line-hi); }
.press .calc-out b, .press .calc-line { color: var(--n-text); }

/* ======================================================================
   PRODUCTION SYSTEM (design layer, 2026-10-17)
   References: The Line Studio (one red on near white), Good is the New
   Cool (warm paper + one orange, grotesk + mono), Artefakt and Shed
   (wide grotesk display), print shop spec sheets (mono job data, crop
   marks, swatch bars). Paper surface, ink type, FPI logo red for the
   act only, one dark area on top of the home page and the footer.
   Type: Archivo Expanded 800 for display, Archivo for text, IBM Plex
   Mono for data (sizes, prices, job numbers, labels). No serif, no
   hand script, no outline type, no tilt.
   ====================================================================== */
.press {
  --paper: #f4f1ea;
  --paper-2: #ebe5da;
  --card: #ffffff;
  --ink: #121110;
  --ink-2: #3a3833;
  --ink-3: #5f5b54;
  --ink-4: #8a857c;
  --rule: rgba(18, 17, 15, 0.13);
  --rule-2: rgba(18, 17, 15, 0.26);
  --red: #e53d19;
  --red-2: #c92f0e;
  --font-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --font-body: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
  --font-serif: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --wide: 116%;
  --orange: var(--red);
  --orange-deep: var(--red-2);
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.6;
  font-feature-settings: "ss01" 0;
  text-rendering: optimizeLegibility;
}
.press::after { display: none !important; } /* no paper grain */
.press main { --orange: var(--red); }
.press ::selection { background: var(--red); color: #fff; }

/* ---------- display type: one wide grotesk voice ---------- */
.press :is(.display, .stamp-wall .stamp, .ticker-track span, .service-card h3, .industry h3, .sheet-head .job-no,
  .process-step h3, .ticket-head h3, .ticket-price, .check-cell .stat-num, .policy-block header, .rate-table td.rate,
  .footer-mega, .form-sheet .job-no, .funnel-row h3, .platform-col h3, .ticket h3, .case-aside h3, .tq legend,
  .guide-prose h2, .big-link, .quote h3, .guide-title, .sub-head, .case-mini strong, .calc-out b, .door-title,
  .g-h1, .g-h2, .g-step h3, .g-plan h3, .g-price-num, .g-done-title) {
  font-family: var(--font-display);
  font-stretch: var(--wide);
  font-weight: 800;
  letter-spacing: -0.018em;
  text-transform: uppercase;
  line-height: 0.95;
}
.press :is(.service-card h3, .industry h3, .process-step h3, .ticket h3, .funnel-row h3, .platform-col h3, .case-aside h3,
  .guide-title, .case-mini strong, .quote h3, .sub-head) {
  font-stretch: 108%;
  font-weight: 750;
  letter-spacing: -0.01em;
  line-height: 1.05;
}
/* data: mono, sentence case, never tracked caps */
.press :is(.process-step .num, .ledger-row .num, .card-index, .big-num, .funnel-row .num, .tq-num, .guide-cat, .guide-meta,
  .ticket-top, .case-kicker, .step-tag, .spec dt, .guide-table th, .case-spec dt, .calc-out span, .footer-strip, .card-meta,
  .stat-label, .door-no, .g-step-num, .meta-mono, .job-no) {
  font-family: var(--font-mono) !important;
  font-stretch: 100%;
  font-weight: 500;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.press .ledger-row .num, .press .process-step .num, .press .funnel-row .num { font-size: 0.92rem; color: var(--ink-4) !important; line-height: 1.5; }

/* kicker: a numbered job label in mono with a red square */
.press .kicker {
  font-family: var(--font-mono); font-size: 0.82rem; font-weight: 500; color: var(--ink-3);
  letter-spacing: 0; text-transform: none; display: inline-flex; align-items: center; gap: 0.55em; margin-bottom: 1rem;
}
.press .kicker::before { content: ""; width: 8px; height: 8px; border-radius: 0; background: var(--red); flex: none; }

/* ---------- utility bar + header ---------- */
.press .site-header { background: #fff; border-bottom: 1px solid var(--rule-2); -webkit-backdrop-filter: none; backdrop-filter: none; top: -34px; }
.press .util-bar { background: var(--ink); color: #f4f1ea; font-family: var(--font-mono); font-size: 0.78rem; height: 34px; }
.press .util-bar .ub-in { max-width: 1500px; margin: 0 auto; padding: 0 var(--gutter); height: 100%; display: flex; align-items: center; gap: 1.6rem; white-space: nowrap; overflow: hidden; }
.press .util-bar span { display: inline-flex; align-items: center; gap: 0.5em; color: rgba(244, 241, 234, 0.82); }
.press .util-bar span::before { content: ""; width: 6px; height: 6px; background: var(--red); }
.press .util-bar a { color: #fff; text-decoration: none; margin-left: auto; font-weight: 500; }
.press .util-bar a:hover { color: #ffb19e; }
@media (max-width: 760px) { .press .util-bar span:nth-child(n+2) { display: none; } .press .util-bar .ub-in { gap: 1rem; } }
.press .header-inner { min-height: 70px; }
.press .brand-logo { height: 32px; }
.press .nav-top { font-weight: 600; font-size: 0.96rem; color: var(--ink); border-radius: 3px; }
.press .nav-top:hover, .press .nav-item.open > .nav-top { background: var(--paper); }
.press .nav-phone { font-family: var(--font-mono); font-weight: 500; font-size: 0.92rem; color: var(--ink); }
.press .nav-phone:hover { color: var(--red); }
.press .nav-cta { background: var(--red); border: 1px solid var(--red); color: #fff; border-radius: 3px; font-weight: 700; box-shadow: none; }
.press .nav-cta:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.press .nav-menu { background: #fff; border: 1px solid var(--rule-2); border-radius: 4px; box-shadow: 0 24px 60px -24px rgba(18, 17, 15, 0.28); }
.press .nav-menu a:hover { background: var(--paper); }
.press .nav-intro { font-family: var(--font-mono); font-size: 0.78rem; color: var(--ink-4); }
.press .nav-menu .nl { font-weight: 700; }
@media (max-width: 1000px) { .press .main-nav { background: #fff; } }

/* ---------- buttons ---------- */
.press .btn { font-family: var(--font-body); font-weight: 650; font-size: 0.98rem; border-radius: 3px; border: 1.5px solid var(--ink); color: var(--ink); background: transparent; padding: 0.95em 1.4em; line-height: 1.1; }
.press .btn:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.press .btn-orange { background: var(--red); border-color: var(--red); color: #fff; }
.press .btn-orange:hover { background: var(--red-2); border-color: var(--red-2); color: #fff; }
.press .btn-ink { background: var(--ink); border-color: var(--ink); color: #fff; }
.press .btn-ink:hover { background: var(--red); border-color: var(--red); color: #fff; }

/* ---------- sections ---------- */
.press main > .section, .press main > section.section-dark, .press main > section.section-orange, .press main > section.worktable { border-top: 1px solid var(--rule); padding-top: clamp(3.5rem, 7vw, 6rem); padding-bottom: clamp(3.5rem, 7vw, 6rem); }
.press .section-head { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 1.5rem clamp(2rem, 5vw, 5rem); align-items: end; margin-bottom: clamp(2rem, 4vw, 3.2rem); }
.press .section-head h2 { font-size: clamp(2rem, 4.2vw, 3.5rem); max-width: 18ch; line-height: 0.96; }
.press .section-head .side-note { border-left: 0; padding-left: 0; font-size: 1.04rem; color: var(--ink-3); max-width: 46ch; border-top: 2px solid var(--ink); padding-top: 0.9rem; }
.press .section-head .side-note a { color: var(--ink); font-weight: 600; }
@media (max-width: 860px) { .press .section-head { grid-template-columns: 1fr; align-items: start; } }

/* ---------- inner page hero ---------- */
.press .page-hero { padding: clamp(3rem, 7vw, 5.5rem) var(--gutter) clamp(2.6rem, 5vw, 4rem); border-bottom: 1px solid var(--rule-2); background: var(--paper); }
.press .hero-print { display: none; }
.press .page-hero h1 { font-size: clamp(2.4rem, 6vw, 5.4rem); max-width: 15ch; line-height: 0.93; }
.press .page-hero .lede { font-size: clamp(1.08rem, 1.5vw, 1.25rem); color: var(--ink-2); max-width: 60ch; margin-top: 1.4rem; line-height: 1.55; }
.press .page-hero .stamp { font-family: var(--font-mono) !important; font-size: 0.82rem !important; font-weight: 500 !important; color: var(--ink-3) !important; margin-bottom: 1.3rem; }
.press .page-hero .stamp::before { border-radius: 0 !important; width: 8px !important; height: 8px !important; background: var(--red) !important; }
.press .guide-byline { font-family: var(--font-mono); font-size: 0.8rem; color: var(--ink-3); margin-top: 1.4rem; }
.press .guide-byline a { color: var(--ink); }
.press .page-hero.has-art { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.press .page-hero.has-art h1 { font-size: clamp(2.3rem, 5.2vw, 4.8rem); }
.press .hero-art { position: relative; }
@media (max-width: 860px) { .press .page-hero.has-art { grid-template-columns: 1fr; } .press .hero-art { max-width: 460px; } }

/* print frame: the art sits on a tinted board with crop marks */
.press .frame { position: relative; background: var(--paper-2); border-radius: 2px; padding: 6% 6% 4%; }
.press .frame::before, .press .frame::after { content: ""; position: absolute; width: 14px; height: 14px; border: 0 solid var(--ink); }
.press .frame::before { top: -7px; left: -7px; border-top-width: 1.5px; border-left-width: 1.5px; }
.press .frame::after { bottom: -7px; right: -7px; border-bottom-width: 1.5px; border-right-width: 1.5px; }
.press .frame .illus { width: 100%; height: auto; display: block; }
.press .frame figcaption, .press .frame .cap { font-family: var(--font-mono); font-size: 0.74rem; color: var(--ink-3); margin-top: 0.6rem; display: flex; justify-content: space-between; gap: 1rem; }

/* CMYK bar: a 4px print bar under page heroes */
.press .cmyk-strip span { height: 4px; opacity: 1; }

/* ---------- product tiles (the catalog) ---------- */
.press .tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 232px), 1fr)); gap: clamp(0.8rem, 1.6vw, 1.3rem); }
.press .tile { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--rule); border-radius: 3px; text-decoration: none; color: var(--ink); transition: border-color 0.2s, transform 0.25s var(--n-ease), box-shadow 0.25s; min-width: 0; }
.press .tile:hover { border-color: var(--ink); transform: translateY(-3px); box-shadow: 0 18px 40px -26px rgba(18, 17, 15, 0.45); }
.press .tile .t-art { background: var(--paper-2); aspect-ratio: 320 / 220; padding: 4% 6% 1%; border-bottom: 1px solid var(--rule); }
.press .tile .t-art .illus { width: 100%; height: 100%; }
.press .tile .t-body { padding: 0.9rem 1rem 1rem; display: grid; gap: 0.25rem; }
.press .tile .t-name { font-weight: 750; font-size: 1.02rem; line-height: 1.2; }
.press .tile .t-spec { font-family: var(--font-mono); font-size: 0.76rem; color: var(--ink-3); line-height: 1.45; }
.press .tile .t-go { font-size: 0.86rem; font-weight: 650; color: var(--red); margin-top: 0.35rem; }
.press .tiles.sm { grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); }
.press .tiles.sm .t-spec { display: none; }

/* ---------- link chips ---------- */
.press .press-strip { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.press .press-strip a { font-family: var(--font-body); font-size: 0.92rem; font-weight: 600; color: var(--ink); background: #fff; border: 1px solid var(--rule-2); border-radius: 3px; padding: 0.6rem 0.95rem; text-decoration: none; }
.press .press-strip a:hover { border-color: var(--ink); background: var(--ink); color: #fff; }

/* ---------- cards on the paper: white, square, ruled ---------- */
.press .industries { border: 0; gap: clamp(0.8rem, 1.6vw, 1.3rem); }
.press .industry { background: #fff !important; border: 1px solid var(--rule) !important; border-radius: 3px; padding: clamp(1.3rem, 2.4vw, 1.9rem); }
.press .industry h3 { font-size: clamp(1.15rem, 1.7vw, 1.45rem); margin: 0.6rem 0 0.6rem; color: var(--ink); }
.press .industry p { color: var(--ink-3); font-size: 0.98rem; max-width: none; }
.press .industry .big-num { color: var(--red) !important; font-size: 0.8rem; }
.press .halftone { display: none; }
@media (min-width: 901px) { .press .industry:nth-child(n+4) { border-top: 1px solid var(--rule) !important; } }
.press .services-grid { border: 0 !important; gap: clamp(0.8rem, 1.6vw, 1.3rem); }
.press .service-card { background: #fff; border: 1px solid var(--rule) !important; border-radius: 3px; }
.press .service-card:hover { background: #fff; border-color: var(--ink) !important; }
.press .service-card h3 { font-size: 1.3rem; }
.press .service-card .swatch { width: 44px !important; height: 6px !important; }

/* process: numbered rows with a mono step tag */
.press .process-list { border-top: 2px solid var(--ink) !important; }
.press .process-step { border-bottom: 1px solid var(--rule) !important; padding: 1.3rem 0; }
.press .process-step h3 { font-size: clamp(1.1rem, 1.8vw, 1.5rem); }
.press .process-step .step-tag { font-size: 0.78rem; color: var(--ink-3); background: var(--paper-2); padding: 0.3em 0.6em; border-radius: 2px; }

/* spec sheet */
.press .spec { border-top: 2px solid var(--ink) !important; padding-top: 0.8rem; }
.press .spec dt { font-size: 0.78rem; color: var(--ink-3) !important; }
.press .spec dd { color: var(--ink-2) !important; }

/* case study tickets with real screenshots */
.press .tickets { gap: clamp(0.9rem, 1.8vw, 1.4rem); }
.press .ticket { background: #fff; border: 1px solid var(--rule); border-radius: 3px; color: var(--ink); padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.press a.ticket:hover { border-color: var(--ink); background: #fff; transform: translateY(-3px); box-shadow: 0 22px 44px -28px rgba(18, 17, 15, 0.5); }
.press .ticket > :not(.shot) { margin-left: 1.3rem; margin-right: 1.3rem; }
.press .ticket .ticket-top { margin-top: 1.1rem; font-size: 0.78rem; color: var(--ink-3); border-bottom: 1px solid var(--rule); padding-bottom: 0.6rem; }
.press .ticket h3 { font-size: 1.45rem; margin-top: 0.8rem; }
.press .ticket .where { font-family: var(--font-mono); font-size: 0.78rem; color: var(--ink-3); }
.press .ticket ul { margin-top: 0.8rem; }
.press .ticket li { font-size: 0.95rem; color: var(--ink-2); }
.press .ticket li::before { background: var(--red) !important; border-radius: 0; }
.press .ticket .go { margin-bottom: 1.2rem; color: var(--red); }
.press .shot { display: block; aspect-ratio: 16 / 10; background: var(--paper-2); border-bottom: 1px solid var(--rule); overflow: hidden; position: relative; }
.press .shot img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; transition: transform 0.6s var(--n-ease); }
.press a:hover .shot img { transform: scale(1.03); }
.press .shot::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 18px; background: #e9e4da; border-bottom: 1px solid var(--rule); z-index: 1; }
.press .shot::after { content: ""; position: absolute; top: 6px; left: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--red); box-shadow: 10px 0 0 #c9c2b5, 20px 0 0 #c9c2b5; z-index: 2; }
.press .shot img { padding-top: 18px; }
.press .status.live { color: #1c7a3f; border: 1px solid currentColor; font-family: var(--font-mono); text-transform: none; letter-spacing: 0; font-weight: 500; }
.press .wired .chip { font-family: var(--font-mono); font-size: 0.74rem; color: var(--ink-3); }
.press .case-minis { border-top: 0; gap: clamp(0.9rem, 1.8vw, 1.4rem); }
.press .case-mini { background: #fff; border: 1px solid var(--rule); border-radius: 3px; padding: 0 0 1.2rem !important; overflow: hidden; }
.press .case-mini + .case-mini { border-left: 1px solid var(--rule); }
.press .case-mini > :not(.shot) { margin: 0 1.2rem; }
.press .case-mini .case-kicker { margin-top: 1rem; }
.press .case-mini strong { font-size: 1.3rem; }
.press .case-mini:hover { border-color: var(--ink); }
.press .case-mini .go { color: var(--red); }
.press .case-body .shot { margin-bottom: 1.8rem; border: 1px solid var(--rule); border-radius: 3px; }

/* client marks: a set list in wide type */
.press .stamp-wall { border-top: 2px solid var(--ink) !important; }
.press .stamp-wall .stamp { font-size: clamp(1.05rem, 1.7vw, 1.4rem) !important; color: var(--ink) !important; border-bottom: 1px solid var(--rule) !important; }

/* stat row (press check): quiet spec cells in wide numerals */
.press .press-check { border-top: 2px solid var(--ink) !important; border-bottom: 1px solid var(--rule) !important; }
.press .check-cell { border-right-color: var(--rule) !important; }
.press .check-cell .stat-num { color: var(--ink) !important; font-size: clamp(1.7rem, 3vw, 2.5rem) !important; }
.press .check-cell .stat-label { font-size: 0.78rem !important; color: var(--ink-3) !important; }

/* manifesto: plain large statement */
.press .manifesto blockquote { font-family: var(--font-body); font-weight: 600; font-style: normal; font-size: clamp(1.5rem, 2.8vw, 2.4rem); line-height: 1.18; letter-spacing: -0.015em; color: var(--ink); }
.press .manifesto blockquote strong { border-bottom: 3px solid var(--red) !important; font-weight: 600 !important; }

/* tables */
.press .guide-table { border-top: 2px solid var(--ink); background: transparent; }
.press .guide-table th { font-size: 0.74rem; color: var(--ink-3); border-bottom: 1px solid var(--rule-2); }
.press .guide-table td { border-bottom: 1px solid var(--rule); }
.press .guide-table td::before { font-family: var(--font-mono); letter-spacing: 0; text-transform: none; }
.press .calc-line { font-family: var(--font-mono); font-weight: 500; }

/* guide and listing rows */
.press .guide-list { border-top: 2px solid var(--ink); }
.press .guide-row { border-bottom: 1px solid var(--rule); padding: 1.3rem 0.4rem; grid-template-columns: 11rem minmax(0, 1fr); }
.press .guide-row:hover { background: #fff; }
.press .guide-cat { font-size: 0.76rem; color: var(--ink-3); }
.press .guide-title { font-size: clamp(1.1rem, 1.9vw, 1.5rem); }
.press .guide-desc { color: var(--ink-3); }
.press .guide-meta { font-size: 0.74rem; color: var(--ink-4); }
.press .guide-group-title { font-size: clamp(1.5rem, 2.6vw, 2.2rem) !important; margin-bottom: 1rem; }
@media (max-width: 640px) { .press .guide-row { grid-template-columns: 1fr; } }

/* articles */
.press .guide-prose h2 { font-size: clamp(1.35rem, 2.3vw, 1.9rem); margin: 2.6rem 0 0.9rem; }
.press .guide-prose p, .press .guide-prose li { color: var(--ink-2); }
.press .guide-prose a { text-decoration-color: var(--red); text-decoration-thickness: 2px; }
.press .takeaways { background: #fff; border: 1px solid var(--rule); border-top: 3px solid var(--ink); padding: 1.2rem 1.4rem 0.8rem; border-radius: 2px; }
.press .takeaways h2 { font-family: var(--font-mono) !important; font-size: 0.8rem !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 500 !important; color: var(--ink-3); }
.press .takeaways li::before { background: var(--red); }
.press .ledger { border-top: 2px solid var(--ink); }
.press .ledger-row { border-bottom: 1px solid var(--rule); }
.press .ledger-row h3 { font-weight: 750; }
.press .ledger-row p { color: var(--ink-3); }
.press .area-local { color: var(--ink-2); }
.press .aside-block { border-top: 2px solid var(--ink); }
.press .aside-block h3 { font-family: var(--font-mono); font-size: 0.78rem; font-weight: 500; color: var(--ink-3); }
.press .aside-links li { border-bottom: 1px solid var(--rule); }

/* FAQ */
.press .faq-list { border-top: 2px solid var(--ink); }
.press .faq-item { border-bottom: 1px solid var(--rule) !important; }
.press .faq-item h3 { font-weight: 750; font-size: 1.08rem; }
.press .faq-item p { color: var(--ink-3); }

/* quote form: a white job ticket with a red top rule */
.press .quote { background: #fff; border: 1px solid var(--rule-2); border-top: 4px solid var(--red); border-radius: 3px; padding: clamp(1.2rem, 2.4vw, 1.7rem); }
.press .quote h3 { font-size: 1.35rem; }
.press .quote-form label { font-family: var(--font-mono); font-size: 0.74rem; font-weight: 500; color: var(--ink-3); letter-spacing: 0; }
.press .quote-form input, .press .quote-form textarea { background: var(--paper); border: 1px solid var(--rule-2); border-radius: 3px; font-family: var(--font-body); }
.press .quote-form input:focus, .press .quote-form textarea:focus { outline: 2px solid var(--red); outline-offset: 0; background: #fff; }
.press .quote-alt { font-size: 0.82rem; }
.press .quote-status { color: var(--red-2); }

/* job ticket form (start.html) */
.press .form-sheet { background: #fff; border: 1px solid var(--rule-2); border-top: 4px solid var(--red); border-radius: 3px; }
.press .field label { color: var(--ink-2) !important; }
.press .field input, .press .field textarea, .press .field select, .press .tq-f input, .press .tq-f select { color: var(--ink); border-bottom-color: var(--rule-2); }
.press .field textarea { background: var(--paper) !important; border-color: var(--rule-2) !important; }
.press .chip span { font-family: var(--font-body) !important; font-stretch: 100% !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; background: #fff !important; }
.press .chip input:checked + span { background: var(--ink) !important; color: #fff !important; }
.press .upload-zone { background: var(--paper) !important; }
.press .tq { background: var(--paper) !important; }
.press .tq-tag { background: var(--ink) !important; color: #fff !important; }
.press .tq-f select option, .press .field select option { background: #fff; color: var(--ink); }

/* ---------- final call: the one red band ---------- */
.press .cta-final { background: var(--red) !important; color: #fff; border-top: 0 !important; padding: clamp(4rem, 9vw, 7rem) var(--gutter); }
.press .cta-final .fingerprint-bg { opacity: 0.12 !important; color: #fff; }
.press .cta-final .fingerprint-bg g { color: #fff !important; }
.press .cta-final h2 { font-size: clamp(2.4rem, 7vw, 6rem); color: #fff; }
.press .cta-final .kicker { color: rgba(255, 255, 255, 0.86); }
.press .cta-final .kicker::before { background: #fff; }
.press .cta-final .btn { border-color: #fff; color: #fff; }
.press .cta-final .btn:hover { background: #fff; color: var(--red); }
.press .cta-final .btn-orange { background: var(--ink); border-color: var(--ink); color: #fff; }
.press .cta-final .btn-orange:hover { background: #fff; border-color: #fff; color: var(--ink); }
.press .cta-final .btn-ink { background: #fff; border-color: #fff; color: var(--ink); }
.press .cta-final .btn-ink:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.press .cta-final .contact-line { color: rgba(255, 255, 255, 0.9); font-family: var(--font-mono); font-size: 0.85rem; }
.press .cta-final .contact-line a { color: #fff; }

/* ---------- footer: ink ---------- */
.press .site-footer { background: var(--ink); color: #f4f1ea; border-top: 0; }
.press .footer-mega { color: rgba(244, 241, 234, 0.08) !important; -webkit-text-stroke: 0 !important; font-size: clamp(3rem, 12.5vw, 13rem) !important; letter-spacing: -0.04em; line-height: 0.85; opacity: 1; }
.press .footer-mega em { color: rgba(229, 61, 25, 0.5) !important; -webkit-text-stroke: 0 !important; font-style: normal; }
.press .footer-card, .press .footer-card address, .press .footer-card address a { color: #f4f1ea; }
.press .footer-card .card-brand img { content: url("assets/home/fpi-logo-dark.png"); }
.press .footer-links .stamp { color: rgba(244, 241, 234, 0.5) !important; font-family: var(--font-mono) !important; font-size: 0.78rem !important; }
.press .footer-links a { color: #f4f1ea; }
.press .footer-links a:hover { color: #ffb19e; }
.press .footer-links li { border-color: rgba(244, 241, 234, 0.12) !important; }
.press .footer-strip { border-top: 1px solid rgba(244, 241, 234, 0.14); color: rgba(244, 241, 234, 0.55); }
.press .footer-card .card-meta { color: rgba(244, 241, 234, 0.45); }
.press .site-footer .barcode { filter: invert(1); opacity: 0.25; }

/* chat launcher on paper */
.press .fpi-chat-btn { background: var(--ink); color: #fff; border-color: var(--ink); box-shadow: 0 14px 34px -14px rgba(18, 17, 15, 0.55); }
.press .fpi-chat-btn:hover { border-color: var(--red); }
.press .fpi-chat-btn.open { background: var(--red); border-color: var(--red); color: #fff; }
.press .fpi-chat-panel { background: #fff; color: var(--ink); }

/* ---------- home: dark stage, print doors ---------- */
.press.home-stage .stage { background: radial-gradient(70vw 60vh at 0% 100%, rgba(229, 61, 25, 0.16), transparent 70%), #121110; }
.press.home-stage .stage-title { font-size: clamp(2.6rem, 7vw, 6.6rem); color: #f4f1ea; line-height: 0.9; }
.press.home-stage .st-loc { color: var(--red); }
.press.home-stage .stage-lede { font-family: var(--font-mono); font-size: 0.9rem; color: rgba(244, 241, 234, 0.7); }
.press.home-stage :is(.door-light, .door-leaf, .door-floor, .door-sheen) { display: none !important; }
.press.home-stage .door { transform: none !important; border-radius: 4px; overflow: hidden; background: #f4f1ea; color: var(--ink); border: 1px solid rgba(244, 241, 234, 0.2); transition: transform 0.3s var(--n-ease), box-shadow 0.3s; }
.press.home-stage .door:hover { transform: translateY(-4px) !important; box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.8); }
.press.home-stage .door-start { background: var(--red); color: #fff; }
.press.home-stage .door-growth { background: #fff; }
.press.home-stage .door-body { padding: 1.2rem 1.3rem 1.3rem; }
.press.home-stage .door-title { font-size: clamp(1.6rem, 2.8vw, 2.6rem); color: inherit; }
.press.home-stage .door-sub { color: inherit; opacity: 0.78; font-family: var(--font-mono); font-size: 0.82rem; }
.press.home-stage .door-no { color: inherit; opacity: 0.7; }
.press.home-stage .door-mark { color: inherit; }
.press.home-stage .door-art { display: block; background: rgba(18, 17, 15, 0.06); border-radius: 2px; margin-bottom: 1rem; aspect-ratio: 320 / 200; overflow: hidden; }
.press.home-stage .door-start .door-art { background: rgba(255, 255, 255, 0.16); }
.press.home-stage .door-art .illus { width: 100%; height: 100%; }
.press.home-stage .stage-foot { font-family: var(--font-mono); font-size: 0.8rem; color: rgba(244, 241, 234, 0.6); }
.press.home-stage .stage-foot a { color: #f4f1ea; }
.press.home-stage:not(.stage-past):not(.nav-open) .site-header { background: rgba(18, 17, 15, 0.72); border-bottom-color: rgba(244, 241, 234, 0.14); }
.press.home-stage:not(.stage-past):not(.nav-open) .nav-top:hover, .press.home-stage:not(.stage-past):not(.nav-open) .nav-item.open > .nav-top { background: rgba(244, 241, 234, 0.1); }
.press.home-stage .util-bar { display: none; }
.press.home-stage .site-header { top: 0; }
.press.home-stage .intro { background: var(--paper); }
.press.home-stage .intro-title { font-size: clamp(2.2rem, 5vw, 4.4rem); }
.press.home-stage .stage-crop { opacity: 0.4; }

/* ---------- growth page on paper ---------- */
.press.page-growth { background: var(--paper); }
.press .g-h1 { font-size: clamp(2.6rem, 6.6vw, 6rem) !important; }
.press .g-h2 { font-size: clamp(2rem, 4.2vw, 3.6rem) !important; }
.press .g-quote blockquote { font-family: var(--font-body); font-weight: 600; letter-spacing: -0.015em; }

/* motion */
@media (prefers-reduced-motion: reduce) { .press .tile, .press .ticket, .press .shot img { transition: none; } }

/* ---------- pass 2 fixes ---------- */
.press.home-stage .stage-title { text-shadow: none !important; }
.press.home-stage .door-body { padding: 1.1rem 1.2rem 1.3rem !important; grid-template-columns: 1fr auto; }
.press.home-stage .door-art { grid-column: 1 / -1; }
.press.home-stage .door-no { grid-column: 2; grid-row: 2; justify-self: end; font-size: 0.78rem; }
.press.home-stage .door-mark { grid-row: 2; grid-column: 1; }
.press.home-stage .door-title { grid-column: 1 / -1; font-size: clamp(1.4rem, 2.15vw, 2.15rem) !important; white-space: nowrap; }
.press.home-stage .door-sub { grid-column: 1 / -1; }
@media (max-width: 760px) { .press.home-stage .door-art { display: none; } .press.home-stage .door-title { font-size: clamp(1.6rem, 7vw, 2.2rem) !important; } }
.press #catalog-home .tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) { .press #catalog-home .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.press .footer-mega { font-size: clamp(2.2rem, 7.4vw, 8.4rem) !important; white-space: nowrap; overflow: hidden; }
.press .footer-links nav:first-child ul { columns: 2; column-gap: 2rem; }
.press .footer-links nav:first-child { min-width: 320px; }
.press .footer-links nav:first-child li { break-inside: avoid; }
@media (max-width: 600px) { .press .footer-links nav:first-child { min-width: 0; flex-basis: 100%; } }
.press .frame figcaption { flex-wrap: wrap; }
.press .frame figcaption span:last-child { text-align: right; margin-left: auto; }
.press .frame figcaption span { min-width: 0; overflow-wrap: anywhere; }
.press .big-num { text-transform: none !important; }
.press .footer-mega, .press .footer-mega em { text-shadow: none !important; }
.press .footer-links .stamp { transform: none !important; rotate: 0deg !important; }

/* growth: the hero stays an ink stage like the home page; the rest sits on paper */
.press .g-hero { --n-bg: #121110; --n-text: #f4f1ea; --n-soft: rgba(244, 241, 234, 0.82); --n-mute: rgba(244, 241, 234, 0.66); --n-faint: rgba(244, 241, 234, 0.45); --n-line: rgba(244, 241, 234, 0.14); --n-line-hi: rgba(244, 241, 234, 0.28); background: #121110; color: #f4f1ea; }
.press .g-hero .g-h1 { color: #f4f1ea; }
.press .g-hero .btn:not(.btn-orange) { border-color: rgba(244, 241, 234, 0.4); color: #f4f1ea; }
.press .g-hero .btn:not(.btn-orange):hover { background: #f4f1ea; color: #121110; }
.press .g-lg-mk { background: rgba(244, 241, 234, 0.7); }
.press .g-user { background: var(--paper); }
.press .g-track { color: var(--ink-4) !important; }
.press .g-track span::after { color: var(--rule-2) !important; }
.press .g-bar, .press .n-bar { background: var(--rule) !important; }
.press .n-bar-before { background: var(--ink-4) !important; }
.press .g-form input::placeholder { color: var(--ink-4); }
@media (max-width: 560px) { .press .util-bar span { display: none !important; } .press .util-bar a { margin: 0 auto; } }
@media (max-width: 640px) {
  .press .spec-table tr { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 0.8rem; padding: 0.7rem 0; border-bottom: 1px solid var(--rule); }
  .press .spec-table td { display: block; padding: 0; }
  .press .spec-table td::before { content: none; }
}
@media (max-width: 1100px) { .press .util-bar span:nth-child(3) { display: none; } }
@media (max-width: 860px) { .press .util-bar span:nth-child(2) { display: none; } }
