.np-index-area,
.np-archive-area,
.np-search-area,
.np-single-area {
    background: var(--np-color-background);
}

.np-index-main,
.np-archive-main,
.np-search-main,
.np-single-main {
    min-width: 0;
}

.np-index-loop,
.np-archive-loop,
.np-search-loop {
    align-items: stretch;
}

.np-content-entry,
.np-archive-entry,
.np-search-entry {
    isolation: isolate;
}

.np-content-entry .np-entry-media,
.np-archive-entry .np-archive-entry-media,
.np-search-entry .np-search-entry-media {
    border-end-start-radius: 0;
    border-end-end-radius: 0;
}

.np-content-entry .np-entry-body,
.np-archive-entry .np-archive-entry-body,
.np-search-entry .np-search-entry-body {
    min-height: 100%;
}

.np-entry-header,
.np-archive-entry-header,
.np-search-entry-header {
    min-width: 0;
}

.np-entry-title,
.np-archive-entry-title,
.np-search-entry-title {
    word-break: break-word;
}

.np-entry-title a,
.np-archive-entry-title a,
.np-search-entry-title a {
    display: inline;
    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-position: 100% 100%;
    background-size: 0 1px;
    transition:
        color var(--np-transition-fast),
        background-size var(--np-transition-md);
}

.np-entry-title a:hover,
.np-entry-title a:focus,
.np-archive-entry-title a:hover,
.np-archive-entry-title a:focus,
.np-search-entry-title a:hover,
.np-search-entry-title a:focus {
    background-size: 100% 1px;
}

