:root{--access-font-scale:1}
html{font-size:calc(16px * var(--access-font-scale));overflow-wrap:anywhere}

/* Tastatur-Fokus bleibt auf allen interaktiven Elementen sichtbar. */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid var(--ice,#7dcfff)!important;
  outline-offset:3px!important;
}

.accessibility-widget{
  position:fixed;
  z-index:1000000;
  top:max(calc(var(--header,88px) + 12px),calc(env(safe-area-inset-top) + 62px));
  right:max(14px,env(safe-area-inset-right));
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  font-size:16px;
  line-height:1.4;
}
body.admin-bar .accessibility-widget{top:max(calc(var(--header,88px) + 44px),calc(env(safe-area-inset-top) + 94px))}
.accessibility-toggle{
  width:44px;height:44px;border:1px solid rgba(125,207,255,.48);border-radius:50%;
  background:rgba(6,14,21,.94);color:#dff7ff;box-shadow:0 12px 38px rgba(0,0,0,.42);
  font-size:12px;font-weight:900;letter-spacing:-.04em;cursor:pointer;backdrop-filter:blur(16px);
}
.accessibility-toggle:hover,.accessibility-toggle:focus-visible{border-color:#7dcfff;box-shadow:0 0 0 3px rgba(125,207,255,.12),0 12px 38px rgba(0,0,0,.42)}
.accessibility-widget.is-open .accessibility-toggle{border-color:var(--gold2,#f3cd7f);color:var(--gold2,#f3cd7f)}
.accessibility-panel{
  position:absolute;right:0;top:54px;width:min(340px,calc(100vw - 28px));max-height:min(78vh,720px);overflow:auto;
  padding:15px;border:1px solid rgba(125,207,255,.30);border-radius:10px;
  background:rgba(7,15,23,.985);color:#edf5f8;box-shadow:0 28px 90px rgba(0,0,0,.58);
  display:none;overscroll-behavior:contain;
}
.accessibility-widget.is-open .accessibility-panel{display:block}
.accessibility-panel__head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;border-bottom:1px solid rgba(125,207,255,.16)}
.accessibility-panel__head strong{font-size:14px;letter-spacing:.01em}
.accessibility-panel__head button{width:32px;height:32px;border:0;border-radius:5px;background:transparent;color:#9db1bd;font-size:22px;line-height:1;cursor:pointer}
.accessibility-panel__head button:hover{background:rgba(125,207,255,.08);color:#fff}
.accessibility-group-label{display:block;margin-top:13px;color:#7dcfff;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.accessibility-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.accessibility-row--3{grid-template-columns:repeat(3,1fr)}
.accessibility-row--single{grid-template-columns:1fr}
.accessibility-panel button[data-access-action]{
  min-height:40px;padding:8px;border:1px solid #29485a;border-radius:5px;background:#0b1a24;color:#dceef5;
  font-size:11px;font-weight:700;cursor:pointer;
}
.accessibility-panel button[data-access-action]:hover,.accessibility-panel button[data-access-action].is-active{
  border-color:#7dcfff;background:#123247;color:#fff;
}
.accessibility-panel button[data-access-action].is-active{box-shadow:inset 0 0 0 1px rgba(125,207,255,.18)}
.accessibility-panel button[data-access-action]:disabled,.accessibility-panel select:disabled{opacity:.45;cursor:not-allowed}
.accessibility-select-label,.accessibility-range{display:grid;gap:6px;margin-top:9px;color:#9fb4bf;font-size:10px}
.accessibility-select-label select{
  width:100%;min-height:39px;border:1px solid #29485a;border-radius:5px;background:#0b1a24;color:#eaf7fb;padding:7px 9px;font-size:11px;
}
.accessibility-range>span{display:flex;justify-content:space-between;gap:12px}
.accessibility-range input{width:100%;accent-color:#7dcfff}
.accessibility-range output{color:#dff7ff;font-variant-numeric:tabular-nums;font-weight:800}
.accessibility-note{margin:10px 0 0;padding-top:10px;border-top:1px solid rgba(125,207,255,.12);color:#8fa2ae;font-size:10px;line-height:1.5}
.accessibility-reading{outline:3px solid rgba(125,207,255,.62)!important;outline-offset:5px!important;background:rgba(125,207,255,.09)!important;border-radius:2px}
.accessibility-speech-state{display:inline-flex;align-items:center;gap:6px;color:#9fb4bf}
.accessibility-speech-state::before{content:"";width:6px;height:6px;border-radius:50%;background:#60717c}
.accessibility-speech-state.is-reading::before{background:#74e3a4;box-shadow:0 0 10px rgba(116,227,164,.7)}

/* Hoher Kontrast */
html.access-high-contrast{--text:#fff;--muted:#edf3f6;--dim:#d3dde3;--line:rgba(255,255,255,.46);--lineGold:rgba(243,205,127,.72)}
html.access-high-contrast .site-header,html.access-high-contrast .software-card,html.access-high-contrast .book-card,html.access-high-contrast .contact-form,html.access-high-contrast .contact__panel{border-color:rgba(255,255,255,.40)}
html.access-high-contrast .uj-nav-list a,html.access-high-contrast .hero__lead,html.access-high-contrast .section-heading>p:last-child,html.access-high-contrast .entry-content{color:var(--text)}
html.access-high-contrast a{text-decoration-thickness:2px;text-underline-offset:3px}
html[data-theme="light"].access-high-contrast{--text:#000;--muted:#111;--dim:#262626;--line:rgba(0,0,0,.48);--lineGold:rgba(87,53,0,.78)}
html[data-theme="light"].access-high-contrast .site-header,html[data-theme="light"].access-high-contrast .software-card,html[data-theme="light"].access-high-contrast .book-card,html[data-theme="light"].access-high-contrast .contact-form,html[data-theme="light"].access-high-contrast .contact__panel{border-color:rgba(0,0,0,.42)}

/* Animationen reduzieren – zusätzlich zu prefers-reduced-motion. */
html.access-reduce-motion{scroll-behavior:auto!important}
html.access-reduce-motion *,html.access-reduce-motion *::before,html.access-reduce-motion *::after{
  animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;
}
html.access-reduce-motion .pointer-aura{display:none!important}
html.access-reduce-motion .reveal{opacity:1!important;transform:none!important}

/* Vollständiges helles Frontend-Theme. */
html[data-theme="light"]{
  color-scheme:light;
  --black:#f4f6f8;--black2:#e9edf1;--surface:#fff;--surface2:#eef2f5;
  --text:#14202a;--muted:#53636e;--dim:#697984;--gold:#9a6b1e;--gold2:#6d4a10;
  --ice:#006c9e;--violet:#594db0;--line:rgba(16,39,52,.18);--lineGold:rgba(144,96,21,.36);
}
html[data-theme="light"] body{background:#f4f6f8;color:#14202a}
html[data-theme="light"] .film-grain{opacity:.018}
html[data-theme="light"] .pointer-aura{background:radial-gradient(circle,rgba(0,108,158,.07),transparent 68%)}
html[data-theme="light"] .site-header{background:linear-gradient(180deg,rgba(244,246,248,.97),rgba(244,246,248,.78));border-color:rgba(13,43,58,.16)}
html[data-theme="light"] .uj-nav-list a{color:#40535f}
html[data-theme="light"] .menu-button span{background:#172b36}
html[data-theme="light"] .mobile-nav{background:rgba(244,246,248,.985);color:#14202a}
html[data-theme="light"] .hero__lead,html[data-theme="light"] .section-heading>p:last-child,html[data-theme="light"] .about__copy>p:not(.eyebrow),html[data-theme="light"] .music-strip__copy>p:last-child,html[data-theme="light"] .archive-hero>p:last-child,html[data-theme="light"] .entry-content{color:#52636f}
html[data-theme="light"] .portal-node{background:rgba(255,255,255,.94);color:#14202a;box-shadow:0 20px 50px rgba(35,61,75,.12)}
html[data-theme="light"] .portal-node span{color:#637681}
html[data-theme="light"] .software-card,html[data-theme="light"] .book-card,html[data-theme="light"] .contact-form,html[data-theme="light"] .contact__panel{background:#fff;color:#14202a;box-shadow:0 20px 55px rgba(35,61,75,.08)}
html[data-theme="light"] .software-card p,html[data-theme="light"] .book-card__copy p{color:#53636e}
html[data-theme="light"] .software-card__header small{color:#667984}
html[data-theme="light"] .software-card li,html[data-theme="light"] .software-card figcaption{background:rgba(20,32,42,.90);color:#fff}
html[data-theme="light"] .book-card__subtitle{color:#574b3d!important}
html[data-theme="light"] .contact-form label>span{color:#334a57}
html[data-theme="light"] .contact-form input,html[data-theme="light"] .contact-form select,html[data-theme="light"] .contact-form textarea{background:#fff;color:#14202a;border-color:#9cacb5}
html[data-theme="light"] .contact-form select option{background:#fff;color:#14202a}
html[data-theme="light"] .contact__panel{background:#fff}
html[data-theme="light"] .button--quiet,html[data-theme="light"] .header-cta{background:#fff;color:#563a0d}
html[data-theme="light"] .button--primary{color:#fff}
html[data-theme="light"] .site-footer{color:#596a75}
html[data-theme="light"] .site-footer strong{color:#1e303a}
html[data-theme="light"] .single-meta span{color:#22343e;background:#fff}
html[data-theme="light"] .single-project__image{background:#fff}
html[data-theme="light"] .entry-content h2,html[data-theme="light"] .entry-content h3{color:#14202a}
html[data-theme="light"] .about blockquote{color:#4f4538}
/* Karten mit Bild-Overlay bleiben bewusst dunkel, damit Cover/Screenshots lesbar bleiben. */
html[data-theme="light"] .world-card,html[data-theme="light"] .category-card{color:#f4f1e9}
html[data-theme="light"] .world-card__copy p,html[data-theme="light"] .category-card__copy p{color:#c1cad1}
html[data-theme="light"] .world-card__copy b,html[data-theme="light"] .category-card__copy b{color:#f1f3f4}

html[data-theme="light"] .accessibility-toggle{background:#fff;color:#17313e;border-color:#53869e;box-shadow:0 12px 38px rgba(33,57,70,.16)}
html[data-theme="light"] .accessibility-panel{background:#fff;color:#14202a;border-color:#7a9baa;box-shadow:0 28px 90px rgba(33,57,70,.20)}
html[data-theme="light"] .accessibility-panel__head{border-color:rgba(23,49,62,.14)}
html[data-theme="light"] .accessibility-panel__head button{color:#52636f}
html[data-theme="light"] .accessibility-group-label{color:#006c9e}
html[data-theme="light"] .accessibility-panel button[data-access-action]{background:#eef4f7;color:#17313e;border-color:#9bb2be}
html[data-theme="light"] .accessibility-panel button[data-access-action]:hover,html[data-theme="light"] .accessibility-panel button[data-access-action].is-active{background:#dcecf3;color:#102631;border-color:#53869e}
html[data-theme="light"] .accessibility-select-label,html[data-theme="light"] .accessibility-range{color:#53636e}
html[data-theme="light"] .accessibility-select-label select{background:#fff;color:#15232d;border-color:#9bb2be}
html[data-theme="light"] .accessibility-range output{color:#17313e}
html[data-theme="light"] .accessibility-note{color:#5e6e78;border-color:rgba(23,49,62,.12)}

@media(max-width:782px){body.admin-bar .accessibility-widget{top:max(calc(var(--header,72px) + 58px),calc(env(safe-area-inset-top) + 104px))}}
@media(max-width:600px){
  .accessibility-widget{top:max(calc(var(--header,72px) + 8px),calc(env(safe-area-inset-top) + 54px));right:8px}
  .accessibility-toggle{width:40px;height:40px}
  .accessibility-panel{top:48px;width:min(330px,calc(100vw - 16px));max-height:calc(100vh - 118px);padding:13px}
  .accessibility-panel button[data-access-action]{font-size:10px;padding:7px 5px}
}
@media(max-width:390px){.accessibility-row--3{grid-template-columns:1fr}.accessibility-panel{width:calc(100vw - 16px)}}
