/* Semantic theme colors: brighter text/accent in dark mode, not image inversion. */
:root[data-theme="dark"]{
  color-scheme:dark;
  --brand-paper:#111014;
  --brand-ink:#f7f0ea;
  --brand-muted:#c4bdcc;
  --brand-violet:#bb9aff;
  --brand-line:rgba(247,240,234,.25);
}
:root[data-theme="light"]{ color-scheme:light; }
.theme-toggle{
  flex:0 0 44px; width:44px; height:44px; border-radius:50%;
  border:1px solid var(--brand-line); background:var(--brand-paper);
  color:var(--brand-ink); font-size:24px; cursor:pointer;
}
.skip-link{ color:var(--brand-paper); }
[data-theme="dark"] ::selection{ color:#090909; background:#c9f000; }
[data-theme="dark"] ::-webkit-scrollbar-thumb{ background:#77717d; }
@media(max-width:900px){
  [data-theme="dark"] .site-nav :focus-visible{ outline-color:#5520cf; }
}
/* Brand-dark sections retain their established colors in either theme. */
.loader, .ordo-card, .site-footer{
  --brand-paper:#f7f0ea; --brand-ink:#090909; --brand-violet:#bb9aff;
  --brand-muted:#c4bdcc;
}
[data-theme="dark"] .contact{
  background:radial-gradient(ellipse at 100% 30%,#302042 0%,#111014 72%);
}
[data-theme="dark"] .hero-pattern{ opacity:.055; mix-blend-mode:screen; }
[data-theme="dark"] .hero-intro,
[data-theme="dark"] .service-row__desc,
[data-theme="dark"] .case p,
[data-theme="dark"] .contact-note{ color:var(--brand-muted); opacity:1; }
[data-theme="dark"] .service-row,
[data-theme="dark"] .marquee,
[data-theme="dark"] .stat,
[data-theme="dark"] .step,
[data-theme="dark"] .site-header[data-scrolled="true"]{ border-color:var(--brand-line); }
[data-theme="dark"] .service-row::before{ background:rgba(187,154,255,.1); }
[data-theme="dark"] .cursor.is-inverted,
[data-theme="dark"] .cursor-dot.is-inverted{ color:#f7f0ea; }
.service-media__panel span{ color:#f7f0ea; background:#090909; }
.cursor.is-video::before{
  transform:scale(2); background:transparent;
  border-color:rgba(255,255,255,.6); border-width:.75px;
  backdrop-filter:none; -webkit-backdrop-filter:none;
  box-shadow:0 1px 2px rgba(9,9,9,.16), inset 0 1px 1px rgba(255,255,255,.85), inset 0 -1px 1px rgba(255,255,255,.2);
}
.cursor__lens{
  display:none; position:absolute; left:-40px; top:-40px;
  width:80px; height:80px; border-radius:50%; pointer-events:none;
}
.cursor.is-video .cursor__lens{ display:block; }
.cursor.is-video::before{ z-index:1; }
.cursor.is-video .cursor__label{ z-index:2; }
.cursor.is-video .cursor__label{
  color:#fff; background:rgba(9,9,9,.8); padding:4px 8px;
  border-radius:4px; transform:translate(-50%,48px); font-size:10px;
}
.cursor-video-point{
  display:none; position:fixed; top:0; left:0; z-index:162;
  width:0; height:0; pointer-events:none;
}
.cursor-video-point::before{
  content:""; position:absolute; left:-3px; top:-3px;
  width:6px; height:6px; background:#fff; border-radius:50%;
  box-shadow:0 0 0 1px rgba(9,9,9,.85);
}
@media (min-width:901px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  body.has-cursor.video-cursor .cursor-video-point{ display:block; }
}
.motion-paused .cursor-video-point{ display:none !important; }
@media(prefers-reduced-transparency:reduce){
  .cursor.is-video::before{ backdrop-filter:none; -webkit-backdrop-filter:none; background:transparent; }
  .cursor.is-video .cursor__label{ background:#090909; }
}
/* Desktop uses one hover preview; touch/reduced-motion retain static images. */
.service-row>div{ min-width:0; }
.service-row__image{
  display:block; width:min(100%,400px); height:auto; aspect-ratio:4/3;
  object-fit:cover; margin-top:24px; border-radius:4px;
}
@media (min-width:901px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .service-row__image{ display:none; }
}
@media (max-width:600px){
  .header-inner{ gap:12px; }
  .menu-toggle{ margin-left:auto; }
  .theme-toggle{ font-size:21px; }
}
