@layer config, theme, reset, base, utils, components, helpers;

@font-face {
    font-family: 'Georama';
    src:
        local('Georama'),
        url('/assets/fonts/Georama-VF.woff2') format('woff2 supports variations'),
        url('/assets/fonts/Georama-VF.woff2') format('woff2-variations');
    font-weight: 100 900;
    font-style: normal;
    font-display: fallback;
}

@layer config {
    :root {
        /* Typography */

        --font-family-mono: monospace;
        --font-family-sans: 'Georama', system-ui, sans-serif;
        --font-family-serif: 'Georgia', serif;
        --font-family-default: var(--font-family-sans);

        --font-weight-default: 420;
        --font-weight-heading: 350;
        --font-weight-active: 450;
        --font-weight-strong: 550;
        --font-weight-fat: 650;

        --line-height-large: 1.85;
        --line-height-base: 1.6;
        --line-height-small: 1.1;

        --tracking-base: 0.02em;
        --tracking-tight: -0.02ch;
        --tracking-wide: 0.06ch;

        --measure-large: 80ch;
        --measure-base: 65ch;
        --measure-small: 28ch;

        --font-size-smallest: clamp(0.6331rem, 0.7195rem + -0.1115vw, 0.6944rem);
        --font-size-small: clamp(0.8333rem, 0.829rem + 0.0193vw, 0.844rem);
        --font-size-base: clamp(1rem, 0.9489rem + 0.2273vw, 1.125rem);
        --font-size-medium: clamp(1.2rem, 1.0774rem + 0.5448vw, 1.4996rem);
        --font-size-large: clamp(1.44rem, 1.2113rem + 1.0164vw, 1.999rem);
        --font-size-largest: clamp(1.836rem, 1.497rem + 1.5067vw, 2.6647rem);
        --font-size-display: clamp(2.0736rem, 1.4688rem + 2.688vw, 3.552rem);
        --step-size-hero: clamp(2.6438rem, 1.7884rem + 3.8018vw, 4.7348rem);

        /* Transparency */
        --transparency-weaker: 0.8;

        /* Spacing */

        --spacing-tiny: 0.125rem;
        --spacing-nearest: 0.25rem;
        --spacing-near: 0.5rem;
        --spacing-base: 1rem;
        --spacing-far: 2rem;
        --spacing-farthest: 4rem;

        /* Borders */

        --border-width-thin: 1px;
        --border-width-medium: 2px;
        --border-width-thick: 4px;

        --border-radius-none: 0px;
        --border-radius-tiny: 4px;
        --border-radius-small: 8px;
        --border-radius-medium: 20px;
        --border-radius-large: 28px;
        --border-radius-round: 1e5px;

        /* UI Density Elements */

        --control-height-base: 2.5em;
        --control-height-small: 2em;

        --control-spacing-minimal: 0.125em;
        --control-spacing-tiny: 0.25em;
        --control-spacing-nearest: 0.375em;
        --control-spacing-near: 0.5em;
        --control-spacing-base: 0.75em;
        --control-spacing-far: 1em;
        --control-spacing-farthest: 1.5em;

        /* SHADOWS */

        --shadow-box:
            0.4px 0.8px 1px 0px color-mix(in oklch, var(--shadow-color), transparent 68%),
            inset -0.4px 0.8px 1px 0px color-mix(in oklch, var(--color-surface-base), transparent 68%),
            inset 0.4px 0.8px 1px 0px color-mix(in oklch, var(--color-surface-base), transparent 68%);
        --shadow-inset: inset 0.4px 0.8px 1px 0px color-mix(in oklch, var(--shadow-color), transparent 68%);
        --shadow-nearest: 0.4px 0.8px 1px 0px color-mix(in oklch, var(--shadow-color), transparent 68%);
        --shadow-near:
            0.4px 0.8px 1px 0px color-mix(in oklch, var(--shadow-color), transparent 68%),
            0.7px 1.4px 1.8px -0.5px color-mix(in oklch, var(--shadow-color), transparent 72.8%),
            1.3px 2.6px 3.4px -1px color-mix(in oklch, var(--shadow-color), transparent 76.9%);
        --shadow-medium:
            0.4px 0.8px 1px 0px color-mix(in oklch, var(--shadow-color), transparent 68%),
            0.7px 1.4px 1.8px -0.5px color-mix(in oklch, var(--shadow-color), transparent 72.8%),
            1.3px 2.6px 3.4px -1px color-mix(in oklch, var(--shadow-color), transparent 76.9%),
            2.4px 4.7px 6.1px -1.5px color-mix(in oklch, var(--shadow-color), transparent 80.3%),
            4.2px 8.4px 10.9px -2px color-mix(in oklch, var(--shadow-color), transparent 83.3%);
        --shadow-far:
            0.4px 0.8px 1px 0px color-mix(in oklch, var(--shadow-color), transparent 68%),
            0.7px 1.4px 1.8px -0.5px color-mix(in oklch, var(--shadow-color), transparent 72.8%),
            1.3px 2.6px 3.4px -1px color-mix(in oklch, var(--shadow-color), transparent 76.9%),
            2.4px 4.7px 6.1px -1.5px color-mix(in oklch, var(--shadow-color), transparent 80.3%),
            4.2px 8.4px 10.9px -2px color-mix(in oklch, var(--shadow-color), transparent 83.3%),
            7.6px 15.1px 19.6px -2.5px color-mix(in oklch, var(--shadow-color), transparent 85.8%),
            13.6px 27.2px 35.4px -3px color-mix(in oklch, var(--shadow-color), transparent 87.9%),
            24.5px 49px 63.7px -3.5px color-mix(in oklch, var(--shadow-color), transparent 89.7%);
        /* Light Theme */

        --shadow-color-light: oklch(90% 0.015 145);
        --shadow-color-light-lch: 90% 0.015 145;

        /* Dark Theme */

        --shadow-color-dark: oklch(25% 0.03 145);
        --shadow-color-dark-lch: 25% 0.03 145;
    }
}

