/* Launch-interest surfaces share the current forest/sage tokens and controls.
   All selectors are scoped. No app, beta admission or global theme changes. */
.pi-interest, .pi-link { color: var(--app-text); line-height: 1.6; }
.pi-interest { max-width: 760px; margin-inline: auto; padding: 2rem min(1.5rem, 6vw); }
.pi-interest h1, .pi-interest h2 { font-family: 'Space Grotesk', sans-serif; font-size: 1.75rem; line-height: 1.25; margin-bottom: 1rem; overflow-wrap: anywhere; }
.pi-interest h1 { font-size: 1.5rem; }
.pi-interest p, .pi-link p { margin-block: 1rem; }
.pi-form { width: 100%; max-width: 36rem; margin-top: 1.5rem; }
.pi-interest [hidden], .pi-link [hidden] { display: none !important; }
.pi-interest label, .pi-link label { text-transform: none; letter-spacing: normal; font-size: 1rem; color: var(--app-text); }
.pi-field-label { display: block; margin-block: 0.5rem; }
.pi-interest .pi-input { width: 100%; min-width: 0; min-height: 44px; box-sizing: border-box; padding: 0.75rem min(1rem, 4vw); border: 1px solid var(--control-border); border-radius: 10px; font: inherit; color: var(--app-text); background: var(--control-bg); }
.pi-choice { display: flex; align-items: flex-start; gap: 0.75rem; min-height: 44px; padding-block: 0.5rem; margin-block: 0.5rem; cursor: pointer; }
/* Match box sizing to the label font while the full label row stays tappable. */
.pi-interest .pi-choice input[type="checkbox"] { position: static; opacity: 1; flex: 0 0 auto; font: inherit; width: 1.5em; height: 1.5em; margin: 0.05em 0 0; accent-color: var(--accent); }
.pi-interest .pi-button, .pi-link .pi-button { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-width: 44px; min-height: 44px; max-width: 100%; box-sizing: border-box; padding: 0.75rem min(1.25rem, 5vw); margin: 0; border: 1px solid var(--accent); border-radius: 14px; background: var(--accent); color: var(--color-accent-text); font-family: 'DM Sans', sans-serif; font-size: 1rem; font-weight: 600; line-height: 1.4; letter-spacing: normal; white-space: normal; text-align: center; cursor: pointer; }
.pi-interest .pi-button:hover, .pi-link .pi-button:hover { background: var(--accent-hover); color: var(--color-accent-text); transform: none; }
.pi-interest .pi-button:disabled, .pi-link .pi-button:disabled { background: var(--control-disabled-bg); color: var(--app-text-muted); border-color: var(--control-border); cursor: not-allowed; transform: none; }
.pi-interest :is(input, button, a):focus-visible, .pi-link :is(button, a):focus-visible { outline: 3px solid var(--app-focus-ring); outline-offset: 3px; }
.pi-interest a, .pi-link a { color: var(--accent); text-decoration: underline; }
.pi-interest .pi-notice, .pi-link .pi-notice { font-size: 1rem; color: var(--app-text-muted); }
.pi-interest .pi-identity { overflow-wrap: anywhere; }
.pi-form .pi-email-details { margin-block: 0.5rem; }
.pi-form .pi-email-details > summary { min-height: 44px; box-sizing: border-box; padding-block: 0.5rem; color: var(--app-text); font-weight: 600; cursor: pointer; }
.pi-form .pi-email-details > summary:focus-visible { outline: 3px solid var(--app-focus-ring); outline-offset: 3px; }
.pi-message { margin-block: 1rem; }
.pi-message[data-state="error"] { color: var(--danger-text); }
.pi-message[data-state="success"] { color: var(--success-text); }
.pi-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block: 1rem; }
.pi-context { padding: 1rem min(1.25rem, 4vw); border: 1px solid var(--app-border); border-radius: 14px; background: var(--app-surface-raised); margin-block: 1rem; }
.pi-context ul { padding-inline-start: 1.25em; }
.pi-context li { margin-block: 0.5rem; }
.pi-notice-text { white-space: pre-wrap; overflow-wrap: break-word; font: inherit; margin-block: 1rem; }
/* Keep nested horizontal insets from consuming enlarged private-page text. */
.sl-main:has(> .pi-link) { padding-inline: min(1.5rem, 4vw); }
.pi-link { min-width: 0; padding-inline: min(2rem, 4vw); }
@media (max-width: 768px) {
  .sl-main:has(> .pi-link) { padding-inline: min(1rem, 4vw); }
  .pi-link { padding-inline: min(1.25rem, 4vw); }
}
@media (forced-colors: active) {
  .pi-interest .pi-button, .pi-link .pi-button { border: 1px solid ButtonText; }
  .pi-interest .pi-button:disabled, .pi-link .pi-button:disabled { color: GrayText; }
  .pi-interest :is(input, button, a):focus-visible, .pi-link :is(button, a):focus-visible { outline-color: Highlight; }
  .pi-form .pi-email-details > summary:focus-visible { outline-color: Highlight; }
}
