/* BRONE — global styles (from the original design helmet block). */

html {
  scroll-behavior: smooth;
  /* No rubber-band at the top and bottom, and nothing can carry a sideways
     flick out of a carousel and into the page. */
  overscroll-behavior: none;
}
body { overflow-x: hidden; }
/* The two type families, as custom properties so a language can swap them.
   Noto SC and JP are served in unicode-range subsets, so a visitor reading
   Latin text downloads neither. */
:root {
  --sans: 'Jost', 'Noto Sans SC', sans-serif;
  --display: 'Cormorant Garamond', 'Noto Serif SC', serif;
}
/* Japanese: SC carries no kana, and the Han both languages share is drawn
   differently in each, so Japanese takes the JP cuts. */
:root[lang="ja"], [lang="ja"] {
  --sans: 'Jost', 'Noto Sans JP', sans-serif;
  --display: 'Cormorant Garamond', 'Noto Serif JP', serif;
}
body { margin: 0; background: #f6f1e8; color: #241b13; font-family: var(--sans); }
a { color: #7d591b; text-decoration: none; }
a:hover { color: #241b13; }
::selection { background: #e4d3ae; }
@keyframes veneerSheetUp { from { transform: translateY(100%); } to { transform: translateY(0); } }
@keyframes fabPulse { 0%, 100% { box-shadow: 0 10px 30px rgba(176,111,30,0.5), 0 0 0 6px rgba(209,163,65,0.16); } 50% { box-shadow: 0 12px 36px rgba(176,111,30,0.6), 0 0 0 12px rgba(209,163,65,0); } }
.dual-range { position: relative; height: 30px; }
.dual-range input[type=range] { position: absolute; left: 0; top: 0; width: 100%; height: 30px; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.dual-range input[type=range]::-webkit-slider-runnable-track { background: transparent; height: 30px; }
.dual-range input[type=range]::-moz-range-track { background: transparent; height: 30px; }
.dual-range input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; margin-top: 6px; width: 18px; height: 18px; border-radius: 50%; background: #d1a341; border: 2px solid #241b13; cursor: pointer; box-shadow: 0 1px 5px rgba(0,0,0,0.45); }
.dual-range input[type=range]::-moz-range-thumb { pointer-events: auto; width: 18px; height: 18px; border-radius: 50%; background: #d1a341; border: 2px solid #241b13; cursor: pointer; box-shadow: 0 1px 5px rgba(0,0,0,0.45); }

/* Keyboard focus. Inline styles cover colour and border all over the template
   but never outline, so without this the default ring disappears against the
   custom backgrounds. :focus-visible keeps it off for mouse clicks. */
:focus-visible {
  outline: 2px solid #d1a341;
  outline-offset: 3px;
  border-radius: 1px;
}
:focus:not(:focus-visible) { outline: none; }

/* Fix 16: honour a reduced-motion preference — the page animates its scrolling,
   the veneer sheet and the gallery hover zoom. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