/*Colors */
@layer config {
    :root {
        --color-brand-surface-1-light: oklch(0.93 0.16 88.74 / 0.2);
        --color-brand-surface-2-light: oklch(1 0.015 88.74);

        --color-brand-surface-1-dark: oklch(0.15 0.024 88.74);
        --color-brand-surface-2-dark: oklch(0.65 0.21 88.74 / 0.05);

        --color-brand-surface-1: light-dark(var(--color-brand-surface-1-light), var(--color-brand-surface-1-dark));
        --color-brand-surface-2: light-dark(var(--color-brand-surface-2-light), var(--color-brand-surface-2-dark));

        --color-border-brand: light-dark(
            oklch(0.85 0.05 var(--h-brand-primary)),
            oklch(0.3 0.05 var(--h-brand-primary))
        );

        --lightness-max: 1;
        --lightness-min: 0.03;
        --neutral-chroma-scale: 0.95;
        --c-brand-primary: 0.176;
        --h-brand-primary: 138.74;
        --l-brand-primary-light: 0.65;
        --color-brand-primary-base-light: oklch(
            var(--l-brand-primary-light) var(--c-brand-primary) var(--h-brand-primary)
        );
        --color-brand-primary-emphasis-light: oklch(
            from var(--color-brand-primary-base-light) calc(l * 0.85) calc(c * 1.1) h
        );
        --color-brand-primary-surface-light: oklch(
            from var(--color-brand-primary-base-light) calc(var(--lightness-max) - 0.1 + l / 10) calc(c * 0.25) h
        );
        --color-brand-primary-contrast-light: oklch(
            from var(--color-brand-primary-base-light) var(--lightness-max) calc(c * 0.25) h
        );
        --color-brand-primary-hover-light: oklch(
            from var(--color-brand-primary-base-light) l c h / calc(var(--transparency-weaker) / 10)
        );
        --l-brand-primary-dark: 0.6;
        --color-brand-primary-base-dark: oklch(
            var(--l-brand-primary-dark) var(--c-brand-primary) var(--h-brand-primary)
        );
        --color-brand-primary-emphasis-dark: oklch(
            from var(--color-brand-primary-base-dark) calc(l * 1.25) calc(c * 1.1) h
        );
        --color-brand-primary-surface-dark: oklch(
            from var(--color-brand-primary-base-dark) calc(var(--lightness-min) + l / 3) calc(c * 0.25) h
        );
        --color-brand-primary-contrast-dark: oklch(
            from var(--color-brand-primary-base-dark) var(--lightness-min) calc(c * 0.25) h
        );
        --color-brand-primary-hover-dark: oklch(
            from var(--color-brand-primary-base-dark) l c h / calc(var(--transparency-weaker) / 10)
        );
        --c-brand-secondary: 0.2;
        --h-brand-secondary: 88.74;
        --l-brand-secondary-light: 0.9;
        --color-brand-secondary-base-light: oklch(
            var(--l-brand-secondary-light) var(--c-brand-secondary) var(--h-brand-secondary)
        );
        --color-brand-secondary-emphasis-light: oklch(
            from var(--color-brand-secondary-base-light) calc(l * 0.85) calc(c * 1.1) h
        );
        --color-brand-secondary-surface-light: oklch(
            from var(--color-brand-secondary-base-light) calc(var(--lightness-max) - 0.1 + l / 10) calc(c * 0.25) h
        );
        --color-brand-secondary-contrast-light: oklch(
            from var(--color-brand-secondary-base-light) var(--lightness-min) calc(c * 0.25) h
        );
        --color-brand-secondary-hover-light: oklch(
            from var(--color-brand-secondary-base-light) l c h / calc(var(--transparency-weaker) / 10)
        );
        --l-brand-secondary-dark: 0.796;
        --color-brand-secondary-base-dark: oklch(
            var(--l-brand-secondary-dark) var(--c-brand-secondary) var(--h-brand-secondary)
        );
        --color-brand-secondary-emphasis-dark: oklch(
            from var(--color-brand-secondary-base-dark) calc(l * 1.25) calc(c * 1.1) h
        );
        --color-brand-secondary-surface-dark: oklch(
            from var(--color-brand-secondary-base-dark) calc(var(--lightness-min) + l / 3) calc(c * 0.25) h
        );
        --color-brand-secondary-contrast-dark: oklch(
            from var(--color-brand-secondary-base-dark) var(--lightness-min) calc(c * 0.25) h
        );
        --color-brand-secondary-hover-dark: oklch(
            from var(--color-brand-secondary-base-dark) l c h / calc(var(--transparency-weaker) / 10)
        );
        --l-text-light: 0.25;
        --c-text-light: 0.04;
        --h-text-light: var(--h-brand-primary);
        --scale-text-light: 1.3;
        --color-text-base-light: oklch(var(--l-text-light) var(--c-text-light) var(--h-text-light));
        --color-text-muted-light: oklch(
            from var(--color-text-base-light) calc(l * var(--scale-text-light)) calc(c * var(--neutral-chroma-scale)) h
        );
        --color-text-subtle-light: oklch(
            from var(--color-text-base-light) calc(l * var(--scale-text-light) * var(--scale-text-light))
                calc(c * var(--neutral-chroma-scale) * var(--neutral-chroma-scale)) h
        );
        --color-text-on-emphasis-light: oklch(from var(--color-text-base-light) var(--lightness-max) calc(c * 0.1) h);
        --color-text-hover-light: oklch(
            from var(--color-text-base-light) l c h / calc(var(--transparency-weaker) / 10)
        );
        --l-text-dark: 0.96;
        --c-text-dark: 0.02;
        --h-text-dark: var(--h-brand-primary);
        --scale-text-dark: 0.95;
        --color-text-base-dark: oklch(var(--l-text-dark) var(--c-text-dark) var(--h-text-dark));
        --color-text-muted-dark: oklch(
            from var(--color-text-base-dark) calc(l * var(--scale-text-dark)) calc(c * var(--neutral-chroma-scale)) h
        );
        --color-text-subtle-dark: oklch(
            from var(--color-text-base-dark) calc(l * var(--scale-text-dark) * var(--scale-text-dark))
                calc(c * var(--neutral-chroma-scale) * var(--neutral-chroma-scale)) h
        );
        --color-text-on-emphasis-dark: oklch(from var(--color-text-base-dark) var(--lightness-min) c h);
        --color-text-hover-dark: oklch(from var(--color-text-base-dark) l c h / calc(var(--transparency-weaker) / 10));
        --l-surface-light: 1;
        --c-surface-light: 0.012;
        --h-surface-light: var(--h-brand-secondary);
        --scale-surface-light: 0.995;
        --color-surface-base-light: oklch(var(--l-surface-light) var(--c-surface-light) var(--h-surface-light));
        --color-surface-muted-light: oklch(
            from var(--color-surface-base-light) calc(l * var(--scale-surface-light))
                calc(c * var(--neutral-chroma-scale)) h
        );
        --color-surface-subtle-light: oklch(
            from var(--color-surface-base-light) calc(l * var(--scale-surface-light) * var(--scale-surface-light))
                calc(c * var(--neutral-chroma-scale) * var(--neutral-chroma-scale)) h
        );
        --color-surface-emphasis-light: oklch(from var(--color-surface-base-light) var(--lightness-min) c h);
        --l-surface-dark: 0.16;
        --c-surface-dark: 0.03;
        --h-surface-dark: var(--h-brand-secondary);
        --scale-surface-dark: 1.085;
        --color-surface-base-dark: oklch(var(--l-surface-dark) var(--c-surface-dark) var(--h-surface-dark));
        --color-surface-muted-dark: oklch(
            from var(--color-surface-base-dark) calc(l * var(--scale-surface-dark))
                calc(c * var(--neutral-chroma-scale)) h
        );
        --color-surface-subtle-dark: oklch(
            from var(--color-surface-base-dark) calc(l * var(--scale-surface-dark) * var(--scale-surface-dark))
                calc(c * var(--neutral-chroma-scale) * var(--neutral-chroma-scale)) h
        );
        --color-surface-emphasis-dark: oklch(from var(--color-surface-base-dark) var(--lightness-max) calc(c * 0.1) h);
        --l-border-light: 0.9;
        --c-border-light: 0.01;
        --h-border-light: var(--h-brand-primary);
        --scale-border-light: 1.025;
        --color-border-base-light: oklch(var(--l-border-light) var(--c-border-light) var(--h-border-light));
        --color-border-muted-light: oklch(
            from var(--color-border-base-light) calc(l * var(--scale-border-light))
                calc(c * var(--neutral-chroma-scale)) h
        );
        --color-border-subtle-light: oklch(
            from var(--color-border-base-light) calc(l * var(--scale-border-light) * var(--scale-border-light))
                calc(c * var(--neutral-chroma-scale) * var(--neutral-chroma-scale)) h
        );
        --color-border-on-emphasis-light: oklch(from var(--color-border-base-light) var(--lightness-max) c h);
        --color-border-hover-light: oklch(
            from var(--color-border-base-light) l c h / calc(var(--transparency-weaker) / 10)
        );
        --l-border-dark: 0.4;
        --c-border-dark: 0.05;
        --scale-border-dark: 0.95;
        --h-border-dark: var(--h-brand-primary);
        --color-border-base-dark: oklch(var(--l-border-dark) var(--c-border-dark) var(--h-border-dark));
        --color-border-muted-dark: oklch(
            from var(--color-border-base-dark) calc(l * var(--scale-border-dark)) calc(c * var(--neutral-chroma-scale))
                h
        );
        --color-border-subtle-dark: oklch(
            from var(--color-border-base-dark) calc(l * var(--scale-border-dark) * var(--scale-border-dark))
                calc(c * var(--neutral-chroma-scale) * var(--neutral-chroma-scale)) h
        );
        --color-border-on-emphasis-dark: oklch(from var(--color-border-base-dark) var(--lightness-max) c h);
        --color-border-hover-dark: oklch(
            from var(--color-border-base-dark) l c h / calc(var(--transparency-weaker) / 10)
        );
        --c-status-success: 0.135;
        --h-status-success: 142;
        --l-status-success-light: 0.42;
        --color-status-success-base-light: oklch(
            var(--l-status-success-light) var(--c-status-success) var(--h-status-success)
        );
        --color-status-success-emphasis-light: oklch(
            from var(--color-status-success-base-light) calc(l * 0.85) calc(c * 1.1) h
        );
        --color-status-success-surface-light: oklch(
            from var(--color-status-success-base-light) calc(var(--lightness-max) - 0.1 + l / 10) calc(c * 0.25) h
        );
        --color-status-success-contrast-light: oklch(
            from var(--color-status-success-base-light) var(--lightness-max) calc(c * 0.25) h
        );
        --color-status-success-hover-light: oklch(
            from var(--color-status-success-base-light) l c h / calc(var(--transparency-weaker) / 10)
        );
        --l-status-success-dark: 0.6;
        --color-status-success-base-dark: oklch(
            var(--l-status-success-dark) var(--c-status-success) var(--h-status-success)
        );
        --color-status-success-emphasis-dark: oklch(
            from var(--color-status-success-base-dark) calc(l * 1.25) calc(c * 1.1) h
        );
        --color-status-success-surface-dark: oklch(
            from var(--color-status-success-base-dark) calc(var(--lightness-min) + l / 3) calc(c * 0.25) h
        );
        --color-status-success-contrast-dark: oklch(
            from var(--color-status-success-base-dark) var(--lightness-max) calc(c * 0.25) h
        );
        --color-status-success-hover-dark: oklch(
            from var(--color-status-success-base-dark) l c h / calc(var(--transparency-weaker) / 10)
        );
        --c-status-warning: 0.135;
        --h-status-warning: 97;
        --l-status-warning-light: 0.42;
        --color-status-warning-base-light: oklch(
            var(--l-status-warning-light) var(--c-status-warning) var(--h-status-warning)
        );
        --color-status-warning-emphasis-light: oklch(
            from var(--color-status-warning-base-light) calc(l * 0.85) calc(c * 1.1) h
        );
        --color-status-warning-surface-light: oklch(
            from var(--color-status-warning-base-light) calc(var(--lightness-max) - 0.1 + l / 10) calc(c * 0.25) h
        );
        --color-status-warning-contrast-light: oklch(
            from var(--color-status-warning-base-light) var(--lightness-max) calc(c * 0.25) h
        );
        --color-status-warning-hover-light: oklch(
            from var(--color-status-warning-base-light) l c h / calc(var(--transparency-weaker) / 10)
        );
        --l-status-warning-dark: 0.6;
        --color-status-warning-base-dark: oklch(
            var(--l-status-warning-dark) var(--c-status-warning) var(--h-status-warning)
        );
        --color-status-warning-emphasis-dark: oklch(
            from var(--color-status-warning-base-dark) calc(l * 1.25) calc(c * 1.1) h
        );
        --color-status-warning-surface-dark: oklch(
            from var(--color-status-warning-base-dark) calc(var(--lightness-min) + l / 3) calc(c * 0.25) h
        );
        --color-status-warning-contrast-dark: oklch(
            from var(--color-status-warning-base-dark) var(--lightness-max) calc(c * 0.25) h
        );
        --color-status-warning-hover-dark: oklch(
            from var(--color-status-warning-base-dark) l c h / calc(var(--transparency-weaker) / 10)
        );
        --c-status-danger: 0.135;
        --h-status-danger: 32;
        --l-status-danger-light: 0.42;
        --color-status-danger-base-light: oklch(
            var(--l-status-danger-light) var(--c-status-danger) var(--h-status-danger)
        );
        --color-status-danger-emphasis-light: oklch(
            from var(--color-status-danger-base-light) calc(l * 0.85) calc(c * 1.1) h
        );
        --color-status-danger-surface-light: oklch(
            from var(--color-status-danger-base-light) calc(var(--lightness-max) - 0.1 + l / 10) calc(c * 0.25) h
        );
        --color-status-danger-contrast-light: oklch(
            from var(--color-status-danger-base-light) var(--lightness-max) calc(c * 0.25) h
        );
        --color-status-danger-hover-light: oklch(
            from var(--color-status-danger-base-light) l c h / calc(var(--transparency-weaker) / 10)
        );
        --l-status-danger-dark: 0.6;
        --color-status-danger-base-dark: oklch(
            var(--l-status-danger-dark) var(--c-status-danger) var(--h-status-danger)
        );
        --color-status-danger-emphasis-dark: oklch(
            from var(--color-status-danger-base-dark) calc(l * 1.25) calc(c * 1.1) h
        );
        --color-status-danger-surface-dark: oklch(
            from var(--color-status-danger-base-dark) calc(var(--lightness-min) + l / 3) calc(c * 0.25) h
        );
        --color-status-danger-contrast-dark: oklch(
            from var(--color-status-danger-base-dark) var(--lightness-max) calc(c * 0.25) h
        );
        --color-status-danger-hover-dark: oklch(
            from var(--color-status-danger-base-dark) l c h / calc(var(--transparency-weaker) / 10)
        );
        --c-status-info: 0.135;
        --h-status-info: 245;
        --l-status-info-light: 0.42;
        --color-status-info-base-light: oklch(var(--l-status-info-light) var(--c-status-info) var(--h-status-info));
        --color-status-info-emphasis-light: oklch(
            from var(--color-status-info-base-light) calc(l * 0.85) calc(c * 1.1) h
        );
        --color-status-info-surface-light: oklch(
            from var(--color-status-info-base-light) calc(var(--lightness-max) - 0.1 + l / 10) calc(c * 0.25) h
        );
        --color-status-info-contrast-light: oklch(
            from var(--color-status-info-base-light) var(--lightness-max) calc(c * 0.25) h
        );
        --color-status-info-hover-light: oklch(
            from var(--color-status-info-base-light) l c h / calc(var(--transparency-weaker) / 10)
        );
        --l-status-info-dark: 0.6;
        --color-status-info-base-dark: oklch(var(--l-status-info-dark) var(--c-status-info) var(--h-status-info));
        --color-status-info-emphasis-dark: oklch(
            from var(--color-status-info-base-dark) calc(l * 1.25) calc(c * 1.1) h
        );
        --color-status-info-surface-dark: oklch(
            from var(--color-status-info-base-dark) calc(var(--lightness-min) + l / 3) calc(c * 0.25) h
        );
        --color-status-info-contrast-dark: oklch(
            from var(--color-status-info-base-dark) var(--lightness-max) calc(c * 0.25) h
        );
        --color-status-info-hover-dark: oklch(
            from var(--color-status-info-base-dark) l c h / calc(var(--transparency-weaker) / 10)
        );
    }
}
