/* Registered custom properties for smooth color transitions between modes */
@property --surface-0 { syntax: '<color>'; inherits: true; initial-value: #faf8f5; }
@property --text-0 { syntax: '<color>'; inherits: true; initial-value: #000000; }
@property --text-1 { syntax: '<color>'; inherits: true; initial-value: #666666; }
@property --accent { syntax: '<color>'; inherits: true; initial-value: #f5a542; }
@property --accent-hover { syntax: '<color>'; inherits: true; initial-value: #d94a2d; }
@property --rule { syntax: '<color>'; inherits: true; initial-value: #cccccc; }

@layer reset, tokens, base, layout, components, utilities;

@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  body,
  h1,
  h2,
  h3,
  p,
  ul,
  ol,
  figure,
  blockquote {
    margin: 0;
  }

  img,
  svg,
  video,
  canvas {
    display: block;
    max-width: 100%;
  }

  button,
  input,
  textarea,
  select {
    font: inherit;
  }
}

@layer tokens {
  :root {
    color-scheme: light dark;

    /* Typography */
    --font-heading: "Barlow Condensed", "Arial Narrow", sans-serif;
    --font-body: "Lora", "Georgia", serif;
    --font-mono: "IBM Plex Mono", ui-monospace, monospace;

    /* Spacing — ~40% increase on space-4 and space-5 */
    --space-1: clamp(0.4rem, 0.5vw, 0.6rem);
    --space-2: clamp(0.8rem, 1vw, 1rem);
    --space-3: clamp(1.2rem, 1.5vw, 1.5rem);
    --space-4: clamp(2.4rem, 3vw, 3.2rem);
    --space-5: clamp(3.2rem, 4vw, 4.8rem);

    /* Radii — editorial */
    --radius-sm: 0.25rem;
    --radius-md: 0.5rem;
    --radius-lg: 0.75rem;
    --radius-card: 12px;

    /* Measures — 69rem = 1100px to match brand-home page width */
    --measure-wide: min(69rem, 92vw);
    --measure-reading: min(65ch, 92vw);

    /* Shadows — Drafts Capture layered system */
    --shadow-card: 0 0 0 0.5px rgba(0,0,0,0.10),
                   0 2px 6px rgba(0,0,0,0.07),
                   0 8px 24px rgba(0,0,0,0.05);
    --shadow-card-hover: 0 0 0 0.5px rgba(0,0,0,0.10),
                         0 4px 12px rgba(0,0,0,0.10),
                         0 14px 36px rgba(0,0,0,0.08);
    --shadow-photo: 0 2px 8px rgba(0,0,0,0.08);

    /* Transition */
    --transition-snappy: 0.12s ease;

    /* Gradient accent + display type scale (Stripe-extension tier) */
    --accent-plum: #7a3a5e;
    --web-gradient-hero: linear-gradient(120deg, rgba(245, 165, 66, 0.58) 0%, rgba(217, 74, 45, 0.26) 44%, rgba(28, 41, 41, 0.08) 100%);
    --web-type-hero: clamp(3rem, 7vw, 5.75rem);
    --web-type-stat: clamp(2.25rem, 4.2vw, 3.25rem);
    --web-type-section: clamp(1.75rem, 3.2vw, 2.75rem);
    --web-tracking-display: -0.012em;
    --web-leading-display: 0.96;
    --radius-pill: 999px;
    --radius-tile: 18px;
    --surface-deep: #1c2929;
    --motion-snap: 0.2s cubic-bezier(0.2, 0.7, 0.2, 1);
  }

  /* ─── Light Mode ─── */
  :root,
  [data-theme="light"] {
    --surface-0: #faf8f5;
    --surface-1: #ede8e0;
    --surface-2: #e0dbd2;
    --surface-page: #ede8e0;
    --text-0: #000000;
    --text-1: #666666;
    --accent: #f5a542;
    --accent-hover: #d94a2d;
    --accent-soft: color-mix(in srgb, var(--accent) 15%, var(--surface-0));
    --rule: #cccccc;
    --border-soft: 1px solid var(--rule);
    --shadow-soft: 0 2px 8px rgba(0, 0, 0, 0.06);
  }

  @supports (color: color(display-p3 1 1 1)) {
    :root,
    [data-theme="light"] {
      --accent: color(display-p3 0.94 0.66 0.28);
      --accent-hover: color(display-p3 0.83 0.30 0.19);
    }
  }

  /* ─── Dark Mode ─── */
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --surface-0: #1c2929;
      --surface-1: #232f2f;
      --surface-2: #2a3838;
      --surface-page: #1a2626;
      --text-0: #faf8f5;
      --text-1: #b8c2c2;
      --accent: #f5a542;
      --accent-hover: #d94a2d;
      --accent-soft: color-mix(in srgb, var(--accent) 12%, var(--surface-0));
      --rule: #3a4848;
      --border-soft: 1px solid var(--rule);
      --shadow-soft: 0 2px 8px rgba(0, 0, 0, 0.3);
      --shadow-card: 0 0 0 0.5px rgba(0,0,0,0.2),
                     0 2px 6px rgba(0,0,0,0.15),
                     0 8px 24px rgba(0,0,0,0.12);
      --shadow-card-hover: 0 0 0 0.5px rgba(0,0,0,0.2),
                           0 4px 12px rgba(0,0,0,0.2),
                           0 12px 32px rgba(0,0,0,0.16);
      --shadow-photo: 0 2px 8px rgba(0,0,0,0.2);
    }

    @supports (color: color(display-p3 1 1 1)) {
      :root:not([data-theme="light"]) {
        --accent: color(display-p3 0.94 0.66 0.28);
        --accent-hover: color(display-p3 0.83 0.30 0.19);
      }
    }
  }

  [data-theme="dark"] {
    --surface-0: #1c2929;
    --surface-1: #232f2f;
    --surface-2: #2a3838;
    --surface-page: #1a2626;
    --text-0: #faf8f5;
    --text-1: #b8c2c2;
    --accent: #f5a542;
    --accent-hover: #d94a2d;
    --accent-soft: color-mix(in srgb, var(--accent) 12%, var(--surface-0));
    --rule: #3a4848;
    --border-soft: 1px solid var(--rule);
    --shadow-soft: 0 2px 8px rgba(0, 0, 0, 0.3);
    --shadow-card: 0 0 0 0.5px rgba(0,0,0,0.2),
                   0 2px 6px rgba(0,0,0,0.15),
                   0 8px 24px rgba(0,0,0,0.12);
    --shadow-card-hover: 0 0 0 0.5px rgba(0,0,0,0.2),
                         0 4px 12px rgba(0,0,0,0.2),
                         0 12px 32px rgba(0,0,0,0.16);
    --shadow-photo: 0 2px 8px rgba(0,0,0,0.2);
  }

  @supports (color: color(display-p3 1 1 1)) {
    [data-theme="dark"] {
      --accent: color(display-p3 0.94 0.66 0.28);
      --accent-hover: color(display-p3 0.83 0.30 0.19);
    }
  }
}

@layer base {
  html {
    font-size: 100%;
  }

  @media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
  }

  body {
    min-height: 100dvh;
    font-family: var(--font-body);
    background: var(--surface-page, var(--surface-1));
    color: var(--text-0);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
  }

  h1, h2, h3 {
    font-family: var(--font-heading);
    line-height: 1.2;
  }

  :focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
  }

  a {
    color: var(--accent);
    text-decoration: none;
    transition: color var(--transition-snappy);

    &:hover {
      color: var(--accent-hover);
      text-decoration: underline;
      text-decoration-thickness: 0.08em;
      text-underline-offset: 0.16em;
    }
  }

  code,
  kbd,
  samp {
    font-family: var(--font-mono);
  }

  dialog {
    border: none;
    padding: 0;
    width: min(54rem, 92vw);
    border-radius: var(--radius-lg);
    background: var(--surface-1);
    box-shadow: var(--shadow-soft);
    color: var(--text-0);
  }

  dialog::backdrop {
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(8px);
  }
}

@layer layout {
  /* ─── Site Header ─── */
  /* Default state (top of page): fully transparent — no blur, no shadow.   */
  /* Once content scrolls under the header, an inline JS handler toggles    */
  /* [data-scrolled] and the blur/background/shadow fade in via transition. */
  .site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    padding: var(--space-2) 0;
    background: transparent;
    transition: background var(--transition-snappy),
                backdrop-filter var(--transition-snappy),
                -webkit-backdrop-filter var(--transition-snappy),
                box-shadow var(--transition-snappy);
  }

  .site-header[data-scrolled] {
    background: rgba(243, 240, 235, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 1px 0 rgba(0,0,0,0.04);
  }

  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .site-header[data-scrolled] {
      background: rgba(28, 41, 41, 0.85);
    }
  }

  [data-theme="dark"] .site-header[data-scrolled] {
    background: rgba(28, 41, 41, 0.85);
  }

  .site-header__inner {
    width: var(--measure-wide);
    margin-inline: auto;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-2);
    flex-wrap: wrap;
  }

  .site-name {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 1.25rem;
    letter-spacing: 0.02em;
    text-decoration: none;
    color: var(--text-0);

    &:hover {
      color: var(--accent);
    }
  }

  .site-nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    list-style: none;
    padding: 0;
  }

  /* ─── Main Content ─── */
  main {
    width: var(--measure-wide);
    margin-inline: auto;
    padding-block-end: var(--space-3);
  }

  /* ─── Dark Site Footer (Slide Deck end-slide pattern) ─── */
  .site-footer {
    background: var(--surface-deep);
    color: #faf8f5;
    margin-top: var(--space-3);
    padding: clamp(3rem, 5vw, 4.5rem) 0 clamp(1.5rem, 3vw, 2rem);
    border-top: none;
    position: relative;
    overflow: hidden;
  }

  .site-footer::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4px;
    background: linear-gradient(to right,
      var(--accent) 0%, var(--accent) 60%,
      var(--accent-hover) 60%, var(--accent-hover) 100%);
    pointer-events: none;
  }

  .site-footer__inner {
    width: var(--measure-wide);
    margin-inline: auto;
    padding-inline: clamp(1rem, 4vw, 2rem);
    display: grid;
    gap: var(--space-4);
  }

  .site-footer__sitemap {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: var(--space-3);
  }

  .site-footer__sitemap > div h3 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--accent);
    margin: 0 0 var(--space-2);
  }

  .site-footer__sitemap > div ul {
    list-style: none;
    padding: 0;
    display: grid;
    gap: 0.55rem;
    margin: 0;
  }

  .site-footer__sitemap a {
    font-family: var(--font-body);
    color: rgba(250, 248, 245, 0.82);
    font-size: 1.05rem;
    text-decoration: none;
    transition: color var(--transition-snappy);
  }

  .site-footer__sitemap a:hover {
    color: var(--accent);
    text-decoration: none;
  }

  .site-footer__colophon {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    padding-top: var(--space-3);
    border-top: 1px solid color-mix(in srgb, var(--accent) 50%, transparent);
  }

  .site-footer__signature {
    font-family: var(--font-body);
    font-style: italic;
    font-size: 1.05rem;
    line-height: 1.5;
    color: rgba(250, 248, 245, 0.82);
    max-width: 64ch;
    display: flex;
    align-items: center;
    gap: 0.9rem;
    margin: 0;
  }

  .site-footer__monogram {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    background: var(--surface-0);
    color: var(--surface-deep);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 17px;
    letter-spacing: 0.02em;
    border-bottom: 4px solid var(--accent);
    flex-shrink: 0;
  }

  .site-footer__social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .site-footer__social a {
    display: grid;
    place-items: center;
    color: rgba(250, 248, 245, 0.6);
    padding: 0.5rem;
    min-block-size: 40px;
    min-inline-size: 40px;
    transition: color var(--transition-snappy);
  }

  .site-footer__social a:hover {
    color: var(--accent);
  }

  .site-footer__social svg {
    fill: currentColor;
  }

  /* ─── Home: Hero Card ─── */
  .hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(2.4rem, 5vw, 4.25rem) clamp(1.5rem, 4vw, 3rem);
    margin-block: var(--space-2) var(--space-2);
    background: var(--surface-0);
    border-radius: var(--radius-tile);
    box-shadow: var(--shadow-card);
  }

  .hero__mesh {
    position: absolute;
    inset: -20% -18% auto -18%;
    height: 82%;
    z-index: -1;
    background:
      radial-gradient(58% 62% at 16% 28%, color-mix(in srgb, var(--accent) 86%, var(--surface-0)) 0%, transparent 64%),
      radial-gradient(52% 56% at 78% 22%, color-mix(in srgb, var(--accent-hover) 72%, var(--surface-0)) 0%, transparent 68%),
      radial-gradient(72% 76% at 58% 92%, color-mix(in srgb, var(--surface-deep) 52%, var(--surface-0)) 0%, transparent 72%),
      linear-gradient(125deg, var(--surface-0) 0%, var(--surface-1) 58%, color-mix(in srgb, var(--surface-deep) 18%, var(--surface-0)) 100%);
    filter: blur(68px) saturate(108%);
    background-size: 110% 110%;
    opacity: 0.36;
    pointer-events: none;
  }

  .hero__inner {
    max-width: 56rem;
  }

  .hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    padding: 0.35rem 0.8rem;
    border-radius: var(--radius-pill);
    background: color-mix(in oklch, var(--surface-0) 70%, transparent);
    border: 1px solid color-mix(in oklch, var(--text-0) 12%, transparent);
    color: var(--text-0);
    text-decoration: none;
  }

  .hero__dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 999px;
    background: var(--accent-hover);
    box-shadow: 0 0 0 4px color-mix(in oklch, var(--accent-hover) 22%, transparent);
    flex-shrink: 0;
    display: inline-block;
  }

  .hero h1 {
    font-size: var(--web-type-hero);
    line-height: var(--web-leading-display);
    letter-spacing: var(--web-tracking-display);
    font-weight: 700;
    margin: 1.4rem 0 1.1rem;
    max-width: 18ch;
    color: var(--text-0);
  }

  .hero h1 em {
    font-style: normal;
    color: var(--accent-hover);
  }

  .hero__sub {
    font-family: var(--font-body);
    font-size: clamp(1.05rem, 1.4vw, 1.2rem);
    line-height: 1.6;
    max-width: 54ch;
    color: var(--text-1);
    margin: 0;
  }

  .hero__sub strong {
    color: var(--text-0);
    font-weight: 500;
  }

  .hero__ctas {
    display: flex;
    gap: 0.75rem;
    margin: 1.8rem 0 0.85rem;
    flex-wrap: wrap;
  }

  .hero__social {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    list-style: none;
    padding: 0;
    margin: 0 0 2.2rem;
  }

  .hero__social a {
    display: grid;
    place-items: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: var(--radius-pill);
    color: var(--text-1);
    background: color-mix(in srgb, var(--surface-0) 82%, transparent);
    border: 1px solid color-mix(in srgb, var(--text-0) 12%, transparent);
    transition: color var(--transition-snappy), transform var(--transition-snappy), border-color var(--transition-snappy);
  }

  .hero__social a:hover {
    color: var(--accent-hover);
    border-color: color-mix(in srgb, var(--accent-hover) 48%, transparent);
    transform: translateY(-1px);
  }

  .hero__social svg {
    fill: currentColor;
  }

  .hero__proof {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.1rem;
    padding-top: 1.5rem;
    border-top: 1px solid color-mix(in oklch, var(--text-0) 12%, transparent);
  }

  .proof__num {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--web-type-stat);
    line-height: 1;
    color: var(--accent-hover);
  }

  .proof__label {
    margin-top: 0.5rem;
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 0.9rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-1);
  }

  @media (prefers-reduced-motion: no-preference) {
    .hero__mesh {
      animation: hero-mesh-drift 18s ease-in-out infinite alternate;
    }

    @keyframes hero-mesh-drift {
      from {
        transform: translate3d(-1.5%, -1%, 0) scale(1);
      }

      to {
        transform: translate3d(2%, 1.5%, 0) scale(1.04);
      }
    }
  }

  @media (max-width: 640px) {
    .hero__proof {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  /* ─── Home: Paths ─── */
  .home-paths {
    display: grid;
    gap: var(--space-5);
    padding: var(--space-3) 0;
    margin-top: var(--space-2);
  }

  .path-row {
    display: grid;
    gap: var(--space-2);
  }

  /* Editorial text strip (used in Links row, blog noscript) */
  .path-strip > p {
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--text-1);
    line-height: 1.6;
    max-width: 42ch;
    padding: var(--space-2) 0;
  }

  .path-strip {
    display: flex;
    gap: var(--space-2);
    overflow-x: auto;
    scroll-snap-type: x proximity;
    /* Reserve space inside the scroll container so card shadows + hover lift
       are not clipped at the top/bottom or left/right edges.
       Vertical: 0.75rem top, 2rem bottom (covers 0 14px 36px hover shadow).
       Horizontal: 1.5rem each side (covers shadow blur radius extending sideways
       from first/last tile when scrolled to either extreme). */
    padding-block: 0.75rem 2rem;
    padding-inline: 1.5rem;
    margin-inline: -1.5rem;
    /* Negative margin compensates so the visible content still aligns to the
       same left/right edges as surrounding sections. */
  }

  @media (max-width: 640px) {
    .path-strip {
      margin-inline: calc((100vw - 100%) / -2);
      padding-inline: calc((100vw - 100%) / 2);
    }
  }

  .path-thumb {
    flex-shrink: 0;
    scroll-snap-align: start;
    text-decoration: none;
    background: var(--surface-0);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    width: 280px;
    transition: box-shadow var(--motion-snap), transform var(--motion-snap);
    color: var(--text-0);
  }

  .path-thumb:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-3px);
    text-decoration: none;
  }

  .path-thumb--text {
    min-height: 220px;
  }

  .path-thumb--text .path-thumb__body {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 100%;
  }

  .path-thumb--text p {
    margin: 0;
    color: var(--text-1);
    font-size: 0.98rem;
    line-height: 1.55;
  }

  .path-thumb__img--demo {
    display: grid;
    place-items: center;
    background:
      linear-gradient(135deg, rgba(245, 165, 66, 0.18), transparent 42%),
      linear-gradient(160deg, rgba(217, 74, 45, 0.12), transparent 58%),
      repeating-linear-gradient(135deg, rgba(28, 41, 41, 0.045) 0 10px, transparent 10px 20px),
      var(--surface-1);
  }

  .path-thumb__img--demo span {
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    border-radius: 999px;
    background: var(--surface-0);
    box-shadow: var(--shadow-card);
    color: var(--accent-hover);
    font-family: var(--font-heading);
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 0.08em;
  }

  .path-thumb__img {
    height: 175px;
    overflow: hidden;
    border-bottom: 0.5px solid var(--rule);
    background:
      repeating-linear-gradient(135deg, rgba(0,0,0,.025) 0 8px, transparent 8px 16px),
      linear-gradient(180deg, var(--surface-0) 0%, var(--surface-1) 100%);
    flex-shrink: 0;
  }

  .path-thumb__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .path-thumb__body {
    padding: 16px 18px 18px;
  }

  .path-thumb__meta {
    display: block;
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 11.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-1);
    margin-bottom: 6px;
  }

  .path-thumb__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 1.2rem;
    letter-spacing: 0;
    text-transform: none;
    color: var(--text-0);
    margin: 0;
    line-height: 1.25;
  }

  .path-browse {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-decoration: none;
    color: var(--accent);
    align-self: start;
    padding: var(--space-1) 0;
    transition: color var(--transition-snappy), transform var(--transition-snappy);
  }

  .path-browse:hover {
    color: var(--accent-hover);
    transform: translateX(2px);
  }

  /* ─── Page Header ─── */
  .page-header {
    padding: var(--space-3) 0 var(--space-3);
  }

  .page-header h1 {
    font-weight: 700;
    font-size: clamp(2.25rem, 5vw, 3.5rem);
    line-height: 1.05;
    letter-spacing: var(--web-tracking-display);
  }

  /* ─── Work Index ─── */
  .work-category {
    margin-bottom: var(--space-4);
  }

  .work-category h2 {
    font-weight: 600;
    font-size: 1.05rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--text-1);
    margin-bottom: var(--space-3);
    padding-bottom: var(--space-1);
    border-bottom: 1px solid color-mix(in srgb, var(--accent) 50%, transparent);
    display: inline-block;
  }

  .work-list {
    list-style: none;
    padding: 0;
    display: grid;
    gap: var(--space-3);
  }

  @media (width >= 48rem) {
    .work-list {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  /* ─── Work Detail ─── */
  .project-content {
    max-width: var(--measure-wide);
  }

  .project-content h1 {
    font-weight: 700;
    font-size: clamp(1.6rem, 3.5vw, 2.4rem);
    line-height: 1.15;
    margin-bottom: var(--space-2);
  }

  .project-content--case-study {
    display: grid;
    gap: var(--space-4);
  }

  .project-hero-card {
    display: grid;
    gap: var(--space-3);
    padding: clamp(2rem, 4vw, 3rem);
    background: var(--surface-0);
    border-radius: var(--radius-tile);
    box-shadow: var(--shadow-card);
    overflow: hidden;
  }

  @media (width >= 56rem) {
    .project-hero-card {
      grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
      align-items: center;
    }
  }

  .project-kicker {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent-hover);
    margin: 0 0 0.75rem;
  }

  .project-hero-card h1 {
    font-size: clamp(2.6rem, 6vw, 5rem);
    line-height: 0.98;
    margin: 0 0 1rem;
  }

  .project-hero-card .project-summary {
    max-width: 46ch;
    margin: 0 0 1.25rem;
  }

  .project-meta-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    list-style: none;
    padding: 0;
    margin: 0;
    font-family: var(--font-heading);
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-1);
  }

  .project-meta-list li {
    margin: 0;
    padding: 0.45rem 0.65rem;
    border: 1px solid color-mix(in srgb, var(--text-0) 12%, transparent);
    border-radius: var(--radius-pill);
  }

  .project-hero-card figure {
    margin: 0;
  }

  .project-hero-card img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
  }

  .project-section-grid {
    display: grid;
    gap: var(--space-2);
  }

  @media (width >= 48rem) {
    .project-section-grid {
      grid-template-columns: repeat(3, 1fr);
    }
  }

  .project-note {
    padding: var(--space-3);
    background: var(--surface-0);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
  }

  .project-note h2 {
    margin-top: 0;
  }

  .project-content .project-summary {
    font-size: 1.05rem;
    color: var(--text-1);
    margin-bottom: var(--space-3);
    line-height: 1.6;
  }

  .project-hero {
    margin: var(--space-3) 0;
  }

  .project-hero img {
    border-radius: var(--radius-card);
    border: none;
    box-shadow: var(--shadow-card);
    width: 100%;
    height: auto;
  }

  .project-content h2 {
    font-weight: 700;
    font-size: 1.15rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-top: var(--space-4);
    margin-bottom: var(--space-2);
    padding-bottom: var(--space-1);
    border-bottom: 1px solid color-mix(in srgb, var(--accent) 50%, transparent);
  }

  .project-content > h1 {
    font-size: clamp(2.25rem, 5vw, 3.5rem);
    line-height: 1.05;
    letter-spacing: var(--web-tracking-display);
  }

  .project-content .project-summary {
    font-size: 1.2rem;
    line-height: 1.55;
  }

  .project-content p {
    margin-bottom: var(--space-2);
    line-height: 1.7;
  }

  .project-content ul {
    padding-left: 1.2em;
    margin-bottom: var(--space-2);
  }

  .project-content li {
    margin-bottom: 0.5em;
    line-height: 1.6;
  }

  /* ─── Blog Post Reading Layout ─── */
  .blog-post-content {
    max-width: var(--measure-reading);
    font-size: 1.05rem;
    line-height: 1.75;
  }

  .blog-detail {
    display: grid;
    gap: var(--space-4);
  }

  .blog-detail__hero {
    display: grid;
    gap: var(--space-3);
    padding: clamp(2rem, 4vw, 3rem);
    background: var(--surface-0);
    border-radius: var(--radius-tile);
    box-shadow: var(--shadow-card);
  }

  @media (width >= 54rem) {
    .blog-detail__hero {
      grid-template-columns: minmax(0, 0.9fr) minmax(18rem, 0.75fr);
      align-items: center;
    }
  }

  .blog-detail__hero h1 {
    font-size: clamp(2.4rem, 5.4vw, 4.5rem);
    line-height: 1;
  }

  .blog-post-hero {
    margin: 0;
  }

  .blog-post-hero img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
  }

  .blog-post-content p {
    margin-bottom: var(--space-3);
  }

  .blog-post-content img {
    max-width: min(80%, var(--measure-wide));
    margin-inline: auto;
    display: block;
    border-radius: var(--radius-md);
  }

  .blog-post-content blockquote {
    border-left: 3px solid var(--accent);
    padding-left: var(--space-3);
    margin: var(--space-3) 0;
    font-style: italic;
  }

  .blog-post-content h2,
  .blog-post-content h3 {
    margin-top: var(--space-4);
    margin-bottom: var(--space-2);
  }

  .blog-post-content ul,
  .blog-post-content ol {
    padding-left: 1.2em;
    margin-bottom: var(--space-3);
  }

  .blog-post-content li {
    margin-bottom: 0.5em;
    line-height: 1.7;
  }

  @media (width < 40rem) {
    .blog-post-content {
      font-size: 1rem;
      line-height: 1.65;
    }

    .blog-post-content img {
      max-width: 100%;
    }
  }

  /* ─── Blog Stream (existing) ─── */
  /* ─── Photography Gallery ─── */
  .photo-gallery {
    display: grid;
    gap: var(--space-4);
    margin-top: var(--space-4);
  }

  .gallery-image {
    margin: 0;
    overflow: hidden;
    border-radius: var(--radius-md);
    border: none;
    box-shadow: var(--shadow-photo);
  }

  .gallery-image img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
  }

  @media (width >= 40rem) {
    .photo-gallery {
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    }
  }

  .stream-shell {
    container-type: inline-size;
    container-name: stream;
    display: grid;
    gap: var(--space-3);
    padding: var(--space-3);
    background: var(--surface-0);
    border: 1px solid color-mix(in srgb, var(--text-0) 8%, transparent);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
  }

  .contact-grid {
    display: grid;
    gap: var(--space-3);
  }

  @media (width >= 56rem) {
    .contact-grid {
      grid-template-columns: 1fr 1fr;
      align-items: start;
    }
  }

  .filters {
    display: grid;
    gap: var(--space-2);
  }

  .stream {
    display: grid;
    gap: var(--space-2);
  }

  @container stream (width > 48rem) {
    .filters {
      grid-template-columns: 1fr 1fr auto auto;
      align-items: end;
    }

    .stream {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @container stream (width > 72rem) {
    .stream {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }
}

@layer components {
  /* ─── Nav Links ─── */
  .site-nav a {
    display: inline-block;
    text-decoration: none;
    color: var(--text-1);
    font-family: var(--font-heading);
    font-size: 1.05rem;
    letter-spacing: 0.03em;
    padding: 0.75rem 0.65rem;
    min-block-size: 44px;

    &:hover {
      color: var(--accent-hover);
    }

    &[aria-current="page"],
    &[aria-current="true"] {
      color: var(--text-0);
      font-weight: 600;
    }
  }

  /* ─── Sibling Nav (contextual links on inner pages) ─── */
  .sibling-nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding: var(--space-2) 0 var(--space-3);
    font-family: var(--font-heading);
    font-size: 0.85rem;
    letter-spacing: 0.02em;
  }

  .sibling-nav a {
    color: var(--text-1);
    text-decoration: none;

    &:hover {
      color: var(--accent-hover);
    }
  }

  /* ─── Path Row (home page) ─── */
  .path-row h2 {
    font-weight: 700;
    font-size: 1.3rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    padding-bottom: var(--space-1);
    border-bottom: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
    display: inline-block;
    width: fit-content;
  }

  .path-row h2 a {
    color: var(--text-0);
    text-decoration: none;

    &:hover {
      color: var(--accent-hover);
    }
  }

  /* ─── Work List Items ─── */
  .work-item {
    display: grid;
    gap: var(--space-1);
    text-decoration: none;
    color: var(--text-0);
    border-radius: var(--radius-card);
    padding: var(--space-2);
    background: var(--surface-0);
    box-shadow: var(--shadow-card);
    transition: box-shadow var(--transition-snappy), transform var(--transition-snappy);
  }

  .work-item:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-2px);
  }

  .work-item img {
    border-radius: var(--radius-md);
    border: none;
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
    object-fit: cover;
  }

  .work-item__placeholder {
    display: grid;
    place-items: center;
    aspect-ratio: 16 / 9;
    border-radius: var(--radius-md);
    background:
      linear-gradient(135deg, rgba(245, 165, 66, 0.16), transparent 42%),
      linear-gradient(160deg, rgba(217, 74, 45, 0.10), transparent 58%),
      repeating-linear-gradient(135deg, rgba(28, 41, 41, 0.045) 0 10px, transparent 10px 20px),
      var(--surface-1);
  }

  .work-item__placeholder span {
    display: grid;
    place-items: center;
    width: 3.4rem;
    height: 3.4rem;
    border-radius: 999px;
    background: var(--surface-0);
    color: var(--accent-hover);
    box-shadow: var(--shadow-card);
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.08em;
  }

  .work-item h3 {
    font-weight: 700;
    font-size: 1.35rem;
    color: var(--accent);
    line-height: 1.2;
    margin-top: var(--space-1);
  }

  .work-item p {
    font-size: 1rem;
    line-height: 1.5;
  }

  .work-item:hover h3 {
    color: var(--accent-hover);
  }

  .work-item > p {
    font-size: 1rem;
    color: var(--text-1);
    line-height: 1.5;
  }

  /* ─── Stream Panel (blog) ─── */
  .panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
  }

  .filters label {
    display: grid;
    gap: 0.35rem;
    font-size: 0.92rem;
  }

  .filters input,
  .filters button {
    border: var(--border-soft);
    border-radius: 6px;
    padding: 0.75rem 0.9rem;
    background: var(--surface-0);
    min-block-size: 44px;
  }

  .filters button {
    cursor: pointer;
    font-family: var(--font-heading);
    font-weight: 600;
    letter-spacing: 0.04em;
  }

  .status {
    min-block-size: 1.4em;
    color: var(--text-1);
    font-size: 0.92rem;
  }

  post-card {
    display: block;
  }

  .post-card {
    border: none;
    border-radius: var(--radius-card);
    background: var(--surface-0);
    display: grid;
    gap: 0.75rem;
    padding: var(--space-3);
    box-shadow: var(--shadow-card);
    transition: box-shadow var(--transition-snappy), transform var(--transition-snappy);

    &:hover {
      box-shadow: var(--shadow-card-hover);
      transform: translateY(-2px);
    }

    & .post-card__image {
      display: block;
      margin: calc(var(--space-3) * -1) calc(var(--space-3) * -1) 0;
      aspect-ratio: 16 / 9;
      overflow: hidden;
      border-radius: var(--radius-card) var(--radius-card) 0 0;
      background: var(--surface-1);
    }

    & .post-card__image img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    & h3 {
      font-size: clamp(1.25rem, 1.8vw, 1.5rem);
      line-height: 1.25;
    }

    & h3 a {
      font-family: inherit;
      font-size: inherit;
      font-weight: inherit;
      line-height: inherit;
      text-decoration: none;
      color: var(--accent);
      transition: color var(--transition-snappy);

      &:hover {
        color: var(--accent-hover);
        text-decoration: none;
      }
    }

    & p {
      color: var(--text-1);
      font-size: 1.02rem;
      line-height: 1.55;
    }

    & footer {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      gap: 0.35rem;
      font-family: var(--font-heading);
      font-size: 0.92rem;
      color: var(--text-1);
      letter-spacing: 0.04em;
    }

    & .post-read-more {
      color: var(--accent);
      text-decoration: none;
      font-size: 0.95rem;

      &:hover {
        text-decoration: underline;
        text-underline-offset: 0.18em;
        color: var(--accent-hover);
      }
    }
  }

  /* ─── Gallery Grid (photography index) ─── */
  .gallery-grid {
    display: grid;
    gap: var(--space-4);
    margin-top: var(--space-3);
  }

  @media (width >= 40rem) {
    .gallery-grid {
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    }
  }

  .gallery-preview a {
    display: block;
    text-decoration: none;
    color: var(--text-0);
  }

  .gallery-preview img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-photo);
    transition: transform var(--transition-snappy), box-shadow var(--transition-snappy);
  }

  .gallery-preview a:hover img {
    transform: scale(1.02);
    box-shadow: var(--shadow-card);
  }

  .gallery-preview h2 {
    font-size: 1.35rem;
    font-weight: 700;
    margin-top: var(--space-2);
    color: var(--accent);
    line-height: 1.2;
  }

  .gallery-preview a:hover h2 {
    color: var(--accent-hover);
  }

  .gallery-preview p {
    font-size: 0.9rem;
    color: var(--text-1);
    margin-top: var(--space-1);
  }

  .gallery-preview time {
    font-family: var(--font-heading);
    font-size: 0.82rem;
    color: var(--text-1);
    letter-spacing: 0.02em;
  }

  /* ─── Dialogs ─── */
  .dialog-content {
    padding: var(--space-3);
    max-block-size: min(70dvh, 42rem);
    overflow: auto;

    & header {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      gap: var(--space-2);
      margin-bottom: var(--space-2);
    }
  }

  .dialog-meta {
    color: var(--text-1);
    font-size: 0.9rem;
    margin-top: 0.2rem;
  }

  .blog-post-meta {
    font-family: var(--font-heading);
    font-size: 0.82rem;
    color: var(--text-1);
    letter-spacing: 0.02em;
    margin-top: var(--space-1);
    margin-bottom: var(--space-2);
  }

  .dialog-content p {
    margin-bottom: var(--space-2);
    line-height: 1.7;
  }

  .dialog-content ul,
  .dialog-content ol {
    margin-bottom: var(--space-2);
    padding-left: 1.2em;
  }

  .dialog-content li {
    margin-bottom: 0.5em;
    line-height: 1.6;
  }

  .dialog-content h2,
  .dialog-content h3,
  .dialog-content h4 {
    margin-top: var(--space-3);
    margin-bottom: var(--space-2);
  }

  .zoomable-image {
    cursor: zoom-in;
    border-radius: var(--radius-sm);
  }

  .protected-asset {
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
  }

  .image-viewer-content {
    padding: var(--space-2);

    & header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: var(--space-2);
    }

    & button {
      border: var(--border-soft);
      border-radius: var(--radius-sm);
      padding: 0.5rem 0.75rem;
      background: var(--surface-1);
      cursor: pointer;
    }

    & figure {
      margin: 0;
      display: grid;
      gap: var(--space-1);
      justify-items: center;
    }

    & img {
      max-inline-size: min(90vw, 72rem);
      max-block-size: 76dvh;
      object-fit: contain;
    }

    & figcaption {
      color: var(--text-1);
      text-align: center;
      font-size: 0.9rem;
    }
  }

  /* ─── Contact ─── */
  .contact-panel {
    display: grid;
    gap: var(--space-2);
    padding: clamp(1.5rem, 3vw, 2.25rem);
    background: var(--surface-0);
    border: none;
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
  }

  .contact-list {
    display: grid;
    gap: var(--space-2);

    & div {
      display: grid;
      gap: 0.2rem;
      padding-bottom: 0.7rem;
      border-bottom: var(--border-soft);
    }

    & dt {
      color: var(--text-1);
      font-size: 0.9rem;
      font-weight: 600;
      font-family: var(--font-heading);
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }
  }

  .contact-social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    list-style: none;
    padding: 0;
    margin: 0.2rem 0 0;
  }

  .contact-social a {
    display: grid;
    place-items: center;
    width: 2.55rem;
    height: 2.55rem;
    border-radius: var(--radius-pill);
    color: var(--text-1);
    background: var(--surface-1);
    border: 1px solid color-mix(in srgb, var(--text-0) 10%, transparent);
    transition: color var(--transition-snappy), transform var(--transition-snappy), border-color var(--transition-snappy);
  }

  .contact-social a:hover {
    color: var(--accent-hover);
    border-color: color-mix(in srgb, var(--accent-hover) 48%, transparent);
    transform: translateY(-1px);
  }

  .contact-social svg {
    fill: currentColor;
  }

  .contact-form {
    display: grid;
    gap: var(--space-2);
  }

  .contact-form label {
    display: grid;
    gap: 0.35rem;
    font-size: 0.95rem;
  }

  .contact-form input,
  .contact-form textarea,
  .contact-form button {
    border: 1px solid var(--rule);
    border-radius: 6px;
    padding: 0.85rem 0.9rem;
    background: var(--surface-0);
    color: var(--text-0);
    min-block-size: 44px;
    transition: border-color var(--transition-snappy), box-shadow var(--transition-snappy);
  }

  .contact-form input:focus,
  .contact-form textarea:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: var(--shadow-card);
  }

  .contact-form textarea {
    resize: vertical;
  }

  .contact-form button {
    justify-self: start;
    cursor: pointer;
    font-weight: 600;
    font-family: var(--font-heading);
    letter-spacing: 0.02em;
    background: var(--accent);
    border-color: var(--accent);
    border-radius: var(--radius-pill);
    color: var(--surface-0);
    box-shadow: 0 1px 3px rgba(245,165,66,0.3);
    transition: background var(--transition-snappy), box-shadow var(--transition-snappy);

    &:hover {
      background: var(--accent-hover);
      border-color: var(--accent-hover);
      box-shadow: 0 2px 8px rgba(217,74,45,0.3);
    }
  }

  .contact-form button:disabled {
    cursor: wait;
    opacity: 0.65;
  }

  .contact-form-status {
    min-block-size: 1.4em;
    margin: 0;
    color: var(--text-1);
    font-size: 0.92rem;
  }

  .contact-form-status[data-tone="ok"] {
    color: color-mix(in oklch, green 55%, black);
  }

  .contact-form-status[data-tone="warn"] {
    color: color-mix(in oklch, orange 65%, black);
  }

  .contact-form-status[data-tone="error"] {
    color: color-mix(in oklch, red 70%, black);
  }

  [popover] {
    border: var(--border-soft);
    border-radius: var(--radius-md);
    padding: var(--space-2);
    background: var(--surface-1);
    box-shadow: var(--shadow-soft);
    color: var(--text-0);
  }

  /* ─── Links Page ─── */
  .links-list {
    list-style: none;
    padding: 0;
    display: grid;
    gap: 0;
  }

  .links-list li {
    padding: var(--space-2) 0;
    border-bottom: var(--border-soft);
  }

  .links-list a {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--accent);
    text-decoration: none;
    line-height: 1.3;
  }

  .links-list a:hover {
    color: var(--accent-hover);
  }

  .links-list .link-domain {
    display: block;
    font-family: var(--font-body);
    font-size: 0.92rem;
    font-weight: 400;
    color: var(--text-1);
    margin-top: 0.3rem;
  }

  .links-list li {
    padding: var(--space-3) 0;
  }

  /* ─── Buttons ─── */
  .btn {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 0.95rem;
    padding: 0.85rem 1.25rem;
    border-radius: var(--radius-pill);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: background var(--motion-snap), color var(--motion-snap), border-color var(--motion-snap);
    border: 1px solid transparent;
    cursor: pointer;
  }

  .btn--primary {
    background: var(--text-0);
    color: var(--surface-0);
    border-color: var(--text-0);

    &:hover {
      background: var(--accent-hover);
      border-color: var(--accent-hover);
      color: var(--surface-0);
      text-decoration: none;
    }
  }

  .btn--ghost {
    color: var(--text-0);
    border-color: color-mix(in oklch, var(--text-0) 22%, transparent);

    &:hover {
      border-color: var(--text-0);
      color: var(--text-0);
      text-decoration: none;
    }
  }

  /* Gold-fill for dark surfaces (CTA band) */
  .btn--gold {
    background: var(--accent);
    color: var(--text-0);
    border-color: var(--accent);

    &:hover {
      background: var(--accent-hover);
      border-color: var(--accent-hover);
      color: var(--surface-0);
      text-decoration: none;
    }
  }

  .btn--ghost-light {
    color: #faf8f5;
    border-color: rgba(250,248,245,0.25);

    &:hover {
      border-color: rgba(250,248,245,0.65);
      color: #faf8f5;
      text-decoration: none;
    }
  }

  /* ─── Practice Cards ─── */
  .practice-section {
    margin-top: var(--space-5);
  }

  .practice-section > h2 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 1.3rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--text-0);
    margin: 0 0 var(--space-3);
    padding-bottom: var(--space-1);
    border-bottom: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
    display: inline-block;
  }

  .practice-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
    gap: 1rem;
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .practice-grid > li {
    display: flex;
  }

  @media (max-width: 720px) {
    .practice-grid {
      grid-template-columns: 1fr;
    }
  }

  .practice-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 1.75rem 1.85rem 1.65rem;
    border-radius: var(--radius-tile);
    background: var(--surface-0);
    box-shadow: var(--shadow-card);
    border: 1px solid color-mix(in oklch, var(--text-0) 4%, transparent);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--motion-snap), transform var(--motion-snap), box-shadow var(--motion-snap);

    &:hover {
      border-color: color-mix(in oklch, var(--accent) 50%, transparent);
      transform: translateY(-3px);
      box-shadow: var(--shadow-card-hover);
      text-decoration: none;
    }

    & h3 {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 1.4rem;
      letter-spacing: 0.005em;
      color: var(--text-0);
      margin: 0 0 0.65rem;
      line-height: 1.2;
    }

    & p {
      font-family: var(--font-body);
      font-size: 1.02rem;
      line-height: 1.55;
      color: var(--text-1);
      margin: 0 0 1.15rem;
      flex: 1;
    }

    & .practice-cta {
      font-family: var(--font-heading);
      font-size: 0.88rem;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--accent-hover);
    }
  }

  /* ─── Dark CTA Band ─── */
  .cta-band {
    padding: clamp(2.5rem, 6vw, 4rem) clamp(1.5rem, 4vw, 3rem);
    background: var(--surface-deep);
    color: #faf8f5;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-radius: var(--radius-card);
    margin-top: var(--space-4);
    margin-bottom: var(--space-3);
  }

  .cta-band::before {
    content: "";
    position: absolute;
    inset: -20% -10% auto -10%;
    height: 70%;
    z-index: -1;
    background:
      radial-gradient(60% 70% at 22% 0%, #f5a542 0%, transparent 60%),
      radial-gradient(60% 70% at 80% 0%, #7a3a5e 0%, transparent 65%);
    filter: blur(80px) saturate(110%);
    opacity: 0.32;
    pointer-events: none;
  }

  .cta-band__inner {
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  @media (max-width: 760px) {
    .cta-band__inner {
      grid-template-columns: 1fr;
    }
  }

  .cta-band h2 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: clamp(1.75rem, 3.4vw, 2.5rem);
    line-height: 1.05;
    letter-spacing: var(--web-tracking-display);
    margin: 0 0 0.75rem;
    color: #faf8f5;
  }

  .cta-band p {
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(250,248,245,0.78);
    max-width: 50ch;
    margin: 0;
  }

  .cta-band__actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
  }

  /* ─── Bento Grid (work overview) ─── */
  .bento {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    grid-auto-rows: 180px;
    gap: 14px;
    margin-bottom: var(--space-5);
  }

  @media (max-width: 640px) {
    .bento {
      grid-template-columns: 1fr 1fr;
      grid-auto-rows: 140px;
    }
  }

  .bento-cell {
    background: var(--surface-0);
    border-radius: var(--radius-card);
    padding: 18px 20px;
    box-shadow: var(--shadow-card);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
    text-decoration: none;
    color: var(--text-0);
    transition: box-shadow var(--transition-snappy), transform var(--transition-snappy);

    &:hover {
      box-shadow: var(--shadow-card-hover);
      transform: translateY(-2px);
      text-decoration: none;
    }

    &.lead {
      grid-column: span 1;
      grid-row: span 2;
    }
  }

  .bento-cell__eyebrow {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-1);
    margin: 0 0 6px;
  }

  .bento-cell h3 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 1.75rem;
    line-height: 1.12;
    letter-spacing: -0.005em;
    color: var(--text-0);
    margin: 0;
  }

  .bento-cell.lead h3 {
    font-size: 2.15rem;
  }

  .bento-cell__vis {
    align-self: stretch;
    flex: 1;
    min-height: 60px;
    background:
      repeating-linear-gradient(135deg, rgba(0,0,0,.04) 0 8px, transparent 8px 16px),
      var(--surface-1);
    border-radius: 6px;
    overflow: hidden;
    margin: 10px 0 1.45rem;
  }

  .bento-cell__vis img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .bento-cell__arrow {
    position: absolute;
    bottom: 14px;
    right: 16px;
    font-family: var(--font-heading);
    font-size: 0.88rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent);
    background: color-mix(in srgb, var(--surface-0) 84%, transparent);
    border-radius: var(--radius-pill);
    padding: 0.22rem 0.35rem;
    transition: color var(--transition-snappy), transform var(--transition-snappy);
  }

  .bento-cell:hover .bento-cell__arrow {
    color: var(--accent-hover);
    transform: translateX(2px);
  }

  /* ─── Likes / Colophon Content ─── */
  .content-page {
    max-width: var(--measure-reading);
  }

  .content-page h2 {
    font-weight: 700;
    font-size: 1.15rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-top: var(--space-4);
    margin-bottom: var(--space-2);
    padding-bottom: var(--space-1);
    border-bottom: 1px solid color-mix(in srgb, var(--accent) 50%, transparent);
  }

  .content-page > p {
    font-size: 1.1rem;
    line-height: 1.65;
    color: var(--text-1);
    max-width: var(--measure-reading);
    margin-bottom: var(--space-3);
  }

  .content-page p {
    margin-bottom: var(--space-2);
    line-height: 1.7;
  }

  .content-page ul {
    padding-left: 1.2em;
    margin-bottom: var(--space-2);
  }

  .content-page li {
    margin-bottom: 0.5em;
    line-height: 1.6;
  }
}

@layer utilities {
  .skip-link {
    position: absolute;
    inset-inline-start: 0.75rem;
    inset-block-start: -12rem;
    padding: 0.6rem 0.9rem;
    border-radius: var(--radius-sm);
    background: var(--surface-0);
    border: var(--border-soft);
    z-index: 10;
    color: var(--text-0);
    text-decoration: none;

    &:focus-visible {
      inset-block-start: 0.75rem;
    }
  }

  .visually-hidden {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }

  @supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
      .home-paths .path-row {
        animation: fade-slide-up linear both;
        animation-timeline: view();
        animation-range: entry 0% entry 30%;
      }

      @keyframes fade-slide-up {
        from {
          opacity: 0;
          transform: translateY(20px);
        }
        to {
          opacity: 1;
          transform: translateY(0);
        }
      }
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0s !important;
    transition-duration: 0s !important;
  }
}

@supports (anchor-name: --anchor) {
  .panel__head {
    anchor-name: --header;
  }

  [popover] {
    position-anchor: --header;
    position-area: bottom span-right;
  }
}
