:root { --brand-dark: #212529; --brand-accent: #0085A1; --paper: #ffffff; --paper-2: #f8f9fa; --ink: #212529; --text-muted-soft: #495057; --border-soft: #e9ecef; } html { scroll-behavior: smooth; } body.clean-blog { background: var(--paper); color: var(--ink); font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; line-height: 1.7; padding-top: 74px; } a { color: var(--brand-dark); text-decoration: none; } a:hover { color: var(--brand-accent); } a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, .btn:focus-visible { outline: 3px solid rgba(0, 133, 161, 0.45); outline-offset: 2px; } .skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 1040; padding: 0.75rem 1rem; background: var(--brand-dark); color: #fff; font-weight: 700; transition: top 0.15s ease; } .skip-link:focus { top: 0.75rem; } /* Navbar */ #mainNav { background: rgba(255, 255, 255, 0.98); border-bottom: 1px solid var(--border-soft); box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04); transition: all 0.2s ease-in-out; } .navbar-brand.brand { font-family: "Lora", Georgia, "Times New Roman", serif; font-size: 1.6rem; font-weight: 700; letter-spacing: -0.02em; color: var(--brand-dark) !important; } #mainNav .nav-link { color: var(--brand-dark) !important; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; font-size: 0.78rem; padding: 0.85rem 0.95rem; position: relative; } #mainNav .nav-link:hover, #mainNav .nav-link.active { color: var(--brand-accent) !important; } #mainNav .nav-link.active::after { content: ""; position: absolute; left: 0.95rem; right: 0.95rem; bottom: 0.35rem; height: 2px; background: var(--brand-accent); border-radius: 999px; } /* Main content */ .site-main { padding: 0 0 4rem; min-height: calc(100vh - 74px); } /* Masthead */ .masthead { position: relative; display: flex; align-items: center; min-height: 22rem; padding: 5rem 0 4rem; margin: 0 0 3rem; color: #fff; background-color: #343a40; background-repeat: no-repeat; background-position: center center; background-attachment: scroll; background-size: cover; } .masthead-home { min-height: 28rem; } .masthead-page, .masthead-post { min-height: 18rem; } .masthead .overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(33, 37, 41, 0.42), rgba(33, 37, 41, 0.68)); } .masthead .container { position: relative; z-index: 2; } .page-heading, .post-heading { padding: 1rem 0; } .page-heading h1, .post-heading h1 { font-family: "Lora", Georgia, "Times New Roman", serif; font-size: clamp(2.8rem, 6vw, 5rem); font-weight: 700; line-height: 1.1; margin: 0 0 0.75rem; } .page-heading .subheading, .post-heading .subheading { display: block; font-family: "Lora", Georgia, "Times New Roman", serif; font-size: clamp(1.05rem, 2vw, 1.5rem); font-weight: 400; line-height: 1.35; margin-top: 0.5rem; color: rgba(255, 255, 255, 0.92); } .post-heading-kicker, .post-preview-kicker { display: inline-block; margin-bottom: 0.75rem; padding-bottom: 0.35rem; border-bottom: 2px solid rgba(255,255,255,0.45); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255, 255, 255, 0.86); } .page-heading.text-center .subheading, .post-heading.text-center .subheading { max-width: 42rem; margin-left: auto; margin-right: auto; } /* Typography */ .page-title, .post-title, .hero .display-5, .card h1, .card h2, .card h3 { font-family: "Lora", Georgia, "Times New Roman", serif; letter-spacing: -0.02em; } .lede, .post-subtitle, .prose { max-width: 70ch; } .lede { font-size: 1.15rem; color: var(--text-muted-soft); } .post-preview { padding: 2rem 0; border-bottom: 1px solid var(--border-soft); } .post-preview:first-of-type { padding-top: 0; } .post-preview:last-of-type { border-bottom: 0; } .post-preview .post-title { font-size: clamp(1.8rem, 4vw, 2.35rem); margin-bottom: 0.4rem; } .post-preview .post-subtitle { font-family: "Lora", Georgia, "Times New Roman", serif; font-size: 1.15rem; font-weight: 400; color: var(--text-muted-soft); margin-bottom: 0.75rem; } .post-meta { font-size: 0.95rem; font-style: italic; color: var(--text-muted-soft); margin-bottom: 0; } .post-meta-inline { display: flex; flex-wrap: wrap; gap: 0.5rem 0.75rem; align-items: center; margin: 0.75rem 0 0; font-size: 0.92rem; color: var(--text-muted-soft); } .post-meta-inline .meta-sep { color: #adb5bd; } .masthead .post-meta-inline { color: rgba(255, 255, 255, 0.95); } .masthead .post-meta-inline .meta-sep { color: rgba(255, 255, 255, 0.7); } .post-card { overflow: hidden; background: #fff; } .post-card-featured .card-body { padding: 1.75rem; } .post-card-image { display: block; height: 12rem; background: linear-gradient(135deg, rgba(0, 133, 161, 0.22), rgba(33, 37, 41, 0.06)); background-size: cover; background-position: center; } .post-card-featured .post-card-image { height: 16rem; } .post-card .post-title { margin-bottom: 0.5rem; } .post-card .post-subtitle { margin-bottom: 0.9rem; } .story-aside { position: sticky; top: 96px; } .story-aside .card { margin-bottom: 1rem; } .topic-chip-grid { display: flex; flex-wrap: wrap; gap: 0.5rem; } .topic-chip { display: inline-flex; align-items: center; padding: 0.35rem 0.7rem; border: 1px solid var(--border-soft); background: #fff; color: var(--ink); font-size: 0.82rem; font-weight: 700; } .post-meta a { color: inherit; text-decoration: underline; } /* Cards */ .card { border: 1px solid var(--border-soft); border-radius: 0; background: #fff; } .card.shadow-sm { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important; } .card-body { padding: 1.5rem; } article.card:hover { transform: translateY(-1px); transition: transform 0.18s ease, box-shadow 0.18s ease; box-shadow: 0 8px 26px rgba(0, 0, 0, 0.08) !important; } /* Content */ .prose { font-size: 1.05rem; } .prose p:last-child { margin-bottom: 0; } .feature-dropcap:first-letter { float: left; font-family: "Lora", Georgia, serif; font-size: 4.1rem; line-height: 0.8; padding-right: 0.25rem; padding-top: 0.15rem; color: var(--brand-accent); } .post-body-preview { margin-bottom: 2rem; } .post-body-preview .post-preview-content { max-width: 68ch; margin: 0 auto; } .post-card a { color: inherit; } .post-card a:hover { color: var(--brand-accent); } .post-card .card-body { padding-top: 1.45rem; } .post-preview-content img, .ql-editor img { max-width: 100%; height: auto; border-radius: 0.35rem; } /* Comments */ .comment-card { border: 1px solid var(--border-soft); background: #fff; } .comment-card-body { padding: 1.1rem 1.25rem; } .comment-form-shell { border: 1px solid var(--border-soft); background: var(--paper-2); } .comment-form-inner { padding: 1.4rem 1.4rem 1.1rem; } /* Buttons */ .btn { border-radius: 0; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; font-size: 0.82rem; } .btn-primary { background: var(--brand-accent); border-color: var(--brand-accent); } .btn-primary:hover, .btn-primary:focus { background: #00657b; border-color: #00657b; } .btn-outline-primary { color: var(--brand-dark); border-color: var(--brand-dark); } .btn-outline-primary:hover, .btn-outline-primary:focus { background: var(--brand-dark); border-color: var(--brand-dark); color: #fff; } /* Footer */ .footer-divider { margin: 3rem 0 2rem; border-color: var(--border-soft); opacity: 1; } .site-footer { padding: 1rem 0 3rem; } /* General utilities used by the current views */ .eyebrow { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--brand-accent); } .magazine-label { display: inline-flex; align-items: center; padding: 0.25rem 0.7rem; border: 1px solid rgba(0, 133, 161, 0.22); background: rgba(0, 133, 161, 0.06); color: var(--brand-accent); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; } .editorial-list li + li { border-top: 1px solid var(--border-soft); padding-top: 0.85rem; } .editorial-list a { color: var(--ink); } .editorial-list a:hover { color: var(--brand-accent); } .small.text-muted, .text-muted { color: var(--text-muted-soft) !important; } .alert { border-radius: 0; } /* Editor */ .editor-shell { border: 1px solid var(--border-soft); overflow: hidden; background: #fff; } .rich-editor { min-height: 320px; } .ql-toolbar.ql-snow { border: 0; border-bottom: 1px solid var(--border-soft); padding: 0.75rem; background: #fbfbfb; } .ql-container.ql-snow { border: 0; font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; } .ql-editor { min-height: 320px; padding: 1.25rem; line-height: 1.7; } .ql-toolbar .btn { border-radius: 0; padding: 0.35rem 0.8rem; font-size: 0.82rem; }