/*
Theme Name: ANEURGASM
Theme URI: https://aneurgasm.com/
Author: Colby Taylor
Description: Psychedelic distortion. Lightweight block theme for ANEURGASM — music and in-browser instruments side by side, new-music email signup and form-only contact on every page.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aneurgasm
*/

:root {
	--an-ease: cubic-bezier(.2, .8, .2, 1);
	--an-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
	color-scheme: dark;
}

html { scroll-behavior: smooth; scroll-padding-top: 80px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; }
body::after { /* film grain over everything */
	content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 100;
	background-image: var(--an-grain); opacity: .07; mix-blend-mode: overlay;
}
::selection { background: var(--wp--preset--color--acid); color: var(--wp--preset--color--void); }
:focus-visible { outline: 2px solid var(--wp--preset--color--acid); outline-offset: 3px; }
a { text-underline-offset: .2em; text-decoration-thickness: 1px; }
.wp-site-blocks { padding-top: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
h1, h2, h3 { text-wrap: balance; }

.an-kicker { font-size: .78rem; letter-spacing: .14em; color: var(--wp--preset--color--acid); margin: 0; text-transform: lowercase; }
.an-muted { color: var(--wp--preset--color--ash); }

.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--wp--preset--color--bone); border: 1px solid var(--wp--preset--color--line); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: var(--wp--preset--color--acid); color: var(--wp--preset--color--acid); background: transparent; }
.wp-block-button__link { transition: background .15s, color .15s, border-color .15s, transform .15s; }
.wp-block-button__link:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--wp--preset--color--bruise); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { box-shadow: 4px 4px 0 var(--wp--preset--color--flesh); }

/* ---------- Header ---------- */
.an-header-wrap {
	position: sticky; top: 0; z-index: 60;
	background: color-mix(in srgb, var(--wp--preset--color--void) 78%, transparent);
	backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.admin-bar .an-header-wrap { top: var(--wp-admin--admin-bar--height, 32px); }
.an-header__bar { padding-block: .9rem; }
.an-logo { margin: 0; font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 1.05rem; letter-spacing: .08em; text-transform: uppercase; }
.an-logo a { text-decoration: none; color: var(--wp--preset--color--bone); }
.an-logo a:hover { color: var(--wp--preset--color--acid); animation: an-jitter .25s steps(2) infinite; }
.an-header .wp-block-navigation a { text-decoration: none; }
.an-header .wp-block-navigation a:hover { color: var(--wp--preset--color--acid); }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--void) !important; color: var(--wp--preset--color--bone) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-family: var(--wp--preset--font-family--display); font-size: 2rem; text-transform: lowercase; letter-spacing: 0; }

/* ---------- Hero ---------- */
.an-hero { position: relative; overflow: hidden; min-height: min(88vh, 860px); display: flex; flex-direction: column; justify-content: flex-end; padding-block: var(--wp--preset--spacing--60); isolation: isolate; }
.an-hero > .an-hero__inner { position: relative; z-index: 2; width: 100%; }
.an-hero > .an-scope { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none !important; margin: 0 !important; z-index: 0; display: block; }
.an-hero::after { /* fade the scope into the page */
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: radial-gradient(120% 80% at 70% 30%, transparent 30%, var(--wp--preset--color--void) 85%), linear-gradient(transparent 55%, var(--wp--preset--color--void));
}
.an-hero__title {
	margin: .5rem 0 1rem; line-height: .9; letter-spacing: -.04em;
	text-shadow: 3px 0 0 color-mix(in srgb, var(--wp--preset--color--flesh) 70%, transparent), -3px 0 0 color-mix(in srgb, var(--wp--preset--color--acid) 55%, transparent);
	animation: an-split 6s infinite;
}
.an-hero__lead { max-width: 46ch; font-size: var(--wp--preset--font-size--large); line-height: 1.5; color: var(--wp--preset--color--bone); }
.an-hero .wp-block-buttons { margin-top: 1.75rem; }
@keyframes an-split {
	0%, 86%, 100% { text-shadow: 3px 0 0 color-mix(in srgb, var(--wp--preset--color--flesh) 70%, transparent), -3px 0 0 color-mix(in srgb, var(--wp--preset--color--acid) 55%, transparent); transform: none; }
	88% { text-shadow: 12px 0 0 var(--wp--preset--color--flesh), -10px 0 0 var(--wp--preset--color--acid); transform: skewX(-6deg); }
	90% { text-shadow: -8px 2px 0 var(--wp--preset--color--bruise), 6px -2px 0 var(--wp--preset--color--acid); transform: skewX(4deg) translateX(4px); }
	92% { text-shadow: 3px 0 0 var(--wp--preset--color--flesh), -3px 0 0 var(--wp--preset--color--acid); transform: none; }
}
@keyframes an-jitter { 50% { transform: translate(1px, -1px); } }
.an-hero.is-glitch .an-hero__title { transform: translateX(-6px) skewX(-8deg); text-shadow: 14px 0 0 var(--wp--preset--color--flesh), -12px 0 0 var(--wp--preset--color--acid), 0 3px 0 var(--wp--preset--color--bruise); clip-path: polygon(0 0, 100% 0, 100% 38%, 0 38%, 0 46%, 100% 46%, 100% 100%, 0 100%); }
.an-hero.is-glitch .an-kicker, .an-hero.is-glitch .an-hero__lead { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) { .an-hero__title, .an-logo a:hover { animation: none; } }

