/* Refraction and pointer-light engines stay retired. The September clear
   header is the sole material exception; content uses opaque paired colours. */
:root,
html[data-theme="light"] {
  --ny-workspace-surface: var(--ny-surface);
  --ny-workspace-chrome: var(--ny-raised);
  --ny-workspace-control: var(--ny-field);
  --ny-workspace-line: var(--ny-line);
  --ny-workspace-shadow: 0 4px 18px color-mix(in srgb, var(--ny-text) 5%, transparent);
  --ny-glass: var(--ny-surface);
  --chrome: var(--ny-surface);
  --ny-glass-fill: var(--ny-surface);
  --ny-glass-edge: var(--ny-line-strong);
  --ny-liquid-ink: var(--ny-text);
}

/* Cover legacy module declarations, including modal backdrops. None of the
   content, images, map canvas or animations is filtered by this rule. */
*, *::before, *::after, *::backdrop {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

:root :is(.ny-liquid-surface, .ny-glass-surface, .ny-glass-dock, [data-ny-liquid-surface], .glass) {
  background: var(--ny-surface) !important;
  border-color: var(--ny-line-strong);
  box-shadow: none;
  color: var(--ny-text);
  text-shadow: none;
}
:root :is(.ny-liquid-surface, .ny-glass-surface, .ny-glass-dock, .glass)::before,
:root :is(.ny-liquid-surface, .ny-glass-surface, .ny-glass-dock, .glass)::after {
  content: none !important;
}
/* No fallback optics or pointer-light layers, even after a persisted page
   returns from browser history. The engines are absent from the templates. */
.ny-optics-defs, .ny-optic-backplate, .ny-optic-absorb, .ny-optic-joined,
.ny-optic-float, .ny-surface-light, .ny-navigation-light-core, .ny-nav-lens {
  display: none !important;
}

:root .ny-header.topbar {
  background: var(--ny-surface) !important;
  color: var(--ny-text);
  border: 1px solid var(--ny-line-strong);
  border-radius: 14px;
  box-shadow: 0 4px 14px color-mix(in srgb, var(--ny-text) 6%, transparent);
  text-shadow: none;
}
:root .ny-header.topbar::before,
:root .ny-header.topbar::after,
:root .ny-header .ny-menu-panel::before {
  content: none;
}
:root .ny-header .ny-menu-panel {
  background: var(--ny-surface) !important;
  border-color: var(--ny-line-strong);
  border-radius: 12px;
  box-shadow: 0 10px 28px color-mix(in srgb, var(--ny-text) 12%, transparent);
}
:root .ny-header .ny-header-links > :is(a, button),
:root .ny-header .ny-menu > summary {
  color: var(--ny-text);
  text-shadow: none;
  box-shadow: none;
  border-radius: 7px;
}
:root .ny-header .ny-header-links > a:hover,
:root .ny-header .ny-menu > summary:hover,
:root .ny-header .ny-theme:hover {
  background: var(--ny-hover);
}
:root .ny-header .ny-header-links > a[aria-current],
:root .ny-header .ny-menu > summary[data-active] { color: var(--ny-accent); }

/* Each existing tool owns its layout and sticky behaviour. Only its paint
   changes, including the independently rendered personal desktop. */
:root :is(.ny-command, .ny-picker, .ny-picker-options, .ny-command-results,
  .journal-tool-dialog, .writer-leave-dialog, .settings-leave-dialog,
  .inbox-sheet, .help-dialog, .alice-mascot-panel, .annual-window,
  .desktop-library, .ny-ask-dialog,
  .studio-appearance-panel, .studio-batch-bar, .writer-commandbar,
  .journal-public-sidebar, .reading-outline-slot .reading-toc) {
  background: var(--ny-surface) !important;
  border-color: var(--ny-line-strong);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--ny-text) 8%, transparent);
}
:root :is(.desktop-header.ny-glass-header, .desktop-dock) {
  background: var(--ny-surface) !important;
  color: var(--ny-text);
  border-color: var(--ny-line-strong);
  box-shadow: 0 4px 16px color-mix(in srgb, var(--ny-text) 9%, transparent);
  text-shadow: none;
}
:root :is(.desktop-header.ny-glass-header, .desktop-dock)::before,
:root :is(.desktop-header.ny-glass-header, .desktop-dock)::after { content: none !important; }

/* September 25–27 clear header: one 4px backdrop and static masked edges.
   Keep today's navigation geometry, menu surfaces and same-DOM docking. */
