/* Theme controls stay independent of page sections. */
.theme-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:64px;height:44px;padding:0;border:0;background:none;flex-shrink:0;
  border-radius:24px;
}
.theme-toggle[hidden]{display:none}
.theme-track{
  position:relative;display:flex;align-items:center;justify-content:space-between;
  width:64px;height:34px;padding:0 8px;border:1px solid var(--line);
  border-radius:20px;background:var(--switch-track);isolation:isolate;
}
.theme-thumb{
  position:absolute;z-index:-1;left:3px;top:3px;width:26px;height:26px;
  border-radius:50%;background:var(--switch-thumb);box-shadow:var(--switch-shadow);
  transition:transform .35s var(--ease),background-color .35s;
}
.theme-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:color .25s}
.theme-sun{color:var(--dark)}
.theme-moon{color:var(--muted)}
.theme-toggle[aria-checked=true] .theme-thumb{transform:translateX(30px)}
.theme-toggle[aria-checked=true] .theme-sun{color:var(--muted)}
.theme-toggle[aria-checked=true] .theme-moon{color:var(--dark)}
.theme-toggle:hover .theme-track{border-color:var(--control-border)}

/* Keep the original logo's silhouette visible on the navy surface. */
:root[data-theme=dark] .brand-symbol{mix-blend-mode:screen}
:root[data-theme=dark] .brand-symbol img{filter:grayscale(1) invert(1)}
:root[data-theme=dark] .sail-sculpture{filter:brightness(1.12) drop-shadow(0 22px 44px #2e7bcb20)}
:root[data-theme=dark] .direction{border-block:1px solid #a7d8f512}

@media(prefers-reduced-motion:no-preference){
  :root[data-theme-ready] body{transition:background-color .4s,color .4s}
  :root[data-theme-ready] .direction,
  :root[data-theme-ready] .discipline-art,
  :root[data-theme-ready] .theme-track{transition:background-color .4s,border-color .4s}
}
@media(max-width:760px){
  .site-header{gap:16px}
  .site-header nav{gap:16px}
}
@media(max-width:480px){
  .site-header nav{gap:10px}
  .contact-link{font-size:0;gap:0;width:40px;height:40px;padding:0;justify-content:center;border:1px solid var(--line);border-radius:50%}
}