/* ---------- Music + Lab split ---------- */
.an-split { padding-block: var(--wp--preset--spacing--60); border-top: 1px solid var(--wp--preset--color--line); }
.an-split__cols { gap: var(--wp--preset--spacing--50) !important; }
.an-col__head { border-bottom: 1px solid var(--wp--preset--color--line); padding-bottom: 1rem; margin-bottom: 1.5rem; }
.an-col__head h2 { margin: 0; }
.an-col__more { margin: 0; font-size: .8rem; color: var(--wp--preset--color--ash); }
.an-col__more a { color: var(--wp--preset--color--ash); }
.an-col__more a:hover { color: var(--wp--preset--color--acid); }

.an-tracks__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; }
.an-tracks__list > li {
	display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 1.25rem; align-items: start;
	padding-block: 1.1rem; border-bottom: 1px solid var(--wp--preset--color--line); margin: 0;
}
.an-tracks__list > li > * { margin: 0 !important; }
.an-tracks__grid { list-style: none; padding: 0; display: grid; gap: 2rem 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.an-tracks__grid > li > * + * { margin-top: .9rem; }
.an-track__art { overflow: hidden; background: var(--wp--preset--color--smoke); aspect-ratio: 1; }
.an-track__art img { width: 100%; height: 100%; object-fit: cover; transition: filter .5s var(--an-ease), transform .5s var(--an-ease); filter: saturate(.85) contrast(1.05); }
li:hover .an-track__art img { filter: saturate(1.6) hue-rotate(70deg) contrast(1.15); transform: scale(1.06); }
.an-track__body .wp-block-post-title { margin: .2rem 0 .4rem; font-size: 1.05rem; line-height: 1.25; text-transform: none; letter-spacing: -.01em; }
.an-track__body .wp-block-post-title a { text-decoration: none; }
.an-track__body .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; } /* row is the link */
.an-tracks__list > li { position: relative; }
.an-track__body .wp-block-post-excerpt { font-size: .82rem; color: var(--wp--preset--color--ash); }
.an-track__body .wp-block-post-excerpt p { margin: 0; }
.an-track__body .wp-block-post-excerpt__more-link { display: none; }
li:hover .an-track__body .wp-block-post-title a { color: var(--wp--preset--color--acid); }

