/* Keyboard access, motion preferences and safe edges apply throughout the house. */
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
button:focus-visible, a:focus-visible, summary:focus-visible, select:focus-visible, input:focus-visible { outline: 2px solid var(--brand-burgundy); outline-offset: 5px; }
.scene-outside .atelier-header :focus-visible, .scene-rooms .atelier-header :focus-visible, .house-guide :focus-visible, .room-index button:focus-visible { outline-color: var(--brand-light-pink); }
.door-hit:focus-visible, .room-door:focus-visible { outline: 2px solid var(--brand-light-pink); outline-offset: -5px; clip-path: none; }
.skip-link { position: fixed; top: 12px; inset-inline-start: 12px; z-index: 100; transform: translateY(-180%); background: var(--paper); color: var(--wine-deep); padding: 12px 20px; }
.skip-link:focus { transform: none; }
body:has(dialog[open]), .guide-open { overflow: hidden; }
@supports (padding: env(safe-area-inset-bottom)) {
  .house-guide { padding-bottom: max(24px, env(safe-area-inset-bottom)); }
  #bagDialog.wardrobe-dialog { padding-bottom: max(24px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  #sceneVeil { display: none; }
}
