/*==============================================================
  Lunar Logic v2.0
  Base Styles
  File: base.css
==============================================================*/

/*==============================================================
  Reset
==============================================================*/

*,
*::before,
*::after {
    box-sizing: border-box;
}

* {
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--header-height);
    -webkit-text-size-adjust: 100%;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

body {
    min-height: 100vh;
    font-family: var(--font-family-base);
    font-size: var(--fs-base);
    font-weight: var(--fw-regular);
    line-height: var(--lh-body);

    color: var(--color-text);
    background:
        radial-gradient(circle at top right,
            rgba(47,111,255,.10),
            transparent 35%),
        radial-gradient(circle at bottom left,
            rgba(108,229,255,.06),
            transparent 40%),
        var(--color-background);

    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;

    overflow-x: hidden;
}

/*==============================================================
  Selection
==============================================================*/

::selection {
    background: var(--color-brand-500);
    color: var(--color-white);
}

/*==============================================================
  Media
==============================================================*/

img,
picture,
svg,
video,
canvas {
    display: block;
    max-width: 100%;
}

img {
    height: auto;
}

/*==============================================================
  Forms
==============================================================*/

button,
input,
textarea,
select {
    font: inherit;
}

button {
    cursor: pointer;
    border: none;
    background: none;
}

textarea {
    resize: vertical;
}

/*==============================================================
  Lists
==============================================================*/

ul,
ol {
    list-style: none;
}

/*==============================================================
  Links
==============================================================*/

a {
    color: inherit;
    text-decoration: none;
    transition:
        color var(--duration-base) var(--ease-standard),
        opacity var(--duration-base) var(--ease-standard);
}

a:hover {
    color: var(--color-link-hover);
}

/*==============================================================
  Typography
==============================================================*/

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--color-heading);
    font-family: var(--font-family-heading);
    font-weight: var(--fw-bold);
    line-height: var(--lh-heading);
    letter-spacing: var(--tracking-tight);
    text-wrap: balance;
}

h1 {
    font-size: clamp(3rem, 6vw, var(--fs-5xl));
    max-width: 14ch;
}

h2 {
    font-size: clamp(2.25rem, 4vw, var(--fs-4xl));
}

h3 {
    font-size: var(--fs-2xl);
}

h4 {
    font-size: var(--fs-xl);
}

p {
    max-width: 68ch;
    color: var(--color-text-soft);
}

small {
    font-size: var(--fs-sm);
}

/*==============================================================
  Horizontal Rule
==============================================================*/

hr {
    border: 0;
    border-top: var(--border);
    margin-block: var(--space-16);
}

/*==============================================================
  Code
==============================================================*/

code,
pre {
    font-family: var(--font-family-mono);
}

code {
    background: rgba(255,255,255,.06);
    padding: .15rem .35rem;
    border-radius: var(--radius-xs);
}

/*==============================================================
  Focus States
==============================================================*/

:focus-visible {
    outline: 3px solid var(--color-brand-400);
    outline-offset: 3px;
    border-radius: var(--radius-xs);
}

/*==============================================================
  Skip Link
==============================================================*/

.skip-link {
    position: absolute;
    top: -100%;
    left: var(--space-6);

    padding: .9rem 1.25rem;

    background: var(--color-brand-500);
    color: var(--color-white);

    border-radius: var(--radius-md);

    z-index: var(--z-toast);

    transition: top var(--duration-base);
}

.skip-link:focus {
    top: var(--space-6);
}

/*==============================================================
  Buttons are implemented in assets/css/components/button.css
==============================================================*/

/*==============================================================
  Eyebrow
==============================================================*/

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .6rem;

    margin-bottom: var(--space-6);

    color: var(--color-brand-300);

    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);

    text-transform: uppercase;
    letter-spacing: .12em;
}

.eyebrow::before {
    content: "";

    width: 32px;
    height: 1px;

    background: var(--color-brand-400);
}

/*==============================================================
  Accessibility
==============================================================*/

[hidden] {
    display: none !important;
}

.visually-hidden {
    position: absolute;

    width: 1px;
    height: 1px;

    margin: -1px;
    padding: 0;

    overflow: hidden;

    white-space: nowrap;

    border: 0;

    clip: rect(0 0 0 0);
    clip-path: inset(50%);
}