/* Workbench visual language, adapted to ZG's two reading palettes.
   Sources and constraints: references/workbench-effects-20261105.md. */
body.workbench-ready{isolation:isolate}
.workbench-background{position:fixed;inset:0;z-index:-1;pointer-events:none;user-select:none;overflow:hidden;contain:strict;opacity:.62}
.workbench-background canvas{display:block;width:100%;height:100%}
body[data-variant=c] .workbench-background{opacity:.28}
body.is-reading .workbench-background{opacity:.2}
.site-tools.has-footer-orbits{position:relative;isolation:isolate;overflow:hidden}
.footer-orbit-field{position:absolute;inset:0;z-index:-1;pointer-events:none;user-select:none;overflow:hidden;contain:strict;opacity:.85;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.footer-orbit-field svg{width:100%;height:100%;fill:none;stroke:#6498cf;stroke-width:1;stroke-opacity:.24;vector-effect:non-scaling-stroke}
.footer-orbit-comet{position:absolute;left:0;top:0;width:5px;height:5px;border-radius:50%;background:#d3ecff;box-shadow:0 0 7px 2px #70b9ff80;transform-origin:2.5px 2.5px;pointer-events:none}
.footer-orbit-comet:before{content:"";position:absolute;right:2px;top:1.5px;width:74px;height:2px;border-radius:50%;background:linear-gradient(90deg,transparent,#4a89c821,#74b9f8b3,#c4e9ff)}
.footer-orbit-field[data-motion-state=running] .footer-orbit-comet{will-change:transform,opacity}
.footer-orbit-field[data-motion-state=paused] .footer-orbit-comet{will-change:auto}
body[data-variant=c] .footer-orbit-field{opacity:.7}
body[data-variant=c] .footer-orbit-field svg{stroke:#917d67;stroke-opacity:.25}
body[data-variant=c] .footer-orbit-comet{background:#9c7057;box-shadow:0 0 6px 1px #bc92774a}
body[data-variant=c] .footer-orbit-comet:before{background:linear-gradient(90deg,transparent,#b5957620,#ba936e9c,#9c7057)}
body.is-reading .footer-orbit-field{display:none}
.navigation-header{--halo:rgba(91,157,237,.28);--halo-strong:rgba(116,186,255,.43)}
body[data-variant=c] .navigation-header{--halo:rgba(177,100,73,.2);--halo-strong:rgba(188,91,62,.3)}
.navigation-header :is(.header-nav,.publication-actions)>:is(button,a){box-shadow:0 0 0 1px var(--halo),0 0 15px -5px var(--halo);transition:border-color .2s,color .2s,box-shadow .2s}
.navigation-header :is(.header-nav,.publication-actions)>:is(button,a):is(:hover,:focus-visible){box-shadow:0 0 0 1px var(--halo-strong),0 0 18px -3px var(--halo-strong)}
.has-edge-light:not(.optic-sheet):not(.scene-topic){position:relative}
.edge-light{position:absolute;inset:0;border-radius:inherit;pointer-events:none!important;user-select:none;z-index:6;contain:layout style}
.edge-comet{position:absolute;top:0;left:0;display:block;width:4px;height:4px;border-radius:50%;background:#b7dbff;box-shadow:0 0 6px 1px #69b2ff7a;pointer-events:none!important;transform-origin:2px 2px;opacity:.75}
.edge-comet:before{content:"";position:absolute;right:2px;top:1px;width:23px;height:2px;background:linear-gradient(90deg,transparent,#5e9ff36b,#b0d7ffc2);border-radius:50%;pointer-events:none}
.has-edge-light[data-edge-state=running] .edge-comet{will-change:transform}
.has-edge-light[data-edge-state=paused] .edge-comet{opacity:.25;will-change:auto}
.scene-topic .edge-light{border-radius:9px}.optic-sheet .edge-comet{width:3px;height:3px;opacity:.7}.optic-sheet .edge-comet:before{width:32px;height:1.5px}
#archiveModules .has-edge-light .edge-comet{opacity:.85;box-shadow:0 0 7px 1px #84c4ff91}#archiveModules .has-edge-light[aria-pressed=true] .edge-comet{opacity:1}
#archiveModules .has-edge-light .edge-comet:before{width:38px;height:2px;background:linear-gradient(90deg,transparent,#5e9ff35c,#c5e6ff)}
body[data-variant=c] .edge-comet{background:#b6735a;box-shadow:0 0 5px 1px #ba78584f}
body[data-variant=c] .edge-comet:before{background:linear-gradient(90deg,transparent,#c08c6855,#b6735aaa)}
@supports ((background-clip:text) or (-webkit-background-clip:text)){
 @media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  body:not(.motion-off) [data-radial-text][data-radial-mode=glyph][data-radial-active=true]{background-image:radial-gradient(circle 76px at var(--radial-x,0px) var(--radial-y,0px),#efb6bb 0%,#c6b3eb 28%,#a4d2ff 62%,currentColor 100%);background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  body[data-variant=c]:not(.motion-off) [data-radial-text][data-radial-mode=glyph][data-radial-active=true]{background-image:radial-gradient(circle 66px at var(--radial-x,0px) var(--radial-y,0px),#a04f4b 0%,#71528f 26%,#285e94 60%,currentColor 100%)}
  body:not(.motion-off) [data-radial-text][data-radial-mode=solid][data-radial-active=true]{color:#a9d6ff!important}
  body[data-variant=c]:not(.motion-off) [data-radial-text][data-radial-mode=solid][data-radial-active=true]{color:#804d63!important}
 }
}
@media(prefers-reduced-motion:reduce){.edge-comet,.footer-orbit-comet{display:none}.navigation-header :is(.header-nav,.publication-actions)>:is(button,a){transition:none}}
.motion-off :is(.edge-comet,.footer-orbit-comet){display:none}
@media(forced-colors:active){.workbench-background,.edge-light,.footer-orbit-field{display:none}[data-radial-text][data-radial-active=true]{background:none!important;-webkit-text-fill-color:currentColor!important}.navigation-header :is(.header-nav,.publication-actions)>:is(button,a){box-shadow:none}}
@media print{.workbench-background,.edge-light,.footer-orbit-field{display:none}}

/* Native SVG cursor: the arrow tip is the 5px / 4px hotspot. No DOM follower,
   animation, pointermove listener or trailing layer is involved. */
@media (hover: hover) and (pointer: fine) {
  :root, dialog::backdrop {
    --workspace-cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='36' viewBox='0 0 32 36'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-50%25' width='200%25' height='200%25'%3E%3CfeGaussianBlur stdDeviation='1.6'/%3E%3C/filter%3E%3C/defs%3E%3Cpath d='M5 4V27L11.3 21.3L16.5 31L21 28.6L15.9 19.1H24.2Z' fill='%233b82f6' opacity='.44' filter='url(%23g)'/%3E%3Cpath d='M5 4V27L11.3 21.3L16.5 31L21 28.6L15.9 19.1H24.2Z' fill='%233478f6' stroke='%23fff' stroke-width='1.25' stroke-linejoin='round'/%3E%3C/svg%3E") 5 4, auto;
    --workspace-cursor-action: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='36' viewBox='0 0 32 36'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-50%25' width='200%25' height='200%25'%3E%3CfeGaussianBlur stdDeviation='1.8'/%3E%3C/filter%3E%3C/defs%3E%3Cpath d='M5 4V27L11.3 21.3L16.5 31L21 28.6L15.9 19.1H24.2Z' fill='%2360a5fa' opacity='.65' filter='url(%23g)'/%3E%3Cpath d='M5 4V27L11.3 21.3L16.5 31L21 28.6L15.9 19.1H24.2Z' fill='%234d96ff' stroke='%23fff' stroke-width='1.35' stroke-linejoin='round'/%3E%3C/svg%3E") 5 4, pointer;
  }

  :root,
  :root *,
    dialog::backdrop {
    cursor: var(--workspace-cursor) !important;
  }

  /* Keep exactly the same size and hotspot over controls, with a slightly
     brighter blue. Text, dialogs and their descendants retain the same arrow. */
  :root :is(a[href], button, [role="button"], [role="link"], select, summary, label[for], input[type="button"], input[type="submit"], input[type="reset"], input[type="checkbox"], input[type="radio"], input[type="range"]),
  :root :is(a[href], button, [role="button"], [role="link"], select, summary, label[for]) * {
    cursor: var(--workspace-cursor-action) !important;
  }
}

/* Preserve normal text editing and system high-contrast cursor behavior. */
@media(hover:hover) and (pointer:fine){:root :is(input:not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),textarea,[contenteditable=true]){cursor:text!important}}
@media(forced-colors:active){:root,:root *,dialog::backdrop{cursor:auto!important}}
