:root {
  --swatch-gray-000: #fff;
  --swatch-gray-050: #faf9f5;
  --swatch-gray-100: #f5f4ed;
  --swatch-gray-150: #f0eee6;
  --swatch-gray-200: #e8e6dc;
  --swatch-gray-250: #dedcd1;
  --swatch-gray-300: #d1cfc5;
  --swatch-gray-350: #c2c0b6;
  --swatch-gray-400: #b0aea5;
  --swatch-gray-450: #9c9a92;
  --swatch-gray-500: #87867f;
  --swatch-gray-550: #73726c;
  --swatch-gray-600: #5e5d59;
  --swatch-gray-650: #4d4c48;
  --swatch-gray-700: #3d3d3a;
  --swatch-gray-750: #30302e;
  --swatch-gray-800: #262624;
  --swatch-gray-850: #1f1e1d;
  --swatch-gray-900: #1a1918;
  --swatch-gray-950: #141413;
  --swatch-gray-1000: #000;
  --swatch-clay: #d97757;
  --swatch-clay-interactive: #c96442;
  --swatch-oat: #e3dacc;
  --swatch-peach: #ebc9b7;
  --swatch-olive: #788c5d;
  --swatch-mineral: #629987;
  --swatch-cactus: #bcd1ca;
  --swatch-sky: #6a9bcc;
  --swatch-heather: #cbcadb;
  --swatch-plum: #827dbd;
  --swatch-fig: #c46686;
  --swatch-coral: #ebcece;
  --theme-bg-primary: var(--swatch-gray-950);
  --theme-bg-secondary: var(--swatch-gray-900);
  --theme-bg-tertiary: var(--swatch-gray-850);
  --theme-bg-elevated: var(--swatch-gray-800);
  --theme-fg-primary: var(--swatch-gray-050);
  --theme-fg-secondary: var(--swatch-gray-300);
  --theme-fg-tertiary: var(--swatch-gray-400);
  --theme-border-primary: var(--swatch-gray-600);
  --theme-border-secondary: var(--swatch-gray-700);
  --theme-border-tertiary: var(--swatch-gray-800);
  --theme-hover-wash: rgb(var(--theme-fg-rgb) / 0.06);
  --theme-text-accent: var(--swatch-clay);
  --theme-on-accent: var(--swatch-gray-000);
  --theme-on-plum: var(--swatch-gray-000);
  --theme-accent-interactive: var(--swatch-clay-interactive);
  --theme-accent-soft: var(--swatch-peach);
  --theme-error-text: #e07a7a;
  --theme-success-text: var(--swatch-olive);
  --theme-accent-rgb: 217 119 87;
  --theme-success-rgb: 120 140 93;
  --theme-error-rgb: 224 122 122;
  --theme-fg-rgb: 250 249 245;
  --theme-bg-rgb: 20 20 19;
  --theme-selection-bg: #14264a;
  --theme-selection-fg: #7ba3ea;
  --radius-x-small: 0.25rem;
  --radius-small: 0.5rem;
  --radius-main: 0.75rem;
  --radius-large: 1rem;
  --radius-x-large: clamp(1rem, 0.857rem + 0.714vw, 1.5rem);
  --radius-xx-large: clamp(1rem, 0.714rem + 1.429vw, 2rem);
  --border-width: 0.0625rem;
  --font-sans: "Inter", system-ui, -apple-system, sans-serif;
  --font-serif: "Newsreader", Georgia, serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --text-micro: 0.625rem;
  --text-caption: 0.75rem;
  --text-body-3: 0.9375rem;
  --text-body-2: 1.0625rem;
  --text-body-1: clamp(1.1875rem, 1.17rem + 0.09vw, 1.25rem);
  --text-body-large-2: clamp(1.25rem, 1.196rem + 0.268vw, 1.4375rem);
  --text-body-large-1: clamp(1.375rem, 1.339rem + 0.179vw, 1.5rem);
  --text-h6: clamp(1rem, 0.946rem + 0.268vw, 1.1875rem);
  --text-h5: clamp(1.25rem, 1.161rem + 0.446vw, 1.5625rem);
  --text-h4: clamp(1.4375rem, 1.277rem + 0.804vw, 2rem);
  --text-h3: clamp(1.75rem, 1.607rem + 0.714vw, 2.25rem);
  --text-h2: clamp(1.875rem, 1.625rem + 1.25vw, 2.75rem);
  --text-h1: clamp(2.125rem, 1.804rem + 1.607vw, 3.25rem);
  --text-display-2: clamp(2.25rem, 1.75rem + 2.5vw, 4rem);
  --text-display-1: clamp(2.625rem, 2.089rem + 2.679vw, 4.5rem);
  --leading-1: 1;
  --leading-1-1: 1.1;
  --leading-1-2: 1.2;
  --leading-1-3: 1.3;
  --leading-1-5: 1.5;
  --tracking-0: 0em;
  --tracking-1: 0.01em;
  --tracking-5: 0.05em;
  --space-0-125: 0.125rem;
  --space-0-25: 0.25rem;
  --space-0-375: 0.375rem;
  --space-0-5: 0.5rem;
  --space-0-625: 0.625rem;
  --space-0-75: 0.75rem;
  --space-1: 1rem;
  --space-1-25: 1.25rem;
  --space-1-5: 1.5rem;
  --space-2: clamp(1.75rem, 1.679rem + 0.357vw, 2rem);
  --space-2-5: clamp(2rem, 1.857rem + 0.714vw, 2.5rem);
  --space-3: clamp(2.5rem, 2.357rem + 0.714vw, 3rem);
  --space-4: clamp(3.25rem, 3.036rem + 1.071vw, 4rem);
  --space-5: clamp(4rem, 3.714rem + 1.429vw, 5rem);
  --space-6: clamp(4.5rem, 4.071rem + 2.143vw, 6rem);
  --nav-height: 5.3125rem;
  --cabinet-topbar-base: 3.75rem;
  --cabinet-topbar-height: calc(
    var(--cabinet-topbar-base) + env(safe-area-inset-top, 0px)
  );
  --max-width-main: 90rem;
  --max-width-medium: 74.5rem;
  --max-width-small: 60rem;
  --site-margin: clamp(2rem, 1.429rem + 2.857vw, 4rem);
  --ease-expo-out: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast: 0.2s;
  --duration-main: 0.3s;
  --card-bg: var(--theme-bg-secondary);
  --card-border: var(--theme-border-secondary);
  --card-radius: var(--radius-main);
  --card-padding: var(--space-1-5);
  --shadow-orange: 0 20px 60px -20px #0009;
  --shadow-card: 0 1px 3px #0003, 0 0 0 1px #ffffff08;
}
[data-brand="gpt"] {
  --theme-on-accent: #fff;
  --swatch-graphite-000: #fff;
  --swatch-graphite-100: #ececec;
  --swatch-graphite-200: #cdcdcd;
  --swatch-graphite-300: #b4b4b4;
  --swatch-graphite-400: #8f8f8f;
  --swatch-graphite-500: #676767;
  --swatch-graphite-600: #4d4d4d;
  --swatch-graphite-700: #3a3a3a;
  --swatch-graphite-750: #303030;
  --swatch-graphite-800: #2f2f2f;
  --swatch-graphite-850: #262626;
  --swatch-graphite-900: #212121;
  --swatch-graphite-950: #181818;
  --swatch-graphite-1000: #0d0d0d;
  --swatch-green: #10a37f;
  --swatch-green-interactive: #0d8c6d;
  --theme-bg-primary: var(--swatch-graphite-900);
  --theme-bg-secondary: var(--swatch-graphite-850);
  --theme-bg-tertiary: var(--swatch-graphite-800);
  --theme-bg-elevated: var(--swatch-graphite-750);
  --theme-fg-primary: var(--swatch-graphite-100);
  --theme-fg-secondary: var(--swatch-graphite-300);
  --theme-fg-tertiary: var(--swatch-graphite-400);
  --theme-border-primary: var(--swatch-graphite-600);
  --theme-border-secondary: var(--swatch-graphite-700);
  --theme-border-tertiary: #343434;
  --theme-hover-wash: rgb(var(--theme-fg-rgb) / 0.08);
  --theme-text-accent: var(--swatch-green);
  --theme-accent-interactive: var(--swatch-green-interactive);
  --theme-accent-soft: #6ee7b7;
  --theme-error-text: #ef4146;
  --theme-success-text: var(--swatch-green);
  --theme-selection-bg: #10382f;
  --theme-selection-fg: #34d3aa;
  --theme-accent-rgb: 16 163 127;
  --theme-success-rgb: 16 163 127;
  --theme-error-rgb: 239 65 70;
  --theme-fg-rgb: 236 236 236;
  --theme-bg-rgb: 33 33 33;
  --radius-x-small: 0.375rem;
  --radius-small: 0.625rem;
  --radius-main: 1rem;
  --radius-large: 1.25rem;
  --radius-x-large: clamp(1.25rem, 1.1rem + 0.75vw, 1.75rem);
  --radius-xx-large: clamp(1.5rem, 1.2rem + 1.5vw, 2.5rem);
  --font-sans: "Instrument Sans", system-ui, -apple-system, sans-serif;
  --font-serif: "Instrument Sans", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
[data-brand="gpt"] h1,
[data-brand="gpt"] h2,
[data-brand="gpt"] h3,
[data-brand="gpt"] h4 {
  letter-spacing: -0.022em;
  font-weight: var(--weight-semibold);
}
[data-brand="gpt"] .btn-danger,
[data-brand="gpt"] .btn-outline,
[data-brand="gpt"] .btn-primary,
[data-brand="gpt"] .btn-secondary,
[data-brand="gpt"] .btn-success {
  border-radius: 999px;
}
[data-brand="gpt"] ::selection {
  background: var(--theme-selection-bg);
  color: var(--theme-selection-fg);
}
[data-brand="gpt"] {
  scroll-padding-top: 6.5rem;
}
[data-brand="gpt"] body {
  background-image: radial-gradient(
    120% 60% at 50% 0,
    rgb(var(--theme-fg-rgb) / 0.028),
    transparent 60%
  );
  background-attachment: fixed;
}
[data-brand="gpt"] .card {
  border-color: rgb(var(--theme-fg-rgb) / 0.08);
  background-image: linear-gradient(
    rgb(var(--theme-fg-rgb) / 0.022),
    transparent 40%
  );
  box-shadow: 0 1px 2px #00000040, 0 8px 24px -16px #000c;
}
[data-brand="gpt"] .btn-primary {
  transition: background 0.16s, box-shadow 0.16s, transform 0.16s;
  box-shadow: inset 0 1px #ffffff29, 0 1px 2px #0000004d;
}
[data-brand="gpt"] .btn-primary:hover {
  box-shadow: inset 0 1px 0 #fff3,
    0 4px 14px -4px rgb(var(--theme-accent-rgb) / 0.55);
  transform: translateY(-1px);
}
[data-brand="gpt"] .btn-primary:active {
  transform: translateY(0) scale(0.985);
}
[data-brand="gpt"] .btn-outline,
[data-brand="gpt"] .btn-secondary {
  border-color: rgb(var(--theme-fg-rgb) / 0.12);
  transition: background 0.16s, border-color 0.16s;
}
[data-brand="gpt"] .btn-outline:hover,
[data-brand="gpt"] .btn-secondary:hover {
  border-color: rgb(var(--theme-fg-rgb) / 0.2);
  box-shadow: none;
}
[data-brand="gpt"] .form-input,
[data-brand="gpt"] .form-select {
  border-color: rgb(var(--theme-fg-rgb) / 0.1);
  box-shadow: none;
  border-radius: 0.75rem;
  transition: border-color 0.16s, box-shadow 0.16s;
}
[data-brand="gpt"] .form-input:focus,
[data-brand="gpt"] .form-select:focus {
  border-color: rgb(var(--theme-accent-rgb) / 0.6);
  box-shadow: 0 0 0 3px rgb(var(--theme-accent-rgb) / 0.16);
}
[data-brand="gpt"] :focus-visible {
  outline: 2px solid rgb(var(--theme-accent-rgb) / 0.7);
  outline-offset: 2px;
  border-radius: var(--radius-x-small);
}
[data-brand="gpt"] * {
  scrollbar-width: thin;
  scrollbar-color: rgb(var(--theme-fg-rgb) / 0.18) transparent;
}
[data-brand="gpt"] ::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
[data-brand="gpt"] ::-webkit-scrollbar-track {
  background: 0 0;
}
[data-brand="gpt"] ::-webkit-scrollbar-thumb {
  background: rgb(var(--theme-fg-rgb) / 0.16);
  background-clip: content-box;
  border: 3px solid #0000;
  border-radius: 999px;
}
[data-brand="gpt"] ::-webkit-scrollbar-thumb:hover {
  background: rgb(var(--theme-fg-rgb) / 0.28);
  background-clip: content-box;
}
[data-brand="grok"] {
  --swatch-gray-050: #fafafa;
  --swatch-gray-100: #f4f4f5;
  --swatch-gray-150: #ececee;
  --swatch-gray-200: #e4e4e7;
  --swatch-gray-250: #d9d9dd;
  --swatch-gray-300: #d4d4d8;
  --swatch-gray-350: #b8b8bf;
  --swatch-gray-400: #a1a1aa;
  --swatch-gray-450: #8b8b94;
  --swatch-gray-500: #71717a;
  --swatch-gray-550: #5f5f68;
  --swatch-gray-600: #52525b;
  --swatch-gray-650: #47474e;
  --swatch-gray-700: #3f3f46;
  --swatch-gray-750: #313136;
  --swatch-gray-800: #27272a;
  --swatch-gray-850: #1c1c1f;
  --swatch-gray-900: #131316;
  --swatch-gray-950: #09090b;
  --swatch-accent: #fff;
  --swatch-accent-dim: var(--swatch-gray-400);
  --swatch-accent-hover: var(--swatch-gray-200);
  --swatch-up: #3fb950;
  --swatch-down: #f85149;
  --swatch-cactus: var(--swatch-gray-350);
  --swatch-coral: var(--swatch-gray-250);
  --swatch-fig: var(--swatch-gray-450);
  --swatch-heather: var(--swatch-gray-350);
  --swatch-mineral: var(--swatch-gray-400);
  --swatch-oat: var(--swatch-gray-200);
  --swatch-peach: var(--swatch-gray-300);
  --swatch-plum: var(--swatch-gray-000);
  --swatch-sky: var(--swatch-gray-300);
  --theme-bg-elevated: var(--swatch-gray-850);
  --theme-bg-primary: var(--swatch-gray-1000);
  --theme-bg-secondary: var(--swatch-gray-950);
  --theme-bg-tertiary: var(--swatch-gray-900);
  --theme-fg-primary: var(--swatch-gray-000);
  --theme-fg-secondary: var(--swatch-gray-400);
  --theme-fg-tertiary: var(--swatch-gray-500);
  --theme-border-primary: var(--swatch-gray-700);
  --theme-border-secondary: var(--swatch-gray-800);
  --theme-border-tertiary: var(--swatch-gray-850);
  --theme-error-text: var(--swatch-down);
  --theme-hover-wash: #ffffff0d;
  --theme-on-accent: var(--swatch-gray-1000);
  --theme-on-plum: var(--swatch-gray-1000);
  --theme-selection-bg: #fff;
  --theme-selection-fg: #000;
  --theme-success-text: var(--swatch-up);
  --theme-text-accent: var(--swatch-accent);
  --font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-sans: "Geist", system-ui, -apple-system, sans-serif;
  --font-serif: "Geist", system-ui, -apple-system, sans-serif;
  --dir: 1;
  --e-glide: cubic-bezier(0.65, 0, 0.35, 1);
  --e-rule: cubic-bezier(0.16, 1, 0.3, 1);
  --e-snap: cubic-bezier(0.2, 0.9, 0.2, 1);
  --grain: url(
    data:image/svg + xml;charset=utf-8,
    %3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22160%22%20height%3D%22160%22%3E%3Cfilter%20id%3D%22a%22%3E%3CfeTurbulence%20baseFrequency%3D%22.8%22%20numOctaves%3D%223%22%20stitchTiles%3D%22stitch%22%20type%3D%22fractalNoise%22%2F%3E%3C%2Ffilter%3E%3Cpath%20d%3D%22M0%200h160v160H0z%22%20filter%3D%22url\(
        %23a\
      )%22%20opacity%3D%22.028%22%2F%3E%3C%2Fsvg%3E
  );
  --hair: 1px;
  --origin-x: left;
  --shadow-card: 0 1px 3px #00000080, 0 0 0 1px #ffffff0a;
  --shadow-orange: 0 24px 70px -24px #000000d9;
}
[data-brand="gemini"] {
  --theme-on-accent: #fff;
  --swatch-google-000: #fff;
  --swatch-google-100: #e3e3e3;
  --swatch-google-200: #c4c7c5;
  --swatch-google-300: #a2a9b0;
  --swatch-google-400: #8e918f;
  --swatch-google-500: #6f7570;
  --swatch-google-600: #5f6368;
  --swatch-google-700: #444746;
  --swatch-google-750: #37393b;
  --swatch-google-800: #282a2c;
  --swatch-google-850: #1e1f20;
  --swatch-google-900: #1b1c1d;
  --swatch-google-950: #131314;
  --swatch-google-1000: #0b0b0c;
  --swatch-gemini-blue: #3186ff;
  --swatch-gemini-blue-interactive: #1a73e8;
  --swatch-gemini-green: #08b962;
  --swatch-gemini-red: #f94543;
  --swatch-gemini-yellow: #fabc12;
  --theme-bg-primary: var(--swatch-google-950);
  --theme-bg-secondary: var(--swatch-google-900);
  --theme-bg-tertiary: var(--swatch-google-850);
  --theme-bg-elevated: var(--swatch-google-800);
  --theme-fg-primary: var(--swatch-google-100);
  --theme-fg-secondary: var(--swatch-google-200);
  --theme-fg-tertiary: var(--swatch-google-400);
  --theme-border-primary: var(--swatch-google-600);
  --theme-border-secondary: var(--swatch-google-700);
  --theme-border-tertiary: #2b2d2f;
  --theme-hover-wash: rgb(var(--theme-fg-rgb) / 0.08);
  --theme-text-accent: var(--swatch-gemini-blue);
  --theme-accent-interactive: var(--swatch-gemini-blue-interactive);
  --theme-accent-soft: #a8c7fa;
  --theme-error-text: var(--swatch-gemini-red);
  --theme-success-text: var(--swatch-gemini-green);
  --theme-selection-bg: #0f3057;
  --theme-selection-fg: #a8c7fa;
  --theme-accent-rgb: 49 134 255;
  --theme-success-rgb: 8 185 98;
  --theme-error-rgb: 249 69 67;
  --theme-fg-rgb: 227 227 227;
  --theme-bg-rgb: 19 19 20;
  --radius-x-small: 0.5rem;
  --radius-small: 0.75rem;
  --radius-main: 1.25rem;
  --radius-large: 1.75rem;
  --radius-x-large: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  --radius-xx-large: clamp(1.75rem, 1.4rem + 1.75vw, 2.75rem);
  --font-sans: "DM Sans", system-ui, -apple-system, sans-serif;
  --font-serif: "DM Sans", system-ui, sans-serif;
  --font-mono: "Google Sans Code", ui-monospace, SFMono-Regular, Menlo,
    monospace;
}
[data-brand="gemini"] h1,
[data-brand="gemini"] h2,
[data-brand="gemini"] h3,
[data-brand="gemini"] h4 {
  letter-spacing: -0.02em;
  font-weight: var(--weight-medium);
}
[data-brand="gemini"] .btn-danger,
[data-brand="gemini"] .btn-outline,
[data-brand="gemini"] .btn-primary,
[data-brand="gemini"] .btn-secondary,
[data-brand="gemini"] .btn-success {
  border-radius: 999px;
}
[data-brand="gemini"] ::selection {
  background: var(--theme-selection-bg);
  color: var(--theme-selection-fg);
}
*,
:after,
:before {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}
body {
  font-family: var(--font-sans);
  font-size: var(--text-body-3);
  color: var(--theme-fg-primary);
  background: var(--theme-bg-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.5;
}
a {
  color: inherit;
  text-decoration: none;
}
button {
  cursor: pointer;
  background: 0 0;
}
button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
  border: none;
}
input,
select,
textarea {
  background: 0 0;
  outline: none;
}
ol,
ul {
  list-style: none;
}
img,
svg {
  max-width: 100%;
  display: block;
}
:focus-visible {
  outline: 2px solid var(--theme-text-accent);
  outline-offset: 2px;
}
::selection {
  background: var(--theme-selection-bg);
  color: var(--theme-selection-fg);
}
.btn-primary {
  justify-content: center;
  align-items: center;
  gap: var(--space-0-5);
  padding: var(--space-0-625) var(--space-1-25);
  border-radius: var(--radius-small);
  background: var(--theme-text-accent);
  color: var(--theme-on-accent);
  font-weight: var(--weight-medium);
  font-size: var(--text-body-3);
  transition: background var(--duration-fast) var(--ease-expo-out),
    transform var(--duration-fast) var(--ease-expo-out),
    box-shadow var(--duration-fast);
  display: inline-flex;
  box-shadow: 0 1px 2px #0003, inset 0 1px #ffffff1a;
}
.btn-primary:hover {
  background: var(--theme-accent-interactive);
  box-shadow: 0 2px 6px rgb(var(--theme-accent-rgb) / 0.25),
    inset 0 1px 0 #ffffff1a;
}
.btn-primary:active {
  transform: scale(0.97);
}
.btn-outline {
  justify-content: center;
  align-items: center;
  gap: var(--space-0-5);
  padding: var(--space-0-625) var(--space-1-25);
  border-radius: var(--radius-small);
  border: 1px solid var(--theme-border-secondary);
  color: var(--theme-fg-primary);
  font-weight: var(--weight-medium);
  font-size: var(--text-body-3);
  transition: background var(--duration-fast) var(--ease-expo-out),
    border-color var(--duration-fast) var(--ease-expo-out),
    box-shadow var(--duration-fast);
  display: inline-flex;
  box-shadow: 0 1px 2px #00000026;
}
.btn-outline:hover {
  background: var(--theme-hover-wash);
  border-color: var(--theme-border-primary);
  box-shadow: 0 2px 4px #0003;
}
.btn-ghost {
  padding: var(--space-0-5) var(--space-1);
  border-radius: var(--radius-small);
  font-size: var(--text-body-3);
  font-weight: var(--weight-medium);
  color: var(--theme-fg-secondary);
  transition: color var(--duration-fast) var(--ease-expo-out);
}
.btn-ghost:hover,
.btn-secondary {
  color: var(--theme-fg-primary);
}
.btn-secondary {
  padding: var(--space-0-5) var(--space-1);
  border-radius: var(--radius-small);
  background: var(--theme-bg-elevated);
  font-weight: var(--weight-medium);
  font-size: var(--text-body-3);
  transition: background var(--duration-fast);
}
.btn-secondary:hover {
  background: var(--theme-bg-tertiary);
}
.btn-danger {
  justify-content: center;
  align-items: center;
  gap: var(--space-0-5);
  padding: var(--space-0-625) var(--space-1-5);
  border-radius: var(--radius-small);
  border: var(--border-width) solid var(--theme-error-text);
  color: var(--theme-error-text);
  font-weight: var(--weight-medium);
  transition: background var(--duration-fast);
  display: inline-flex;
}
.btn-danger:hover {
  background: rgb(var(--theme-error-rgb) / 0.1);
}
.card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--card-radius);
  padding: var(--card-padding);
  box-shadow: var(--shadow-card);
}
.card + .card {
  margin-top: var(--space-1);
}
.card-title {
  font-family: var(--font-serif);
  font-size: var(--text-h6);
  font-weight: var(--weight-medium);
  margin: 0 0 var(--space-0-75);
}
.form-group {
  gap: var(--space-0-25);
  flex-direction: column;
  display: flex;
}
.form-label {
  font-size: var(--text-caption);
  color: var(--theme-fg-tertiary);
}
.form-input {
  height: 2.75rem;
  padding: 0 var(--space-0-75);
  border-radius: var(--radius-small);
  border: 1px solid var(--theme-border-secondary);
  background: var(--theme-bg-tertiary);
  color: var(--theme-fg-primary);
  font-size: var(--text-body-3);
  transition: border-color var(--duration-fast), box-shadow var(--duration-fast);
  box-shadow: inset 0 1px 2px #00000026;
}
.form-input:focus {
  border-color: var(--theme-text-accent);
  box-shadow: inset 0 1px 2px #00000026,
    0 0 0 2px rgb(var(--theme-accent-rgb) / 0.15);
  outline: none;
}
.form-input::placeholder {
  color: var(--theme-fg-tertiary);
}
.form-select {
  height: 2.75rem;
  padding: 0 var(--space-0-75);
  border-radius: var(--radius-small);
  border: var(--border-width) solid var(--theme-border-secondary);
  background: var(--theme-bg-tertiary);
  color: var(--theme-fg-primary);
  font-size: var(--text-body-3);
  appearance: none;
  cursor: pointer;
  background-image: url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20fill%3D%22%23b0aea5%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22m7%2010%205%205%205-5z%22%2F%3E%3C%2Fsvg%3E);
  background-position: right 0.75rem center;
  background-repeat: no-repeat;
  padding-right: 2rem;
}
.form-hint {
  font-size: var(--text-caption);
  color: var(--theme-fg-tertiary);
  line-height: 1.5;
}
.toggle {
  background: var(--theme-bg-elevated);
  border: var(--border-width) solid var(--theme-border-secondary);
  cursor: pointer;
  width: 2.5rem;
  height: 1.375rem;
  transition: background var(--duration-fast);
  border-radius: 999px;
  flex-shrink: 0;
  position: relative;
}
.toggle:after {
  content: "";
  background: var(--theme-fg-tertiary);
  width: 1rem;
  height: 1rem;
  transition: transform var(--duration-fast) var(--ease-expo-out),
    background var(--duration-fast);
  border-radius: 50%;
  position: absolute;
  top: 0.125rem;
  left: 0.125rem;
}
.toggle.on {
  background: var(--theme-text-accent);
  border-color: var(--theme-text-accent);
}
.toggle.on:after {
  background: #fff;
  transform: translate(1.125rem);
}
.page-wrap,
.page-wrap-narrow {
  width: 100%;
}
.page-head {
  margin-bottom: var(--space-1-5);
}
.page-head h1 {
  font-family: var(--font-serif);
  font-size: var(--text-h4);
  font-weight: var(--weight-medium);
  margin: 0;
}
.page-head p {
  margin: var(--space-0-25) 0 0;
  color: var(--theme-fg-tertiary);
  font-size: var(--text-body-3);
}
.btn-outline:disabled,
.btn-primary:disabled,
.btn-secondary:disabled,
button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}
@media (width<=30rem) {
  .card {
    padding: var(--space-1);
  }
  .page-head h1 {
    font-size: var(--text-h5);
  }
}
.page-enter-active {
  animation: 0.15s ease-out pageFade;
}
.page-leave-active {
  animation: 0.1s ease-in reverse pageFade;
}
@keyframes pageFade {
  0% {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes pulse {
  0%,
  to {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  :after,
  :before {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
.auth-overlay[data-v-30c925d3] {
  z-index: 9000;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  padding: var(--space-1);
  background: #0009;
  place-items: center;
  display: grid;
  position: fixed;
  inset: 0;
}
.auth-modal[data-v-30c925d3] {
  background: var(--theme-bg-elevated);
  border: var(--border-width) solid var(--theme-border-secondary);
  border-radius: var(--radius-large);
  width: 100%;
  max-width: 26rem;
  padding: var(--space-2);
  position: relative;
}
.auth-close[data-v-30c925d3] {
  top: var(--space-0-75);
  right: var(--space-0-75);
  border-radius: var(--radius-small);
  width: 2rem;
  height: 2rem;
  color: var(--theme-fg-tertiary);
  transition: background var(--duration-fast), color var(--duration-fast);
  place-items: center;
  display: grid;
  position: absolute;
}
.auth-close[data-v-30c925d3]:hover {
  background: var(--theme-hover-wash);
  color: var(--theme-fg-primary);
}
.auth-close svg[data-v-30c925d3] {
  width: 1.25rem;
  height: 1.25rem;
}
.auth-brand[data-v-30c925d3] {
  align-items: center;
  gap: var(--space-0-5);
  margin-bottom: var(--space-1-5);
  justify-content: center;
  display: flex;
}
.auth-logo[data-v-30c925d3] {
  width: 28px;
  height: 28px;
  color: var(--theme-text-accent);
  display: inline-flex;
}
.auth-logo svg[data-v-30c925d3] {
  width: 100%;
  height: 100%;
}
.auth-word[data-v-30c925d3] {
  font-size: var(--text-body-1);
  font-weight: var(--weight-semibold);
  margin-top: 0.15em;
  line-height: 1;
}
.auth-title[data-v-30c925d3],
.auth-word[data-v-30c925d3] {
  font-family: var(--font-serif);
}
.auth-title[data-v-30c925d3] {
  font-size: var(--text-h5);
  font-weight: var(--weight-medium);
  text-align: center;
  margin-bottom: var(--space-0-25);
}
.auth-subtitle[data-v-30c925d3] {
  text-align: center;
  font-size: var(--text-body-3);
  color: var(--theme-fg-tertiary);
  margin-bottom: var(--space-1-5);
}
.auth-form[data-v-30c925d3] {
  gap: var(--space-0-75);
  flex-direction: column;
  display: flex;
}
.auth-form > .form-input[data-v-30c925d3],
.auth-row[data-v-30c925d3] {
  width: 100%;
}
.auth-row[data-v-30c925d3] {
  gap: var(--space-0-75);
  grid-template-columns: 1fr 1fr;
  display: grid;
}
.auth-row .form-input[data-v-30c925d3] {
  width: 100%;
  min-width: 0;
}
.auth-error[data-v-30c925d3] {
  font-size: var(--text-caption);
  color: var(--theme-error-text);
  text-align: center;
  margin: 0;
}
.auth-submit[data-v-30c925d3] {
  width: 100%;
  margin-top: var(--space-0-25);
}
.auth-switch[data-v-30c925d3] {
  text-align: center;
  margin-top: var(--space-1);
  font-size: var(--text-body-3);
  color: var(--theme-fg-tertiary);
}
.auth-switch a[data-v-30c925d3] {
  color: var(--theme-text-accent);
  font-weight: var(--weight-medium);
}
.auth-pw-wrap[data-v-30c925d3] {
  width: 100%;
  position: relative;
}
.auth-pw-wrap .form-input[data-v-30c925d3] {
  width: 100%;
  padding-right: 2.75rem;
}
.auth-pw-toggle[data-v-30c925d3] {
  width: 1.75rem;
  height: 1.75rem;
  color: var(--theme-fg-tertiary);
  border-radius: var(--radius-x-small);
  transition: color var(--duration-fast);
  place-items: center;
  display: grid;
  position: absolute;
  top: 50%;
  right: 0.5rem;
  transform: translateY(-50%);
}
.auth-pw-toggle[data-v-30c925d3]:hover {
  color: var(--theme-fg-primary);
}
.auth-pw-toggle svg[data-v-30c925d3] {
  width: 1.125rem;
  height: 1.125rem;
}
.totp-input[data-v-30c925d3] {
  text-align: center;
  font-family: var(--font-mono);
  font-size: var(--text-h5);
  letter-spacing: 0.15em;
}
.auth-field-wrap[data-v-30c925d3] {
  gap: var(--space-0-25);
  flex-direction: column;
  width: 100%;
  display: flex;
}
.auth-field-error[data-v-30c925d3] {
  font-size: var(--text-micro);
  color: var(--theme-error-text);
  padding-left: 2px;
}
.input-error[data-v-30c925d3] {
  border-color: var(--theme-error-text) !important;
}
.field-hint-enter-active[data-v-30c925d3] {
  animation: 0.15s ease-out fieldHintIn-30c925d3;
}
.field-hint-leave-active[data-v-30c925d3] {
  animation: 0.1s ease-in reverse fieldHintIn-30c925d3;
}
@keyframes fieldHintIn-30c925d3 {
  0% {
    opacity: 0;
    transform: translateY(-2px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.pw-strength[data-v-30c925d3] {
  align-items: center;
  gap: var(--space-0-5);
  display: flex;
}
.pw-strength-bar[data-v-30c925d3] {
  flex: 1;
  gap: 3px;
  display: flex;
}
.pw-strength-seg[data-v-30c925d3] {
  background: var(--theme-border-secondary);
  border-radius: 2px;
  flex: 1;
  height: 3px;
  transition: background 0.2s;
}
.pw-strength-seg.filled.s1[data-v-30c925d3] {
  background: var(--theme-error-text);
}
.pw-strength-seg.filled.s2[data-v-30c925d3] {
  background: #d9a757;
}
.pw-strength-seg.filled.s3[data-v-30c925d3] {
  background: #a7b86a;
}
.pw-strength-seg.filled.s4[data-v-30c925d3] {
  background: var(--theme-success-text);
}
.pw-strength-label[data-v-30c925d3] {
  font-size: var(--text-micro);
  font-weight: var(--weight-medium);
  white-space: nowrap;
}
.pw-strength-label.s1[data-v-30c925d3] {
  color: var(--theme-error-text);
}
.pw-strength-label.s2[data-v-30c925d3] {
  color: #d9a757;
}
.pw-strength-label.s3[data-v-30c925d3] {
  color: #a7b86a;
}
.pw-strength-label.s4[data-v-30c925d3] {
  color: var(--theme-success-text);
}
.modal-enter-active[data-v-30c925d3],
.modal-leave-active[data-v-30c925d3] {
  transition: opacity 0.2s var(--ease-expo-out);
}
.modal-enter-active .auth-modal[data-v-30c925d3],
.modal-leave-active .auth-modal[data-v-30c925d3] {
  transition: transform 0.2s var(--ease-expo-out);
}
.modal-enter-from[data-v-30c925d3],
.modal-leave-to[data-v-30c925d3] {
  opacity: 0;
}
.modal-enter-from .auth-modal[data-v-30c925d3],
.modal-leave-to .auth-modal[data-v-30c925d3] {
  transform: scale(0.96) translateY(8px);
}
.cd-overlay[data-v-5caee424] {
  z-index: 9500;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  padding: var(--space-1);
  background: #0000008c;
  place-items: center;
  display: grid;
  position: fixed;
  inset: 0;
}
.cd-modal[data-v-5caee424] {
  background: var(--theme-bg-elevated);
  border: var(--border-width) solid var(--theme-border-secondary);
  border-radius: var(--radius-large);
  width: 100%;
  max-width: 22rem;
  padding: var(--space-1-5) var(--space-1-5) var(--space-1-25);
  text-align: center;
}
.cd-icon[data-v-5caee424] {
  width: 3rem;
  height: 3rem;
  margin: 0 auto var(--space-1);
  border-radius: 50%;
  place-items: center;
  display: grid;
}
.cd-icon svg[data-v-5caee424] {
  width: 1.5rem;
  height: 1.5rem;
}
.cd-icon.danger[data-v-5caee424] {
  background: rgb(var(--theme-error-rgb) / 0.12);
  color: var(--theme-error-text);
}
.cd-icon.default[data-v-5caee424] {
  background: rgb(var(--theme-accent-rgb) / 0.1);
  color: var(--theme-text-accent);
}
.cd-title[data-v-5caee424] {
  font-family: var(--font-serif);
  font-size: var(--text-body-1);
  font-weight: var(--weight-medium);
  margin-bottom: var(--space-0-375);
}
.cd-message[data-v-5caee424] {
  font-size: var(--text-body-3);
  color: var(--theme-fg-tertiary);
  margin: 0 0 var(--space-1-25);
  line-height: 1.5;
}
.cd-actions[data-v-5caee424] {
  gap: var(--space-0-5);
  display: flex;
}
.cd-cancel[data-v-5caee424],
.cd-confirm[data-v-5caee424] {
  font-size: var(--text-body-3);
  flex: 1;
}
.confirm-enter-active[data-v-5caee424],
.confirm-leave-active[data-v-5caee424] {
  transition: opacity 0.15s;
}
.confirm-enter-active .cd-modal[data-v-5caee424],
.confirm-leave-active .cd-modal[data-v-5caee424] {
  transition: transform 0.15s;
}
.confirm-enter-from[data-v-5caee424],
.confirm-leave-to[data-v-5caee424] {
  opacity: 0;
}
.confirm-enter-from .cd-modal[data-v-5caee424],
.confirm-leave-to .cd-modal[data-v-5caee424] {
  transform: scale(0.95) translateY(6px);
}
.toast-container[data-v-d4a00243] {
  bottom: var(--space-1-5);
  right: var(--space-1-5);
  z-index: 9999;
  gap: var(--space-0-5);
  pointer-events: none;
  flex-direction: column;
  display: flex;
  position: fixed;
}
@media (width<=48rem) {
  .toast-container[data-v-d4a00243] {
    bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px));
    right: var(--space-0-75);
  }
}
.toast-item[data-v-d4a00243] {
  align-items: center;
  gap: var(--space-0-5);
  padding: var(--space-0-75) var(--space-1);
  background: var(--theme-bg-elevated);
  border: var(--border-width) solid var(--theme-border-secondary);
  border-radius: var(--radius-small);
  cursor: pointer;
  pointer-events: auto;
  max-width: 22rem;
  display: flex;
  box-shadow: 0 8px 24px #0000004d;
}
.toast-icon[data-v-d4a00243] {
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
}
.toast-text[data-v-d4a00243] {
  font-size: var(--text-caption);
  color: var(--theme-fg-primary);
  line-height: 1.4;
}
.toast-item.success[data-v-d4a00243] {
  border-color: rgb(var(--theme-success-rgb) / 0.3);
}
.toast-item.success .toast-icon[data-v-d4a00243] {
  color: var(--theme-success-text);
}
.toast-item.error[data-v-d4a00243] {
  border-color: rgb(var(--theme-error-rgb) / 0.3);
}
.toast-item.error .toast-icon[data-v-d4a00243] {
  color: var(--theme-error-text);
}
.toast-item.info[data-v-d4a00243] {
  border-color: rgb(var(--theme-accent-rgb) / 0.3);
}
.toast-item.info .toast-icon[data-v-d4a00243] {
  color: var(--theme-text-accent);
}
.toast-enter-active[data-v-d4a00243] {
  animation: toastSlide-d4a00243 0.25s var(--ease-expo-out);
}
.toast-leave-active[data-v-d4a00243] {
  animation: toastSlide-d4a00243 0.15s var(--ease-expo-out) reverse;
}
.toast-move[data-v-d4a00243] {
  transition: transform 0.2s var(--ease-expo-out);
}
@keyframes toastSlide-d4a00243 {
  0% {
    opacity: 0;
    transform: translate(1rem);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (width<=30rem) {
  .toast-container[data-v-d4a00243] {
    left: var(--space-0-75);
    right: var(--space-0-75);
    bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px));
  }
  .toast-item[data-v-d4a00243] {
    max-width: none;
  }
}
.cc[data-v-3da6d14c] {
  bottom: var(--space-1);
  z-index: 9998;
  width: calc(100% - 2rem);
  max-width: 40rem;
  position: fixed;
  left: 50%;
  transform: translate(-50%);
}
.cc-inner[data-v-3da6d14c] {
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-1) var(--space-1-25);
  background: var(--theme-bg-elevated);
  border: var(--border-width) solid var(--theme-border-secondary);
  border-radius: var(--radius-main);
  display: flex;
  box-shadow: 0 8px 30px #00000059;
}
.cc-text[data-v-3da6d14c] {
  font-size: var(--text-caption);
  color: var(--theme-fg-secondary);
  flex: 1;
  margin: 0;
  line-height: 1.5;
}
.cc-link[data-v-3da6d14c] {
  color: var(--theme-text-accent);
  font-weight: var(--weight-medium);
  text-underline-offset: 2px;
  text-decoration: underline;
}
.cc-btns[data-v-3da6d14c] {
  gap: var(--space-0-5);
  flex-shrink: 0;
  display: flex;
}
.cc-accept[data-v-3da6d14c] {
  padding: var(--space-0-375) var(--space-1);
}
.cc-accept[data-v-3da6d14c],
.cc-decline[data-v-3da6d14c] {
  font-size: var(--text-caption);
}
.cc-decline[data-v-3da6d14c] {
  padding: var(--space-0-375) var(--space-0-75);
  color: var(--theme-fg-tertiary);
}
.cookie-enter-active[data-v-3da6d14c] {
  animation: cookieSlide-3da6d14c 0.3s var(--ease-expo-out);
}
.cookie-leave-active[data-v-3da6d14c] {
  animation: cookieSlide-3da6d14c 0.2s var(--ease-expo-out) reverse;
}
@keyframes cookieSlide-3da6d14c {
  0% {
    opacity: 0;
    transform: translate(-50%) translateY(1rem);
  }
  to {
    opacity: 1;
    transform: translate(-50%) translateY(0);
  }
}
@media (width<=36rem) {
  .cc-inner[data-v-3da6d14c] {
    text-align: center;
    gap: var(--space-0-75);
    flex-direction: column;
  }
  .cc-btns[data-v-3da6d14c] {
    width: 100%;
  }
  .cc-accept[data-v-3da6d14c] {
    flex: 1;
  }
}
.offline-banner[data-v-333c1665] {
  z-index: 10000;
  justify-content: center;
  align-items: center;
  gap: var(--space-0-5);
  padding: var(--space-0-375) var(--space-1);
  background: var(--theme-error-text);
  color: #fff;
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  text-align: center;
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
}
.offline-banner svg[data-v-333c1665] {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
}
.offline-enter-active[data-v-333c1665] {
  animation: 0.2s ease-out offSlide-333c1665;
}
.offline-leave-active[data-v-333c1665] {
  animation: 0.15s ease-in reverse offSlide-333c1665;
}
@keyframes offSlide-333c1665 {
  0% {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}
.error-page[data-v-4ddaa2e2] {
  background: var(--theme-bg-primary);
  min-height: 100vh;
  padding: var(--space-2);
  justify-content: center;
  align-items: center;
  display: flex;
}
.error-card[data-v-4ddaa2e2] {
  text-align: center;
  max-width: 28rem;
}
.error-code[data-v-4ddaa2e2] {
  font-family: var(--font-mono);
  font-size: 6rem;
  font-weight: var(--weight-bold);
  color: var(--theme-text-accent);
  margin-bottom: var(--space-0-75);
  opacity: 0.3;
  line-height: 1;
}
.error-title[data-v-4ddaa2e2] {
  font-family: var(--font-serif);
  font-size: var(--text-h3);
  font-weight: var(--weight-medium);
  margin-bottom: var(--space-0-5);
}
.error-desc[data-v-4ddaa2e2] {
  color: var(--theme-fg-tertiary);
  font-size: var(--text-body-3);
  margin-bottom: var(--space-1-5);
  line-height: 1.6;
}
.error-actions[data-v-4ddaa2e2] {
  gap: var(--space-0-75);
  justify-content: center;
  display: flex;
}
