/* ==========================================================================
   GhostLayer theme — layout, components and effects.
   Colors, type and spacing come from theme.json presets.
   ========================================================================== */

:root {
	--gl-bg: var(--wp--preset--color--base, #05070F);
	--gl-surface: var(--wp--preset--color--surface, #0F1428);
	--gl-surface-2: var(--wp--preset--color--surface-2, #151B35);
	--gl-border: var(--wp--preset--color--border, #232B4D);
	--gl-primary: var(--wp--preset--color--primary, #7C3AED);
	--gl-primary-bright: var(--wp--preset--color--primary-bright, #9B6BFF);
	--gl-primary-soft: var(--wp--preset--color--primary-soft, #C4B5FD);
	--gl-accent: var(--wp--preset--color--accent, #22D3EE);
	--gl-text: var(--wp--preset--color--contrast, #EEF0FA);
	--gl-muted: var(--wp--preset--color--muted, #9AA3C2);
	--gl-radius: 14px;
	--gl-ease: cubic-bezier(.2, .7, .2, 1);
	--gl-card-bg: linear-gradient(180deg, rgba(21, 27, 53, .78) 0%, rgba(13, 18, 38, .78) 100%);
	--gl-glow: 0 0 0 1px rgba(155, 107, 255, .45), 0 18px 50px -18px rgba(124, 58, 237, .65);
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	background:
		radial-gradient(900px 520px at 85% -120px, rgba(124, 58, 237, .22), transparent 70%),
		radial-gradient(700px 420px at -10% 30%, rgba(34, 211, 238, .06), transparent 70%),
		var(--gl-bg);
	background-attachment: fixed;
	color: var(--gl-text);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

::selection { background: rgba(124, 58, 237, .55); color: #fff; }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--gl-accent);
	outline-offset: 2px;
	border-radius: 4px;
}

.gl-muted, .gl-muted a { color: var(--gl-muted); }
.gl-lead { color: var(--gl-muted); font-size: var(--wp--preset--font-size--medium); max-width: 640px; }
.has-text-align-center.gl-lead { margin-inline: auto; }
.gl-gradient-text {
	background: linear-gradient(90deg, var(--gl-primary-bright), var(--gl-accent));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.gl-note {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--gl-muted);
	border-left: 2px solid var(--gl-primary);
	padding-left: .75rem;
}

/* ---------- Block styles ---------- */

.is-style-gl-eyebrow {
	display: inline-block;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gl-primary-soft);
	background: rgba(124, 58, 237, .14);
	border: 1px solid rgba(155, 107, 255, .35);
	padding: .35rem .8rem;
	border-radius: 999px;
}
.has-text-align-center.is-style-gl-eyebrow { display: table; margin-inline: auto; }

.wp-block-button.is-style-gl-ghost .wp-block-button__link {
	background: transparent;
	color: var(--gl-text);
	box-shadow: inset 0 0 0 1px var(--gl-border);
}
.wp-block-button.is-style-gl-ghost .wp-block-button__link:hover {
	box-shadow: inset 0 0 0 1px var(--gl-primary-bright);
	background: rgba(124, 58, 237, .12);
}
.wp-block-button__link {
	transition: background-color .2s var(--gl-ease), box-shadow .2s var(--gl-ease), transform .2s var(--gl-ease);
	box-shadow: 0 8px 24px -10px rgba(124, 58, 237, .8);
}
.wp-block-button__link:hover { transform: translateY(-1px); }
.gl-btn-sm .wp-block-button__link { padding: .5rem 1rem; font-size: var(--wp--preset--font-size--x-small); }

.is-style-gl-card,
.gl-path,
.gl-topic,
.gl-info {
	background: var(--gl-card-bg);
	border: 1px solid var(--gl-border);
	border-radius: var(--gl-radius);
	padding: 1.5rem;
	transition: border-color .25s var(--gl-ease), box-shadow .25s var(--gl-ease), transform .25s var(--gl-ease);
	backdrop-filter: blur(6px);
}
.is-style-gl-card:hover,
.gl-path:hover,
.gl-topic:hover {
	border-color: rgba(155, 107, 255, .6);
	box-shadow: var(--gl-glow);
	transform: translateY(-3px);
}
.is-style-gl-card > *:first-child { margin-top: 0; }

.is-style-gl-glow {
	position: relative;
	background:
		radial-gradient(600px 220px at 0% 0%, rgba(124, 58, 237, .45), transparent 70%),
		linear-gradient(135deg, #1A1240 0%, #0F1428 60%);
	border: 1px solid rgba(155, 107, 255, .55);
	border-radius: 18px;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	box-shadow: var(--gl-glow);
}

/* ---------- Header ---------- */

.gl-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
}
.admin-bar .gl-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .gl-site-header { top: 0; } }

/* Blur lives on a pseudo-element: backdrop-filter on the header itself would
   trap the fixed-position mobile menu overlay inside the header box. */
.gl-header {
	position: relative;
	border-bottom: 1px solid rgba(35, 43, 77, .7);
}
.gl-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(5, 7, 15, .78);
	backdrop-filter: saturate(140%) blur(14px);
	-webkit-backdrop-filter: saturate(140%) blur(14px);
}
.gl-header__inner { padding-block: .85rem; gap: 1.5rem; }
.gl-brand { gap: .65rem; }
.gl-brand .wp-block-site-logo img { display: block; height: auto; }
.gl-brand { flex-shrink: 0; }
/* With an uploaded logo the wordmark is in the image, so the text title is hidden. */
.gl-brand:has(.wp-block-site-logo img) .gl-brand__title { display: none; }
.gl-brand__title {
	margin: 0;
	font-weight: 800;
	font-size: 1.05rem;
	letter-spacing: .02em;
	text-transform: uppercase;
	line-height: 1.1;
}
.gl-brand__title a { color: var(--gl-text); }
.gl-brand__title a:hover { color: var(--gl-primary-soft); }

.gl-nav { flex: 1; }
.gl-nav .wp-block-navigation-item__content {
	color: var(--gl-muted);
	padding: .35rem .2rem;
	position: relative;
	transition: color .2s;
}
.gl-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 2px;
	background: linear-gradient(90deg, var(--gl-primary-bright), var(--gl-accent));
	transform: scaleX(0);
	transition: transform .25s var(--gl-ease);
}
.gl-nav .wp-block-navigation-item__content:hover,
.gl-nav .current-menu-item > .wp-block-navigation-item__content,
.gl-nav .wp-block-navigation-item__content[aria-current="page"] { color: var(--gl-text); }
.gl-nav .wp-block-navigation-item__content:hover::after,
.gl-nav .wp-block-navigation-item__content[aria-current="page"]::after { transform: scaleX(1); }
.gl-nav .wp-block-navigation__container { gap: 1.6rem; }

.gl-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: rgba(5, 7, 15, .97);
	backdrop-filter: blur(10px);
	color: var(--gl-text);
	padding: 1.5rem;
}
.gl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.2rem; font-size: 1.25rem; }
.gl-nav .wp-block-navigation__responsive-container-open,
.gl-nav .wp-block-navigation__responsive-container-close { color: var(--gl-text); }

.gl-header__actions { gap: .75rem; }
.gl-header__search .wp-block-search__inside-wrapper {
	background: var(--gl-surface);
	border: 1px solid var(--gl-border);
	border-radius: 8px;
	padding: 2px;
	width: 200px;
}
.gl-header__search input.wp-block-search__input {
	background: transparent;
	border: 0;
	color: var(--gl-text);
	font-size: var(--wp--preset--font-size--x-small);
	padding: .4rem .6rem;
}
.gl-header__search .wp-block-search__button {
	background: transparent;
	color: var(--gl-muted);
	padding: .3rem .5rem;
	margin: 0;
	box-shadow: none;
}
.gl-header__search .wp-block-search__button:hover { color: var(--gl-accent); }

@media (max-width: 1100px) {
	.gl-header .gl-header__search { display: none; }
	.gl-nav .wp-block-navigation__container { gap: 1.1rem; }
}
@media (max-width: 600px) {
	.gl-header__inner { gap: .75rem; }
	.gl-header .gl-header__cta { display: none; }
	.gl-nav { flex: 0 0 auto; order: 3; }
	.gl-brand__title { font-size: .95rem; }
	.gl-header .wp-block-site-logo img { width: 140px; }
}

/* ---------- Main + sections ---------- */

.gl-main { padding-bottom: var(--wp--preset--spacing--60); }
.gl-main--canvas { padding-bottom: 0; }
.gl-main > .wp-block-post-content > *:first-child,
.gl-main > *:first-child { margin-top: 0; }

.gl-section { padding-block: var(--wp--preset--spacing--50); }
.gl-section--tight { padding-top: var(--wp--preset--spacing--30); }
.gl-section__head { margin-bottom: 1.25rem; align-items: baseline; }
.gl-section__title { font-size: var(--wp--preset--font-size--large); margin: 0; }
.gl-link-more { margin: 0; font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.gl-link-more a { color: var(--gl-primary-bright); }

.gl-page-hero {
	position: relative;
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--40);
	text-align: center;
	overflow: hidden;
}
.gl-page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("../images/grid-bg.svg");
	mask-image: radial-gradient(70% 90% at 50% 0%, #000 0%, transparent 75%);
	-webkit-mask-image: radial-gradient(70% 90% at 50% 0%, #000 0%, transparent 75%);
	pointer-events: none;
}
.gl-page-hero > * { position: relative; }
.gl-page-hero h1 { margin-bottom: .5rem; }
.gl-page-hero .gl-lead { margin-top: .5rem; }
.gl-404 .wp-block-search { max-width: 520px; margin: 2rem auto 0; }

/* ---------- Hero ---------- */

.gl-hero {
	position: relative;
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--40);
	overflow: hidden;
}
.gl-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("../images/grid-bg.svg");
	mask-image: radial-gradient(60% 80% at 75% 35%, #000 0%, transparent 70%);
	-webkit-mask-image: radial-gradient(60% 80% at 75% 35%, #000 0%, transparent 70%);
	pointer-events: none;
}
.gl-hero > * { position: relative; z-index: 1; }
.gl-hero__title {
	font-size: var(--wp--preset--font-size--display);
	line-height: 1.04;
	letter-spacing: -0.035em;
	margin-block: 1rem;
}
.gl-hero .wp-block-buttons { margin-top: 1.75rem; }
/* Drifting neon lights behind the banner. */
.gl-hero::after {
	content: "";
	position: absolute;
	inset: -20% -10%;
	background:
		radial-gradient(28% 34% at 72% 38%, rgba(124, 58, 237, .38), transparent 70%),
		radial-gradient(20% 26% at 88% 70%, rgba(34, 211, 238, .16), transparent 70%),
		radial-gradient(22% 30% at 12% 20%, rgba(236, 72, 153, .12), transparent 70%);
	animation: gl-drift 16s ease-in-out infinite alternate;
	pointer-events: none;
	z-index: 0;
}
@keyframes gl-drift {
	50% { transform: translate3d(-3%, 2%, 0) scale(1.05); }
	100% { transform: translate3d(2%, -2%, 0) scale(.98); }
}
.gl-hero__art { margin: 0; position: relative; }
.gl-hero__art img {
	display: block;
	width: 118%;
	max-width: none;
	height: auto;
	margin: -6% -10% -8% -8%;
	filter: drop-shadow(0 30px 60px rgba(124, 58, 237, .4));
}
@media (max-width: 1100px) {
	.gl-hero__art img { width: 108%; margin: -4% -4% -6% -4%; }
}
@media (max-width: 781px) {
	.gl-hero__cols { flex-direction: column-reverse; }
	.gl-hero__art img { width: min(100%, 460px); max-width: 100%; margin: -2rem auto -1.5rem; }
}

/* ---------- Home cards ---------- */

.gl-paths { gap: 1.25rem; }
.gl-path { height: 100%; }
.gl-path__icon { margin: 0 0 1rem; }
.gl-path h3 { font-size: var(--wp--preset--font-size--medium); margin: 0 0 .35rem; }
.gl-path h3 a { color: var(--gl-text); }
.gl-path h3 a::after { content: ""; position: absolute; inset: 0; }
.gl-path { position: relative; }
.gl-path p { color: var(--gl-muted); font-size: var(--wp--preset--font-size--small); margin: 0; }

.gl-topic { padding: 0; overflow: hidden; height: 100%; }
.gl-topic .wp-block-post-featured-image { margin: 0; overflow: hidden; }
.gl-topic .wp-block-post-featured-image img,
.gl-topic .wp-block-post-featured-image .gl-art { transition: transform .5s var(--gl-ease); }
.gl-topic:hover .wp-block-post-featured-image img,
.gl-topic:hover .wp-block-post-featured-image .gl-art { transform: scale(1.04); }
.gl-topic__body { padding: 1rem 1.25rem 1.25rem; }
.gl-topic .wp-block-post-title { font-size: var(--wp--preset--font-size--medium); margin: 0 0 .25rem; }
.gl-topic .wp-block-post-excerpt { margin: 0; }
.gl-topic .wp-block-post-excerpt__more-text { display: none; }

.gl-cta { gap: 1.5rem; }
.gl-cta__text { gap: 1.25rem; flex: 1 1 420px; }
.gl-cta__text figure { margin: 0; flex: 0 0 auto; }
.gl-cta h2 { font-size: var(--wp--preset--font-size--large); margin: 0 0 .25rem; }
.gl-cta p { margin: 0; }

.gl-equal { gap: 1.25rem; }
.gl-equal > .wp-block-column > * { height: 100%; }

.gl-check-list { list-style: none; padding-left: 0; }
.gl-check-list li {
	position: relative;
	padding-left: 1.9rem;
	margin-bottom: .8rem;
	color: var(--gl-muted);
}
.gl-check-list li strong { color: var(--gl-text); }
.gl-check-list li::before {
	content: "";
	position: absolute;
	left: 0; top: .3em;
	width: 1.1rem; height: 1.1rem;
	border-radius: 6px;
	background: rgba(124, 58, 237, .2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2322D3EE' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5'/%3E%3C/svg%3E") center/80% no-repeat;
	border: 1px solid rgba(155, 107, 255, .5);
}

/* ---------- Contact ---------- */

.gl-contact { gap: 1.5rem; }
.gl-info { gap: 1rem; margin-bottom: 1rem; padding: 1.1rem 1.25rem; }
.gl-info figure { margin: 0; flex: 0 0 auto; }
.gl-info h3 { font-size: var(--wp--preset--font-size--small); margin: 0 0 .15rem; }
.gl-info p { margin: 0; font-size: var(--wp--preset--font-size--small); }
.gl-info .wp-block-social-links { margin: .35rem 0 0; }

.gl-social.wp-block-social-links { gap: .5rem; }
.gl-social .wp-social-link {
	background: var(--gl-surface-2) !important;
	color: var(--gl-muted) !important;
	border: 1px solid var(--gl-border);
	border-radius: 8px !important;
	transition: color .2s, border-color .2s;
}
.gl-social .wp-social-link:hover { color: var(--gl-text) !important; border-color: var(--gl-primary-bright); transform: none; }
.gl-social .wp-social-link a { padding: .45rem; }

/* ---------- Blog listings ---------- */

.gl-post-list { display: grid; gap: .9rem; }
.gl-post-row {
	background: var(--gl-card-bg);
	border: 1px solid var(--gl-border);
	border-radius: var(--gl-radius);
	padding: .9rem;
	gap: 1.25rem;
	transition: border-color .25s var(--gl-ease), box-shadow .25s var(--gl-ease);
}
.gl-post-row:hover { border-color: rgba(155, 107, 255, .6); box-shadow: var(--gl-glow); }
.gl-post-row__thumb { flex: 0 0 168px; margin: 0; border-radius: 10px; overflow: hidden; }
.gl-post-row__thumb img, .gl-post-row__thumb .gl-art { border-radius: 10px; }
.gl-post-row__body { flex: 1 1 auto; gap: .3rem; min-width: 0; }
.gl-post-row__title { font-size: var(--wp--preset--font-size--medium); margin: 0; }
.gl-post-row__excerpt { margin: 0; }
.gl-post-row__excerpt p { margin: 0; }
.gl-post-row__excerpt .wp-block-post-excerpt__more-text { display: none; }
.gl-post-row__meta { flex: 0 0 auto; gap: .4rem; align-items: flex-end; }
.gl-post-row__meta .wp-block-post-date { white-space: nowrap; }
@media (max-width: 700px) {
	.gl-post-row { flex-wrap: wrap !important; }
	.gl-post-row__thumb { flex-basis: 100%; }
	.gl-post-row__thumb img { width: 100% !important; height: auto !important; aspect-ratio: 16/9; }
	.gl-post-row__meta { flex-direction: row !important; align-items: center; }
}

.gl-chip-terms { font-size: 0; }
.gl-chip-terms a, .gl-chip-terms .wp-block-post-terms__separator + a {
	display: inline-block;
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .02em;
	color: var(--gl-primary-soft);
	background: rgba(124, 58, 237, .16);
	border: 1px solid rgba(155, 107, 255, .35);
	padding: .15rem .55rem;
	border-radius: 6px;
	margin: 0 .3rem .3rem 0;
}
.gl-chip-terms .wp-block-post-terms__separator { display: none; }

.gl-pagination { margin-top: 2rem; gap: .4rem; font-size: var(--wp--preset--font-size--small); }
.gl-pagination a, .gl-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 2.25rem;
	height: 2.25rem;
	padding: 0 .65rem;
	border-radius: 8px;
	border: 1px solid var(--gl-border);
	background: var(--gl-surface);
	color: var(--gl-muted);
}
.gl-pagination .page-numbers.current { background: var(--gl-primary); border-color: var(--gl-primary); color: #fff; }
.gl-pagination a:hover { border-color: var(--gl-primary-bright); color: var(--gl-text); }
.gl-empty { color: var(--gl-muted); text-align: center; padding: 2rem; border: 1px dashed var(--gl-border); border-radius: var(--gl-radius); }

/* ---------- Articles ---------- */

.gl-article { padding-top: var(--wp--preset--spacing--50); }
.gl-article__head .wp-block-post-title { font-size: var(--wp--preset--font-size--xx-large); margin: .5rem 0; }
.gl-article__meta { color: var(--gl-muted); font-size: var(--wp--preset--font-size--x-small); gap: .75rem; }
.gl-article__meta > * + *::before { content: "·"; margin-right: .75rem; }
.gl-article__image { border-radius: var(--gl-radius); overflow: hidden; border: 1px solid var(--gl-border); }
.gl-back { font-size: var(--wp--preset--font-size--small); margin-bottom: 0; }
.gl-tags { font-size: var(--wp--preset--font-size--x-small); color: var(--gl-muted); margin-top: 2rem; }

.gl-prose { color: #D3D7EA; }
.gl-prose h2, .gl-prose h3 { margin-top: 2.2rem; }
.gl-prose a { text-decoration: underline; text-decoration-color: rgba(155, 107, 255, .5); text-underline-offset: 3px; }
.gl-prose li { margin-bottom: .35rem; }
.gl-prose li::marker { color: var(--gl-primary-bright); }
.gl-prose table { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--small); }
.gl-prose th, .gl-prose td { border: 1px solid var(--gl-border); padding: .55rem .75rem; text-align: left; }
.gl-prose th { background: var(--gl-surface-2); }
.gl-prose code:not(pre code) {
	font-family: var(--wp--preset--font-family--mono);
	font-size: .88em;
	background: var(--gl-surface-2);
	border: 1px solid var(--gl-border);
	border-radius: 5px;
	padding: .1em .35em;
	color: var(--gl-primary-soft);
}

.gl-comments .wp-block-post-comments-form input:not([type=submit]),
.gl-comments .wp-block-post-comments-form textarea {
	background: var(--gl-surface);
	border: 1px solid var(--gl-border);
	color: var(--gl-text);
	border-radius: 8px;
}

/* ---------- Footer ---------- */

.gl-site-footer { margin-top: 0; }
.gl-footer {
	border-top: 1px solid var(--gl-border);
	background:
		radial-gradient(700px 260px at 50% 0%, rgba(124, 58, 237, .12), transparent 70%),
		linear-gradient(180deg, #070A16 0%, #04050C 100%);
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: 1.5rem;
	font-size: var(--wp--preset--font-size--small);
}
.gl-footer__grid { gap: 2.5rem; }
.gl-footer .gl-brand { margin-bottom: 1rem; }
.gl-footer__heading {
	font-size: var(--wp--preset--font-size--small);
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--gl-text);
	margin: 0 0 1rem;
}
.gl-footer__links, .gl-footer .wp-block-categories { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.gl-footer__links a, .gl-footer .wp-block-categories a { color: var(--gl-muted); transition: color .2s, padding .2s; }
.gl-footer__links a:hover, .gl-footer .wp-block-categories a:hover { color: var(--gl-text); padding-left: 3px; }
.gl-footer__bottom {
	margin-top: var(--wp--preset--spacing--50);
	padding-top: 1.25rem;
	border-top: 1px solid var(--gl-border);
	color: var(--gl-muted);
	font-size: var(--wp--preset--font-size--x-small);
	gap: .75rem;
}
.gl-footer__bottom p { margin: 0; }
.gl-footer__legal { display: flex; gap: 1.25rem; flex-wrap: wrap; }
.gl-footer__legal a { color: var(--gl-muted); }
.gl-footer__legal a:hover { color: var(--gl-text); }

/* ---------- Scroll reveal (progressive; JS adds .gl-reveal-ready) ---------- */

.gl-reveal-ready .gl-reveal { opacity: 0; transform: translateY(14px); transition: opacity .6s var(--gl-ease), transform .6s var(--gl-ease); }
.gl-reveal-ready .gl-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.gl-reveal-ready .gl-reveal { opacity: 1; transform: none; transition: none; }
	.gl-hero__art img, .gl-hero::after { animation: none; }
	.is-style-gl-card:hover, .gl-path:hover, .gl-topic:hover, .wp-block-button__link:hover { transform: none; }
}
