/* Inner Chamber physical-interaction layer.
   The approved chamber art, typography, dimensions, spacing, and access
   model remain unchanged. This file only refines response and focus states. */
:root {
  --chamber-motion-fast: 150ms;
  --chamber-motion-medium: 240ms;
  --chamber-motion-ease: cubic-bezier(.2, .72, .2, 1);
  --chamber-focus-green: rgba(156, 240, 178, .96);
  --chamber-focus-copper: rgba(213, 146, 93, .96);
}

/* The exit mark moves like ink being followed across the lintel. */
.dispatch-chamber-topline a {
  transform-origin: left center;
  transition: transform var(--chamber-motion-fast) var(--chamber-motion-ease),
    color var(--chamber-motion-fast) ease,
    text-shadow var(--chamber-motion-fast) ease;
}
.dispatch-chamber-topline a:hover,
.dispatch-chamber-topline a:focus-visible {
  transform: translateX(2px);
  text-shadow: 0 2px 5px #000, 0 0 10px rgba(0, 184, 90, .2);
}
.dispatch-chamber-topline a:active {
  transform: translate(1px, 1px);
}

/* The wax seal keeps its baked detail sharp. Hover slightly catches the
   firelight; pressure settles the seal into the cord instead of enlarging it. */
.dispatch-wax-seal {
  transform-origin: center;
  transition: transform var(--chamber-motion-fast) var(--chamber-motion-ease),
    filter var(--chamber-motion-medium) ease,
    opacity var(--chamber-motion-fast) ease;
}
.dispatch-wax-seal:not(:disabled):hover,
.dispatch-wax-seal:not(:disabled):focus-visible {
  filter: drop-shadow(0 10px 10px rgba(0, 0, 0, .62)) brightness(1.07) saturate(1.04);
  transform: translate(-50%, -49%) rotate(-1deg) scale(1.025);
}
.dispatch-wax-seal:not(:disabled):active,
.dispatch-wax-seal:not(:disabled).is-pressed {
  filter: drop-shadow(0 4px 5px rgba(0, 0, 0, .58)) brightness(.94) saturate(.98);
  transform: translate(-50%, -46%) rotate(-2deg) scale(.982);
}
.dispatch-wax-seal:focus-visible {
  outline: 2px solid var(--chamber-focus-copper);
  outline-offset: 4px;
  border-radius: 50%;
}

/* Forged access controls move with short, weighty iron travel. */
.dispatch-access-button,
.dispatch-reseal {
  transform-origin: center;
  transition: transform var(--chamber-motion-fast) var(--chamber-motion-ease),
    filter var(--chamber-motion-fast) ease,
    color var(--chamber-motion-fast) ease,
    border-color var(--chamber-motion-fast) ease,
    box-shadow var(--chamber-motion-fast) ease;
}
.dispatch-access-button:hover,
.dispatch-access-button:focus-visible,
.dispatch-reseal:not(:disabled):hover,
.dispatch-reseal:not(:disabled):focus-visible {
  transform: translateY(-1px);
}
.dispatch-access-button:active,
.dispatch-reseal:not(:disabled):active,
.dispatch-reseal:not(:disabled).is-pressed {
  transform: translateY(1px) scale(.992);
  filter: brightness(.92);
  box-shadow: inset 0 3px 6px rgba(0, 0, 0, .66), 0 2px 5px rgba(0, 0, 0, .3);
}
.dispatch-reseal:disabled {
  cursor: default;
  color: #8f846e;
  filter: brightness(.72) saturate(.65);
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, .52);
}

/* The archive control remains fixed to the timber rail. The drawer settles
   inward when open; it never floats away from the chamber furniture. */
.dispatch-archive-trigger {
  transform-origin: top center;
  transition: transform var(--chamber-motion-fast) var(--chamber-motion-ease),
    filter var(--chamber-motion-fast) ease,
    color var(--chamber-motion-fast) ease,
    box-shadow var(--chamber-motion-fast) ease;
}
.dispatch-archive-trigger:not(:disabled):hover,
.dispatch-archive-trigger:not(:disabled):focus-visible {
  filter: brightness(1.08);
}
.dispatch-archive-trigger:not(:disabled):active,
.dispatch-archive-trigger:not(:disabled).is-pressed {
  transform: translateY(1px);
  filter: brightness(.93);
  box-shadow: inset 0 4px 7px rgba(0, 0, 0, .72), 0 3px 7px #000;
}
.dispatch-archive-trigger[aria-expanded="true"] {
  box-shadow: inset 0 3px 6px rgba(0, 0, 0, .62), 0 4px 9px #000;
}

