/* Copyright © 2026 Northstar Growth Partners LLC. All rights reserved. */
/* THE PROOF ROOM, /see: the production states that sit on top of the approved
 * composition (pr.css). The live count, the tier label, the intake's
 * honeypot and no script line, and the full state.
 *
 * THE TIER. The page is built with the first tier's label and prices from
 * seed/offer.json; _work.js swaps in the CURRENT tier from GET /api/offer
 * (the Founding 10, then the Second 10). The count of places left shows only
 * when that call answers with a known count.
 *
 * FULL. When every tier is sold, or the offer is switched off, _work.js sets
 * html.pr-full: every price, the count and the intake form are hidden and the
 * full note shows instead. An unknown count changes nothing. */

.tier-label { text-transform: uppercase; }
.slots { color: var(--peach); font-size: 13px; font-weight: 700; }
.slots[data-state="off"] { display: none; }
.offer .slots { display: block; margin-top: 10px; }
.offer .slots[data-state="off"] { display: none; }

.pr-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.pr-noscript { margin: 12px 0 0; color: var(--muted); font-size: 13px; }

.pr-full-note { display: none; }
html.pr-full .pr-full-note { display: block; }
html.pr-full [data-price], html.pr-full [data-tier-label], html.pr-full [data-slots],
html.pr-full .offer-line .p, html.pr-full .offer-line .n, html.pr-full .offer .l, html.pr-full .offer .m, html.pr-full .offer .n,
html.pr-full #if-so, html.pr-full .pr-form, html.pr-full .pr-done { display: none !important; }
.offer-line .pr-full-note { flex-basis: 100%; margin: 0; color: #fff; font-size: 16px; font-weight: 600; line-height: 1.45; }
.offer .pr-full-note { margin-top: 10px; color: #fff; font-size: 17px; font-weight: 600; line-height: 1.45; }
.pr-full-note a { color: #fff; }
.pr-full-intake { padding: 24px; color: var(--ink); background: var(--white); border: 1px solid var(--hairline); border-top: 3px solid var(--orange); border-radius: 4px; font-size: 17px; font-weight: 600; line-height: 1.5; }
.pr-full-intake a { color: var(--blue); }

/* The intake's result states (DIRECTIVE 11.7, _work.js). Failure sits inside
 * the form, so every value stays where it was typed; duplicate and capacity
 * replace the form, like the accepted state. Nothing here animates. */
.pr-result { margin-top: 16px; padding: 16px 18px; border: 1px solid #E3B7A3; border-left: 4px solid #B0431F; border-radius: 4px; background: #FFF6F1; color: var(--ink); }
.pr-result[hidden] { display: none; }
.pr-result h3 { margin: 0 0 8px; color: #8F3414; font-size: 20px; }
.pr-result p { margin: 0 0 10px; }
.pr-result-act { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 12px 0 0 !important; }
.pr-result-act .button { width: auto; margin: 0; min-height: 44px; }
.pr-mail { color: var(--blue); font-weight: 700; word-break: break-all; }
.pr-other h3 { color: var(--blue); }