.np-entry-excerpt,
.np-archive-entry-excerpt,
.np-search-entry-excerpt {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.np-entry-footer,
.np-archive-entry-footer,
.np-search-entry-footer {
    padding-block-start: var(--np-spacing-sm);
}

.np-single-entry {
    display: grid;
    gap: var(--np-spacing-xl);
}

.np-single-entry-header {
    display: grid;
    gap: var(--np-spacing-md);
    margin-block-end: var(--np-spacing-xl);
}

.np-single-title {
    margin: 0;
    max-width: 980px;
    color: var(--np-color-primary-dark);
    font-family: var(--np-font-display);
    font-size: clamp(2.25rem, 5vw, var(--np-font-size-6xl));
    font-weight: var(--np-font-weight-black);
    line-height: var(--np-line-height-xs);
    letter-spacing: -0.03em;
}

.np-single-entry-header .np-post-meta {
    margin-block-start: var(--np-spacing-xs);
}

.np-single-featured-image {
    overflow: hidden;
    margin-block-end: var(--np-spacing-2xl);
    background: var(--np-color-surface-soft);
    border-radius: var(--np-radius-2xl);
    box-shadow: var(--np-shadow-sm);
}

.np-single-thumbnail {
    width: 100%;
    aspect-ratio: 16 / 8;
    object-fit: cover;
}

.np-single-content,
.np-entry-content {
    color: var(--np-color-text);
    font-size: var(--np-font-size-lg);
    line-height: var(--np-line-height-lg);
}

.np-single-content > *,
.np-entry-content > * {
    max-width: var(--np-container-narrow);
    margin-inline: auto;
}

.np-single-content > .alignwide,
.np-entry-content > .alignwide {
    max-width: var(--np-container-lg);
}

.np-single-content > .alignfull,
.np-entry-content > .alignfull {
    max-width: 100vw;
}

.np-single-content p,
.np-entry-content p {
    margin-block-end: var(--np-spacing-lg);
}

.np-single-content h2,
.np-entry-content h2 {
    margin-block-start: var(--np-spacing-3xl);
    margin-block-end: var(--np-spacing-md);
    font-size: clamp(1.75rem, 4vw, var(--np-font-size-4xl));
}

.np-single-content h3,
.np-entry-content h3 {
    margin-block-start: var(--np-spacing-2xl);
    margin-block-end: var(--np-spacing-md);
    font-size: clamp(1.4rem, 3vw, var(--np-font-size-3xl));
}

.np-single-content h4,
.np-entry-content h4,
.np-single-content h5,
.np-entry-content h5,
.np-single-content h6,
.np-entry-content h6 {
    margin-block-start: var(--np-spacing-xl);
}

.np-single-content ul,
.np-entry-content ul,
.np-single-content ol,
.np-entry-content ol {
    display: grid;
    gap: var(--np-spacing-sm);
    margin-block-end: var(--np-spacing-lg);
}

.np-single-content li,
.np-entry-content li {
    margin: 0;
}

.np-single-content blockquote,
.np-entry-content blockquote {
    max-width: var(--np-container-narrow);
    margin-block: var(--np-spacing-2xl);
}

.np-single-content figure,
.np-entry-content figure {
    margin-block: var(--np-spacing-2xl);
}

.np-single-content img,
.np-entry-content img {
    border-radius: var(--np-radius-lg);
}

.np-single-content .wp-block-image img,
.np-entry-content .wp-block-image img {
    box-shadow: var(--np-shadow-xs);
}

.np-single-content .wp-block-image.alignfull img,
.np-entry-content .wp-block-image.alignfull img {
    border-radius: 0;
    box-shadow: none;
}

.np-single-content .wp-block-gallery,
.np-entry-content .wp-block-gallery {
    gap: var(--np-spacing-md);
}

.np-single-content .wp-block-quote,
.np-entry-content .wp-block-quote {
    padding: var(--np-spacing-xl);
    background: var(--np-color-surface);
    border-inline-start: 4px solid var(--np-color-primary-teal);
    border-radius: var(--np-radius-xl);
    box-shadow: var(--np-shadow-xs);
}

.np-single-content .wp-block-pullquote,
.np-entry-content .wp-block-pullquote {
    padding: var(--np-spacing-2xl);
    color: var(--np-color-primary-dark);
    background: var(--np-color-surface);
    border-block: 4px solid var(--np-color-accent-mint);
    border-radius: var(--np-radius-2xl);
}

.np-single-content .wp-block-pullquote blockquote,
.np-entry-content .wp-block-pullquote blockquote {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.np-single-content .wp-block-table,
.np-entry-content .wp-block-table {
    overflow-x: auto;
}

.np-single-content .wp-block-table table,
.np-entry-content .wp-block-table table {
    margin-block: 0;
}

.np-single-content .wp-block-cover,
.np-entry-content .wp-block-cover {
    border-radius: var(--np-radius-2xl);
    overflow: hidden;
}

.np-single-content .wp-block-cover.alignfull,
.np-entry-content .wp-block-cover.alignfull {
    border-radius: 0;
}

.np-single-content .wp-block-separator,
.np-entry-content .wp-block-separator {
    max-width: var(--np-container-narrow);
    margin-block: var(--np-spacing-2xl);
    border: 0;
    border-block-start: var(--np-border);
}

.np-single-content .wp-block-separator.is-style-wide,
.np-entry-content .wp-block-separator.is-style-wide {
    max-width: var(--np-container-lg);
}

.np-single-content .wp-block-media-text,
.np-entry-content .wp-block-media-text {
    gap: var(--np-spacing-xl);
}

.np-single-content .wp-block-media-text__media img,
.np-entry-content .wp-block-media-text__media img {
    width: 100%;
}

.np-single-content .wp-block-embed,
.np-entry-content .wp-block-embed {
    overflow: hidden;
}

.np-single-content .wp-block-embed iframe,
.np-entry-content .wp-block-embed iframe {
    width: 100%;
    border-radius: var(--np-radius-xl);
}

.np-single-footer,
.np-single-entry-footer {
    display: grid;
    gap: var(--np-spacing-lg);
    margin-block-start: var(--np-spacing-2xl);
    padding-block-start: var(--np-spacing-xl);
    border-block-start: var(--np-border);
}

.np-single-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--np-spacing-xs);
    align-items: center;
}

.np-single-tags a {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding-inline: var(--np-spacing-sm);
    color: var(--np-color-primary-teal);
    background: color-mix(in srgb, var(--np-color-primary-teal) 8%, transparent);
    border-radius: var(--np-radius-pill);
    font-size: var(--np-font-size-sm);
    font-weight: var(--np-font-weight-medium);
}

.np-single-tags a:hover,
.np-single-tags a:focus {
    color: var(--np-color-surface);
    background: var(--np-color-primary-teal);
}

.np-page-links {
    max-width: var(--np-container-narrow);
    margin-inline: auto;
}

.np-search-form-wrapper {
    margin-block-end: var(--np-spacing-2xl);
}

.np-search-entry .np-search-post-type {
    margin-block-end: var(--np-spacing-xs);
}