.an-tool {
	position: relative; padding: 1.5rem; margin-bottom: 1.25rem !important; background: var(--wp--preset--color--smoke);
	border: 1px solid var(--wp--preset--color--line); transition: border-color .2s, transform .2s var(--an-ease), box-shadow .2s;
}
.an-tool:hover { border-color: var(--wp--preset--color--acid); transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--wp--preset--color--bruise); }
.an-tool h3 { margin: .4rem 0 .6rem; text-transform: none; }
.an-tool h3 a { text-decoration: none; }
.an-tool h3 a::after { content: ""; position: absolute; inset: 0; }
.an-tool p { color: var(--wp--preset--color--ash); margin: 0 0 .5rem; font-size: .9rem; }
.an-tool__tag { font-size: .72rem !important; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--acid) !important; }
.an-tool__tag::before { content: "● "; animation: an-blink 1.6s steps(2) infinite; }
.an-tool__go { margin: 1rem 0 0 !important; font-size: .8rem !important; color: var(--wp--preset--color--bone) !important; text-transform: uppercase; letter-spacing: .12em; }
.an-tool__go a { text-decoration: none; }
.an-tool--soon { background: transparent; border-style: dashed; }
.an-tool--soon:hover { transform: none; box-shadow: none; border-color: var(--wp--preset--color--line); }
.an-tool--soon .an-tool__tag { color: var(--wp--preset--color--bruise) !important; }
@keyframes an-blink { 50% { opacity: .2; } }
@media (prefers-reduced-motion: reduce) { .an-tool__tag::before { animation: none; } }

/* ---------- Download strip ---------- */
.an-strip { padding-block: var(--wp--preset--spacing--50); background: var(--wp--preset--color--acid); color: var(--wp--preset--color--void); }
.an-strip__row { gap: 1rem 2rem; }
.an-strip__title { margin: 0; font-size: var(--wp--preset--font-size--x-large); }
.an-strip .an-muted { color: var(--wp--preset--color--void); opacity: .7; margin: 0; flex: 1 1 auto; }
.an-strip .wp-block-button__link { background: var(--wp--preset--color--void); color: var(--wp--preset--color--acid); }
.an-strip .wp-block-button__link:hover { box-shadow: 4px 4px 0 var(--wp--preset--color--flesh); }

/* ---------- Signup band (every page) ---------- */
.an-signup-band { padding-block: var(--wp--preset--spacing--60); position: relative; overflow: hidden; border-top: 1px solid var(--wp--preset--color--line); }
.an-signup-band::before {
	content: ""; position: absolute; inset: -40%; z-index: -1; pointer-events: none; opacity: .35;
	background: conic-gradient(from 0deg, var(--wp--preset--color--bruise), transparent 30%, var(--wp--preset--color--flesh) 55%, transparent 70%, var(--wp--preset--color--acid) 90%, var(--wp--preset--color--bruise));
	filter: blur(90px); animation: an-spin 28s linear infinite;
}
.an-signup-band { isolation: isolate; }
@keyframes an-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .an-signup-band::before { animation: none; } }
.anf-signup { display: grid; gap: .75rem 2rem; grid-template-columns: minmax(0, 1fr); align-items: end; }
@media (min-width: 860px) { .anf-signup { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); } .anf-signup__status { grid-column: 2; } }
.anf-signup__heading { font-family: var(--wp--preset--font-family--display); font-weight: 700; text-transform: lowercase; letter-spacing: -.02em; line-height: 1; font-size: clamp(2rem, 5vw, 3.5rem); margin: 0; }
.anf-signup__text { margin: 0; color: var(--wp--preset--color--ash); grid-column: 1; }
@media (min-width: 860px) { .anf-signup__heading { grid-row: 1; } .anf-signup__text { grid-row: 2; } .anf-signup__form { grid-column: 2; grid-row: 1 / span 2; align-self: center; } }
.anf-signup__form { display: flex; border: 1px solid var(--wp--preset--color--bone); background: color-mix(in srgb, var(--wp--preset--color--void) 70%, transparent); }
.anf-signup__form:focus-within { border-color: var(--wp--preset--color--acid); box-shadow: 6px 6px 0 var(--wp--preset--color--bruise); }
.anf-signup__form input[type=email] { flex: 1 1 auto; min-width: 0; font: inherit; font-size: 1rem; background: transparent; color: var(--wp--preset--color--bone); border: 0; padding: 1.05rem 1.1rem; outline: none; }
.anf-signup__form input::placeholder { color: var(--wp--preset--color--ash); }
.anf-signup__btn { font: inherit; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; border: 0; cursor: pointer; padding: 0 1.4rem; background: var(--wp--preset--color--acid); color: var(--wp--preset--color--void); white-space: nowrap; }
.anf-signup__btn:hover { background: var(--wp--preset--color--flesh); }
.anf-signup__btn:disabled { opacity: .6; cursor: progress; }
.anf-signup__status { margin: 0; min-height: 1.4em; font-size: .85rem; color: var(--wp--preset--color--acid); }
.anf-signup__status[data-state="err"] { color: var(--wp--preset--color--flesh); }
.anf-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Contact (every page) ---------- */
.an-cta { padding-block: var(--wp--preset--spacing--60); background: var(--wp--preset--color--smoke); border-top: 1px solid var(--wp--preset--color--line); }
.an-cta h2 { margin: .5rem 0 1rem; font-size: clamp(2.2rem, 6vw, 4rem); }
.anf-form { display: grid; gap: 1rem; }
.anf-row { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.anf-field { margin: 0; display: grid; gap: .35rem; border: 0; padding: 0; min-width: 0; }
.anf-field label, .anf-field legend { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--ash); padding: 0; margin-bottom: .35rem; }
.anf-field input, .anf-field textarea {
	font: inherit; color: var(--wp--preset--color--bone); background: var(--wp--preset--color--void); width: 100%; box-sizing: border-box;
	border: 1px solid var(--wp--preset--color--line); border-radius: 0; padding: .85rem 1rem; transition: border-color .15s, box-shadow .15s;
}
.anf-field textarea { resize: vertical; min-height: 8.5rem; }
.anf-field input:focus, .anf-field textarea:focus { outline: none; border-color: var(--wp--preset--color--acid); box-shadow: 4px 4px 0 var(--wp--preset--color--bruise); }
.was-validated .anf-field :invalid { border-color: var(--wp--preset--color--flesh); }
.anf-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.anf-chip { position: relative; cursor: pointer; }
.anf-chip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.anf-chip span { display: inline-block; padding: .5rem .85rem; border: 1px solid var(--wp--preset--color--line); font-size: .82rem; transition: all .15s; }
.anf-chip:hover span { border-color: var(--wp--preset--color--ash); }
.anf-chip input:checked + span { background: var(--wp--preset--color--acid); color: var(--wp--preset--color--void); border-color: var(--wp--preset--color--acid); }
.anf-chip input:focus-visible + span { outline: 2px solid var(--wp--preset--color--acid); outline-offset: 2px; }
.anf-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.anf-submit { font: inherit; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; border: 0; padding: .95rem 1.5rem; background: var(--wp--preset--color--acid); color: var(--wp--preset--color--void); transition: background .15s, transform .15s, box-shadow .15s; }
.anf-submit:hover { background: var(--wp--preset--color--flesh); transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--wp--preset--color--bruise); }
.anf-submit:disabled { opacity: .6; cursor: progress; }
.anf-status { margin: 0; font-size: .85rem; color: var(--wp--preset--color--ash); }
.anf-status[data-state="ok"] { color: var(--wp--preset--color--acid); }
.anf-status[data-state="err"] { color: var(--wp--preset--color--flesh); }

