@font-face {
  font-display: swap;
  font-family: "Jjannon Display";
  font-style: normal;
  font-weight: 300;
  src: url("/assets/JJannon-Display-Light-96a46a66.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "Jjannon Display";
  font-style: normal;
  font-weight: 400;
  src: url("/assets/JJannon-Display-Regular-afd84c43.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "Jjannon Display";
  font-style: italic;
  font-weight: 300;
  src: url("/assets/JJannon-Display-Light-Italic-07e803a0.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  src: url("/assets/Inter-Variable-496a588b.woff2") format("woff2");
}

:root {
  color-scheme: light;

  /* Little Plains color roles */
  --color-ink: #002142;
  --color-accent: #0398fa;
  --color-accent-strong: #0076c2;
  --color-agent-avatar: #f9e14b;
  --color-selection: #314cff;
  --color-surface: #ffffff;
  --color-surface-soft: #f3f8fc;
  --color-surface-soft-high: #fbfdff;
  --color-surface-soft-low: #e8f0f6;
  --color-card-media: color-mix(in srgb, var(--color-surface-soft) 44%, var(--color-surface));
  --color-text-muted: rgba(0, 33, 66, 0.62);
  --color-text-subtle: rgba(0, 33, 66, 0.38);
  --color-border-subtle: rgba(0, 33, 66, 0.08);
  --color-border-default: rgba(0, 33, 66, 0.14);
  --color-border-strong: rgba(0, 33, 66, 0.22);
  --color-nav-glass: rgba(240, 242, 245, 0.72);
  --color-nav-indicator: rgba(255, 255, 255, 0.9);
  --color-success: #166534;
  --color-success-surface: #ecfdf3;
  --color-warning: #92400e;
  --color-warning-surface: #fffbeb;
  --color-danger: #b42318;
  --color-danger-surface: #fef2f2;
  --color-code-surface: #00172e;
  --color-site-gradient: linear-gradient(180deg, #d9eefb 0%, #eef7fc 18%, #ffffff 42%, #ffffff 72%, #f4fbff 100%);

  /* Typography */
  --font-family-reading: "Jjannon Display", Georgia, serif;
  --font-family-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --type-display-size: 42px;
  --type-display-line-height: 1.06;
  --type-page-title-size: clamp(1.85rem, 3vw, 2.2rem);
  --type-page-title-line-height: 1.08;
  --type-heading-size: 24px;
  --type-heading-line-height: 1.2;
  --type-subheading-size: 18px;
  --type-subheading-line-height: 1.3;
  --type-lead-size: 18px;
  --type-lead-line-height: 1.55;
  --type-body-size: 14px;
  --type-body-line-height: 1.48;
  --type-ui-size: 13px;
  --type-ui-line-height: 1.25;
  --type-ui-small-size: 12px;
  --type-ui-small-line-height: 1.35;
  --type-caption-size: 13px;
  --type-caption-line-height: 1.35;

  /* Spacing */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 144px;

  /* Geometry and measures */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-pill: 999px;
  --layout-panel-inset: 16px;
  --layout-frame: 1180px;
  --layout-wide-frame: 1480px;
  --layout-gutter: clamp(16px, 3vw, 40px);
  --layout-grid-gap: 16px;
  --measure-copy: 700px;
  --measure-control: 620px;
  --measure-search: 840px;
  --control-height-standard: 40px;
  --control-height-nav: 40px;
  --control-height-search: 70px;

  /* Elevation and focus */
  --shadow-card: 0 1px 4px rgba(0, 33, 66, 0.05), 0 4px 16px rgba(0, 33, 66, 0.06);
  --shadow-card-hover: 0 2px 8px rgba(0, 33, 66, 0.07), 0 8px 28px rgba(0, 33, 66, 0.1);
  --shadow-nav-indicator: 0 2px 10px rgba(0, 33, 66, 0.05);
  --shadow-panel: 0 4px 60px rgba(0, 33, 66, 0.07), 0 0 0 1px rgba(0, 33, 66, 0.03);
  --shadow-floating: 0 12px 40px rgba(0, 33, 66, 0.15);
  --focus-ring: 0 0 0 3px rgba(3, 152, 250, 0.28);

  /* Motion */
  --motion-ease-standard: cubic-bezier(0.67, 0, 0.67, 1);
  --motion-ease-emphasized: cubic-bezier(0.22, 1, 0.36, 1);
  --motion-duration-control: 180ms;
  --motion-duration-card-image: 220ms;
  --motion-duration-hover: 300ms;

  /* Layering */
  --z-content: 1;
  --z-panel: 2;
  --z-header: 30;
  --z-menu: 40;
  --z-dock: 60;
  --z-modal: 80;

  /* Short aliases for feature styles during the migration. */
  --lp-ink: var(--color-ink);
  --lp-accent: var(--color-accent);
  --lp-accent-strong: var(--color-accent-strong);
  --lp-surface: var(--color-surface);
  --lp-surface-soft: var(--color-surface-soft);
  --lp-surface-high: var(--color-surface-soft-high);
  --lp-surface-low: var(--color-surface-soft-low);
  --lp-muted: var(--color-text-muted);
  --lp-subtle: var(--color-text-subtle);
  --lp-border: var(--color-border-default);
  --lp-border-subtle: var(--color-border-subtle);
  --lp-font-reading: var(--font-family-reading);
  --lp-font-ui: var(--font-family-ui);
  --lp-radius-card: var(--radius-md);
  --lp-radius-control: var(--radius-sm);
  --lp-shadow-card: var(--shadow-card);
  --lp-shadow-hover: var(--shadow-card-hover);
  --lp-shadow-panel: var(--shadow-panel);
}

@media (max-width: 800px) {
  :root {
    --layout-panel-inset: 8px;
    --layout-gutter: 16px;
    --layout-grid-gap: 12px;
    --type-page-title-size: 1.85rem;
    --type-heading-size: 22px;
  }
}
