/* Dan's Puzzles: site stylesheet */

@font-face {
    font-family: "Foglihten No04";
    src: url("../fonts/foglihten-no04.woff2") format("woff2");
    font-display: swap;
}

:root {
    --ink: #212529;
    --link: #000;
    --paper: #fff;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: "Foglihten No04", Georgia, serif;
    font-size: 1.2rem;
    line-height: 1.6;
}

/* Text sizes match the old hints site at its breakpoints. */
@media (min-width: 576px) {
    body {
        font-size: 1.35rem;
    }
}

@media (min-width: 768px) {
    body {
        font-size: 1.5rem;
    }
}

@media (min-width: 993px) {
    body {
        font-size: 1.8rem;
    }
}

/* The letter grid: fixed behind everything. Sized to the large viewport
   so phone toolbars showing and hiding don't change its height. */
.letter-grid {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100lvh;
    z-index: -1;
}

/* The white panel over the grid, as on the welcome card.
   It sits in a Bootstrap .container, as on the old hints site;
   spacing comes from utility classes in the HTML. */
.panel {
    position: relative;
    background: rgba(255, 255, 255, 0.9);
}

.wordmark {
    margin: 0 0 1em;
    font-size: 1em;
}

.wordmark a {
    color: inherit;
    text-decoration: none;
}

h1 {
    margin: 0.3em 0 0.5em;
    font-size: 1.5em;
    font-weight: normal;
    line-height: 1.2;
    text-align: center;
}

@media (min-width: 576px) {
    h1 {
        font-size: 2em;
    }
}

p {
    margin: 0 0 1rem;
}

a {
    color: var(--link);
    text-underline-offset: 0.15em;
}

a:focus-visible {
    outline: 3px solid var(--ink);
    outline-offset: 3px;
}

.launch {
    margin-top: 1em;
    padding: 0.6em 0;
    border-top: 1px solid rgba(33, 37, 41, 0.5);
    border-bottom: 1px solid rgba(33, 37, 41, 0.5);
    text-align: center;
}

.sign-off {
    margin-top: 1.5em;
    text-align: right;
}