.anf-hint { text-transform: none; letter-spacing: 0; color: var(--wp--preset--color--ash); opacity: .8; }
.anf-chip input:checked + span::before { content: "✓ "; }

/* ---------- Footer ---------- */
.an-footer { padding-block: 1.75rem; font-size: .78rem; color: var(--wp--preset--color--ash); border-top: 1px solid var(--wp--preset--color--line); }
.an-footer p { margin: 0; }
.an-footer a { color: var(--wp--preset--color--ash); }
.an-footer a:hover { color: var(--wp--preset--color--acid); }

/* ---------- Inner pages ---------- */
.an-page { padding-block: var(--wp--preset--spacing--60); }
.an-page__title { margin-bottom: var(--wp--preset--spacing--40); }
.an-canvas { padding-inline: 0; }
.an-single__top { gap: var(--wp--preset--spacing--50) !important; }
.an-single__art { position: sticky; top: 90px; }
.an-single__art img { width: 100%; height: auto; display: block; }
.an-single__title { font-size: clamp(2rem, 5vw, 3.6rem); text-transform: none; margin: .5rem 0 1rem; }
.an-tags a { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--acid); text-decoration: none; }
.an-single .wp-block-post-content iframe { max-width: 100%; border: 0; }
.an-postnav { border-top: 1px solid var(--wp--preset--color--line); margin-top: var(--wp--preset--spacing--50) !important; padding-top: 1.25rem; font-size: .85rem; }
.wp-block-query-pagination { margin-top: 2rem; font-size: .85rem; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
