/*
  Sveltia CMS styles for the homepage simulation, scoped to `.cms`.

  Source: @sveltia/cms 0.256.1 (latest on unpkg on 2026-11-02, the unpinned build that
  sigpwny.com/manage loads), dist/sveltia-cms.js. Copied rules, with Svelte hash classes
  replaced by scoped selectors:
    svelte-v8qjj4  app shell: theme tokens, dark palette, base element rules
    svelte-kch79   Source Sans 3 @font-face (self-hosted here instead of jsDelivr)
    svelte-1vy4qxn entry editor pane (--field-editor-padding)
    svelte-wzztxu  field section and header
    svelte-dkfcyc  field wrapper and hint
    svelte-1uzqwes TextInput
    svelte-s2pven  Select (combobox trigger), applied to a native <select>
  The dark palette is pinned (Sveltia follows the OS theme by default). Material Symbols
  glyphs are replaced by an inline SVG chevron. The editor toolbar is an approximation.

  Sveltia CMS: MIT License, Copyright (c) 2026 Kohei Yoshino.
  Source Sans 3: SIL Open Font License 1.1, Copyright 2010-2024 Adobe (see fonts/SourceSans3-OFL.txt).
*/

@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-display: swap;
  font-weight: 200 900;
  src: url(/homepage/fonts/SourceSans3-VF-latin.woff2) format('woff2-variations'), url(/homepage/fonts/SourceSans3-VF-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  size-adjust: 110%;
}

