/* Modest, additive refinements layered on top of the Squarespace export.
   Adds rounded corners, motion, hover polish, and the Bentham wordmark
   typeface site-wide. No layout or color changes beyond typography. */

@import url('https://fonts.googleapis.com/css2?family=Bentham&family=Bentham:ital@0;1&display=swap');

:root {
  --refine-font: 'Bentham', Georgia, 'Times New Roman', Times, serif;
  --refine-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --refine-radius-sm: 6px;
  --refine-radius-md: 10px;
  --refine-radius-lg: 16px;
  --refine-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --refine-duration: 220ms;
  --refine-shadow-soft: 0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.05);
  --refine-shadow-hover: 0 2px 6px rgba(0, 0, 0, 0.06), 0 12px 28px rgba(0, 0, 0, 0.08);
}

/* Bentham everywhere — wordmark, headings, body, nav, buttons, captions.
   Code blocks remain monospace for legibility. */
html,
body,
body :is(h1, h2, h3, h4, h5, h6,
         p, span, div, section, article, header, footer, nav, main, aside,
         a, li, ul, ol, dl, dt, dd,
         button, input, textarea, select, label, legend, fieldset,
         blockquote, figure, figcaption,
         em, strong, b, i, small, cite, q, time, mark,
         th, td, caption,
         summary, details) {
  font-family: var(--refine-font) !important;
}

code, pre, kbd, samp, var, tt,
.code, .monospace,
[class*="code-block"] code,
[class*="code-block"] pre {
  font-family: var(--refine-font-mono) !important;
}

/* Bentham ships at one weight (400). Tighten letter-spacing slightly on
   display sizes so the wordmark and headings don't feel airy. */
h1, h2, h3,
.header-title-text a,
#site-title,
.sqs-block-quote blockquote {
  letter-spacing: -0.005em;
}

/* Smooth typography and selection */
html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

::selection {
  background: rgba(0, 0, 0, 0.85);
  color: #fff;
}

/* Images: gentle rounded corners, subtle shadow, hover lift on book covers */
.sqs-block-image .image-block-outer-wrapper img,
.sqs-block-image img,
.image-block img,
figure.sqs-block-image-figure img,
.sqs-block-summary-v2 img {
  border-radius: var(--refine-radius-md);
  transition: transform var(--refine-duration) var(--refine-ease),
              box-shadow var(--refine-duration) var(--refine-ease);
}

/* Book-cover-style cards: pronounced hover */
.sqs-block-image a:hover img,
.sqs-block-summary-v2 a:hover img {
  transform: translateY(-3px);
  box-shadow: var(--refine-shadow-hover);
}

/* Buttons: rounded, smooth hover transitions */
.sqs-button-element--primary,
.sqs-button-element--secondary,
.sqs-button-element--tertiary,
.btn,
button.sqs-system-button,
input[type="submit"] {
  border-radius: var(--refine-radius-sm);
  transition: transform var(--refine-duration) var(--refine-ease),
              box-shadow var(--refine-duration) var(--refine-ease),
              background-color var(--refine-duration) var(--refine-ease),
              color var(--refine-duration) var(--refine-ease),
              border-color var(--refine-duration) var(--refine-ease);
  will-change: transform;
}

.sqs-button-element--primary:hover,
.sqs-button-element--secondary:hover,
.sqs-button-element--tertiary:hover,
.btn:hover,
button.sqs-system-button:hover,
input[type="submit"]:hover {
  transform: translateY(-1px);
  box-shadow: var(--refine-shadow-soft);
}

.sqs-button-element--primary:active,
.btn:active {
  transform: translateY(0);
}

/* Nav links: soft underline reveal on hover */
.header-nav-item a,
nav a:not(.icon) {
  position: relative;
  transition: color var(--refine-duration) var(--refine-ease),
              opacity var(--refine-duration) var(--refine-ease);
}

.header-nav-item a:hover,
nav a:not(.icon):hover {
  opacity: 0.72;
}

/* Social icons: rounded hit-area, hover scale */
a.icon.header-icon,
a.icon.social-account-link,
.social-account-links-v2-block a,
.social-account-links-block a {
  border-radius: 999px;
  transition: transform var(--refine-duration) var(--refine-ease),
              opacity var(--refine-duration) var(--refine-ease);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

a.icon.header-icon:hover,
a.icon.social-account-link:hover,
.social-account-links-v2-block a:hover,
.social-account-links-block a:hover {
  transform: translateY(-2px) scale(1.06);
  opacity: 0.85;
}

/* Quote blocks: subtle vertical accent */
.sqs-block-quote .quote-block,
blockquote {
  border-radius: var(--refine-radius-sm);
  transition: transform var(--refine-duration) var(--refine-ease);
}

/* Horizontal rules: thinner and softer */
hr,
.sqs-block-horizontalrule hr {
  border: 0;
  height: 1px;
  background: linear-gradient(
    to right,
    transparent,
    rgba(0, 0, 0, 0.18),
    transparent
  );
}

/* Section/page entrance fade — applied via JS once page settles */
[data-refine-fade] {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 600ms var(--refine-ease),
              transform 600ms var(--refine-ease);
  will-change: opacity, transform;
}

[data-refine-fade].refine-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Focus ring: clearer, accessible, never garish */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid rgba(0, 0, 0, 0.7);
  outline-offset: 3px;
  border-radius: var(--refine-radius-sm);
}

/* Forms: rounded inputs */
input[type="text"],
input[type="email"],
input[type="search"],
input[type="url"],
input[type="tel"],
input[type="number"],
textarea,
select {
  border-radius: var(--refine-radius-sm);
  transition: border-color var(--refine-duration) var(--refine-ease),
              box-shadow var(--refine-duration) var(--refine-ease);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="search"]:focus,
textarea:focus {
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08);
}

/* Code/preformatted blocks: rounded */
pre,
code {
  border-radius: var(--refine-radius-sm);
}

/* Honor reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
  [data-refine-fade] {
    opacity: 1;
    transform: none;
  }
}

/* Show only the published date on archived posts; hide the WP "updated" sibling */
time.updated { display: none; }

