/*
IC SHIP PASS — generated by icpass.py from the map. edit the CODE; rerun to refresh this.

══════════════════════════════════════════════════════════════════════
 PAGE 0 — TABLE OF CONTENTS  (goldfish pointers)
 jump by SEARCHING the anchor phrase — line numbers drift, names don't.
══════════════════════════════════════════════════════════════════════
  the quiet asks — physical buttons, stacked ... search: "the quiet asks"
  the drumroll + the loud one .................. search: "the drumroll + the loud"
══════════════════════════════════════════════════════════════════════

 FOR AI
 ───────
   **OWNS** — The visual presentation and interaction states of the FUPM card: the trigger link
   **in taglines (`.fupm-trigger`), the stacked button options (`.fupm-go` and `.fupm-ways`), the
   **hero call-to-action (`.fupm-hire`), and the back gesture (`.fupm-back`). All class names
   **here are load-bearing; the HTML structure depends on them.
   
   **TOUCH HERE** —
   - Change trigger link color on hover → `.fupm-trigger:hover` L11
   - Change button stack gap or width → `.fupm-ways` L27
   - Change option button appearance (padding, shadow, border) → `.fupm-go` L29–36
   - Change option button hover lift distance → `.fupm-go:hover` L37
   - Change option text size or weight → `.fupm-way-name` L39 or `.fupm-way-sub` L40
   - Change accent color in option text → `.fupm-way-sub em` L41
   - Change hero button color or shadow → `.fupm-hire` L51–56
   - Change hero button hover lift distance → `.fupm-hire:hover` L58
   - Change hero text size or weight → `.fupm-hire-big` L60 or `.fupm-hire-fine` L61
   - Change back button color on hover → `.fupm-back:hover` L69
   
   **TRAPS** —
   - `.fupm-trigger`, `.fupm-go`, `.fupm-hire`, and `.fupm-back` are referenced in HTML; renaming
   - breaks the card.
   - `.fupm-soon` (L44–45) disables hover state for unimplemented "book me" buttons — do not
   - remove or the disabled state will vanish.
   - Shadow values use `var(--btn-sh)` (L34, 37, 38, 45) and `var(--accent-deep)` (L55, 58, 59) —
   - these are defined elsewhere; changing them here only affects this card.
   - The `min(92%, 460px)` width constraint (L27, 53) appears twice; if you want different widths
   - for buttons vs. hero, you must edit both.
   
   **DO NOT** —
   - Rename any class starting with `.fupm-` without updating the HTML template.
   - Add opacity to text (L2 comment: "no opacity on text — fine print is SIZE, not ghost").
   - Change the layout of `.fupm-body` (L14–19) without checking the parent card container.
   - Move or rename CSS variables like `--accent`, `--text-dim`, `--space-lg` — they are defined
   - in a global theme file.
   
   
   
   ---

END IC SHIP PASS
*/

/* fupm.css — the FUPM card. "f#$% you, pay me." the quiet asks + the loud one.
   physical objects (you can pick them up). accent = the collar red.
   no opacity on text — fine print is SIZE, not ghost. build phase: folio at ship. */

/* the FUPM in the blank-desk tagline → clickable. dim like its siblings, lifts to red. */
.fupm-trigger {
  background: none; border: none; padding: 0; cursor: pointer;
  font: inherit; color: var(--text-dim); letter-spacing: inherit;
  transition: color .12s;
}
.fupm-trigger:hover { color: var(--accent); }

/* the body — centered column, breathes, scrolls if it must */
.fupm .fupm-body {
  flex: 1; min-height: 0; overflow-y: auto;
  display: flex; flex-direction: column; align-items: center;
  gap: var(--space-lg); padding: var(--space-xl) var(--space-lg);
  text-align: center;
}

.fupm-open {
  font-size: var(--fs-title); color: var(--text-dim);
  font-style: italic; letter-spacing: 1px;
}

/* ── the quiet asks — physical buttons, stacked ── */
.fupm-ways { display: flex; flex-direction: column; gap: var(--space-md); width: min(92%, 460px); }

.fupm-go {
  display: flex; flex-direction: column; gap: var(--space-xs);
  padding: var(--space-md); text-align: left;
  background: var(--surface-2); color: var(--text);
  border: 1px solid var(--line); border-radius: var(--r-md);
  box-shadow: 0 3px 0 var(--btn-sh);
  text-decoration: none; transition: transform .1s, box-shadow .1s, border-color .1s;
}
.fupm-go:hover  { transform: translateY(-1px); box-shadow: 0 4px 0 var(--btn-sh); border-color: var(--accent); }
.fupm-go:active { transform: translateY(2px);  box-shadow: 0 1px 0 var(--btn-sh); }
.fupm-way-name  { font-size: var(--fs-body); font-weight: 700; color: var(--text); }
.fupm-way-sub   { font-size: var(--fs-chrome); color: var(--text-dim); line-height: 1.3; }
.fupm-way-sub em { color: var(--accent); font-style: normal; }

/* book me — not wired yet. reads as present-but-resting, not broken. */
.fupm-soon { cursor: default; }
.fupm-soon:hover { transform: none; box-shadow: 0 3px 0 var(--btn-sh); border-color: var(--line); }

/* ── the drumroll + the loud one ── */
.fupm-drumroll { font-size: var(--fs-label); color: var(--text-dim); font-style: italic; }

/* the hero — the real ask. red, raised, loud. fine print is small, not faded. */
.fupm-hire {
  display: flex; flex-direction: column; align-items: center; gap: var(--space-xs);
  width: min(92%, 460px); padding: var(--space-lg) var(--space-md);
  background: var(--accent); color: var(--bg);
  border-radius: var(--r-lg); box-shadow: 0 4px 0 var(--accent-deep);
  text-decoration: none; transition: transform .1s, box-shadow .1s;
}
.fupm-hire:hover  { transform: translateY(-1px); box-shadow: 0 5px 0 var(--accent-deep); }
.fupm-hire:active { transform: translateY(3px);  box-shadow: 0 1px 0 var(--accent-deep); }
.fupm-hire-big  { font-size: 40px; font-weight: 900; letter-spacing: 2px; line-height: 1; }
.fupm-hire-fine { font-size: var(--fs-chrome); font-weight: 600; }

/* back to the desk — a gesture, not an × (design-rules: zero × buttons on cards) */
.fupm-back {
  background: none; border: none; cursor: pointer; font: inherit;
  font-size: var(--fs-label); color: var(--text-dim); padding: var(--space-sm);
  transition: color .12s;
}
.fupm-back:hover { color: var(--text); }
