/* ============================================
   GLOBAL BASE STYLES
   Overrides normalize.css and sets project defaults
   ============================================ */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* ============================================
   ROOT & HTML         GLOBAL BASE STYLES
   ============================================ */

:root {

    /* =======================================================
             -----------------Font-Sizes-----------------
       ========================================================== */

    --step--1: clamp(0.8889rem, 0.8434rem + 0.202vw, 1rem);
    --step-0: clamp(1rem, 0.9489rem + 0.2273vw, 1.125rem);
    --step-1: clamp(1.125rem, 1.0675rem + 0.2557vw, 1.2656rem);
    --step-2: clamp(1.2656rem, 1.2009rem + 0.2876vw, 1.4238rem);
    --step-3: clamp(1.4238rem, 1.351rem + 0.3236vw, 1.6018rem);
    --step-4: clamp(1.6018rem, 1.5199rem + 0.364vw, 1.802rem);
    --step-5: clamp(1.802rem, 1.7099rem + 0.4096vw, 2.0273rem);
    --step-6: clamp(2.0273rem, 1.9236rem + 0.4607vw, 2.2807rem);



    /* =======================================================
              -----------------Spacing-----------------
       ========================================================== */
    --space-2xs: clamp(0.1875rem, 0.1619rem + 0.1136vw, 0.25rem);
    --space-xs: clamp(0.5rem, 0.4744rem + 0.1136vw, 0.5625rem);
    --space-s: clamp(1rem, 0.9489rem + 0.2273vw, 1.125rem);
    --space-m: clamp(1.5rem, 1.4233rem + 0.3409vw, 1.6875rem);
    --space-l: clamp(2rem, 1.8977rem + 0.4545vw, 2.25rem);
    --space-xl: clamp(3rem, 2.8466rem + 0.6818vw, 3.375rem);
    --space-2xl: clamp(4rem, 3.7955rem + 0.9091vw, 4.5rem);
    --space-3xl: clamp(6rem, 5.6932rem + 1.3636vw, 6.75rem);
    --space-4xl: clamp(7rem, 6.642rem + 1.5909vw, 7.875rem);
    --space-5xl: clamp(8rem, 7.5909rem + 1.8182vw, 9rem);
    --space-6xl: clamp(9rem, 8.5398rem + 2.0455vw, 10.125rem);
    --space-7xl: clamp(10rem, 9.4886rem + 2.2727vw, 11.25rem);
    --space-8xl: clamp(11rem, 10.4375rem + 2.5vw, 12.375rem);
    --space-9xl: clamp(12rem, 11.3864rem + 2.7273vw, 13.5rem);
    --space-10xl: clamp(13rem, 12.3352rem + 2.9545vw, 14.625rem);
    --space-11xl: clamp(14rem, 13.2841rem + 3.1818vw, 15.75rem);
    --space-12xl: clamp(15rem, 14.233rem + 3.4091vw, 16.875rem);

    --letter-spacing: var(--space-4xs);
    --word-spacing: var(--space-5xs);

    /* ✅ Tighter, more controlled scaling */
    --curve-char-width: clamp(2.5rem, 4vw, 3.5rem);
    --curve-blur: var(--space-l);
    --curve-rise-outer-near: 25vmin;
    --curve-rise-mid: 15vmin;
    --curve-rise-center: 25vmin;
    --curve-height: clamp(60px, 10vh, 120px);

    --glow-up-width: 100%;
    --glow-up-height: clamp(0.04vmin, 0.07vmin, 0.13vmin);
    --glow-down-width: clamp(0.8vmin, 1vmin, 1.5vmin);
    --glow-down-height: clamp(0.1vmin, 0.3vmin, 0.42vmin);

    --primary-font: "alumni_sans_pinstriperegular", sans-serif;
    --primary-font-secondary: "cormorant_uprightlight", sans-serif;
    --font-weight: normal;
    --font-style: normal;
    /* ============================================
                Shared Variables
   ============================================ */

    /* Shared across themes */
    --transition-duration: 400ms;
    --reveal-duration: 0.8s;

    /* Typography */
    --line-height-tight: 1.2;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.6;
}

html {
    line-height: var(--line-height-normal);
    /* Override normalize's 1.15 */
    hyphens: none;
    overflow-wrap: break-word;
    word-spacing: normal;
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    text-align: center;
    font-family: var(--primary-font);
    color: var(--text-color);
    background-color: var(--base-color);
    margin: 0;
    min-height: 100svh;
    font-size: var(--step-0);
    letter-spacing: 0.06em;
}

@supports (height: 100dvh) and (width: 100dvw) {
    [data-theme] body {
        width: 100dvw;
        height: 100dvh;
    }
}

/* Remove default margins */
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
figure,
blockquote {
    margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    line-height: var(--line-height-tight);
}

/* Remove list styles */
ul,
ol {
    list-style: none;
    padding: 0;
}

/* Remove link styles */
a {
    text-decoration: none;
    color: inherit;
}

/* Image defaults */
img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Button reset */
button {
    font: inherit;
    cursor: pointer;
    border: none;
    background: none;
}