/* Appearance and consent share the same quiet, accessible component language. */
:root { --av-link-blue:#0c10d4; }
html[data-theme="dark"] {
  color-scheme:dark;
  --av-text:#f3f3f8;
  --av-muted:#bcbccc;
  --av-subtle:#a5a5bc;
  --av-surface:#10101c;
  --av-surface-soft:#1b1b2c;
  --av-border:#363648;
  --av-border-strong:#81819a;
  --av-focus:#aeb1ff;
  --av-link-blue:#b1b4ff;
  --av-danger:#ff8389;
  --av-success:#7aca97;
}
/* Still artwork has no animation controller to update these surface tokens. */
html[data-theme="dark"] .av-entropy[data-av-still][data-av-surface="light"] { --entropy-surface:var(--av-surface); --entropy-text:var(--av-text); }
html[data-theme="dark"] body,
html[data-theme="dark"] .home-page { background:var(--av-surface); color:var(--av-text); }
html[data-theme="dark"] :is(.home-nav-shell,.home-menu-panel,.lib-top,.lib-panel,.technology-board,.story-challenge,.sv9-audit,.sv9-leadership,.audit-facts-wrap,.audit-delivery,.audit-proof,.working-section) { background:var(--av-surface); border-color:var(--av-border); }
html[data-theme="dark"] :is(.home-work-card,.home-service-card,.company-capabilities,.experience-section,.experience-atlas,.lib-caption,.lib-token-table th,.legal-draft) { background:var(--av-surface-soft); border-color:var(--av-border); }
html[data-theme="dark"] :is(.story-prose,.legal-sections p,.case-section p,.case-section li) { color:var(--av-muted); }
html[data-theme="dark"] :is(.story-prose strong,.about-founder p.large-copy,.finder-controls label,.finder-case > a,.sv9-secondary-route a) { color:var(--av-text); }
html[data-theme="dark"] :is(.home-menu-content,.mega-site,.mega-services,.sv9-index,.contact-layout,.audit-offer) { color:var(--av-text); }
html[data-theme="dark"] :is(.home-menu-content,.home-menu-panel)::before { background:var(--av-border); }
html[data-theme="dark"] .home-hero::after { background:linear-gradient(90deg,#10101c 8%,#10101c 35%,#10101ce0 46%,#10101c00 71%); }
html[data-theme="dark"] .page-hero:not(.page-hero--dark)::after { background:linear-gradient(90deg,#10101c 10%,#10101c 36%,#10101cec 46%,#10101c00 78%); }
html[data-theme="dark"] .home-hero h1 span { background:linear-gradient(110deg,#dadaff,#989dff 65%,#caccff); background-clip:text; -webkit-background-clip:text; color:transparent; }
html[data-theme="dark"] :is(.home-text-link,.back-link,.contact-phone,.step-number,.home-followon-label,.v9-service-number,.v9-row-arrow,.sv9-index-number,.sv9-column-label,.sv9-leadership-rows span,.audit-output-list li > span,.audit-weeks li > span,.delivery-stamp strong,.evidence-stat > strong,.av-link,.av-button--tertiary,.av-button--ghost,.lib-mobile-nav a,.legal-settings-link) { color:var(--av-link-blue); }
html[data-theme="dark"] :is(.page-hero:not(.page-hero--dark),.sv9-offer,.audit-offer,.story-section,.audit-proof,.about-founder,.v9-services,.contact-layout) .home-eyebrow,
html[data-theme="dark"] .page-hero:not(.page-hero--dark) h1 > span { color:var(--av-link-blue); }
html[data-theme="dark"] :is(.home-menu-panel a:hover,.home-menu-panel a[aria-current=page],.sv9-index-links > a:hover,.sv9-index--focused .sv9-index-links > a:first-child strong,.v9-service-row:hover h3,.audit-proof-grid a:hover h3,.audit-proof-grid a:focus-visible h3,.project-card-link:hover .project-read) { color:var(--av-link-blue); }
html[data-theme="dark"] .v9-project-status { color:var(--av-link-blue)!important; }
html[data-theme="dark"] .home-service-card--blue { background:linear-gradient(128deg,#252a9e,#0c10d4 48%,#080858); }
html[data-theme="dark"] .client-logo-grid img { filter:grayscale(1) invert(1); mix-blend-mode:screen; }
html[data-theme="dark"] .av-button--tertiary { border-color:var(--av-link-blue); }
html[data-theme="dark"] :is(.av-button--tertiary,.av-button--ghost):hover { background:#30334e; color:#fff; }
html[data-theme="dark"] :is(.av-input,.av-select,.av-textarea) { background-color:var(--av-surface-soft); color:var(--av-text); }
html[data-theme="dark"] .av-select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23eeeeff' d='M8 11L3 6L3.7 5.3L8 9.6L12.3 5.3L13 6L8 11Z'/%3E%3C/svg%3E"); }
html[data-theme="dark"] .contact-brief :is(.av-select,#enquiry-email) { color:#f3f3f8; }
html[data-theme="dark"] .contact-brief #enquiry-email { background:#30304c; }
html[data-theme="dark"] .lib-sidebar a:is(:hover,[aria-current="location"]) { background:#272742; color:#c5c7ff; }
html[data-theme="dark"] .home-hero-description { color:var(--av-text); }
html[data-theme="dark"] .home-menu .av-menu-icon::before,
html[data-theme="dark"] .home-menu .av-menu-icon::after { background:var(--av-text); }
html[data-theme="dark"] .legal-draft { color:var(--av-text); }
html[data-theme="dark"] :is(.principle-grid article,.story-outcomes,.case-service-link,.v9-service-entries,.v9-service-row,.legal-sections section,.more-work a) { border-color:var(--av-border); }

.footer-preferences { display:flex; align-items:center; gap:1rem 1.5rem; flex-wrap:wrap; }
.footer-preferences > label { display:flex; align-items:center; gap:.75rem; }
.footer-preferences select { color:#e7e7f2; background:#191929; border:1px solid #54546c; border-radius:.25rem; min-height:2.75rem; padding:.5rem 2rem .5rem .75rem; }
.footer-preferences button,.footer-cookie-settings { color:inherit; background:transparent; border:1px solid #54546c; border-radius:.25rem; padding:.6rem .9rem; min-height:2.75rem; font:inherit; }
.footer-preferences button:hover,.footer-cookie-settings:hover { border-color:#b1b4ff; color:#fff; }
.footer-preferences-note { display:block; width:100%; color:#a9a9be; font-size:.75rem; margin-top:.75rem; }

.privacy-banner { position:fixed; z-index:120; inset:auto 1.25rem 1.25rem auto; width:min(40rem,calc(100vw - 2.5rem)); padding:1.75rem; border:1px solid var(--av-border-strong); border-radius:.85rem; background:var(--av-surface); color:var(--av-text); box-shadow:0 1rem 5rem #01011333; }
.privacy-banner .home-eyebrow { font-size:.75rem; margin-bottom:.7rem; color:var(--av-muted); }
.privacy-banner h2 { font:500 1.5rem/1.15 var(--av-heading); letter-spacing:-.04em; margin:0 0 .75rem; }
.privacy-banner-copy > p:not(.home-eyebrow) { font-size:.9375rem; line-height:1.5; max-width:34rem; color:var(--av-muted); }
.privacy-banner-copy > a { display:inline-block; margin-top:.75rem; font-size:.8125rem; color:var(--av-text); text-underline-offset:.25em; }
.privacy-actions,.privacy-dialog-actions { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.25rem; }
.privacy-choice,.privacy-settings-button { display:inline-flex; align-items:center; justify-content:center; min-height:2.875rem; padding:.7rem 1rem; border:1px solid var(--av-text); border-radius:.25rem; font:500 .875rem/1.3 var(--av-body); background:var(--av-text); color:var(--av-surface); }
.privacy-actions .privacy-choice { flex:1 1 8rem; }
.privacy-choice:hover { background:var(--av-surface); color:var(--av-text); }
.privacy-settings-button { color:var(--av-text); background:transparent; border-color:var(--av-border-strong); }
.privacy-settings-button:hover { border-color:var(--av-text); }
.privacy-dialog { box-sizing:border-box; width:min(46rem,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); margin:auto; padding:clamp(1.5rem,4vw,3rem); border:1px solid var(--av-border); border-radius:1rem; background:var(--av-surface); color:var(--av-text); box-shadow:0 2rem 6rem #0005; overflow:auto; overscroll-behavior:contain; }
.privacy-dialog::backdrop { background:#01011380; backdrop-filter:blur(4px); }
.privacy-dialog-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.5rem 1.5rem; margin-bottom:2rem; }
.privacy-dialog-heading .home-eyebrow { font-size:.75rem; color:var(--av-muted); }
.privacy-close { display:flex; flex-shrink:0; white-space:nowrap; margin-left:auto; align-items:center; gap:.6rem; color:var(--av-text); background:transparent; border:0; padding:.5rem 0 .5rem .5rem; min-height:2.75rem; font-size:.875rem; }
.privacy-close .av-icon { width:1.25rem; height:1.25rem; }
.privacy-dialog h2 { font:500 clamp(1.8rem,5vw,2.6rem)/1.12 var(--av-heading); letter-spacing:-.05em; margin:0 0 1rem; }
.privacy-dialog > p { color:var(--av-muted); font-size:.9375rem; line-height:1.55; }
.privacy-categories { margin-top:2rem; }
.privacy-category { display:grid; grid-template-columns:1fr auto; align-items:start; gap:1.5rem; padding:1.5rem 0; border-top:1px solid var(--av-border); }
.privacy-category h3,.privacy-category label { display:block; font:500 1.1rem/1.3 var(--av-body); letter-spacing:-.02em; margin:0 0 .65rem; }
.privacy-category p { color:var(--av-muted); font-size:.875rem; line-height:1.5; max-width:29rem; }
.privacy-category a { display:inline-block; margin-top:.6rem; font-size:.8125rem; text-underline-offset:.25em; }
.privacy-state,.privacy-category-control > span { font-size:.75rem; color:var(--av-muted); }
.privacy-state { border:1px solid var(--av-border); border-radius:.25rem; padding:.3rem .5rem; white-space:nowrap; }
.privacy-category-control { display:flex; align-items:flex-end; flex-direction:column; gap:.5rem; }
.privacy-category-control input { width:1.4rem; height:1.4rem; accent-color:var(--av-blue); margin:0; }
.privacy-category-control input:disabled { opacity:.5; }
.privacy-dialog .privacy-future { padding:1rem 0; border-top:1px solid var(--av-border); font-size:.8125rem; }
.privacy-dialog .privacy-store-note { font-size:.75rem; }
.privacy-dialog .privacy-store-note a { text-underline-offset:.2em; }
.privacy-dialog-actions .privacy-choice { flex:1 1 8rem; }
.privacy-status { position:fixed; bottom:1.25rem; left:50%; transform:translateX(-50%); z-index:140; width:max-content; max-width:calc(100% - 2rem); padding:.75rem 1rem; background:var(--av-surface); color:var(--av-text); border:1px solid var(--av-border-strong); border-radius:.25rem; font-size:.8125rem; box-shadow:0 .25rem 1.5rem #0002; opacity:0; pointer-events:none; }
.privacy-status.is-visible { opacity:1; }
.legal-settings-link { padding:0; background:none; border:0; text-decoration:underline; text-underline-offset:.25em; font:inherit; color:inherit; }
.legal-sections code { overflow-wrap:anywhere; font-size:.875em; }
@media(max-width:48rem) {
 html[data-theme="dark"] .home-hero::after { background:linear-gradient(#10101c 10%,#10101c 50%,#10101caa 62%,transparent 88%); }
 html[data-theme="dark"] .page-hero:not(.page-hero--dark)::after { background:linear-gradient(#10101c 10%,#10101c 48%,#10101ca0 66%,transparent 90%); }
 .privacy-banner { inset:auto .75rem .75rem; width:auto; padding:1.25rem; max-height:calc(100dvh - 1.5rem); overflow:auto; }
 .privacy-banner h2 { font-size:1.35rem; }
 .privacy-actions .privacy-settings-button { flex:1 1 8rem; }
 .privacy-dialog { padding:clamp(16px,4vw,24px); }
 .privacy-dialog-heading { margin-bottom:1.25rem; }
 .privacy-category { gap:1rem; }
 .privacy-state { max-width:7rem; white-space:normal; text-align:right; }
 .footer-preferences { align-items:flex-start; gap:.75rem; }
}
@media(forced-colors:active) {
 .privacy-choice,.privacy-settings-button,.privacy-state { border:1px solid ButtonText; }
 .privacy-dialog,.privacy-banner { border:1px solid CanvasText; }
}
@media print { .privacy-banner,.privacy-dialog,.privacy-status,.footer-preferences { display:none!important; } }
/* Shared footer controls on authored library and example pages. */
.footer-preferences .theme-control { display:flex; align-items:center; gap:.65rem; font-size:.8125rem; }
.footer-preferences .av-motion-toggle { position:static; border:1px solid #54546c; color:inherit; background:transparent; transform:none; min-height:2.75rem; }
.preferences-footer { display:block; padding:2rem var(--av-page-gutter); background:#010113; color:#dedeea; border-top:1px solid #39394b; }
.preferences-footer > div:first-child,.auxiliary-legal { display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.5rem; margin-bottom:1.5rem; font-size:.875rem; }
.preferences-footer > a { display:inline-block; margin-left:1.5rem; }
.preferences-footer > .footer-preferences { margin-top:1.5rem; }
.auxiliary-legal { margin-top:1.5rem; }
html[data-theme="dark"] .home-eyebrow { color:var(--av-link-blue); }
html[data-theme="dark"] :is(.studio-header,.studio-workspace,.av-header-main,.av-menu-panel,.av-card,.av-dialog) { background:var(--av-surface); color:var(--av-text); border-color:var(--av-border); }
html[data-theme="dark"] :is(.example-banner,.example-intro > .av-container > .av-header .av-header-main) { background:var(--av-surface-soft); color:var(--av-muted); }
html[data-theme="dark"] .example-banner a { color:var(--av-link-blue); }
html[data-theme="dark"] .studio-shapes label:has(input:checked) { background:#272742; color:var(--av-link-blue); border-color:var(--av-link-blue); }
html[data-theme="dark"] :is(.studio-shapes label,.studio-workspace,.studio-reduced,.studio-implementation,.studio-header) { border-color:var(--av-border); }
html[data-theme="dark"] :is(.av-menu-icon::before,.av-menu-icon::after) { background:var(--av-text); }
html[data-theme="dark"] .av-inverse .av-menu-icon::before,
html[data-theme="dark"] .av-inverse .av-menu-icon::after { background:#fff; }

.footer-preference-note{flex-basis:100%;font-size:.75rem;color:var(--av-text-secondary,#b9b9c4)}
