:root {
  color-scheme: light;
  --paper: #fff;
  --ink: #1d1d1f;
  --muted: #737377;
  --line: #e5e5e7;
  --placeholder: #f3f3f3;
  --page-width: 1200px;
  --site-header-height: 77px;
  --site-font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --glass-blur: 20px;
  --glass-nav-blur: calc(var(--glass-blur) * .8);
  --glass-nav-background: rgba(255, 255, 255, .56);
  --glass-nav-sheen: linear-gradient(180deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .025));
  --glass-nav-highlight: rgba(255, 255, 255, .16);
  --liquid-fill: linear-gradient(145deg, rgba(255, 255, 255, .66), rgba(255, 255, 255, .42));
  --liquid-edge: rgba(40, 45, 55, .18);
  --liquid-shadow: 0 24px 80px -20px rgba(25, 30, 45, .28), 0 6px 20px -8px rgba(25, 30, 45, .12);
  --liquid-rule: rgba(40, 45, 55, .09);
  --liquid-selection: rgba(255, 255, 255, .48);
  --liquid-secondary: rgba(65, 70, 80, .065);
  --liquid-dim: rgba(245, 246, 248, .18);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { color-scheme: dark; --paper: #151515; --ink: #f5f5f7; --muted: #a0a0a5; --line: #333336; --placeholder: #222; --glass-nav-background: rgba(21, 21, 24, .7); --glass-nav-sheen: linear-gradient(180deg, rgba(255, 255, 255, .065), transparent); --glass-nav-highlight: rgba(255, 255, 255, .13); --liquid-fill: linear-gradient(145deg, rgba(40, 41, 46, .76), rgba(23, 24, 29, .64)); --liquid-edge: rgba(255, 255, 255, .14); --liquid-shadow: 0 24px 80px -20px rgba(0, 0, 0, .6), 0 6px 20px -8px rgba(0, 0, 0, .35); --liquid-rule: rgba(255, 255, 255, .1); --liquid-selection: rgba(255, 255, 255, .1); --liquid-secondary: rgba(255, 255, 255, .08); --liquid-dim: rgba(0, 0, 0, .28); }
}
:root[data-theme="dark"] { color-scheme: dark; --paper: #151515; --ink: #f5f5f7; --muted: #a0a0a5; --line: #333336; --placeholder: #222; --glass-nav-background: rgba(21, 21, 24, .7); --glass-nav-sheen: linear-gradient(180deg, rgba(255, 255, 255, .065), transparent); --glass-nav-highlight: rgba(255, 255, 255, .13); --liquid-fill: linear-gradient(145deg, rgba(40, 41, 46, .76), rgba(23, 24, 29, .64)); --liquid-edge: rgba(255, 255, 255, .14); --liquid-shadow: 0 24px 80px -20px rgba(0, 0, 0, .6), 0 6px 20px -8px rgba(0, 0, 0, .35); --liquid-rule: rgba(255, 255, 255, .1); --liquid-selection: rgba(255, 255, 255, .1); --liquid-secondary: rgba(255, 255, 255, .08); --liquid-dim: rgba(0, 0, 0, .28); }
* { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--site-header-height) + 12px); scroll-behavior: smooth; scrollbar-gutter: stable; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--site-font); -webkit-font-smoothing: antialiased; }
body.site-document { min-height: 100vh; display: flex; flex-direction: column; }
/* Lock the document, not body: a body scroll container unsticks the header. */
html.search-open, html.message-open { overflow: hidden; overscroll-behavior: none; }
a { color: inherit; text-decoration: none; }
/* Decorative destination marker: no icon font, request, or JavaScript needed. */
.resource-link { white-space: nowrap; }
.resource-link::after,
.site-main a:is([href^="https://"], [href^="http://"], [href^="//"], [href^="mailto:"], [href$=".pdf" i], [href*=".pdf?" i], [href*=".pdf#" i]):not(.project-link):not(.join-apply-cta):not(:has(img, picture, svg, i))::after {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  width: .75em;
  height: .75em;
  margin-inline-start: .3em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 9.5 9.5 2.5M2.5 2.5h7v7' fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 9.5 9.5 2.5M2.5 2.5h7v7' fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
button { color: inherit; font: inherit; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--ink); outline-offset: 6px; }
[hidden] { display: none !important; }
.skip-link { position: fixed; top: -80px; left: 20px; z-index: 20; padding: 12px; background: var(--paper); }
.skip-link:focus { top: 10px; }
.site-header { position: sticky; top: 0; z-index: 10; flex: none; font: 400 15px/1.75 var(--site-font); color: var(--ink); border-bottom: 1px solid transparent; }
/* One backdrop can extend beneath the docked collection bar. Draw the rule above it. */
.site-header::before { content: ""; position: absolute; inset: 0; bottom: calc(-1px - var(--site-glass-extension, 0px)); z-index: -1; pointer-events: none; background: var(--glass-nav-sheen), var(--glass-nav-background); -webkit-backdrop-filter: var(--nav-glass-filter, blur(var(--glass-nav-blur)) saturate(1.4)); backdrop-filter: var(--nav-glass-filter, blur(var(--glass-nav-blur)) saturate(1.4)); box-shadow: inset 0 2px 5px -2px var(--glass-nav-highlight); }
.collections-docked .site-header::before { -webkit-backdrop-filter: var(--nav-glass-filter-docked, blur(var(--glass-nav-blur)) saturate(1.4)); backdrop-filter: var(--nav-glass-filter-docked, blur(var(--glass-nav-blur)) saturate(1.4)); }
.liquid-filter-defs { position: fixed; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.site-header::after { content: ""; position: absolute; bottom: -1px; left: 0; right: 0; height: 1px; background: var(--line); pointer-events: none; }
.site-header a, .site-header a:hover { text-decoration: none; }
.site-header button { margin: 0; border-radius: 0; font: inherit; text-transform: none; appearance: none; overflow: visible; }
.site-header button:focus:not(:focus-visible) { outline: none; }
.site-header svg { display: block; overflow: hidden; vertical-align: middle; flex: none; }
.site-header-inner { width: calc(100% - 96px); }
.site-header-inner { max-width: var(--page-width); margin: auto; min-height: 76px; display: flex; justify-content: space-between; align-items: center; gap: 32px; }
.site-name { display: inline-flex; align-items: center; white-space: nowrap; }
.simate-brand-logo { position: relative; display: block; width: 54px; height: 54px; flex: 0 0 54px; }
.simate-brand-logo__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.simate-brand-logo__image--dark { display: none; }
:root[data-theme="dark"] .simate-brand-logo__image--light { display: none; }
:root[data-theme="dark"] .simate-brand-logo__image--dark { display: block; }
.site-nav { display: flex; align-items: center; gap: 30px; font-size: 12px; }
.site-nav a { color: var(--muted); padding: 12px 0; transition: color .2s; }
.site-nav a:hover, .site-nav a[aria-current] { color: var(--ink); }
.site-tools { display: flex; flex: none; align-items: center; gap: 18px; }
.site-header .site-tools > button { display: grid; place-items: center; flex: 0 0 24px; width: 24px; height: 44px; padding: 0; border: 0; background: none; cursor: pointer; }
.site-nav details { position: relative; }
.site-nav summary { cursor: pointer; color: var(--muted); }
.site-nav details > div { position: absolute; top: 30px; right: 0; min-width: 140px; padding: 12px 20px; background: var(--paper); border: 1px solid var(--line); z-index: 10; }
.site-nav details > div a { display: block; }
/* The search panel has its own translucent surface, independent of page backgrounds. */
ninja-keys {
  font: 400 16px/normal var(--site-font); letter-spacing: normal;
  --ninja-font-family: var(--site-font);
  --ninja-accent-color: var(--ink);
  --ninja-text-color: var(--ink);
  --ninja-selected-text-color: var(--ink);
  --ninja-secondary-text-color: var(--muted);
  --ninja-group-text-color: var(--muted);
  --ninja-placeholder-color: var(--muted);
  --ninja-icon-size: 0px;
  --ninja-modal-background: var(--liquid-fill);
  --ninja-modal-shadow: var(--liquid-shadow);
  --ninja-panel-filter: blur(var(--glass-blur)) saturate(1.35);
  --ninja-backdrop-filter: none;
  --ninja-overflow-background: var(--liquid-dim);
  --ninja-selected-background: var(--liquid-selection);
  --ninja-secondary-background-color: var(--liquid-secondary);
  --ninja-separate-border: 1px solid var(--liquid-rule);
  --ninja-panel-radius: 28px;
  --ninja-overlay-top: var(--site-header-height);
  --ninja-actions-height: max(0px, min(340px, calc(100dvh - var(--site-header-height) - 188px)));
  --ninja-z-index: 1031;
}
ninja-keys::part(ninja-input) { color: var(--ink); }
ninja-keys::part(ninja-input-wrapper) { background: transparent; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  ninja-keys { --ninja-modal-background: var(--paper); }
  .site-header::before { background: var(--paper); }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more), (forced-colors: active) {
  .site-header::before, .collections-docked .site-header::before { background: var(--paper); -webkit-backdrop-filter: none; backdrop-filter: none; }
  ninja-keys { --ninja-modal-background: var(--paper); --ninja-panel-filter: none; --ninja-selected-background: var(--placeholder); --liquid-edge: var(--line); }
}
@media (forced-colors: active) {
  ninja-keys { --ninja-modal-background: Canvas; --ninja-text-color: CanvasText; --ninja-selected-text-color: HighlightText; --ninja-selected-background: Highlight; --ninja-panel-filter: none; --liquid-edge: CanvasText; }
}
@media (max-width: 800px) {
  :root { --site-header-height: 69px; }
  .site-header-inner { width: calc(100% - 56px); gap: 20px; min-height: 68px; }
  .site-nav { gap: 18px; }
}
@media (max-width: 600px) {
  :root { --site-header-height: 110px; }
  .site-header-inner { width: calc(100% - 40px); flex-wrap: wrap; gap: 0; padding-top: 22px; }
  .site-name .simate-brand-logo { width: 48px; height: 48px; flex-basis: 48px; }
  .site-nav { width: 100%; justify-content: space-between; gap: 12px; padding: 10px 0 5px; font-size: 11px; }
  .site-tools { gap: 16px; }
}
@media (max-width: 400px) {
  .site-nav { gap: 4px; }
  .site-tools { gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
