/* Accessibility layer: skip link, preferences widget, and the preference modes it toggles on <html>. */
.skip { position: fixed; top: 8px; left: 8px; z-index: 500; background: var(--ink); color: #fff; padding: .7rem 1.1rem; border-radius: 999px; transform: translateY(-300%); transition: transform .2s; text-decoration: none; font-size: 1rem; }
.skip:focus { transform: none; outline: 3px solid #FFEB3B; }
.a11y-btn { position: fixed; left: 1rem; bottom: 1rem; z-index: 150; width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--blue); color: #fff; display: grid; place-items: center; cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,.25); }
.a11y-btn svg { width: 26px; height: 26px; }
.a11y-btn:focus-visible { outline: 3px solid #FFEB3B; outline-offset: 2px; }
.a11y-panel { position: fixed; left: 1rem; bottom: 4.6rem; z-index: 150; width: min(320px, calc(100vw - 2rem)); background: var(--paper); color: var(--ink); border: 1px solid var(--line); border-radius: 16px; padding: 1rem; box-shadow: 0 20px 50px rgba(0,0,0,.25); font-family: var(--f-sans); }
.a11y-panel h2 { margin: 0 0 .7rem; font-size: 1rem; font-weight: 600; }
.a11y-panel .row { display: flex; flex-direction: column; gap: .4rem; }
.a11y-panel .row button { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: .65rem .85rem; border-radius: 10px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); cursor: pointer; font-size: .95rem; text-align: left; }
.a11y-panel .row button[aria-pressed="true"] { background: var(--ink); color: #fff; border-color: var(--ink); }
.a11y-panel .row button[aria-pressed="true"]::after { content: "✓"; }
.a11y-panel .foot { margin-top: .9rem; display: flex; justify-content: space-between; align-items: center; font-size: .85rem; gap: 1rem; }
.a11y-panel .foot a { color: inherit; }
.a11y-panel .link { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; font-size: .85rem; }
.a11y-panel button:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }

/* preference modes */
html.a11y-text { font-size: 118%; }
html.a11y-links a { text-decoration: underline !important; text-underline-offset: 2px; }
html.a11y-font body, html.a11y-font .sc, html.a11y-font .desktop, html.a11y-font .sc h2, html.a11y-font .sc h3, html.a11y-font .sc-name { font-family: Arial, Helvetica, sans-serif !important; }
html.a11y-contrast body, html.a11y-contrast .hero, html.a11y-contrast .intro, html.a11y-contrast .work, html.a11y-contrast .slides, html.a11y-contrast .curve, html.a11y-contrast .pill-btn, html.a11y-contrast .a11y-panel, html.a11y-contrast .a11y-panel .row button { background: #000 !important; color: #fff !important; }
html.a11y-contrast .hero::after { display: none; }
html.a11y-contrast .eyebrow, html.a11y-contrast .traits p, html.a11y-contrast .intro-side p, html.a11y-contrast .foot-bottom .eyebrow { color: #fff !important; }
html.a11y-contrast .work-list, html.a11y-contrast .work-row, html.a11y-contrast .traits, html.a11y-contrast .pill-btn, html.a11y-contrast .pill, html.a11y-contrast .foot-line, html.a11y-contrast .a11y-panel, html.a11y-contrast .a11y-panel .row button { border-color: #fff !important; }
html.a11y-contrast .round-btn, html.a11y-contrast .fab, html.a11y-contrast .a11y-btn, html.a11y-contrast .a11y-panel .row button[aria-pressed="true"] { background: #FFEB3B !important; color: #000 !important; }
html.a11y-contrast .fab .burger i { background: #000; }
html.a11y-contrast .tile.stat { background: #000 !important; color: #fff !important; outline: 1px solid #fff; }
html.a11y-contrast a:focus-visible, html.a11y-contrast button:focus-visible { outline: 3px solid #FFEB3B !important; }
html.a11y-contrast .hero-loc { outline: 1px solid #fff; }
html.a11y-still *, html.a11y-still *::before, html.a11y-still *::after { animation: none !important; transition: none !important; }
html.a11y-still .marquee-track { transform: none !important; }
