/* Impeccable refinement of the accepted keep. Artwork and typefaces stay intact. */
html { scroll-padding-block: calc(var(--nav-h) + 16px) calc(var(--bar-h) + 16px); }
@media (max-width: 860px) { html { scroll-padding-top: calc(var(--top-h) + 16px); } }
body { --keep-target: 44px; }
body ::selection { background: var(--w-ink, var(--ink)); color: var(--w-bg, var(--paper)); }
body :where(input, textarea) { caret-color: currentColor; }

/* The list items were only one text line tall inside the fixed header. */
.topbar > nav, .topbar .tb-nav li { display: flex; }
.topbar .tb-nav { height: 100%; }
.topbar .tb-nav a { min-height: 0; }
.topbar a:focus-visible, .topbar button:focus-visible {
  outline: 3px double var(--paper); outline-offset: -4px;
  box-shadow: inset 0 0 0 6px var(--ink);
}
.menu a:focus-visible, .menu button:focus-visible { outline-offset: -4px; }
.menu a[aria-current]:focus-visible { outline-color: var(--paper); }
.skip { position: fixed; }
.skip:focus { top: calc(var(--nav-h) + 8px); }

/* Shared controls keep comfortable targets without enlarging their lettering. */
body :where(.btn, .wbtn, .keep-back) { min-height: var(--keep-target); }
.keep-back { margin-top: 8px; }
body .foot .back, body .wfoot .back { gap: 4px 20px; }
.foot .back a, .wfoot .back a, .keep-room-footer p a {
  display: inline-flex; align-items: center; min-height: var(--keep-target);
  text-underline-offset: 4px;
}
.statusbar [data-sb-live]:empty { display: none; }

/* .feat is also an unrelated feature-grid name in the inherited stylesheet. */
.register .row-title .status-mark.feat {
  display: inline-block; width: auto; grid-template-columns: none; gap: 0;
  margin: 4px 0 4px 8px; padding: 3px 6px; line-height: 1.2;
}
body.page-work.work .register > .hidden { display: none; }
.keep-empty { padding: 28px 0; border-bottom: var(--rule); }
.keep-empty[hidden] { display: none; }
.keep-empty p { margin: 0 0 16px; max-width: 48ch; }

/* Honor an explicit reveal toggle even while hover or focus is still present. */
.keep-photo[data-reveal-manual="true"]:not(.clear) > .keep-dither { opacity: 1; }
.pv[data-reveal-manual="true"]:not(.clear) img.colour { opacity: 0; }
.keep-photo[role="button"], .pv[role="button"] { cursor: pointer; }
body.world main :focus-visible { outline-color: var(--w-ink); }
body.world main .pager a:focus-visible { outline-color: var(--w-bg); outline-offset: -4px; }
body.page-mega .obj-switch button:focus-visible,
body.page-mega .tabbar button:focus-visible { outline-color: currentColor; }

@media (max-width: 860px) {
  body .worlds button, body .cmp-dates button,
  body.page-mega .obj-switch button, body.page-mega .parts button,
  body.page-tipper .angles button { min-height: var(--keep-target); }
  .keep-heading-copy h1 { text-wrap: balance; }
  .tools .chips { gap: 6px; }
  .keep-heading-copy .kicker { line-height: 1.8; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .keep-color, .keep-dither, .keep-sticker-dither { transition: none !important; }
}