.np-archive-area .np-page-header,
.np-search-area .np-page-header,
.np-index-area .np-page-header {
    max-width: 860px;
}

.np-archive-area .np-page-description,
.np-search-area .np-page-description,
.np-index-area .np-page-description {
    max-width: 720px;
}

.np-archive-entry.sticky,
.np-content-entry.sticky {
    border-color: var(--np-color-accent-gold);
    box-shadow: var(--np-shadow-md);
}

.np-archive-entry.sticky::before,
.np-content-entry.sticky::before {
    content: "";
    position: absolute;
    z-index: 1;
    inset-block-start: var(--np-spacing-md);
    inset-inline-start: var(--np-spacing-md);
    width: 0.75rem;
    height: 0.75rem;
    background: var(--np-color-accent-gold);
    border-radius: var(--np-radius-circle);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--np-color-accent-gold) 24%, transparent);
}

.np-post-meta-date time {
    white-space: nowrap;
}

.np-post-meta-categories a {
    color: var(--np-color-primary-teal);
}

.np-post-meta-categories a:hover,
.np-post-meta-categories a:focus {
    color: var(--np-color-primary-dark);
}

.np-post-navigation {
    max-width: var(--np-container-narrow);
    margin-inline: auto;
}

.np-share-links {
    max-width: var(--np-container-narrow);
    margin-inline: auto;
    margin-block-start: var(--np-spacing-xl);
}

.np-term-list {
    max-width: var(--np-container-narrow);
    margin-inline: auto;
    margin-block-start: var(--np-spacing-xl);
}

.np-comments-area {
    max-width: var(--np-container-narrow);
    margin-inline: auto;
}

.np-comment-form-wrapper {
    margin-block-start: var(--np-spacing-xl);
}

.np-related-posts {
    max-width: var(--np-container-lg);
    margin-inline: auto;
    margin-block-start: var(--np-spacing-4xl);
}

.np-related-posts-header {
    display: flex;
    gap: var(--np-spacing-md);
    align-items: flex-end;
    justify-content: space-between;
    margin-block-end: var(--np-spacing-xl);
}

.np-related-posts-title {
    margin: 0;
    color: var(--np-color-primary-dark);
    font-family: var(--np-font-display);
    font-size: var(--np-font-size-3xl);
    font-weight: var(--np-font-weight-black);
}

.np-related-posts-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--np-spacing-xl);
}

.np-author-box {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--np-spacing-lg);
    max-width: var(--np-container-narrow);
    margin-inline: auto;
    margin-block-start: var(--np-spacing-3xl);
    padding: var(--np-spacing-xl);
    background: var(--np-color-surface);
    border: var(--np-border);
    border-radius: var(--np-radius-2xl);
    box-shadow: var(--np-shadow-xs);
}

.np-author-box-avatar {
    width: 80px;
    height: 80px;
    overflow: hidden;
    border-radius: var(--np-radius-circle);
    background: var(--np-color-surface-soft);
}

.np-author-box-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.np-author-box-content {
    display: grid;
    gap: var(--np-spacing-xs);
    min-width: 0;
}

.np-author-box-name {
    margin: 0;
    color: var(--np-color-primary-dark);
    font-family: var(--np-font-heading);
    font-size: var(--np-font-size-xl);
    font-weight: var(--np-font-weight-bold);
}

.np-author-box-description {
    margin: 0;
    color: var(--np-color-text-muted);
    font-size: var(--np-font-size-sm);
    line-height: var(--np-line-height-md);
}

@media (max-width: 1180px) {
    .np-related-posts-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 782px) {
    .np-single-title {
        font-size: clamp(2rem, 10vw, 3rem);
    }

    .np-single-content,
    .np-entry-content {
        font-size: var(--np-font-size-md);
        line-height: var(--np-line-height-md);
    }

    .np-single-thumbnail {
        aspect-ratio: 16 / 10;
    }

    .np-single-content h2,
    .np-entry-content h2 {
        margin-block-start: var(--np-spacing-2xl);
    }

    .np-related-posts-header {
        display: grid;
        align-items: start;
    }

    .np-related-posts-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .np-author-box {
        grid-template-columns: minmax(0, 1fr);
        text-align: start;
    }

    .np-author-box-avatar {
        width: 72px;
        height: 72px;
    }
}