/* Accessibility requirements supplied by the project. Source styling is retained. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 20; inset: 12px auto auto 12px; padding: 12px 18px; background: var(--paper-hi); color: var(--ink); transform: translateY(-180%); font: 500 1rem/1.5 var(--sans); }
.skip-link:focus { transform: none; }
:focus-visible { outline: 2px solid #a52d08; outline-offset: 4px; }
.is-dark :focus-visible { outline-color: #f4f4f1; }
.items { list-style: none; padding: 0; }
.lang button { font-size: 12px; position: relative; color: var(--muted); }
.lang button::before { content: ''; position: absolute; inset: -10px 0; }
.rail a { min-height: 24px; align-items: baseline; }
.rail a span { font-size: 12px; }
.rail a[aria-current="true"] { font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.rail a[aria-current="true"] span { color: #a52d08; }
.kicker, .item.is-active .item-term, .foot-links a:hover, .share-btn:hover, .share-menu a:hover, .share-menu button:hover { color: #a52d08; }
.item:focus-visible { color: var(--ink); outline: 2px solid #a52d08; }
.share-btn, .share-menu a, .share-menu button, .foot-links > li > a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.share-menu { flex-wrap: wrap; justify-content: center; width: max-content; max-width: min(380px, 85vw); white-space: normal; }
.motion-toggle { position: fixed; z-index: 8; bottom: 10px; left: var(--pad); min-height: 44px; padding: 0 10px; border: 1px solid #777773; border-radius: 6px; font: 500 12px/1.5 var(--sans); color: var(--ink); background: var(--paper); cursor: pointer; }
.motion-paused *, .motion-paused *::before, .motion-paused *::after { animation-play-state: paused !important; }
/* Content remains readable if the 3D resource fails or is blocked. */
.js:not(.ready) .hero h1 .ln > span, .js:not(.ready) .lede, .js:not(.ready) .top .lang { opacity: 1; transform: none; }
html:not(.js) .verdict-line { opacity: 1; transform: none; filter: none; }
html:not(.js) .verdict--dark { background: var(--night); }
html:not(.js) .fallback { display: block; opacity: .12; }
@media (max-width: 820px) {
 .top-title { white-space: normal; max-width: 100%; }
 .panel-inner { min-width: 0; width: 100%; }
 .foot-sub { line-height: 1.5; }
 .motion-toggle { bottom: 8px; left: 16px; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { animation: none !important; transition: none !important; }
 .ready .hero h1 .ln > span, .ready .lede, .ready .top .lang { opacity: 1; }
 .verdict-line { transform: none; filter: none; }
}
@media print {
 #stage, .fallback, .curtain, .grain, .rail, .top, .motion-toggle { display: none; }
 .hero, .panel, .chapter, .verdict, .finale, .foot { min-height: 0; padding: 2rem 0; break-inside: avoid; }
 .panel-inner { max-width: none; background: none; box-shadow: none; }
 .js .panel:not(.is-in) .panel-inner > *, .js .finale:not(.is-in) .finale-line { opacity: 1; transform: none; filter: none; }
 .verdict-line, .finale-line { position: static; opacity: 1; color: var(--ink); translate: none; transform: none; filter: none; margin: 0; font-size: 3rem !important; }
}

.poster-capture main, .poster-capture .top, .poster-capture .rail, .poster-capture .curtain, .poster-capture .grain, .poster-capture .motion-toggle, .poster-capture .skip-link { display: none; }
.top-title:focus-visible { opacity: 1; visibility: visible; }
a:focus-visible, .lang button:focus-visible, .item:focus-visible, button:focus-visible { outline: 2px solid #a52d08; outline-offset: 4px; }
.is-dark a:focus-visible, .is-dark .lang button:focus-visible, .is-dark button:focus-visible { outline-color: #f4f4f1; }
.content-fallback .panel-inner > *, .content-fallback .finale-line { opacity: 1 !important; transform: none !important; filter: none !important; }