/* Theme tokens (:root in Sveltia) */
.cms {
  --sui-base-hue: 210;
  --sui-highlight-foreground-color: hsl(var(--sui-foreground-color-1-hsl));
  --sui-primary-foreground-color: hsl(var(--sui-foreground-color-2-hsl));
  --sui-secondary-foreground-color: hsl(var(--sui-foreground-color-3-hsl));
  --sui-tertiary-foreground-color: hsl(var(--sui-foreground-color-4-hsl));
  --sui-disabled-foreground-color: hsl(var(--sui-foreground-color-5-hsl));
  --sui-error-foreground-color: hsl(var(--sui-error-color-hue) var(--sui-alert-foreground-color-saturation) var(--sui-alert-foreground-color-lightness));
  --sui-hover-background-color: hsl(var(--sui-background-color-5-hsl) / 35%);
  --sui-content-background-color: hsl(var(--sui-background-color-1-hsl));
  --sui-primary-background-color: hsl(var(--sui-background-color-2-hsl));
  --sui-secondary-background-color: hsl(var(--sui-background-color-3-hsl));
  --sui-tertiary-background-color: hsl(var(--sui-background-color-4-hsl));
  --sui-disabled-background-color: hsl(var(--sui-background-color-4-hsl));
  --sui-disabled-opacity: 0.35;
  --sui-focus-ring-width: 2px;
  --sui-focus-ring-color: var(--sui-primary-accent-color);
  --sui-focus-ring-offset: 1px;
  --sui-primary-border-color: hsl(var(--sui-border-color-2-hsl));
  --sui-secondary-border-color: hsl(var(--sui-border-color-3-hsl));
  --sui-error-border-color: hsl(var(--sui-error-color-hue) var(--sui-alert-border-color-saturation) var(--sui-error-border-color-lightness, var(--sui-alert-border-color-lightness)));
  --sui-font-family-default: "Source Sans 3", system-ui, sans-serif;
  --sui-font-size-xx-large: 21px;
  --sui-font-size-large: 17px;
  --sui-font-size-default: 15px;
  --sui-font-size-small: 13px;
  --sui-font-weight-normal: 400;
  --sui-font-weight-bold: 700;
  --sui-font-family-monospace: "Noto Sans Mono", ui-monospace, monospace;
  --sui-line-height-default: 1.2;
  --sui-line-height-compact: 1.4;
  --sui-line-height-comfortable: 1.6;
  --sui-word-spacing-normal: 1px;
  --sui-heading-margin: 0;
  --sui-heading-font-family: var(--sui-font-family-default);
  --sui-heading-font-weight: var(--sui-font-weight-bold);
  --sui-heading-line-height: var(--sui-line-height-default);
  --sui-paragraph-margin: 1.75em;
  --sui-control-small-height: 24px;
  --sui-control-medium-border-radius: calc(var(--sui-control-medium-height) / 8);
  --sui-control-medium-height: 32px;
  --sui-control-border-color: hsl(var(--sui-border-color-2-hsl));
  --sui-control-foreground-color: var(--sui-primary-foreground-color);
  --sui-control-font-family: var(--sui-font-family-default);
  --sui-control-font-size: var(--sui-font-size-default);
  --sui-control-line-height: var(--sui-line-height-compact);
  --sui-button-small-height: var(--sui-control-small-height);
  --sui-option-height: var(--sui-control-medium-height);
  --sui-textbox-border-radius: var(--sui-control-medium-border-radius);
  --sui-textbox-height: var(--sui-control-medium-height);
  --sui-textbox-border-color: var(--sui-control-border-color);
  --sui-textbox-foreground-color: var(--sui-control-foreground-color);
  --sui-textbox-background-color: hsl(var(--sui-background-color-1-hsl));
  --sui-textbox-font-family: var(--sui-font-family-default);
  --sui-textbox-font-size: var(--sui-font-size-default);
  --sui-textbox-singleline-padding: 0 8px;
  --sui-textbox-singleline-min-width: 240px;
  --sui-textbox-singleline-line-height: var(--sui-line-height-compact);

  /* [data-theme=dark] */
  color-scheme: dark;
  --sui-foreground-color-1-hsl: var(--sui-base-hue) 10% 95%;
  --sui-foreground-color-2-hsl: var(--sui-base-hue) 10% 75%;
  --sui-foreground-color-3-hsl: var(--sui-base-hue) 10% 65%;
  --sui-foreground-color-4-hsl: var(--sui-base-hue) 10% 55%;
  --sui-foreground-color-5-hsl: var(--sui-base-hue) 10% 35%;
  --sui-background-color-1-hsl: var(--sui-base-hue) 10% 8%;
  --sui-background-color-2-hsl: var(--sui-base-hue) 10% 10%;
  --sui-background-color-3-hsl: var(--sui-base-hue) 10% 13%;
  --sui-background-color-4-hsl: var(--sui-base-hue) 10% 16%;
  --sui-background-color-5-hsl: var(--sui-base-hue) 10% 26%;
  --sui-border-color-1-hsl: var(--sui-base-hue) 10% 40%;
  --sui-border-color-2-hsl: var(--sui-base-hue) 10% 24%;
  --sui-border-color-3-hsl: var(--sui-base-hue) 10% 20%;
  --sui-shadow-color: var(--sui-base-hue) 10% 0%;
  --sui-primary-accent-color-text: hsl(var(--sui-base-hue) 100% 60%);
  --sui-primary-accent-color: hsl(var(--sui-base-hue) 100% 40%);
  --sui-primary-accent-color-translucent-light: hsl(var(--sui-base-hue) 80% 50% / 40%);
  --sui-error-color-hue: 0;
  --sui-alert-foreground-color-saturation: 85%;
  --sui-alert-foreground-color-lightness: 75%;
  --sui-alert-border-color-saturation: 48%;
  --sui-alert-border-color-lightness: 38%;

  /* Entry editor pane (svelte-1vy4qxn) */
  --field-editor-padding: 16px;

  /* .app-shell */
  color: var(--sui-primary-foreground-color);
  background-color: var(--sui-primary-background-color);
  font-family: var(--sui-font-family-default);
  font-size: var(--sui-font-size-default);
  font-weight: var(--sui-font-weight-normal, normal);
  line-height: normal;
  letter-spacing: normal;
  word-spacing: var(--sui-word-spacing-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media (pointer: coarse) {
  .cms { --sui-control-small-height: 32px; --sui-control-medium-height: 40px; }
}
@media (width < 768px) {
  .cms { --field-editor-padding: 12px; }
}

/* Base element rules (svelte-v8qjj4), scoped */
.cms *, .cms ::before, .cms ::after {
  overflow-anchor: none; box-sizing: border-box; outline-offset: 0px;
  outline-width: var(--sui-focus-ring-width) !important; outline-style: solid; outline-color: transparent;
  border-width: 0; border-style: solid; vertical-align: top; font-size-adjust: inherit;
}
@media (prefers-reduced-motion) {
  .cms *, .cms ::before, .cms ::after { transition-duration: 1ms !important; }
}
.cms ::selection { background-color: var(--sui-primary-accent-color-translucent-light); }
.cms * { -webkit-tap-highlight-color: transparent; }
.cms :focus { z-index: 1; outline-width: 0; }
.cms :focus-visible { outline-color: var(--sui-focus-ring-color); outline-offset: var(--sui-focus-ring-offset, 0); z-index: 2; }
.cms h3 { margin: var(--sui-heading-margin); font-size: 26px; font-family: var(--sui-heading-font-family); font-weight: var(--sui-heading-font-weight); line-height: var(--sui-heading-line-height); }
.cms h4 { margin: var(--sui-heading-margin); font-size: 22px; font-family: var(--sui-heading-font-family); font-weight: var(--sui-heading-font-weight); line-height: var(--sui-heading-line-height); }
.cms strong { font-weight: var(--sui-font-weight-bold, bold); }
.cms a { color: var(--sui-primary-accent-color-text); text-decoration: none; text-underline-offset: 2px; }
.cms a:is(:hover, :focus, :active) { text-decoration: underline; }
.cms :is(p, ul, ol, dl) { margin: var(--sui-paragraph-margin) 0; line-height: var(--sui-line-height-comfortable); }
.cms :is(ul, ol) { padding-inline: 2em; }
.cms :is(.disabled, [aria-disabled=true], [inert]) { cursor: default; pointer-events: none; user-select: none; filter: grayscale(1) opacity(var(--sui-disabled-opacity, 0.35)); }

/* Field section (svelte-wzztxu) */
.cms section.field { position: relative; padding: var(--field-editor-padding); }
.cms section.field:not(:last-child)::after {
  position: absolute; inset: auto var(--field-editor-padding) 0 var(--field-editor-padding);
  overflow: hidden; height: 1px; background-color: var(--sui-tertiary-background-color); content: '';
}
.cms section.field > * { margin-inline: auto !important; max-width: 768px; }
.cms section.field > header { display: flex; align-items: center; margin: 0 -8px 8px; height: var(--sui-button-small-height); }
.cms section.field > header h4 { margin-inline: var(--sui-focus-ring-width) 0; font-size: var(--sui-font-size-small); font-weight: var(--sui-font-weight-bold); color: var(--sui-secondary-foreground-color); }
.cms section.field > header .required { margin-block: 2px 0; margin-inline: 2px 0; color: var(--sui-error-foreground-color); font-size: var(--sui-font-size-large); }

/* Field wrapper and hint (svelte-dkfcyc) */
.cms .field-wrapper :is(input[type='text'], textarea) { width: 100%; }
.cms .field-wrapper > div { color: inherit; }
.cms .field-wrapper input:read-only { user-select: text; pointer-events: auto; }
.cms .field-hint { flex: auto; margin-inline: var(--sui-focus-ring-width) !important; margin-block: var(--sui-focus-ring-width) 0 !important; font-size: var(--sui-font-size-small); line-height: var(--sui-line-height-compact); color: var(--sui-tertiary-foreground-color); }

/* TextInput (svelte-1uzqwes) */
.cms .text-input { display: inline-flex; align-items: center; position: relative; margin: var(--sui-focus-ring-width); min-width: var(--sui-textbox-singleline-min-width); }
.cms .text-input.flex:not([hidden]) { display: inline-flex; width: -moz-available; width: -webkit-fill-available; width: stretch; min-width: 0; }
.cms .text-input input {
  display: inline-block; flex: auto;
  border-width: var(--sui-textbox-border-width, 1px); border-color: var(--sui-textbox-border-color); border-radius: var(--sui-textbox-border-radius);
  padding: var(--sui-textbox-singleline-padding); min-width: 0; height: var(--sui-textbox-height);
  color: var(--sui-textbox-foreground-color); background-color: var(--sui-textbox-background-color);
  font-family: var(--sui-textbox-font-family); font-size: var(--sui-textbox-font-size); line-height: var(--sui-textbox-singleline-line-height);
  font-weight: var(--sui-textbox-font-weight, var(--sui-font-weight-normal, normal)); text-align: start; letter-spacing: normal;
  word-spacing: var(--sui-word-spacing-normal, normal); transition: all 200ms;
}
.cms .text-input input:read-only { color: var(--sui-secondary-foreground-color); border-color: var(--sui-textbox-border-color) !important; background-color: var(--sui-disabled-background-color); }
.cms .text-input input[aria-invalid=true] { border-color: var(--sui-error-border-color); }
.cms .text-input input::placeholder { color: var(--sui-textbox-foreground-color); opacity: 0.5; }

/* Select trigger (svelte-s2pven), applied to a native <select> */
.cms .combobox { margin: var(--sui-focus-ring-width); display: flex; align-items: center; position: relative; min-width: calc(var(--sui-option-height) * 5); }
.cms .combobox select {
  appearance: none; display: flex; align-items: center;
  border-width: 1px; border-color: var(--sui-control-border-color); border-radius: var(--sui-textbox-border-radius);
  padding-block: 0; padding-inline-start: calc(var(--sui-textbox-height) / 4); padding-inline-end: var(--sui-textbox-height);
  width: 100%; height: var(--sui-textbox-height);
  color: var(--sui-control-foreground-color); background-color: var(--sui-disabled-background-color);
  font-family: var(--sui-control-font-family); font-size: var(--sui-control-font-size); line-height: var(--sui-control-line-height);
  user-select: none; cursor: pointer; transition: all 200ms;
}
.cms .combobox select:is(:hover, :focus) { background-color: var(--sui-hover-background-color); }
.cms .combobox option { color: var(--sui-primary-foreground-color); background-color: var(--sui-secondary-background-color); }
.cms .combobox .icon {
  position: absolute; inset-block-start: 0; inset-inline-end: 0; display: grid; place-items: center;
  width: var(--sui-textbox-height); height: var(--sui-textbox-height); opacity: 0.5; pointer-events: none; color: var(--sui-control-foreground-color);
}
.cms .combobox .icon svg { width: var(--sui-font-size-xx-large); height: var(--sui-font-size-xx-large); }
