/* Shared dark control system. Optical hero/video lenses keep their own geometry. */
:root {
 --control-text:#e8f2ff; --control-muted:#b4c4d8; --control-edge:#bad2ee40;
 --control-fill:linear-gradient(145deg,#c2dfff1f,#7799bd0b 60%,#b3d3f518);
 --control-hover:linear-gradient(145deg,#c2dfff2b,#7799bd12 60%,#b3d3f523);
 --control-shadow:0 5px 16px #0003,inset 0 1px 0 #e5f2ff24,inset 0 -1px 0 #b0cff50c;
 --control-time:300ms; --control-ease:cubic-bezier(.22,1,.36,1);
}
body :is(.disclosure-toggle,.disclosure-bottom,.glass-action,.header-contact,.menu-toggle,.image-viewer-close) {
 position:relative; isolation:isolate; display:inline-flex; align-items:center; justify-content:space-between;
 gap:16px; min-height:48px; padding:12px 20px; border:1px solid var(--control-edge); border-radius:999px;
 background:var(--control-fill); color:var(--control-text); box-shadow:var(--control-shadow);
 -webkit-backdrop-filter:blur(8px) saturate(120%); backdrop-filter:blur(8px) saturate(120%);
 line-height:1.5; font-weight:600;
 transition:transform var(--control-time) var(--control-ease),box-shadow var(--control-time) ease,border-color 220ms ease,color 220ms ease,background-color 220ms ease;
}
body :is(.disclosure-toggle,.disclosure-bottom,.glass-action,.header-contact,.menu-toggle,.image-viewer-close)::after {
 content:""; position:absolute; inset:0; width:auto; height:auto; border-radius:inherit; pointer-events:none;
 background:radial-gradient(ellipse at var(--hover-x,35%) var(--hover-y,0%),#dceeff29,transparent 72%);
 box-shadow:inset 0 1px 0 #e5f2ff35; opacity:0; transform:none;
 transition:opacity var(--control-time) ease;
}
body .glass-action { font-size:14px; }
body .engine-action .glass-action { padding:12px 20px; gap:16px; font-size:14px; }
body .header-shell .header-contact { color:var(--control-text); }
body .header-contact { min-height:44px; padding:10px 16px; gap:16px; }
body .menu-toggle { display:none; }
body .image-viewer-close { min-height:44px; padding:10px 18px; }
body :is(.disclosure-toggle,.disclosure-bottom,.glass-action,.image-viewer-close)>svg { flex-shrink:0; }
body .disclosure-toggle[aria-expanded="true"] { background:var(--control-hover); color:var(--control-text); border-color:#c1daf25c; }
body .gallery-expanded > .disclosure-bottom { margin-top:24px; }
body .gallery-toggle-bar { padding:12px 18px; gap:18px; min-height:48px; background:var(--control-fill); color:var(--control-text); border-color:var(--control-edge); box-shadow:var(--control-shadow); }
body .gallery-toggle-bar>svg { flex-shrink:0; }
body .earlier summary { border:1px solid transparent; border-radius:14px; transform:none; }
body .earlier[open] summary { background:#b7d4ff08; border-color:#b7d4ff1f; }
body :is(.image-caption a,.contact-link,.hero-availability>a) { display:inline-flex; align-items:center; min-height:44px; }
body .image-caption a { text-underline-offset:5px; }
body .text-link:not(.disclosure-toggle,.disclosure-bottom,.glass-cta,.glass-action) { min-height:44px; align-items:center; }
/* Every focus target uses the same visible ring; segmented controls keep it inside. */
body :is(a,button,summary):focus-visible { outline:2px solid #afd2ff; outline-offset:4px; }
body .case-tabs .case-tab:focus-visible { outline:2px solid #afd2ff; outline-offset:-3px; }
body .languages a:focus-visible { outline-offset:-1px; }
@media(hover:hover) and (pointer:fine) {
 body :is(.disclosure-toggle,.disclosure-bottom,.glass-action,.header-contact,.menu-toggle,.image-viewer-close):hover {
  color:#f4f8ff; background:var(--control-hover); border-color:#c4ddf76b;
  box-shadow:0 8px 20px #0004,inset 0 1px 0 #e5f2ff40; transform:translateY(-1px);
 }
 body :is(.disclosure-toggle,.disclosure-bottom,.glass-action,.header-contact,.menu-toggle,.image-viewer-close):hover::after { opacity:1; transform:none; }
 body .disclosure-toggle[aria-expanded="true"]:hover { background:var(--control-hover); color:#f4f8ff; }
 body .character-cover:hover .gallery-toggle-bar { background:var(--control-hover); color:#f4f8ff; border-color:#c4ddf76b; box-shadow:var(--control-shadow); transform:none; }
 body .earlier summary:hover { transform:none; color:var(--control-text); background:#b7d4ff0d; border-color:#b7d4ff29; }
 body :is(.image-caption a,.contact-link,.hero-availability>a):hover { color:#d6e8ff; transform:translateY(-1px); }
 body .header-shell .desktop-nav a:hover,body .header-shell .mobile-nav a:hover { color:var(--control-text); background:#b7d4ff0f; transform:none; }
}
body :is(.disclosure-toggle,.disclosure-bottom,.glass-action,.header-contact,.menu-toggle,.image-viewer-close):active { transform:scale(.98); transition-duration:100ms; }
body .earlier summary:active { transform:none; background:#b7d4ff14; }
body :is(.disclosure-toggle,.disclosure-bottom,.glass-action,.header-contact,.menu-toggle,.image-viewer-close):focus-visible::after { opacity:1; }
@media(max-width:760px) {
 body .header-contact { display:none; }
 body .menu-toggle { display:flex; justify-content:center; width:44px; height:44px; min-height:44px; padding:12px; gap:6px; border-radius:17px; }
 body .disclosure-toggle,body .disclosure-bottom { padding:12px 18px; }
 body .gallery-toggle-bar { padding:12px 16px; }
 body .image-viewer-close { padding:10px 14px; gap:12px; }
}
@media(min-width:761px) and (max-width:960px) { body .header-contact { display:none; } }
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
 body :is(.disclosure-toggle,.disclosure-bottom,.glass-action,.header-contact,.menu-toggle,.image-viewer-close,.gallery-toggle-bar) { background:#233143; }
}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more) {
 body :is(.disclosure-toggle,.disclosure-bottom,.glass-action,.header-contact,.menu-toggle,.image-viewer-close,.gallery-toggle-bar) { background:#233143; color:#fff; border-color:#8fa9c9; -webkit-backdrop-filter:none; backdrop-filter:none; }
}
@media(prefers-reduced-motion:reduce) {
 body :is(.disclosure-toggle,.disclosure-bottom,.glass-action,.header-contact,.menu-toggle,.image-viewer-close,.image-caption a,.contact-link,.hero-availability>a):is(:hover,:active) { transform:none; }
}
