/*
Theme Name: CYBERPVNK
Description: Livro's editorial structure reimagined with h4x0r's terminal-inspired typography, CRT texture, and cyberpunk color system.
Version: 1.0.0
Update URI: false
Requires at least: 6.8
Requires PHP: 7.4
Author: Daniel Wilson
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cyberpvnk-theme
Tags: blog, block-patterns, full-site-editing, custom-colors, editor-style, style-variations, two-columns, right-sidebar
*/

body {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
}

/* Keep Livro's full-width template structure aligned to the terminal canvas. */
.wp-site-blocks,
body > .is-root-container,
.edit-post-visual-editor__post-title-wrapper,
.wp-block-group.alignfull,
.wp-block-group.has-background,
.wp-block-columns.alignfull.has-background,
.wp-block-cover.alignfull,
.is-root-container .wp-block[data-align="full"] > .wp-block-group,
.is-root-container .wp-block[data-align="full"] > .wp-block-columns.has-background,
.is-root-container .wp-block[data-align="full"] > .wp-block-cover {
	padding-left: var(--wp--custom--spacing--outer, 1ch);
	padding-right: var(--wp--custom--spacing--outer, 1ch);
}

.wp-site-blocks .alignfull,
.wp-site-blocks > .wp-block-group.has-background,
.wp-site-blocks > .wp-block-cover,
.wp-site-blocks > .wp-block-template-part > .wp-block-group.has-background,
.wp-site-blocks > .wp-block-template-part > .wp-block-cover,
body > .is-root-container > .wp-block-cover,
body > .is-root-container > .wp-block-template-part > .wp-block-group.has-background,
body > .is-root-container > .wp-block-template-part > .wp-block-cover,
.is-root-container .wp-block[data-align="full"] {
	margin-left: calc(-1 * var(--wp--custom--spacing--outer, 1ch)) !important;
	margin-right: calc(-1 * var(--wp--custom--spacing--outer, 1ch)) !important;
	max-width: unset;
	width: unset;
}

.wp-site-blocks .wp-block-columns .wp-block-column .alignfull,
.is-root-container .wp-block-columns .wp-block-column .wp-block[data-align="full"],
.wp-site-blocks .alignfull:not(.wp-block-group) .alignfull,
.is-root-container .wp-block[data-align="full"] > *:not(.wp-block-group) .wp-block[data-align="full"] {
	margin-left: auto !important;
	margin-right: auto !important;
	width: inherit;
}

.wp-block-post-title a,
.wp-block-post-date a {
	text-decoration: none;
}

.wp-block-site-title,
.cyberpvnk-theme-brand {
	letter-spacing: 0.04em;
	font-weight: 700;
}

.wp-block-site-title::before,
.cyberpvnk-theme-brand::before {
	color: var(--wp--preset--color--accent);
	content: "> ";
}

.wp-block-post-date,
.wp-block-post-terms,
.wp-block-post-author,
.wp-block-post-excerpt__more-text,
figcaption {
	color: var(--wp--preset--color--contrast);
}

.wp-block-separator {
	border-color: var(--wp--preset--color--midtone);
}

.wp-block-search__input,
textarea,
input:not([type="submit"]):not([type="button"]) {
	background: var(--wp--preset--color--base);
	border: var(--wp--preset--spacing--10) solid var(--wp--preset--color--midtone);
	border-radius: 0;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	padding: 1ch;
}

.wp-block-search__input:focus,
textarea:focus,
input:not([type="submit"]):not([type="button"]):focus {
	border-color: var(--wp--preset--color--primary);
	outline: var(--wp--preset--spacing--10) solid var(--wp--preset--color--primary);
}

.wp-block-search__button,
.wp-block-file .wp-block-file__button {
	background: var(--wp--preset--color--contrast);
	border: 0;
	border-radius: 0;
	box-shadow: 1ch 1ch 0 rgba(0, 0, 0, 0.2);
	color: var(--wp--preset--color--base);
	font: inherit;
	font-weight: 700;
	padding: 1ch;
}

.wp-block-search__button:hover,
.wp-block-file .wp-block-file__button:hover,
.wp-block-button__link:hover {
	opacity: 0.9;
}

.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent {
	margin-top: 0.2em;
}

.single-format-aside h1.wp-block-post-title,
.single-format-aside h1.wp-block-post-title + .wp-block-post-date,
.home .post_format-post-format-aside .wp-block-post-title,
.archive .post_format-post-format-aside .wp-block-post-title,
.blog .post_format-post-format-aside .wp-block-post-title {
	display: none;
}

@media (prefers-reduced-motion: no-preference) {
	.wp-block-site-title::after,
	.cyberpvnk-theme-brand::after {
		animation: cyberpvnk-theme-cursor 1.1s steps(1) infinite;
		color: var(--wp--preset--color--accent);
		content: "_";
	}
}

@keyframes cyberpvnk-theme-cursor {
	50% {
		opacity: 0;
	}
}

/* Preserve the source theme's article/sidebar and image/excerpt grids. */
.wp-site-blocks > .wp-block-columns {
	max-width: var(--wp--style--global--wide-size);
	margin: 3em auto;
	gap: 3em;
}

.wp-block-column {
	min-width: 0;
}

.wp-block-column.sidebar {
	border-left: 1px solid var(--wp--preset--color--midtone);
	padding-left: 2ch;
	font-size: var(--wp--preset--font-size--small);
}

.sidebar .wp-block-latest-posts li {
	margin-bottom: 1.5em;
}

.wp-block-post-content,
.wp-block-post-excerpt,
.wp-block-post-title {
	overflow-wrap: anywhere;
}

.wp-block-post-title {
	line-height: 1.5;
}

.single .wp-block-post-title {
	font-size: var(--wp--preset--font-size--x-large);
	margin-bottom: 1.5em;
}

.wp-block-post-template > li {
	margin-bottom: 3em;
}

.wp-block-post-template .wp-block-post-featured-image img {
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.cinema-footer {
	border-top: 0.5em solid var(--wp--preset--color--midtone);
	padding-top: 2em;
	padding-bottom: 2em;
	margin-top: 4em;
}

.cinema-monogram {
	font-size: clamp(2rem, 6vw, 3rem);
	font-weight: 700;
	color: var(--wp--preset--color--accent);
}

.wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.5rem;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	top: 0;
	right: 0;
}

/* A subtle texture, without dimming article text excessively. */
.wp-site-blocks::before {
	opacity: 0.3;
}

@media (max-width: 781px) {
	.wp-site-blocks > .wp-block-columns {
		gap: 2em;
	}
	.wp-block-column.sidebar {
		border-left: 0;
		border-top: 1px solid var(--wp--preset--color--midtone);
		padding-left: 0;
		padding-top: 1em;
	}
}

@media (prefers-contrast: more), (forced-colors: active), print {
	.wp-site-blocks::before,
	.wp-site-blocks::after {
		display: none;
	}
}
