/* ============================================
   FONTS.CSS - Retro Apple II Typography
   "Press Start 2P" (Pixel) + "VT323" (Terminal)
   ============================================ */

/* Lokale Schriften (SIL OFL 1.1, Lizenz in fonts/), keine externen Ressourcen */
@font-face {
    font-family: 'Press Start 2P';
    src: url('../fonts/PressStart2P-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'VT323';
    src: url('../fonts/VT323-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* ---- Base Font ---- */
html {
    font-family: 'VT323', 'Courier New', monospace;
    font-size: 18px;
    letter-spacing: 0.5px;
    -webkit-font-smoothing: none;
    -moz-osx-font-smoothing: unset;
}

/* ---- Font Utility Classes ---- */

/* Pixel font - for headings, titles, labels */
.font-pixel {
    font-family: 'Press Start 2P', 'Courier New', monospace;
    letter-spacing: 1px;
    line-height: 1.6;
}

/* Terminal font - for body text, values, messages */
.font-terminal {
    font-family: 'VT323', 'Courier New', monospace;
    letter-spacing: 0.5px;
    line-height: 1.4;
}

/* ---- Typographic Scale ---- */

h1, h2, h3, h4, h5, h6 {
    font-family: 'Press Start 2P', 'Courier New', monospace;
    line-height: 1.6;
    letter-spacing: 1px;
}

h1 {
    font-size: 1.5rem;
}

h2 {
    font-size: 1.2rem;
}

h3 {
    font-size: 1rem;
}

h4, h5, h6 {
    font-size: 0.8rem;
}

p, span, div, li, td, th, label, input, select, button, textarea {
    font-family: 'VT323', 'Courier New', monospace;
}

/* ---- Pixel Font Size Helpers ---- */
.text-xs {
    font-size: 0.6rem;
}

.text-sm {
    font-size: 0.8rem;
}

.text-md {
    font-size: 1rem;
}

.text-lg {
    font-size: 1.4rem;
}

.text-xl {
    font-size: 1.8rem;
}

.text-2xl {
    font-size: 2.4rem;
}

/* ---- Special Text Styles ---- */

/* Blinking cursor effect for terminal feel */
.cursor-blink::after {
    content: '_';
    animation: blink 1s step-end infinite;
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

/* Uppercase retro style */
.text-upper {
    text-transform: uppercase;
}

/* Monospaced number alignment */
.text-mono-numbers {
    font-variant-numeric: tabular-nums;
}
