:root {
    --cyan: #00bcd4;
    --dark: #111820;
    --ink: #1f2933;
    --paper: #f4f7f8;
    --line: #c9d4da;
}

body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: Garamond, "EB Garamond", Georgia, serif;
}

h1, h2, h3, h4, h5, .brand, .lead-title {
    font-family: Arial, Helvetica, sans-serif;
}

nav, .menu-link, .btn, label, select, input, textarea {
    font-family: "Fira Code", "Courier New", monospace;
}

.site-header {
    background: var(--dark);
    border-bottom: 5px solid var(--cyan);
}

.brand {
    color: var(--cyan);
    font-weight: 700;
}

.menu-link {
    color: white;
    text-decoration: none;
    padding: .45rem .75rem;
    border-left: 1px solid rgba(255, 255, 255, .25);
}

.menu-link:hover, .menu-link.active {
    color: var(--dark);
    background: var(--cyan);
}

.cyan {
    color: var(--cyan);
}

.bg-cyan {
    background: var(--cyan);
}

.hero-card {
    background: var(--dark);
    color: white;
    border: 1px solid var(--cyan);
}

.article-card, .side-box, .preview-box {
    background: white;
    border: 1px solid var(--line);
}

.article-card h3 {
    color: var(--dark);
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: .75rem;
}

.article-card p {
    font-size: .98rem;
    line-height: 1.45;
}

.side-box article h3 {
    font-size: 1.05rem;
    font-weight: 700;
}

.side-box article p {
    font-size: .9rem;
}

.article-card img, .hero-card img {
    width: 100%;
    height: 190px;
    object-fit: cover;
}

.hero-card img {
    height: 360px;
}

.kicker {
    display: inline-block;
    background: var(--cyan);
    color: var(--dark);
    font-family: "Fira Code", "Courier New", monospace;
    font-weight: 700;
    padding: .2rem .45rem;
    margin-bottom: .65rem;
}

.summary {
    border-left: 5px solid var(--cyan);
    background: white;
    font-weight: 700;
}

.article-body p {
    font-size: 1.08rem;
    line-height: 1.7;
}

.meta-list {
    padding: 0;
    list-style: none;
    font-family: "Fira Code", "Courier New", monospace;
    font-size: .9rem;
}

.news-list {
    padding-left: 1rem;
}

.news-list a {
    color: var(--ink);
    text-decoration: none;
}

.news-list a:hover {
    color: var(--cyan);
}

.form-panel {
    display: inline-block;
    vertical-align: top;
    min-height: 70vh;
}

.preview-box {
    max-height: 70vh;
    overflow-y: auto;
}

.preview-title {
    color: var(--cyan);
}

form:has(#text-blue:checked) #article-preview {
    color: #0d6efd;
}

form:has(#text-red:checked) #article-preview {
    color: #b02a37;
}

form:has(#title-green:checked) .preview-title {
    color: #198754;
}

form:has(#title-dark:checked) .preview-title {
    color: var(--dark);
}

form:has(#bg-soft:checked) #article-preview {
    background: #eef3f4;
}

form:has(#bg-dark-preview:checked) #article-preview {
    background: #18212b;
    color: white;
}

form:has(#font-arial:checked) #article-preview {
    font-family: Arial, Helvetica, sans-serif;
}

form:has(#font-mono:checked) #article-preview {
    font-family: "Fira Code", "Courier New", monospace;
}

form:has(#author-bold:checked) .preview-author,
form:has(#date-bold:checked) .preview-date {
    font-weight: 700;
}

form:has(#author-italic:checked) .preview-author,
form:has(#date-italic:checked) .preview-date {
    font-style: italic;
}

form:has(#category-uppercase:checked) .preview-category {
    text-transform: uppercase;
    letter-spacing: .04rem;
}

form:has(#category-badge:checked) .preview-category {
    display: inline-block;
    background: var(--cyan);
    color: var(--dark);
    padding: .15rem .35rem;
}

form:has(#time-hide:checked) .preview-time {
    display: none;
}

form:has(#bg-dark-preview:checked):has(#text-dark:checked) #article-preview {
    color: white;
}

form:has(#text-blue:checked) #article-preview {
    color: #0d6efd;
}

form:has(#text-red:checked) #article-preview {
    color: #b02a37;
}

.form-control, .form-select {
    border: 1px solid var(--line);
}

.btn-cyan {
    background: var(--cyan);
    border: 1px solid var(--cyan);
    color: var(--dark);
    font-weight: 700;
}

.site-footer {
    background: var(--dark);
    color: white;
    border-top: 5px solid var(--cyan);
    margin-top: 3rem;
}

.site-footer h2, .site-footer h3 {
    color: var(--cyan);
}

.site-footer ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.site-footer li {
    margin-bottom: .35rem;
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .25);
    font-family: Arial, Helvetica, sans-serif;
    font-size: .9rem;
}