/* Earlier dispatches behave like loose parchment slips inside the drawer. */
.dispatch-archive-post {
  transform-origin: center;
  transition: transform var(--chamber-motion-fast) var(--chamber-motion-ease),
    filter var(--chamber-motion-fast) ease,
    box-shadow var(--chamber-motion-fast) ease;
}
.dispatch-archive-post:hover,
.dispatch-archive-post:focus-visible {
  transform: translateY(-1px) rotate(-.12deg);
  filter: brightness(1.06) saturate(.98);
}
.dispatch-archive-post:active,
.dispatch-archive-post.is-pressed {
  transform: translateY(1px) rotate(-.05deg);
  filter: brightness(.94) saturate(.9);
}
.dispatch-archive-post[aria-pressed="true"] {
  transform: none;
  filter: brightness(1.04) saturate(.98);
  box-shadow: inset 3px 0 0 rgba(7, 95, 58, .86), inset 0 -2px 0 rgba(65, 38, 18, .26);
}

/* Dispatch detail links use the same restrained parchment/iron language. */
.dispatch-detail-page .detail-related-card,
.dispatch-detail-page .detail-pager-link,
.dispatch-detail-page :is(.rune-button, .text-button) {
  transform-origin: center;
  transition: transform var(--chamber-motion-fast) var(--chamber-motion-ease),
    filter var(--chamber-motion-fast) ease,
    border-color var(--chamber-motion-fast) ease,
    box-shadow var(--chamber-motion-fast) ease;
}
.dispatch-detail-page .detail-related-card:hover,
.dispatch-detail-page .detail-related-card:focus-visible,
.dispatch-detail-page .detail-pager-link:hover,
.dispatch-detail-page .detail-pager-link:focus-visible {
  transform: translateY(-1px);
}
.dispatch-detail-page .detail-related-card:active,
.dispatch-detail-page .detail-pager-link:active,
.dispatch-detail-page .rune-button:active,
.dispatch-detail-page .rune-button.is-pressed,
.dispatch-detail-page .text-button:active {
  transform: translateY(1px);
  filter: brightness(.93);
}

/* Keyboard focus remains visible without introducing generic white boxes. */
.dispatch-chamber-page :is(a, button):focus-visible,
.dispatch-detail-page :is(a, button):focus-visible {
  outline: 2px solid var(--chamber-focus-green);
  outline-offset: 2px;
}
.dispatch-wax-seal:focus-visible,
.dispatch-access-button:focus-visible,
.dispatch-reseal:focus-visible,
.dispatch-archive-trigger:focus-visible {
  outline-color: var(--chamber-focus-copper);
}

@media (prefers-reduced-motion: reduce) {
  .dispatch-chamber-topline a,
  .dispatch-wax-seal,
  .dispatch-access-button,
  .dispatch-reseal,
  .dispatch-archive-trigger,
  .dispatch-archive-post,
  .dispatch-detail-page .detail-related-card,
  .dispatch-detail-page .detail-pager-link,
  .dispatch-detail-page :is(.rune-button, .text-button) {
    transition: none !important;
  }
  .dispatch-chamber-topline a:hover,
  .dispatch-chamber-topline a:focus-visible,
  .dispatch-chamber-topline a:active,
  .dispatch-access-button:hover,
  .dispatch-access-button:focus-visible,
  .dispatch-access-button:active,
  .dispatch-reseal:hover,
  .dispatch-reseal:focus-visible,
  .dispatch-reseal:active,
  .dispatch-reseal.is-pressed,
  .dispatch-archive-trigger:hover,
  .dispatch-archive-trigger:focus-visible,
  .dispatch-archive-trigger:active,
  .dispatch-archive-trigger.is-pressed,
  .dispatch-archive-post:hover,
  .dispatch-archive-post:focus-visible,
  .dispatch-archive-post:active,
  .dispatch-archive-post.is-pressed,
  .dispatch-archive-post[aria-pressed="true"],
  .dispatch-detail-page .detail-related-card:hover,
  .dispatch-detail-page .detail-related-card:focus-visible,
  .dispatch-detail-page .detail-related-card:active,
  .dispatch-detail-page .detail-pager-link:hover,
  .dispatch-detail-page .detail-pager-link:focus-visible,
  .dispatch-detail-page .detail-pager-link:active {
    transform: none !important;
  }
  .dispatch-wax-seal:not(:disabled):hover,
  .dispatch-wax-seal:not(:disabled):focus-visible,
  .dispatch-wax-seal:not(:disabled):active,
  .dispatch-wax-seal:not(:disabled).is-pressed {
    transform: translate(-50%, -48%) rotate(-4deg) !important;
  }
}
