/* Design tokens and shared public components from Hecate.fig, 30 October 2026. */
:root { --fig-font-mono: 'Iosevka Charon Mono', ui-monospace, monospace; --fig-font-ui: 'Golos Text', 'Inter', sans-serif; }
.site-logo .home-logo-mark { display: none; }
html { background: #080808; color-scheme: light; scrollbar-color: #101010 #fff; }
html body.site-body {
  --primary: #111; --primary-dark: #333; --accent: #555; --text: #111; --text-muted: #606060;
  --surface: #fff; --surface-border: #151515; --yellow: var(--fig-accent);
  --shadow-sm: none; --shadow-md: none; --shadow-lg: none;
  --fig-gutter: clamp(1rem, 3.3vw, 3.7rem); --fig-outer: clamp(.6rem, 2.2vw, 3rem);
  margin: var(--fig-outer) auto; width: calc(100% - 2 * var(--fig-outer)); max-width: 112rem;
  min-height: calc(100dvh - 2 * var(--fig-outer)); background: #fff; background-attachment: scroll;
  color: #111; font-family: var(--fig-font-ui); font-size: .95rem; line-height: 1.5;
  border-radius: clamp(1rem, 2vw, 2rem); box-shadow: none;
}
html body.site-body .site-header { position: relative; border: 0; border-radius: inherit; background: #fff; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
html body.site-body .site-header__inner { max-width: none; padding: 1.35rem var(--fig-gutter); gap: 1rem; min-height: 6rem; }
html body.site-body .header-brand-row { gap: 1rem; }
html body.site-body .site-logo { display: inline-flex; align-items: center; gap: .25em; font: 700 clamp(1.6rem, 2.2vw, 2.4rem)/1 var(--fig-font-mono); letter-spacing: .075em; text-transform: uppercase; color: #000; }
html body.site-body .site-logo .home-logo-mark { display: block; width: .95em; height: .95em; fill: currentColor; flex: 0 0 auto; }
html body.site-body .site-catalog-link { padding: .55rem 1rem; background: var(--fig-accent); border: 1px solid var(--fig-accent); border-radius: .3rem; color: var(--fig-on-accent); min-height: 2.3rem; box-shadow: none; font: 600 .75rem var(--fig-font-ui); }
html body.site-body .site-catalog-link .icon { display: none; }
html body.site-body .site-catalog-link span::before { content: '['; }
html body.site-body .site-catalog-link span::after { content: ']'; }
html body.site-body .site-nav-desktop { gap: .35rem clamp(.6rem, 1.5vw, 1.6rem); font-size: .75rem; font-weight: 600; }
html body.site-body .site-nav-desktop a { color: #000; }
html body.site-body .site-nav-desktop a.is-active { color: #000; text-decoration: underline; text-underline-offset: .45em; }
html body.site-body .site-nav-desktop .nav-admin { background: #080808; color: #fff; padding: .3rem .75rem; border-radius: .3rem; }
html body.site-body .site-nav-desktop .nav-logout { background: var(--fig-accent); border: 0; border-radius: .3rem; padding: .3rem .75rem; color: var(--fig-on-accent); font: inherit; }
html body.site-body .site-nav-ads { gap: .8rem; }
html body.site-body .site-nav-ads a { font-size: .72rem; font-weight: 600; color: #000 !important; }
html body.site-body .nav-burger,
html body.site-body .site-drawer__close,
html body.site-body .site-menu-fallback > summary { color: #000; background: #fff; border: 1px solid #111; border-radius: .4rem; }
html body.site-body .site-drawer__panel { background: #fff; border-color: #111; color: #111; }
html body.site-body .site-drawer__links a,
html body.site-body .site-drawer__links .nav-logout { color: #111; }
html body.site-body .site-drawer__links a.is-active,
html body.site-body .site-drawer__links a:hover { background: var(--fig-accent); color: var(--fig-on-accent); }
html body.site-body .site-main { width: 100%; max-width: 84rem; margin: 0 auto; padding: 0 var(--fig-gutter) 3rem; }
html body.site-body .site-main::before { content: ''; display: block; height: 2px; width: 72%; margin: 0 auto 2.4rem; background: #ececec; }
html body.site-body .page-panel { padding: 0; border: 0; border-radius: 0; background: #fff; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
html body.site-body .page-hero { padding: .8rem 0 1.75rem; margin: 0 auto; text-align: center; }
html body.site-body .page-hero h1 { font: 500 clamp(1.8rem, 3vw, 2.7rem)/1.18 var(--fig-font-mono); color: #000; letter-spacing: 0; margin: 0 0 .55rem; }
html body.site-body .page-hero h1::before { content: '['; }
html body.site-body .page-hero h1::after { content: ']'; }
html body.site-body .page-hero p { color: #111; font: 400 1.05rem/1.5 var(--fig-font-mono); max-width: 56rem; margin: .5rem auto 0; }
html body.site-body .page-hero__icon { display: none; }
html body.site-body .text-gradient { background: none; -webkit-text-fill-color: currentColor; color: #000; }
html body.site-body .floating { animation: none; }
html body.site-body :where(h1,h2,h3) { font-family: var(--fig-font-mono); }
html body.site-body .glass,
html body.site-body .glass-dark { box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
html body.site-body .btn-primary,
html body.site-body .btn-success,
html body.site-body .btn-warning { color: var(--fig-on-accent); border: 1px solid var(--fig-accent); background: var(--fig-accent); box-shadow: none; font-family: var(--fig-font-ui); border-radius: 99px; min-height: 2.8rem; font-weight: 600; }
html body.site-body :is(.btn-primary,.btn-success,.btn-warning):hover { color: var(--fig-on-accent); background: var(--fig-accent-hover); border-color: var(--fig-accent-hover); transform: none; box-shadow: none; }
html body.site-body .btn-secondary,
html body.site-body .btn-outline { background: #fff; color: #111; border: 1px solid #111; box-shadow: none; border-radius: 99px; }
html body.site-body :where(.form-field,.auth-form,.profile-bot-form,.catalog-filter) :where(input:not([type=checkbox]):not([type=radio]),textarea,select) { color: #111; background: #fff; border: 1px solid #bbb; box-shadow: none; font-family: var(--fig-font-mono); font-size: 1rem; border-radius: 1.5rem; }
html body.site-body :where(.form-field,.auth-form,.profile-bot-form) label { font-family: var(--fig-font-ui); }
html body.site-body input[type=checkbox] { accent-color: #111; }
html body.site-body .message { border: 1px solid #111; border-radius: .8rem; box-shadow: none; }
html body.site-body .success-message { background: #f3f9e9; color: #253817; }
html body.site-body .site-footer { margin-top: 0; padding: 1rem var(--fig-gutter); border-top: 1px solid #e5e5e5; border-radius: 0 0 2rem 2rem; background: #fff; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; color: #555; font-size: .72rem; }
html body.site-body .site-footer a { color: #111; }
html body.site-body :where(a,button,summary,input,textarea,select):focus-visible { outline: 3px solid var(--fig-accent); outline-offset: 4px; }
html body.site-body .ticket-notification-badge { background: var(--fig-accent); color: var(--fig-on-accent); border: 1px solid #111; }
@media (min-width: 900px) and (max-width: 1250px) {
  html body.site-body .site-header__inner { flex-wrap: wrap; gap: .75rem 1rem; }
  html body.site-body .header-menu-row { margin-left: auto; }
}
@media (max-width: 899px) {
  html body.site-body .site-header__inner { min-height: 5rem; padding-top: 1rem; padding-bottom: 1rem; }
  html body.site-body .site-main::before { width: 100%; margin-bottom: 1.5rem; }
  html body.site-body .site-logo { font-size: 1.75rem; }
  html body.site-body .site-footer__inner { gap: .65rem; }
}
@media (max-width: 420px) {
  html body.site-body .header-brand-row { gap: .55rem; }
  html body.site-body .site-logo { font-size: 1.5rem; }
  html body.site-body .site-catalog-link { padding: .45rem .6rem; font-size: .67rem; }
  html body.site-body .nav-burger { width: 2.3rem; height: 2.3rem; }
  html body.site-body .site-menu-fallback > summary { min-height: 2.3rem; padding: .45rem .5rem; font-size: .7rem; }
  html body.site-body .site-menu-fallback > summary .icon { display: none; }
  html body.site-body .page-hero h1 { font-size: 1.7rem; }
}
@media (prefers-reduced-motion: reduce) { html body.site-body * { scroll-behavior: auto; } }
html body.site-body :is(.site-catalog-link,.site-nav-desktop .nav-logout):hover { background: var(--fig-accent-hover); border-color: var(--fig-accent-hover); color: var(--fig-on-accent); }
