/* ============================================================
   Fonts
   ============================================================ */

@font-face {
    font-family: "Ductus";
    src: url("../fonts/DuctusRegular.otf") format("opentype");
    font-style: normal;
    font-weight: 398;
    font-display: swap;
}

@font-face {
    font-family: "BBBDMSans";
    src: url("../fonts/BBBDMSans-Light.otf") format("opentype");
    font-style: normal;
    font-weight: 298;
    font-display: swap;
}

@font-face {
    font-family: "BBBDMSans";
    src: url("/assets/fonts/BBBDMSans-Regular.otf") format("opentype");
    font-style: normal;
    font-weight: 398;
    font-display: swap;
}

@font-face {
    font-family: "BBBDMSans";
    src: url("../fonts/BBBDMSans-Medium.otf") format("opentype");
    font-style: normal;
    font-weight: 498;
    font-display: swap;
}

@font-face {
    font-family: "BBBDMSans";
    src: url("../fonts/BBBDMSans-Bold.otf") format("opentype");
    font-style: normal;
    font-weight: 698;
    font-display: swap;
}

/* ============================================================
   CSS VARIABLES (CUSTOM PROPERTIES)
   ============================================================ */

/* @link https://utopia.fyi/type/calculator?c=360,18,1.2,1240,20,1.25,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */
:root {
    --step--2: clamp(0.7813rem, 0.7736rem + 0.0341vw, 0.8rem);
    --step--1: clamp(0.9375rem, 0.9119rem + 0.1136vw, 1rem);
    --step-0: clamp(1.125rem, 1.0739rem + 0.2273vw, 1.25rem);
    --step-1: clamp(1.35rem, 1.2631rem + 0.3864vw, 1.5625rem);
    --step-2: clamp(1.62rem, 1.4837rem + 0.6057vw, 1.9531rem);
    --step-3: clamp(1.944rem, 1.7405rem + 0.9044vw, 2.4414rem);
    --step-4: clamp(2.3328rem, 2.0387rem + 1.3072vw, 3.0518rem);
    --step-5: clamp(2.7994rem, 2.384rem + 1.8461vw, 3.8147rem);

    /* @link https://utopia.fyi/space/calculator?c=360,18,1.2,1240,20,1.25,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */

    --space-3xs: clamp(0.3125rem, 0.3125rem + 0vw, 0.3125rem);
    --space-2xs: clamp(0.5625rem, 0.5369rem + 0.1136vw, 0.625rem);
    --space-xs: clamp(0.875rem, 0.8494rem + 0.1136vw, 0.9375rem);
    --space-s: clamp(1.125rem, 1.0739rem + 0.2273vw, 1.25rem);
    --space-m: clamp(1.6875rem, 1.6108rem + 0.3409vw, 1.875rem);
    --space-l: clamp(2.25rem, 2.1477rem + 0.4545vw, 2.5rem);
    --space-xl: clamp(3.375rem, 3.2216rem + 0.6818vw, 3.75rem);
    --space-2xl: clamp(4.5rem, 4.2955rem + 0.9091vw, 5rem);
    --space-3xl: clamp(6.75rem, 6.4432rem + 1.3636vw, 7.5rem);

    /* One-up pairs */
    --space-3xs-2xs: clamp(0.3125rem, 0.1847rem + 0.5682vw, 0.625rem);
    --space-2xs-xs: clamp(0.5625rem, 0.4091rem + 0.6818vw, 0.9375rem);
    --space-xs-s: clamp(0.875rem, 0.7216rem + 0.6818vw, 1.25rem);
    --space-s-m: clamp(1.125rem, 0.8182rem + 1.3636vw, 1.875rem);
    --space-m-l: clamp(1.6875rem, 1.3551rem + 1.4773vw, 2.5rem);
    --space-l-xl: clamp(2.25rem, 1.6364rem + 2.7273vw, 3.75rem);
    --space-xl-2xl: clamp(3.375rem, 2.7102rem + 2.9545vw, 5rem);
    --space-2xl-3xl: clamp(4.5rem, 3.2727rem + 5.4545vw, 7.5rem);

    /* Custom pairs */
    --space-s-l: clamp(1.125rem, 0.5625rem + 2.5vw, 2.5rem);

    /* Fonts */
    --font-body: "BBBDMSans", sans-serif;
    --font-display: "Ductus", sans-serif;

    /* Backgrounds */
    --bg-primary: #ffffff;
    --bg-secondary: #f5f5f5;
    --bg-tertiary: #e8e8e8;
    --bg-active: #d0d0d0;

    /* Text */
    --text-primary: #111111;
    --text-secondary: #666666;
    --text-tertiary: #999999;

    /* Borders */
    --border-primary: #dddddd;
    --border-secondary: #cccccc;

    /* Border radius */
    --radius: 10px;

    /* Status */
    --success: #5cd69d;
    --error: #f25a5a;
    --warning: #fbca51;

    /* Accent */
    --accent-primary: #9557b5;
    --accent-secondary: #683d7f;
    --accent-foreground: #ffffff;
    --accent-muted: rgba(149, 87, 181, 0.12);
    --accent-blue: #41adff;
    --accent-green: #4caf50;
    --accent-yellow: #f39c12;
    --accent-red: #f25a5a;

    /* Gradient (header) */
    --gradient-1: #3c856c;
    --gradient-2: #60ecb4;
    --gradient-3: #e390ff;
    --gradient-4: #9557b5;

    /* Header decorative */
    --header-gradient-fade: rgba(149, 87, 181, 0);
    --header-shadow-strong: rgba(119, 70, 145, 1);
    --header-shadow-soft: rgba(119, 70, 145, 0.8);
    --header-nav-active-border: rgba(255, 255, 255, 0.6);

    /* Search error block */
    --search-error-bg: #fff0f0;
    --search-error-border: #cc0000;
    --search-error-color: #cc0000;

    /* System page — log/config syntax highlight */
    --sys-syntax-comment: #999999;
    --sys-syntax-directive: #1a6fb5;
    --sys-syntax-block: #7a2fa0;
    --sys-syntax-value: #a05c00;
    --sys-syntax-location: #1a7a6b;
    --sys-syntax-notice: #3a6ea8;
    --sys-syntax-crit: #c0392b;

    /* Muted alpha overlays — derived from semantic tokens */
    --success-muted-bg: rgba(92, 214, 157, 0.12);
    --success-muted-border: rgba(92, 214, 157, 0.35);
    --warning-muted-bg: rgba(251, 202, 81, 0.12);
    --warning-muted-border: rgba(251, 202, 81, 0.35);
    --error-muted-bg: rgba(242, 90, 90, 0.12);
    --error-muted-border: rgba(242, 90, 90, 0.35);
    --blue-muted-bg: rgba(65, 173, 255, 0.12);
    --blue-muted-border: rgba(65, 173, 255, 0.3);
    --blue-muted-bg-hover: rgba(65, 173, 255, 0.22);
    --yellow-muted-bg: rgba(243, 156, 18, 0.12);
    --yellow-muted-border: rgba(243, 156, 18, 0.3);
    --yellow-muted-bg-hover: rgba(243, 156, 18, 0.22);
    --green-muted-bg: rgba(76, 175, 80, 0.12);
    --green-muted-border: rgba(76, 175, 80, 0.3);
    --green-muted-bg-hover: rgba(76, 175, 80, 0.22);
    --danger-border-muted: rgba(242, 90, 90, 0.35);
}
