body { margin: 0; background: var(--surface-page); }
  /* Skip link — visible on keyboard focus (WCAG 2.4.1 Bypass Blocks) */
  .rs-skip { position: absolute; left: 12px; top: -48px; z-index: 10000; background: var(--teal-900); color: var(--white); padding: 10px 18px; border-radius: var(--radius-md); font-family: var(--font-body); font-weight: 700; text-decoration: none; transition: top .18s var(--ease-out); }
  .rs-skip:focus { top: 12px; outline: 3px solid var(--amber-400); outline-offset: 2px; }
  /* Visible keyboard focus ring across all interactive elements (WCAG 2.4.7) */
  a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
    outline: 3px solid var(--amber-500); outline-offset: 2px; border-radius: 3px;
  }
  .rs-section { padding: var(--pad-section-y) var(--pad-section-x); }
  .rs-wrap { max-width: var(--container-max); margin: 0 auto; }
  .rs-wrap-wide { max-width: var(--container-wide); margin: 0 auto; }
  .rs-eyebrow { font-family: var(--font-body); font-weight: 700; font-size: var(--text-sm); letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--teal-700); margin: 0 0 var(--space-3); }
  [data-lucide] { width: 1em; height: 1em; }
  /* Scroll-reveal + entrance motion (gentle, reassuring) */
  .rs-reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--ease-out), transform .7s var(--ease-out); }
  .rs-reveal.is-visible { opacity: 1; transform: none; }
  .rs-reveal.rs-reveal-d1 { transition-delay: .08s; }
  .rs-reveal.rs-reveal-d2 { transition-delay: .16s; }
  .rs-reveal.rs-reveal-d3 { transition-delay: .24s; }
  @keyframes rsHeroUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
  .rs-hero-in > * { animation: rsHeroUp .8s var(--ease-out) both; }
  .rs-hero-in > *:nth-child(2) { animation-delay: .1s; }
  .rs-hero-in > *:nth-child(3) { animation-delay: .2s; }
  .rs-hero-in > *:nth-child(4) { animation-delay: .3s; }
  /* Slow Ken Burns drift on hero imagery */
  @keyframes rsKen { from { transform: scale(1.02); } to { transform: scale(1.12); } }
  .rs-kenburns { animation: rsKen 22s var(--ease-soft) forwards; }
  /* Hero slideshow: crossfade with slow drift */
  .rs-hero-slide { opacity: 0; transform: scale(1.04); transition: opacity 1.4s var(--ease-soft), transform 7s linear; }
  .rs-hero-slide.is-active { opacity: 1; transform: scale(1.1); }
  @media (max-width: 760px) { .rs-hero-dots { left: var(--pad-section-x); right: auto !important; bottom: var(--space-4) !important; } }
  @media (prefers-reduced-motion: reduce) { .rs-hero-slide { transition: none !important; transform: none !important; } }
  /* Home photo carousel: seamless infinite scroll, pauses on hover/focus */
  @keyframes rsReel { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  .rs-reel-track { animation: rsReel 90s linear infinite; }
  .rs-reel:hover .rs-reel-track, .rs-reel:focus-within .rs-reel-track { animation-play-state: paused; }
  .rs-reel::before, .rs-reel::after { content: ""; position: absolute; top: 0; bottom: 0; width: 80px; z-index: 1; pointer-events: none; }
  .rs-reel::before { left: 0; background: linear-gradient(90deg, var(--surface-page), transparent); }
  .rs-reel::after { right: 0; background: linear-gradient(-90deg, var(--surface-page), transparent); }
  @media (max-width: 640px) { .rs-reel-track img { height: 210px !important; } .rs-reel::before, .rs-reel::after { width: 32px; } }
  @media (prefers-reduced-motion: reduce) { .rs-reel { overflow-x: auto; } .rs-reel-track { animation: none !important; } }
  /* Scroll cue */
  @keyframes rsBob { 0%,100% { transform: translateY(0); opacity: .85; } 50% { transform: translateY(7px); opacity: 1; } }
  .rs-scrollcue { animation: rsBob 2.2s var(--ease-soft) infinite; }
  @media (prefers-reduced-motion: reduce) {
    .rs-reveal { opacity: 1 !important; transform: none !important; }
    .rs-hero-in > * { animation: none !important; }
    .rs-kenburns { animation: none !important; }
    .rs-scrollcue { animation: none !important; }
  }
  /* Two-column sections stack on small screens (mobile-first) */
  @media (max-width: 820px){ .rs-2col{ grid-template-columns: 1fr !important; } }
  @media (max-width: 760px){ .rs-section{ padding: var(--space-9) var(--space-5); } }

  /* Subtle paper grain — echoes the hand-drawn, coloured-pencil logo.
     Fixed overlay, very low opacity, never intercepts clicks. */
  body::after {
    content: "";
    position: fixed; inset: 0; z-index: 9999; pointer-events: none;
    opacity: 0.045; mix-blend-mode: multiply;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
  }

.rs-nav-mobile[hidden]{display:none!important}
