:root {
    --paper:#f5f1e9;
    --white:#fffdf8;
    --ink:#202b25;
    --muted:#68716a;
    --line:#d8d4c9;
    --green:#284d3b;
    --pale:#e5e8dc;
    --red:#a44239;
    --serif:Georgia,"Times New Roman",serif;
    font-family:Arial,"Segoe UI",sans-serif;
    background:var(--paper);
    color:var(--ink);
    font-size:16px
}
* {
    box-sizing:border-box
}
body {
    margin:0
}
a {
    color:inherit;
    text-decoration:none;
    text-underline-offset:4px
}
a:hover {
    text-decoration:underline
}
button,input {
    font:inherit
}
button,input,a {
    outline-offset:4px
}
button {
    cursor:pointer
}
img {
    max-width:100%;
    height:auto
}
h1,h2,h3,p,figure {
    margin:0
}
.container {
    width:min(1280px,calc(100% - 72px));
    margin-inline:auto
}
.mastline {
    background:var(--green);
    color:#eef0e9;
    font-size:10px;
    letter-spacing:1.1px;
    padding:10px 0
}
.mastline .container {
    display:flex;
    justify-content:space-between;
    gap:16px
}
.site-header {
    height:100px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    border-bottom:1px solid var(--line)
}
.site-brand {
    display:flex;
    align-items:center;
    gap:12px;
    font:700 30px var(--serif);
    flex-shrink:0
}
.site-brand img {
    object-fit:contain
}
.site-brand small {
    display:block;
    font:700 8px Arial,sans-serif;
    letter-spacing:1.4px;
    color:var(--muted);
    margin-top:5px
}
.main-nav {
    display:flex;
    gap:30px;
    font-size:13px
}
.header-search {
    display:flex;
    align-items:center;
    border-bottom:1px solid var(--ink);
    max-width:200px
}
.header-search input {
    width:100%;
    min-width:0;
    border:0;
    background:transparent;
    padding:9px 2px;
    font-size:12px
}
.header-search button {
    border:0;
    background:transparent;
    color:var(--red);
    font-size:20px
}
.cover-story {
    display:grid;
    grid-template-columns:.82fr 1.18fr;
    gap:60px;
    align-items:center;
    padding-block:58px 48px
}
.eyebrow {
    font-size:10px;
    line-height:1.5;
    font-weight:700;
    letter-spacing:1.7px;
    color:var(--red)
}
.cover-copy h1 {
    font:clamp(52px,6.1vw,82px)/.98 var(--serif);
    letter-spacing:-3px;
    margin:24px 0
}
.cover-copy h1 em {
    color:var(--green);
    font-weight:400
}
.cover-description {
    max-width:430px;
    font-size:15px;
    line-height:1.8;
    color:var(--muted)
}
.text-link {
    display:inline-flex;
    gap:28px;
    align-items:center;
    margin-top:26px;
    color:var(--green);
    font-size:14px;
    font-weight:700;
    border-bottom:1px solid var(--green);
    padding-bottom:9px
}
.text-link span {
    color:var(--red);
    font-size:19px
}
.cover-meta {
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:32px;
    font-size:10px;
    letter-spacing:.3px;
    color:var(--muted)
}
.red-mark {
    width:8px;
    height:8px;
    background:var(--red);
    border-radius:50%
}
.cover-art img {
    display:block;
    width:100%;
    aspect-ratio:1.48;
    object-fit:cover;
    border-radius:2px
}
.cover-art figcaption {
    font:italic 12px var(--serif);
    color:var(--muted);
    margin-top:12px
}
.issue-line {
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-block:1px solid var(--line);
    padding:16px 0;
    color:var(--muted);
    font-size:10px;
    letter-spacing:.6px
}
.issue-line span:first-child {
    color:var(--red);
    font-weight:700
}
.issue-line a {
    color:var(--green)
}
.latest-section,.tag-block {
    padding-block:64px
}
.section-title {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:20px;
    margin-bottom:26px
}
.section-title h2 {
    font:38px/1.15 var(--serif);
    letter-spacing:-.6px;
    margin-top:7px
}
.section-title>a,.section-title>span {
    font-size:12px;
    color:var(--green)
}
.story-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:30px 24px
}
.home-grid {
    grid-template-columns:repeat(3,minmax(0,1fr))
}
.story-card {
    min-width:0;
    background:var(--white);
    border:1px solid var(--line)
}
.story-image {
    display:block;
    overflow:hidden;
    background:var(--pale)
}
.story-image img {
    display:block;
    width:100%;
    aspect-ratio:1.55;
    object-fit:cover;
    transition:transform .3s
}
.story-image:hover img {
    transform:scale(1.03)
}
.story-copy {
    padding:18px
}
.story-meta {
    display:flex;
    justify-content:space-between;
    gap:10px;
    color:var(--muted);
    font-size:10px;
    margin-bottom:12px
}
.story-card h3 {
    font:23px/1.22 var(--serif)
}
.story-copy>p {
    font-size:13px;
    line-height:1.7;
    color:var(--muted);
    margin-top:10px
}
.story-tags {
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:14px
}
.story-tags a {
    font-size:10px;
    color:var(--green);
    border:1px solid var(--line);
    padding:5px 8px
}
.popular-section {
    background:#e5e8dc;
    padding-block:50px
}
.popular-list {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:50px
}
.rank-story {
    display:flex;
    align-items:center;
    gap:17px;
    border-top:1px solid #c4cbbd;
    padding:19px 0
}
.rank {
    font:31px var(--serif);
    color:#8c9a88
}
.rank-story h3 {
    font:18px/1.3 var(--serif);
    flex:1
}
.inner-page {
    padding-block:28px 72px
}
.breadcrumbs {
    display:flex;
    gap:10px;
    color:var(--muted);
    font-size:12px;
    margin-bottom:30px
}
.content-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 260px;
    gap:50px
}
.main-column {
    min-width:0
}
.full-article h1,.list-heading h1,.main-column>h1 {
    font:clamp(38px,5vw,58px)/1.08 var(--serif);
    margin:10px 0 18px
}
.article-meta {
    display:flex;
    gap:18px;
    color:var(--muted);
    font-size:12px;
    margin-bottom:22px
}
.article-hero {
    width:100%;
    max-height:560px;
    object-fit:cover;
    margin-bottom:25px
}
.prose {
    font-size:17px;
    line-height:1.85;
    color:#35443a
}
.prose>*+* {
    margin-top:1em
}
.prose h2,.prose h3 {
    font-family:var(--serif);
    line-height:1.2
}
.prose a {
    color:var(--green);
    text-decoration:underline
}
.related {
    margin-top:48px
}
.tag-sidebar {
    background:#e8e6dc;
    padding:25px;
    height:max-content
}
.tag-sidebar h2 {
    font:26px var(--serif);
    margin:8px 0 15px
}
.tag-sidebar nav {
    display:grid
}
.tag-sidebar nav a {
    display:flex;
    justify-content:space-between;
    padding:10px 0;
    border-bottom:1px solid #d3d1c7;
    font-size:13px
}
.tag-sidebar nav b {
    font-size:11px;
    color:var(--red)
}
.list-heading {
    margin-bottom:28px
}
.list-heading>p:last-child,.tag-seo {
    color:var(--muted);
    line-height:1.7
}
.large-search {
    display:flex;
    gap:10px;
    margin-bottom:27px
}
.large-search input {
    flex:1;
    min-width:0;
    padding:13px;
    border:1px solid var(--line);
    background:var(--white)
}
.large-search button,.cookie-actions button {
    border:0;
    background:var(--green);
    color:#fff;
    padding:12px 18px
}
.empty-state {
    padding:25px;
    background:var(--white);
    border:1px solid var(--line);
    color:var(--muted);
    line-height:1.7
}
.pagination {
    display:flex;
    gap:7px;
    margin-top:28px
}
.pagination a,.pagination span {
    padding:9px 13px;
    border:1px solid var(--line)
}
.pagination [aria-current=page] {
    background:var(--green);
    color:white
}
.tag-seo {
    margin-top:28px
}
.site-footer {
    background:#203b2e;
    color:#edf0e9;
    padding:43px 0 25px
}
.footer-grid {
    display:grid;
    grid-template-columns:1fr 220px;
    gap:50px
}
.footer-logo {
    font:34px var(--serif)
}
.footer-grid p {
    max-width:460px;
    color:#c1ccc1;
    line-height:1.7;
    margin:12px 0
}
.footer-grid small,.footer-links {
    font-size:12px
}
.footer-links {
    display:grid;
    gap:13px;
    align-content:start
}
.analytics-area {
    margin-top:27px
}
.cookie-banner {
    position:fixed;
    z-index:20;
    bottom:18px;
    left:50%;
    transform:translateX(-50%);
    width:min(900px,calc(100% - 32px));
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    padding:18px 22px;
    background:var(--white);
    border:1px solid var(--line);
    box-shadow:0 10px 35px #202b2524
}
.cookie-banner[hidden] {
    display:none
}
.cookie-banner p {
    font-size:12px;
    line-height:1.5;
    color:var(--muted);
    margin-top:5px
}
.cookie-banner p a {
    text-decoration:underline
}
.cookie-actions {
    display:flex;
    gap:8px;
    flex-shrink:0
}
.cookie-actions button:last-child {
    background:#e8e6dc;
    color:var(--ink)
}
.skip-link,.sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}
.skip-link:focus {
    width:auto;
    height:auto;
    clip:auto;
    z-index:50;
    background:white;
    padding:10px;
    margin:8px
}
.error-page {
    min-height:100vh;
    display:grid;
    place-items:center
}
.error-content {
    width:min(560px,calc(100% - 40px));
    text-align:center;
    padding:50px 0
}
.error-content .site-brand {
    justify-content:center
}
.error-code {
    display:block;
    font:100px var(--serif);
    color:var(--red);
    margin-top:24px
}
.error-content h1 {
    font:34px var(--serif);
    margin-bottom:12px
}
.error-content p {
    color:var(--muted);
    margin-bottom:12px
}
.comments {
    margin-top:35px
}
.comment {
    padding:16px 0;
    border-bottom:1px solid var(--line)
}
.comment-form {
    display:grid;
    gap:12px
}
.comment-form label {
    display:grid;
    gap:6px
}
.comment-form input,.comment-form textarea {
    width:100%;
    padding:11px;
    border:1px solid var(--line)
}
.comment-success,.comment-error {
    padding:12px;
    background:var(--pale)
}
.comment-trap {
    display:none
}
.feedback-form {
    display:grid;
    gap:14px
}
.feedback-field {
    display:grid;
    gap:6px
}
.feedback-field input,.feedback-field textarea {
    width:100%;
    padding:11px;
    border:1px solid var(--line)
}
.feedback-consent {
    font-size:12px
}
.feedback-error {
    color:#a23b39
}
.feedback-success {
    color:var(--green)
}
.feedback-preview {
    color:var(--muted)
}
.feedback-submit {
    background:var(--green);
    color:white;
    border:0;
    padding:12px
}
@media(max-width:900px) {
    .container {
    width:min(100% - 40px,720px)
}
.site-header {
    height:auto;
    min-height:96px;
    flex-wrap:wrap;
    padding-block:15px
}
.main-nav {
    order:3;
    width:100%;
    justify-content:center
}
.cover-story {
    grid-template-columns:1fr;
    gap:30px
}
.cover-copy {
    max-width:620px
}
.cover-art img {
    aspect-ratio:1.7
}
.content-layout {
    grid-template-columns:1fr
}
.tag-sidebar {
    order:2
}
.home-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
}

}
@media(max-width:560px) {
    .container {
    width:calc(100% - 32px)
}
.mastline .container span:last-child {
    display:none
}
.site-header {
    gap:12px
}
.site-brand {
    font-size:26px
}
.site-brand img {
    width:42px;
    height:42px
}
.header-search {
    max-width:145px
}
.main-nav {
    justify-content:space-between;
    gap:12px;
    font-size:12px
}
.cover-story {
    padding-block:36px
}
.cover-copy h1 {
    font-size:54px
}
.cover-description {
    font-size:14px
}
.cover-art img {
    aspect-ratio:1.2
}
.issue-line {
    font-size:8px;
    gap:8px
}
.issue-line span:nth-child(2) {
    display:none
}
.latest-section,.tag-block {
    padding-block:42px
}
.section-title h2 {
    font-size:31px
}
.home-grid,.story-grid,.popular-list {
    grid-template-columns:1fr
}
.story-card h3 {
    font-size:22px
}
.content-layout {
    gap:28px
}
.full-article h1,.list-heading h1,.main-column>h1 {
    font-size:39px
}
.prose {
    font-size:16px
}
.footer-grid {
    grid-template-columns:1fr;
    gap:28px
}
.cookie-banner {
    align-items:flex-start;
    flex-direction:column;
    gap:13px
}
.cookie-actions {
    width:100%
}
.cookie-actions button {
    flex:1
}
.article-meta {
    flex-wrap:wrap
}

}
