/*!
 * Noctia Base CSS
 * Version: 1.1.0
 * © 2026 Lanlanwi
 * Created: 2025-11-06
 * Last Updated: 2026-03-27
 * Licensed under the MIT License
 * https://opensource.org/licenses/MIT
 */





:root {
    --noctia-base-font: var(--noctia-sans, sans-serif);

    --noctia-base-font-size: 16px;

    --noctia-base-text-color: var(--noctia-dark, #252525);
    --noctia-base-bg-color: var(--noctia-white, #FFF);

    --noctia-base-code-font: var(--noctia-mono, monospace);

    --noctia-base-hr-color: var(--noctia-neutral-color, #E5E7EB);
}





/* ===== Reset ===== */
*, *::before, *::after {
    box-sizing: border-box;

    margin: 0;
    padding: 0;

    -webkit-tap-highlight-color: transparent;
}

html {
    font-family: var(--noctia-base-font);
    font-size: var(--noctia-base-font-size);

    scroll-behavior: smooth;
}

body {
    min-height: 100vh; /* Fallback */
    min-height: 100dvh;

    line-height: 1.6;
    overflow-wrap: break-word;

    color: var(--noctia-base-text-color);
    background-color: var(--noctia-base-bg-color);
}





/* ===== Typography ===== */
p { margin-block: 1em; }

ul, ol {
    margin-block: 0.25em;
    padding-left: 1.5em;
}

a {
    text-decoration: underline;

    color: inherit;
}

pre {
    overflow-x: auto;

    white-space: pre;

    scrollbar-gutter: stable;
}

code { font-family: var(--noctia-base-code-font); }





/* ===== Media ===== */
img, video, audio, iframe, object {
    display: block;

    height: auto;
    max-width: 100%;
}

table { border-collapse: collapse; }

hr {
    margin-block: 1rem;
    border: none;
    border-bottom: 1px solid var(--noctia-base-hr-color);
}

button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
    border: none;

    font: inherit;

    background: none;

    cursor: pointer;
    user-select: none;

    appearance: none;
}

button:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled,
input[type="button"]:disabled {
    opacity: 0.5;

    cursor: not-allowed;
}

:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}
