/* Preference modes are opt-in; the default page keeps its established visual system. */
.a11y-launcher[hidden]{display:none}
.a11y-launcher{position:fixed;left:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:81;display:grid;place-items:center;width:52px;height:52px;border:1px solid #b3ba9d;border-radius:50%;background:#2e3221;color:#e6e6e6;box-shadow:0 5px 20px #0002;cursor:pointer}
.a11y-launcher:hover{background:#687347}
.a11y-launcher svg{width:27px;height:27px}
.a11y-launcher:focus-visible,.a11y-dialog :focus-visible{outline:3px solid #e4a729;outline-offset:4px}
.a11y-dialog-open{overflow:hidden}
.a11y-dialog:not([open]){display:none}
.a11y-dialog{width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:clamp(22px,4vw,34px);border:1px solid #b3ba9d;border-radius:30px;background:#e6e6e6;color:#2e3221;box-sizing:border-box;overflow:auto;overscroll-behavior:contain;font-family:var(--body);font-size:calc(14px * var(--a11y-scale,1));line-height:1.65;box-shadow:0 25px 80px #0004}
.a11y-dialog::backdrop{background:#18201199}
.a11y-dialog .a11y-panel-header{display:flex;align-items:start;gap:18px;justify-content:space-between;margin-bottom:18px}
.a11y-dialog h2{font:650 calc(25px * var(--a11y-scale,1))/1.2 var(--head);letter-spacing:-.03em;margin:0;overflow-wrap:anywhere}
.a11y-dialog p{font-size:inherit;line-height:1.65;margin:0 0 18px}
.a11y-dialog .a11y-close{flex:0 0 44px;display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:1px solid #687347;border-radius:50%;background:transparent;color:#2e3221;cursor:pointer;font:inherit}
.a11y-close svg{width:20px;height:20px}
.a11y-dialog fieldset{min-width:0;margin:0 0 20px;padding:0;border:0}
.a11y-dialog legend{font-weight:650;line-height:1.4;margin-bottom:12px;padding:0}
.a11y-text-options{display:flex;flex-wrap:wrap;gap:10px}
.a11y-dialog label{font-size:inherit;line-height:1.5;cursor:pointer;min-height:44px}
.a11y-text-options label{flex:1 1 calc(50% - 10px);display:flex;align-items:center;justify-content:center;gap:9px;padding:10px 8px;border:1px solid #687347;border-radius:18px}
.a11y-text-options label:has(input:checked){background:#2e3221;color:#e6e6e6}
.a11y-dialog input{flex-shrink:0;accent-color:#687347;width:20px;height:20px;margin:0}
.a11y-toggle{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #2e322130}
.a11y-toggle span{flex:1;min-width:0}
.a11y-dialog .a11y-system-note{padding:12px;border:1px solid #687347;border-radius:12px;font-size:calc(12px * var(--a11y-scale,1))}
.a11y-dialog .a11y-reset{display:block;width:100%;min-height:48px;margin:20px 0;padding:12px 18px;border:1px solid #2e3221;border-radius:30px;background:#2e3221;color:#e6e6e6;font:600 1em/1.4 var(--body);cursor:pointer}
.a11y-dialog .a11y-note,.a11y-dialog .a11y-statement{font-size:calc(12px * var(--a11y-scale,1));line-height:1.6}
.a11y-dialog .a11y-statement{margin-bottom:0}
.a11y-dialog a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.a11y-launcher{left:16px;bottom:max(16px,env(safe-area-inset-bottom));width:48px;height:48px}}

/* A visible stop control also stops JS/SMIL motion through siteAccessibility.motion. */
html.a11y-no-motion,html.a11y-no-motion *,html.a11y-no-motion *::before,html.a11y-no-motion *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
html.a11y-no-motion .context-cursor,html.a11y-no-motion .project-edge-cursor{display:none!important}
html.a11y-no-motion .has-edge-cursor{cursor:auto!important}
html.a11y-no-motion .title-reveal.is-entering,html.a11y-no-motion .reveal.seen{transform:none!important;opacity:1!important}
html.a11y-no-motion .about-card-stack.is-stacked .about-card{position:relative;top:auto;transform:none;min-height:0;margin-bottom:24px}
html.a11y-no-motion .about-card-stack.is-stacked{padding-bottom:0}
html.a11y-no-motion .methodology.is-enhanced .method-floating-phase{opacity:1!important;transform:none!important;pointer-events:auto!important}
html.a11y-no-motion .methodology.is-enhanced .method-phase-row{min-height:0;display:block;padding-block:16px}
html.a11y-no-motion .methodology.is-enhanced .method-floating-phase::before{display:none}
html.a11y-no-motion .method-wheel-panel{position:relative;top:auto}

/* Larger text reflows complex presentation layouts into an ordinary reading order. */
html.a11y-text-enlarged :is(main p,main h1,main h2,main h3,main h4,main a,footer a,footer span){overflow-wrap:anywhere}
html.a11y-text-enlarged :is(.hero-main,.about-grid,.expertise-grid,.career-layout,.learning-cols,.journal-feature,.professional-links,.legal-layout,.method-journey){grid-template-columns:minmax(0,1fr)!important}
html.a11y-text-enlarged :is(.about-side,.career-side,.timeline-side,.expertise-intro,.legal-index,.method-wheel-panel){position:relative!important;top:auto!important;max-height:none!important}
html.a11y-text-enlarged .method-wheel-panel{display:none}
html.a11y-text-enlarged .nav{height:auto;min-height:85px;flex-wrap:wrap;padding-block:12px}
html.a11y-text-enlarged .nav-links{flex-wrap:wrap;max-width:100%}
html.a11y-text-enlarged .nav-links a{white-space:normal;overflow-wrap:anywhere}
html.a11y-text-enlarged .project-story{height:auto!important;min-height:0!important}
html.a11y-text-enlarged .project-story-copy{padding-block:40px}
html.a11y-text-enlarged .project-story-copy h3{white-space:normal!important}
html.a11y-text-enlarged .timeline-stop{min-width:180px}
html.a11y-text-enlarged .timeline-viewport{overflow-x:auto}
html.a11y-text-enlarged :is(.timeline-label,.timeline-date){display:block;overflow:visible;max-height:none;white-space:normal;-webkit-line-clamp:unset;line-clamp:unset}
html.a11y-text-enlarged .methodology.is-enhanced .method-floating-phase{opacity:1!important;transform:none!important;pointer-events:auto!important}
html.a11y-text-enlarged .methodology.is-enhanced .method-phase-row{min-height:0;display:block;padding-block:16px}
html.a11y-text-enlarged .methodology.is-enhanced .method-floating-phase::before{display:none}
html.a11y-text-enlarged .about-card-stack.is-stacked .about-card{position:relative;top:auto;transform:none;min-height:0;margin-bottom:24px}
html.a11y-text-enlarged .about-card-stack.is-stacked{padding-bottom:0}
html.a11y-text-enlarged .footer-strip{display:flex;flex-wrap:wrap;justify-content:center}
html.a11y-text-enlarged .footer-meta{width:100%;text-align:center}
html.a11y-text-enlarged .journal-card h3{white-space:normal;overflow-wrap:anywhere}
html.a11y-text-enlarged .journal-scroll-panel{position:relative!important;top:auto!important}
html.a11y-text-enlarged .journal-scroll-story{height:auto!important}

/* A deliberately simple contrast theme, preserving images and logo proportions. */
html.a11y-high-contrast body,html.a11y-high-contrast body :where(header,nav,main,footer,section,article,aside,div,figure,figcaption,p,h1,h2,h3,h4,h5,h6,a,button,summary,details,span,strong,small,em,table,thead,tbody,tr,td,th,label,legend,fieldset,dialog){background-color:#fff!important;color:#182011!important;border-color:#182011!important;box-shadow:none!important;text-shadow:none!important}
html.a11y-high-contrast :is(p,small,span,figcaption){opacity:1!important}
html.a11y-high-contrast .wordmark-logo{background-color:#182011!important}
html.a11y-high-contrast .footer-brand img{filter:brightness(0)}
html.a11y-high-contrast .a11y-text-options label:has(input:checked){border-width:3px}
html.a11y-high-contrast input{accent-color:#182011}
html.a11y-high-contrast .nav-scroll-capsule{outline:2px solid #182011;outline-offset:2px}
html.a11y-links body a{text-decoration:underline!important;text-underline-offset:.2em;text-decoration-thickness:2px}
html.a11y-focus :focus-visible{outline:3px solid #2e3221!important;outline-offset:3px!important;box-shadow:0 0 0 7px #e4a729!important}
@media(forced-colors:active){.a11y-launcher,.a11y-dialog,.a11y-dialog button{border:1px solid ButtonText}.a11y-dialog::backdrop{background:Canvas}.a11y-dialog input{forced-color-adjust:auto}}
