/* ============================================================================
   LSA Theme Tokens
   Edit this file first when changing colors, radii, shadows, compact type, or
   shared control sizing for the public website.
   ============================================================================ */

:root {
    color-scheme: light;

    /* Core palette */
    --palette-ink: #173246;
    --palette-ink-strong: #10283a;
    --palette-ink-soft: #294151;
    --palette-muted: #5a6d78;
    --palette-muted-strong: #496171;
    --palette-mint: #74cfbe;
    --palette-mint-dark: #286258;
    --palette-mint-deep: #18556a;
    --palette-blue: #5b8ff0;
    --palette-blue-soft: #8ab4f8;
    --palette-blue-strong: #1f6df2;
    --palette-blue-hover: #185ee0;
    --palette-blue-hover-end: #2f7eea;
    --palette-blue-mid: #3e8cf5;
    --palette-amber: #f6bb53;
    --palette-green: #22c55e;
    --palette-red: #f87171;
    --palette-white: #ffffff;
    --palette-page: #fcfefd;
    --palette-page-cool: #f3fbff;
    --palette-page-warm: #fffaf0;
    --palette-photo-base: #eef8f8;

    /* Social icon palette */
    --theme-social-facebook: var(--palette-blue);
    --theme-social-instagram-yellow: #feda75;
    --theme-social-instagram-orange: #fa7e1e;
    --theme-social-instagram-pink: #d62976;
    --theme-social-instagram-purple: #962fbf;
    --theme-social-instagram-blue: #4f5bd5;
    --theme-social-instagram-glyph: var(--palette-white);

    /* Text */
    --theme-text: var(--palette-ink);
    --theme-text-strong: var(--palette-ink-strong);
    --theme-heading: var(--palette-ink);
    --theme-nav-text: var(--palette-ink-soft);
    --theme-nav-active: var(--palette-mint-deep);
    --theme-link: var(--palette-mint-dark);
    --theme-link-alt: var(--palette-blue);
    --theme-muted: var(--palette-muted);
    --theme-muted-strong: var(--palette-muted-strong);
    --theme-on-action: var(--palette-white);
    --theme-on-photo: var(--palette-white);
    --theme-accent-soft: rgba(116, 207, 190, 0.18);
    --theme-accent-soft-low: rgba(116, 207, 190, 0.14);
    --theme-accent-line: rgba(116, 207, 190, 0.38);

    /* Surfaces and borders */
    --theme-bg: #f6fbfb;
    --theme-page-fill: #fbfdff;
    --theme-surface: rgba(255, 255, 255, 0.78);
    --theme-surface-soft: rgba(255, 255, 255, 0.66);
    --theme-surface-weak: rgba(255, 255, 255, 0.54);
    --theme-surface-field: rgba(255, 255, 255, 0.86);
    --theme-surface-strong: rgba(255, 255, 255, 0.92);
    --theme-surface-solid: rgba(255, 255, 255, 0.98);
    --theme-header-surface: rgba(255, 255, 255, 0.86);
    --theme-nav-surface: rgba(255, 255, 255, 0.78);
    --theme-photo-base: var(--palette-photo-base);
    --theme-photo-chip: rgba(28, 64, 76, 0.58);
    --theme-photo-chip-line: rgba(255, 255, 255, 0.20);
    --theme-line: rgba(82, 143, 133, 0.12);
    --theme-line-soft: rgba(82, 143, 133, 0.10);
    --theme-line-medium: rgba(82, 143, 133, 0.14);
    --theme-line-strong: rgba(15, 23, 42, 0.08);
    --theme-field-line: rgba(82, 143, 133, 0.18);
    --theme-white-line: rgba(255, 255, 255, 0.36);

    /* Status colors */
    --theme-success: var(--palette-green);
    --theme-success-ring: rgba(34, 197, 94, 0.36);
    --theme-success-bg: rgba(240, 253, 244, 0.85);
    --theme-success-line: rgba(34, 197, 94, 0.22);
    --theme-warning: var(--palette-amber);
    --theme-warning-bg: rgba(255, 251, 235, 0.90);
    --theme-warning-line: rgba(246, 187, 83, 0.34);
    --theme-danger: var(--palette-red);
    --theme-danger-bg: rgba(254, 242, 242, 0.90);
    --theme-danger-line: rgba(248, 113, 113, 0.28);

    /* Gradients */
    --theme-page-gradient: linear-gradient(135deg, var(--palette-page) 0%, var(--palette-page-cool) 48%, var(--palette-page-warm) 100%);
    --theme-grid-background:
        linear-gradient(90deg, rgba(43, 111, 143, 0.045) 1px, transparent 1px),
        linear-gradient(0deg, rgba(43, 111, 143, 0.045) 1px, transparent 1px),
        var(--theme-page-gradient);
    --theme-body-gradient:
        linear-gradient(135deg, rgba(253, 254, 252, 0.98), rgba(244, 251, 255, 0.96)),
        var(--theme-page-fill);
    --theme-panel-gradient:
        linear-gradient(135deg, rgba(255, 255, 255, 0.88), rgba(244, 251, 255, 0.82)),
        linear-gradient(120deg, rgba(116, 207, 190, 0.18), transparent 58%);
    --theme-panel-warm-gradient:
        linear-gradient(135deg, rgba(255, 255, 255, 0.88), rgba(244, 251, 255, 0.82)),
        linear-gradient(120deg, rgba(246, 187, 83, 0.14), rgba(116, 207, 190, 0.12));
    --theme-ambient-background:
        radial-gradient(circle at 12% 16%, rgba(116, 207, 190, 0.16), transparent 18rem),
        radial-gradient(circle at 82% 18%, rgba(138, 180, 248, 0.12), transparent 20rem),
        radial-gradient(circle at 72% 90%, rgba(246, 187, 83, 0.10), transparent 18rem);
    --theme-action-gradient: linear-gradient(135deg, var(--palette-blue), var(--palette-mint));
    --theme-primary-gradient: linear-gradient(135deg, var(--palette-blue-strong), var(--palette-blue-mid));
    --theme-primary-hover-gradient: linear-gradient(135deg, var(--palette-blue-hover), var(--palette-blue-hover-end));
    --theme-home-card-accent: linear-gradient(90deg, var(--palette-mint), var(--palette-blue-soft), var(--palette-amber));
    --theme-photo-overlay:
        linear-gradient(180deg, rgba(15, 23, 42, 0) 44%, rgba(21, 60, 78, 0.42)),
        linear-gradient(120deg, rgba(116, 207, 190, 0.12), transparent 48%);
    --theme-stage-lines:
        linear-gradient(120deg, transparent 0 58%, rgba(246, 187, 83, 0.10) 58% 59%, transparent 59%),
        linear-gradient(150deg, transparent 0 64%, rgba(91, 185, 205, 0.12) 64% 65%, transparent 65%);
    --theme-molecule-shadow: 0 0 0 1px rgba(91, 145, 160, 0.14), 0 0 20px rgba(116, 207, 190, 0.22);
    --theme-molecule-mint: radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.96), rgba(116, 207, 190, 0.36));
    --theme-molecule-blue: radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.96), rgba(103, 169, 224, 0.32));
    --theme-molecule-amber: radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.98), rgba(246, 187, 83, 0.40));
    --theme-molecule-link: linear-gradient(90deg, rgba(103, 169, 224, 0.02), rgba(116, 207, 190, 0.26), rgba(246, 187, 83, 0.08));

    /* Shadows and effects */
    --theme-shadow-xs: 0 8px 18px rgba(47, 76, 92, 0.035);
    --theme-shadow-sm: 0 10px 20px rgba(47, 76, 92, 0.07);
    --theme-shadow-md: 0 12px 24px rgba(47, 76, 92, 0.06);
    --theme-shadow-lg: 0 18px 44px rgba(47, 76, 92, 0.08);
    --theme-shadow-nav: 0 12px 24px rgba(47, 76, 92, 0.06);
    --theme-shadow-header: 0 10px 26px rgba(40, 64, 84, 0.045);
    --theme-shadow-menu: 0 18px 36px rgba(47, 76, 92, 0.12);
    --theme-shadow-photo: 0 26px 58px rgba(47, 76, 92, 0.12);
    --theme-shadow-action: 0 14px 26px rgba(91, 143, 240, 0.15);
    --theme-shadow-action-strong: 0 16px 30px rgba(91, 143, 240, 0.18);
    --theme-focus-ring: 0 0 0 3px rgba(116, 207, 190, 0.18);
    --theme-focus-outline: rgba(116, 207, 190, 0.42);
    --theme-blur: blur(14px);
    --theme-blur-strong: blur(18px);

    /* Shape, layout, and compact type */
    --theme-radius-sm: 7px;
    --theme-radius-md: 8px;
    --theme-radius-pill: 999px;
    --theme-container: min(1160px, calc(100vw - 1.5rem));
    --theme-container-wide: min(1320px, calc(100vw - 1rem));
    --theme-header-height: 3.35rem;
    --theme-nav-item-height: 2.25rem;
    --theme-control-height: 2.75rem;
    --theme-home-photo-height: clamp(16.5rem, 31vw, 23.5rem);
    --theme-home-photo-height-tablet: 13.5rem;
    --theme-home-photo-height-mobile: clamp(10.2rem, 52vw, 13.25rem);
    --theme-news-image-height: clamp(12rem, 42vw, 18rem);
    --theme-news-thumbnail-height: 12rem;
    --theme-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --theme-font-xs: 0.76rem;
    --theme-font-sm: 0.86rem;
    --theme-font-md: 0.94rem;
    --theme-font-lg: 1.08rem;
    --theme-page-title-sm: 1.85rem;
    --theme-page-title-md: 2.55rem;
    --theme-page-title-lg: 3rem;

    /* Legacy and modern public aliases */
    --ui-ink: var(--theme-text);
    --ui-muted: var(--theme-muted);
    --ui-soft: var(--theme-bg);
    --ui-panel: var(--theme-surface);
    --ui-panel-strong: var(--theme-surface-strong);
    --ui-line: var(--theme-line);
    --ui-green: var(--palette-mint);
    --ui-blue: var(--palette-blue-soft);
    --ui-amber: var(--palette-amber);
    --ui-shadow: var(--theme-shadow-lg);

    --blue-primary: var(--palette-blue-strong);
    --blue-dark: var(--palette-blue-hover);
    --blue-light: var(--palette-blue-soft);
    --primary: var(--palette-blue-strong);
    --primary-dark: var(--palette-blue-hover);
    --primary-light: var(--palette-blue-mid);
    --secondary: var(--palette-blue-strong);
    --accent: var(--palette-blue-mid);
    --text-primary: var(--theme-text);
    --text-secondary: var(--theme-muted);
    --text-strong: var(--theme-on-action);
    --text-soft: rgba(255, 255, 255, 0.72);
    --bg-light: var(--theme-bg);
    --light: var(--palette-page-cool);
    --dark: var(--theme-text-strong);
    --hero-gradient-start: var(--palette-blue);
    --hero-gradient-end: var(--palette-blue-strong);
    --color-success: var(--theme-success);
    --color-accent: var(--theme-warning);
    --shadow-sm: var(--theme-shadow-sm);
    --shadow-lg: var(--theme-shadow-lg);
    --radius-md: var(--theme-radius-md);
    --radius-lg: var(--theme-radius-md);
    --container-max: var(--theme-container);
    --font-sans: var(--theme-font-sans);
}
