/* Patrick.ai storefront — the shared stylesheet.

   BRUTALIST (owner, 2026-10: "much more brutalistic, simple, and modern —
   not rounded like it is today"). Square corners everywhere, hard 2px rules
   instead of shadows and blur, flat black and white, and ONE colour — a
   signal yellow — for the one thing to press. Type does the work: a heavy
   grotesk set large and tight for headlines, a monospace for numbers,
   labels and the nav. Every page in this workspace inherits it; the
   landing page adds static/css/landing.css on top.

   The token NAMES (--sky-*, --star, --gold, ...) are kept from the earlier
   night-sky design so nothing that reads them needs to change; their
   values are now black, white and greys. `--r*` are 0: a radius anywhere
   in this workspace is a bug.

   No web fonts and nothing fetched from anywhere else (businesses/AGENTS.md,
   "The stack"): both faces are system stacks. */

:root {
  /* the dark */
  --sky-0: #000;
  --sky-1: #000;
  --sky-2: #0a0a0a;
  --navy: #000;
  --sky-3: #1a1a1a;
  --sky-4: #000;
  /* the light */
  --star: #fff;
  --starlight: #f2f2f2;
  --mist: #bdbdbd;            /* body copy on black, 11:1 */
  --haze: #8a8a8a;
  --periwinkle: #fff;
  --gold: #ffe600;            /* the one colour: what you press */
  --gold-deep: #000;
  --mint: #fff;               /* an effect that went UP */
  --rose: #ff3b30;            /* a correction */
  /* the paper */
  --paper: #fff;
  --paper-2: #f0f0f0;
  --card: #fff;
  --ink: #000;
  --muted: #555;
  --line: #000;
  /* shape: none */
  --r-sm: 0;
  --r: 0;
  --r-lg: 0;
  --rule: 2px solid var(--ink);
  --rule-light: 2px solid var(--star);
  --shadow: none;
  --shadow-lift: 6px 6px 0 var(--ink);
  --spring: cubic-bezier(.2, .8, .2, 1);
  --ease: cubic-bezier(.2, .8, .2, 1);
  --font-display: "Helvetica Neue", Helvetica, "Inter", "Segoe UI", Arial,
                  system-ui, sans-serif;
  --font-body: "Helvetica Neue", Helvetica, "Inter", "Segoe UI", Arial,
               system-ui, sans-serif;
  --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas,
               "Liberation Mono", monospace;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { font-family: var(--font-body); color: var(--ink); background: var(--paper);
       line-height: 1.55; -webkit-font-smoothing: antialiased;
       text-rendering: optimizeLegibility; overflow-x: hidden; }
img, svg, canvas { display: block; max-width: 100%; }
a { color: inherit; text-decoration: underline; text-decoration-thickness: 2px;
    text-underline-offset: 3px; }
a:hover { background: var(--ink); color: var(--star); text-decoration: none; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 900;
                 letter-spacing: -.03em; line-height: 1; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0;
           margin: -1px; overflow: hidden; clip: rect(0 0 0 0);
           white-space: nowrap; border: 0; }

/* ── the nav: a solid black bar with a hard rule ────────────────────── */
.nav { position: sticky; top: 0; z-index: 50; background: #000;
       border-bottom: var(--rule-light); }
.nav-inner { max-width: 1240px; margin: 0 auto; padding: 0 20px; height: 60px;
             display: flex; align-items: stretch; justify-content: space-between;
             gap: 16px; }
.nav-brand { display: inline-flex; align-items: center; gap: 10px;
             font-family: var(--font-display); font-weight: 900;
             font-size: 1.15rem; color: var(--star); letter-spacing: -.02em;
             text-decoration: none; padding-right: 18px;
             border-right: var(--rule-light); }
.nav-brand:hover { background: transparent; color: var(--star); }
.nav-mark { width: 28px; height: 28px; flex: none; }
.nav-mark .twinkle { animation: nav-blink 2.4s steps(1) infinite; }
.nav-mark .twinkle:nth-of-type(2) { animation-delay: .4s; }
.nav-mark .twinkle:nth-of-type(3) { animation-delay: .8s; }
.nav-mark .twinkle:nth-of-type(4) { animation-delay: 1.2s; }
.nav-mark .twinkle:nth-of-type(5) { animation-delay: 1.6s; }
@keyframes nav-blink { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
.nav-links { display: flex; align-items: stretch; }
/* `:not(.btn)` is load-bearing: `.nav-links a` outranks `.btn` on
   specificity, and without it the nav's button takes the link colour. */
.nav-links a:not(.btn) { display: inline-flex; align-items: center;
                         color: var(--star); font-family: var(--font-mono);
                         font-size: .8rem; font-weight: 500;
                         text-transform: uppercase; letter-spacing: .08em;
                         padding: 0 16px; text-decoration: none;
                         border-left: var(--rule-light); }
.nav-links a:not(.btn):hover { background: var(--star); color: #000; }
.nav-links .btn { margin: 0; border-left: var(--rule-light); }
.nav-links a { white-space: nowrap; }
@media (max-width: 760px) {
  .nav-links a.nav-optional { display: none; }
}
@media (max-width: 420px) {
  /* Brand and Subscribe only: the record is one tap away in the page. */
  .nav-links a.nav-record { display: none; }
  .nav-brand { border-right: 0; }
}

/* ── buttons: rectangles, inverted on hover ─────────────────────────── */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px;
       background: var(--gold); color: #000; font-family: var(--font-mono);
       font-weight: 700; font-size: .9rem; text-transform: uppercase;
       letter-spacing: .06em; padding: 15px 26px; border: var(--rule);
       border-radius: 0; cursor: pointer; text-decoration: none;
       transition: background .12s, color .12s, transform .12s, box-shadow .12s; }
.btn:hover { background: #000; color: var(--gold); text-decoration: none;
             transform: translate(-3px, -3px); box-shadow: 3px 3px 0 var(--gold); }
.btn:active { transform: none; box-shadow: none; }
.btn-sm { padding: 0 18px; font-size: .78rem; }
.nav .btn { border: 0; }
.nav .btn:hover { transform: none; box-shadow: none; background: var(--star);
                  color: #000; }
.btn-ghost, .btn-secondary { background: transparent; color: inherit;
                             border: 2px solid currentColor; }
.btn-ghost:hover, .btn-secondary:hover { background: var(--ink); color: var(--star);
                                         box-shadow: 3px 3px 0 currentColor; }

/* ── the shared page furniture (product, pricing) ───────────────────── */
.section { max-width: 880px; margin: 0 auto; padding: 72px 20px; }
.section h1 { font-size: clamp(2.4rem, 6vw, 4rem); margin-bottom: 18px; }
.section h2 { margin: 44px 0 14px; font-size: 1.7rem; }
.panel { border: var(--rule); padding: 24px; margin: 18px 0; background: var(--card); }
/* BLOCK, not inline: an <input> is inline by default, so a panel with two
   fields laid them out side by side. */
.input { display: block; width: 100%; max-width: 26rem; padding: 13px 14px;
         border: var(--rule); border-radius: 0; font: inherit;
         margin: 0 0 10px 0; background: #fff; }
.input:focus { outline: 3px solid var(--gold); outline-offset: 0; }
.muted { color: var(--muted); font-size: .92rem; }
.lede { font-size: 1.2rem; color: #222; max-width: 46rem; }
code { font-family: var(--font-mono); background: var(--paper-2);
       padding: .12em .4em; font-size: .9em; }
.hero { max-width: 880px; margin: 0 auto; padding: 96px 20px 48px; }
.hero.small { padding: 72px 20px 8px; }
.hero h1 { font-size: clamp(2.6rem, 7vw, 4.6rem); margin-bottom: 18px; }
.badge { display: inline-block; font-family: var(--font-mono); font-weight: 700;
         letter-spacing: .1em; text-transform: uppercase; font-size: .76rem;
         margin-bottom: 18px; padding: 4px 8px; border: var(--rule); }
.subhead { font-size: 1.2rem; color: var(--muted); margin-bottom: 28px; }
.note { color: var(--muted); font-size: .9rem; margin-top: 12px; }
.section .features { max-width: none; margin: 0; padding: 0; }
.features ul { list-style: none; border-top: var(--rule); counter-reset: f; }
.features li { padding: 14px 0 14px 52px; position: relative;
               border-bottom: var(--rule); counter-increment: f; }
.features li::before { content: counter(f, decimal-leading-zero);
                       position: absolute; left: 0; top: 14px;
                       font-family: var(--font-mono); font-weight: 700; }
.cta { padding: 24px 20px 80px; text-align: left; max-width: 880px; margin: 0 auto; }

.plans { max-width: 1040px; margin: 0 auto; padding: 32px 20px 72px; }
.plans h2 { margin-bottom: 16px; }
.plan-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
             border-top: var(--rule); border-left: var(--rule); }
.plan { border-right: var(--rule); border-bottom: var(--rule); padding: 28px;
        background: var(--card); }
.plan.wide { max-width: 560px; margin: 0 auto; border: var(--rule); }
.plan .price { font-family: var(--font-mono); font-size: 2.4rem;
               font-weight: 700; margin: 10px 0; letter-spacing: -.04em; }
.plan .price span { font-size: 1rem; color: var(--muted); font-weight: 500; }
.plan ul { list-style: none; margin: 14px 0 22px; color: var(--muted);
           font-size: .95rem; }
.plan li { padding: 6px 0; border-bottom: 1px solid #ddd; }

/* ── the footer: black, ruled ───────────────────────────────────────── */
.footer { background: #000; color: var(--mist); border-top: var(--rule-light); }
.footer-inner { max-width: 1240px; margin: 0 auto; padding: 40px 20px 48px;
                display: flex; flex-wrap: wrap; gap: 18px 32px;
                align-items: center; justify-content: space-between;
                font-size: .9rem; }
.footer a { color: var(--star); }
.footer a:hover { background: var(--star); color: #000; }
.footer-brand { display: inline-flex; align-items: center; gap: 10px;
                font-family: var(--font-display); font-weight: 900;
                color: var(--star); font-size: 1.05rem; }
.footer-links { display: flex; flex-wrap: wrap; gap: 6px 18px;
                font-family: var(--font-mono); font-size: .8rem;
                text-transform: uppercase; letter-spacing: .08em; }
.footer-fine { flex-basis: 100%; color: var(--haze); font-size: .84rem;
               padding-top: 18px; border-top: 1px solid #333; }

@media (max-width: 640px) {
  .section { padding: 52px 16px; }
  .nav-inner, .footer-inner { padding-left: 16px; padding-right: 16px; }
}