:root :is(.ny-header.topbar, .desktop-header.ny-glass-header) {
  --ny-header-fill: rgba(8,21,30,.16);
  --ny-header-edge: rgba(218,240,248,.24);
  isolation: isolate;
  background: var(--ny-header-fill) !important;
  border: 1px solid var(--ny-header-edge);
  border-color: var(--ny-header-edge) !important;
  border-radius: 20px;
  -webkit-backdrop-filter: blur(4px) saturate(135%) !important;
  backdrop-filter: blur(4px) saturate(135%) !important;
  box-shadow: 0 8px 26px #0002, inset 0 1px 0 #effbff1f, inset 0 -1px 0 #0310194d;
  transition: background-color 320ms cubic-bezier(.22,.8,.24,1), border-color 320ms cubic-bezier(.22,.8,.24,1), box-shadow 320ms cubic-bezier(.22,.8,.24,1);
}
:root :is(.ny-header.topbar, .desktop-header.ny-glass-header):is([data-ny-scrolled], [data-scrolled]) {
  --ny-header-fill: rgba(8,21,30,.28);
  --ny-header-edge: rgba(218,240,248,.28);
  box-shadow: 0 9px 26px #0003, inset 0 1px 0 #effbff24, inset 0 -1px 0 #0310194d;
}
:root :is(.ny-header.topbar, .desktop-header.ny-glass-header)::before,
:root :is(.ny-header.topbar, .desktop-header.ny-glass-header)::after {
  content: "" !important;
  display: block;
  position: absolute;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
}
:root :is(.ny-header.topbar, .desktop-header.ny-glass-header)::before {
  inset: 1px; padding: 2px;
  background: linear-gradient(127deg,#8edcee2b 0%,transparent 20%,transparent 61%,#f6edcc1f 84%,transparent), linear-gradient(180deg,#f2fcff12,transparent 28%,transparent 74%,#9ed8e926);
}
:root :is(.ny-header.topbar, .desktop-header.ny-glass-header)::after {
  inset: -1px; padding: 1px;
  background: linear-gradient(128deg,#edfaff66 0%,#e1f9ff18 17%,#a4dce414 39%,#eaf6ff36 72%,#fbf4df3d 89%,#b0d7e412);
}
/* Light mode adapts the original dark-only material to the current palette. */
html[data-theme="light"] :is(.ny-header.topbar, .desktop-header.ny-glass-header) {
  --ny-header-fill: rgba(255,255,255,.22);
  --ny-header-edge: rgba(73,115,131,.24);
  color: var(--ny-text); text-shadow: none;
  box-shadow: 0 8px 26px #28535e12, inset 0 1px 0 #ffffffa6, inset 0 -1px 0 #527c891a;
}
html[data-theme="light"] :is(.ny-header.topbar, .desktop-header.ny-glass-header):is([data-ny-scrolled], [data-scrolled]) {
  --ny-header-fill: rgba(244,249,245,.34);
  --ny-header-edge: rgba(73,115,131,.28);
}
@supports not (mask-composite: exclude) {
  :root :is(.ny-header.topbar, .desktop-header.ny-glass-header)::before,
  :root :is(.ny-header.topbar, .desktop-header.ny-glass-header)::after { display: none; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  :root :is(.ny-header.topbar, .desktop-header.ny-glass-header) { background: var(--ny-surface) !important; }
  :root :is(.ny-header.topbar, .desktop-header.ny-glass-header)::before,
  :root :is(.ny-header.topbar, .desktop-header.ny-glass-header)::after { display: none; }
}
:root[data-glass="solid"] :is(.ny-header.topbar, .desktop-header.ny-glass-header) {
  background: var(--ny-surface) !important;
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
}
:root[data-glass="solid"] :is(.ny-header.topbar, .desktop-header.ny-glass-header)::before,
:root[data-glass="solid"] :is(.ny-header.topbar, .desktop-header.ny-glass-header)::after { display: none; }
@media (prefers-reduced-transparency: reduce) {
  :root:not([data-glass="clear"]) :is(.ny-header.topbar, .desktop-header.ny-glass-header) {
    background: var(--ny-surface) !important;
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  }
  :root:not([data-glass="clear"]) :is(.ny-header.topbar, .desktop-header.ny-glass-header)::before,
  :root:not([data-glass="clear"]) :is(.ny-header.topbar, .desktop-header.ny-glass-header)::after { display: none; }
}
/* The coast's today board is a layout column, not a material card. Retain its
   original open composition instead of reviving a filled legacy-day panel. */
:root .workspace-page .workspace-board {
  background: transparent !important; border: 0; box-shadow: none; text-shadow: none;
}
:root .hx-home-desk,
:root .hx-home-shortcuts > a,
:root .hx-home-services > a {
  background: var(--ny-surface) !important;
  border-color: var(--ny-line);
  box-shadow: none;
}
:root .hx-home-desk nav > a {
  background: var(--ny-field);
  border-color: var(--ny-line);
  box-shadow: none;
}
:root .journal-reading-actions { background: var(--ny-surface); }
:root .hx-management-nav-group > a[aria-current] { box-shadow: none; }
:root [data-glass-docked] { background: var(--ny-surface) !important; box-shadow: none; }

/* Keep the service cards' distinct original greetings without the removed
   luminous-surfaces engine or its generated light elements. */
.hx-home-mc { transition: filter 220ms ease; }
.hx-home-services > a:focus-visible .hx-home-alice { animation: ny-home-alice-greeting 560ms cubic-bezier(.22,.8,.24,1); }
.hx-home-services > a:focus-visible .hx-home-mc { filter: brightness(1.12); }
@media (hover: hover) and (pointer: fine) {
  .hx-home-services > a:hover .hx-home-alice { animation: ny-home-alice-greeting 560ms cubic-bezier(.22,.8,.24,1); }
  .hx-home-services > a:hover .hx-home-mc { filter: brightness(1.12); }
}
@keyframes ny-home-alice-greeting {
  45% { transform: translateY(-4px) rotate(-3deg); }
  78% { transform: translateY(1px) rotate(1deg); }
}
@media (max-width: 560px) {
  :root .ny-header.topbar { width: calc(100% - 20px); padding-inline: 10px; gap: 6px; border-radius: 16px; }
  .ny-header.topbar .ny-header-links, .ny-header .ny-menu { position: static; }
  .ny-header .ny-menu-panel {
    position: absolute; left: 0; right: 0; width: auto; top: calc(100% + 9px);
    box-sizing: border-box; max-height: min(60dvh, calc(100dvh - 112px));
    overflow-y: auto; overscroll-behavior: contain;
  }
  .ny-header .ny-account-panel { left: auto; width: min(224px, calc(100vw - 32px)); }
}
/* Keep the full navigation readable when five account controls cannot fit
   beside the wordmark. Give the controls their own row rather than letting
   right alignment paint them over the logo. */
@media (max-width: 380px) {
  :root .ny-header.topbar { flex-wrap: wrap; padding: 6px; row-gap: 2px; }
  .ny-header.topbar > .ny-brand { flex: 0 0 auto; }
  .ny-header.topbar .ny-brand-mark,
  .ny-header.topbar .ny-brand-mark svg { width: 48px; height: 28px; }
  .ny-header.topbar > .ny-header-links { flex: 1 0 100%; justify-content: space-between; gap: 2px; }
}
@media (prefers-reduced-motion: reduce) {
  :root :is(.ny-header.topbar, .desktop-header.ny-glass-header) { transition: none; }
  .hx-home-services > a:is(:hover, :focus-visible) :is(.hx-home-alice, .hx-home-mc) {
    animation: none; transition: none; transform: none;
  }
}
@media (prefers-contrast: more) {
  :root :is(.ny-header.topbar, .desktop-header.ny-glass-header) {
    background: var(--ny-surface) !important; border-color: var(--ny-text) !important;
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
    box-shadow: none; text-shadow: none;
  }
  :root :is(.ny-header.topbar, .desktop-header.ny-glass-header)::before,
  :root :is(.ny-header.topbar, .desktop-header.ny-glass-header)::after { display: none; }
  :root .workspace-page .workspace-board { background: var(--ny-surface) !important; padding: 18px; }
}
@media (forced-colors: active) {
  :root :is(.ny-header.topbar, .desktop-header.ny-glass-header) {
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  }
  :root :is(.ny-header.topbar, .desktop-header.ny-glass-header)::before,
  :root :is(.ny-header.topbar, .desktop-header.ny-glass-header)::after { display: none; }
  :root :is(.ny-header.topbar, .ny-menu-panel, .ny-liquid-surface,
    .ny-glass-surface, .ny-command, .ny-picker, .inbox-sheet,
    .desktop-header.ny-glass-header, .desktop-dock, .annual-window) {
    background: Canvas !important; color: CanvasText; border-color: CanvasText !important; box-shadow: none;
  }
  :root .workspace-page .workspace-board { background: Canvas !important; }
}
