/*
Theme Name: Amiri
Theme URI: https://amirhossein-alimardani.local
Author: Amiri Theme
Description: Barebone classic theme for a video editor portfolio.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: amiri
*/

/* Structural only — design CSS lives elsewhere. */
:root {
	--max-width: 1200px;
	--spacing: 4px;
	--tracking: -0.02em;
	--text: #092328;
	--text-muted: #56595b;
	--bg: #fff;
	--accent: #2A835F;

	--font-300: 'wght' 300;
	--font-350: 'wght' 350;
	--font-400: 'wght' 400;
	--font-500: 'wght' 500;
	--font-600: 'wght' 600;
	--font-700: 'wght' 700;
	--font-800: 'wght' 800;
	--font-900: 'wght' 900;
}

@media (prefers-color-scheme: dark) {
	:root {
		--text: #e7eef0;
		--text-muted: #a6a9ab;
		--bg: #021013;
		--accent: #2A835F;
	}
}

body {
	min-height: 100vh;
	color: var(--text);
	background-color: var(--bg);
	font-size: 18px;
}

/* ScrollSmoother required shell — header stays outside (fixed) so it isn’t transformed. */
#smooth-wrapper {
	overflow: hidden;
	position: fixed;
	height: 100%;
	width: 100%;
	top: 0;
	left: 0;
}

#smooth-content {
	overflow: visible;
	width: 100%;
	/* Match fixed header height + top offset */
	padding-block-start: calc(4rem + var(--spacing) * 2);
}

@media (prefers-reduced-motion: reduce) {
	#smooth-wrapper {
		position: static;
		overflow: visible;
		height: auto;
	}
}

::selection {
	background-color: var(--accent);
	color: var(--bg);
}

a, a:visited {
	color: var(--text);
	text-decoration: none;
}

img,
video {
	max-width: 100%;
	height: auto;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.container-lines {
	position: fixed;
	inset: 0;
	z-index: -1;
	max-width: var(--max-width);
	width: 100%;
	margin: 0 auto;
	height: 100vh;

	.line {
		position: absolute;
		background-color: var(--text);
		width: 1px;
		height: 100%;
		opacity: 0.1;
		transition: opacity 0.2s ease-in-out;

		&.left {
			left: calc(var(--spacing) * -4);
		}

		&.middle {
			left: 50%;
			transform: translateX(-50%);
			opacity: 0.05;
		}

		&.right {
			right: calc(var(--spacing) * -4);
		}
	}
}

/* Header Section — fixed (outside ScrollSmoother) so sticky/transform issues are avoided. */
.site-header {
	max-width: var(--max-width);
	width: 100%;
	margin: 0 auto;
	min-height: 4rem;
	height: 4rem;
	display: flex;
	align-items: center;
	position: fixed;
	top: calc(var(--spacing) * 2);
	left: 0;
	right: 0;
	z-index: 100;
}

.site-header__inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	height: 100%;
	background-color: transparent;
	border-radius: 10rem;
	transition: background-color 0.2s ease-in-out, padding-inline 0.3s ease-in-out;
}

.site-brand {

	a {
		display: flex;
		align-items: center;
		gap: calc(var(--spacing) * 2);

		.site-brand__logo {
			font-size: 1.2rem;
			font-variation-settings: var(--font-700);
			background-color: var(--text);
			color: var(--bg);
			display: flex;
			align-items: center;
			justify-content: center;
			height: 30px;
			width: 48px;
			border-radius: 24px;
			letter-spacing: calc(var(--tracking) * -4);
			text-align: center;
			line-height: 1;
			user-select: none;
		}

		.site-brand__name {
			opacity: 0;
			visibility: hidden;
			font-variation-settings: var(--font-500);
			transition: all 0.2s ease-in-out 0.3s;
		}
	}
}

body:not(.home) {
	.site-header {
		max-width: calc(var(--max-width) - calc(var(--spacing) * 8));
	}

	.site-brand {
		translate: calc(var(--spacing) * -4);
		transition: translate 0.2s ease-in-out;
	}
}

.site-header.is-past-hero {

	.site-header__inner {
		padding-inline: calc(var(--spacing) * 4);
		background-color: lch(from var(--bg) l c h / 95%);
		backdrop-filter: blur(5px) saturate(180%);
	}

	.site-brand {
		translate: 0;

		a {
			.site-brand__name {
				opacity: 1;
				visibility: visible;
			}
		}
	}
}

.site-nav {
	position: relative;
}

.site-nav__list {
	display: flex;
	flex-direction: column;
	gap: 20px;
	list-style: none;

	.site-nav__list-item-trigger {
		position: relative;
		z-index: 2;

		&:hover {
			
			a {
				color: var(--bg);
			}

			&+.site-nav__list-submenu {
				display: flex;
			}

		}
	}

	.site-nav__list-submenu {
		display: none;
		flex-direction: column;
		position: absolute;
		top: calc(var(--spacing) * -4);
		left: calc(var(--spacing) * -5);
		background-color: lch(from var(--accent) l c h / 90%);
		border: 1px solid lch(from var(--accent) l c h / 100%);
		color: var(--bg);
		padding: calc(var(--spacing) * 12) calc(var(--spacing) * 5) calc(var(--spacing) * 3);
		z-index: 1;
		border-radius: calc(var(--spacing) * 5);
		min-width: 250px;
		transition-behavior: allow-discrete;
		transition: all 0.6s linear(0, 0.013 1%, 0.051 2.2%, 0.404 9.8%, 0.51 12.6%, 0.602 15.5%, 0.683 18.7%, 0.754 22.2%, 0.813 26%, 0.861 30.2%, 0.9 34.8%, 0.931 40%, 0.972 52.7%, 0.992 70.2%, 1);
		box-shadow: 0 15px 20px -5px lch(from var(--accent) l c h / 50%);
		backdrop-filter: blur(10px) saturate(180%);

		li {
			transition: all 0.6s linear(0, 0.013 1%, 0.051 2.2%, 0.404 9.8%, 0.51 12.6%, 0.602 15.5%, 0.683 18.7%, 0.754 22.2%, 0.813 26%, 0.861 30.2%, 0.9 34.8%, 0.931 40%, 0.972 52.7%, 0.992 70.2%, 1);
			opacity: 1;
		}

		&:has(a:hover) {

			& > li:not(:has(a:hover)) {
				opacity: 0.5;
			}
		}

		a {
			display: flex;
			align-items: center;
			gap: calc(var(--spacing) * 2);
			padding-block: calc(var(--spacing) * 2);
			color: var(--bg);
			transition: all 0.6s linear(0, 0.013 1%, 0.051 2.2%, 0.404 9.8%, 0.51 12.6%, 0.602 15.5%, 0.683 18.7%, 0.754 22.2%, 0.813 26%, 0.861 30.2%, 0.9 34.8%, 0.931 40%, 0.972 52.7%, 0.992 70.2%, 1);

			svg {
				width: 20px;
				height: 20px;
				stroke-width: 1.5;
			}

			&:hover {
				filter: brightness(1.5);
			}
		}
	}

	@starting-style {
		.site-nav__list-item-trigger:hover+.site-nav__list-submenu {
			opacity: 0;
			transform: translateY(-8px) scale(0.95);
		}
	}

	&:has(*:hover) {
		.site-nav__list-item-trigger a {
			color: var(--bg);
		}
		.site-nav__list-submenu {
			display: flex;
		}
	}
}










/* Main Section */
.site-main {
	max-width: var(--max-width);
	margin: 0 auto 5rem;
}


.hero {
	min-height: clamp(400px, 100vh, 850px);
	display: flex;
	align-items: center;
	position: relative;
	/* overflow: hidden; */

	.hero__title {
		font-size: 5.5rem;
		line-height: 1;
		letter-spacing: calc(var(--tracking) * 2);
	}

	.hero__tagline {
		font-size: 2rem;
		letter-spacing: calc(var(--tracking) * 2);
		font-variation-settings: var(--font-400);
		color: var(--text-muted);
		margin-top: calc(var(--spacing) * 3);
	}

	.hero__cta {
		display: flex;
		gap: calc(var(--spacing) * 2);
		margin-top: calc(var(--spacing) * 12);

		a {
			display: flex;
			align-items: center;
			text-align: center;
			padding: calc(var(--spacing) * 3) calc(var(--spacing) * 5);
			border-radius: 10rem;
			font-size: 1.2rem;
			transition: background-color 0.2s linear;
			gap: calc(var(--spacing) * 2);


			&.hero__cta-works {
				background-color: var(--accent);
				color: var(--bg);

				svg {
					width: 20px;
					height: 20px;
				}

				&:hover {
					background-color: var(--text);
				}
			}

			&.hero__cta-contact {
				color: var(--text);

				&:hover {
					color: var(--accent);
				}
			}
		}
	}

	.hero__svg {
		position: absolute;
		top: -25%;
		right: -5%;
		opacity: 1;

		svg {
			scale: 5;
			opacity: 1;

			> * {
				stroke-width: 0.5;
				stroke: lch(from var(--text) l c h / 10%);
				transition: fill 0.2s ease-in-out;
			}

			rect {
				fill: transparent;

				&:hover {
					fill: lch(from var(--accent) l c h / 5%);
					stroke: lch(from var(--accent) l c h / 15%);
				}
			}

			path {
				fill: transparent;

				&:hover {
					fill: lch(from var(--accent) l c h / 5%);
					stroke: lch(from var(--accent) l c h / 15%)
				}
			}
		}
	}
}





.works-preview {
	display: flex;
	flex-direction: column;
	gap: calc(var(--spacing) * 6);

	.works-preview__header {

		h2 {
			font-size: 2rem;
			letter-spacing: calc(var(--tracking) * 1);
			font-variation-settings: var(--font-400);
			display: flex;
			align-items: center;
			gap: calc(var(--spacing) * 2);
		}
	}

	.works-grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: calc(var(--spacing) * 6);

		.works-grid__item {
			a {
				display: flex;
				flex-direction: column;
				gap: calc(var(--spacing) * 2);
				outline: 2px solid lch(from var(--accent) l c h / 0%);
				border-radius: calc(var(--spacing) * 4);
				transition: outline 0.6s linear(0, 0.013 1%, 0.051 2.2%, 0.404 9.8%, 0.51 12.6%, 0.602 15.5%, 0.683 18.7%, 0.754 22.2%, 0.813 26%, 0.861 30.2%, 0.9 34.8%, 0.931 40%, 0.972 52.7%, 0.992 70.2%, 1), background-color 0.6s linear(0, 0.013 1%, 0.051 2.2%, 0.404 9.8%, 0.51 12.6%, 0.602 15.5%, 0.683 18.7%, 0.754 22.2%, 0.813 26%, 0.861 30.2%, 0.9 34.8%, 0.931 40%, 0.972 52.7%, 0.992 70.2%, 1);

					&:hover {
						outline: 1px solid lch(from var(--accent) l c h / 35%);
						background-color: lch(from var(--accent) l c h / 5%);

						.works-card__media {
							transform: scale(0.88) translateY(10px);
						}

						.works-card__title {
							transform: translateX(25px) translateY(-10px);
						}
					}
			}

			.works-card__media {
				border-radius: calc(var(--spacing) * 2);
				overflow: hidden;
				transition: transform 0.6s linear(0, 0.013 1%, 0.051 2.2%, 0.404 9.8%, 0.51 12.6%, 0.602 15.5%, 0.683 18.7%, 0.754 22.2%, 0.813 26%, 0.861 30.2%, 0.9 34.8%, 0.931 40%, 0.972 52.7%, 0.992 70.2%, 1);
			}

			.works-card__title {
				font-size: 1.2rem;
				letter-spacing: calc(var(--tracking) * 1);
				font-variation-settings: var(--font-400);
				transition: transform 0.6s linear(0, 0.013 1%, 0.051 2.2%, 0.404 9.8%, 0.51 12.6%, 0.602 15.5%, 0.683 18.7%, 0.754 22.2%, 0.813 26%, 0.861 30.2%, 0.9 34.8%, 0.931 40%, 0.972 52.7%, 0.992 70.2%, 1);
			}
		}
	}
}





.about-preview {
	display: flex;
	align-items: center;
	min-height: clamp(400px, 100vh, 800px);

	.about-preview__inner {
		display: flex;
		flex-direction: column;
		gap: calc(var(--spacing) * 6);
	}

	.about-preview__header {

		h2 {
			font-size: 2rem;
			letter-spacing: calc(var(--tracking) * 1);
			font-variation-settings: var(--font-400);
			display: flex;
			align-items: center;
			gap: calc(var(--spacing) * 2);
		}
	}

	.about-preview__content {

		p {
			font-size: 1.6rem;
			letter-spacing: calc(var(--tracking) * 1);
			font-variation-settings: var(--font-350);
		}
	}
}











/* Site Pages */
body.single {
	.site-main {
		margin-block-start: calc(var(--spacing) * 12);
	}

	.project__header {
		min-height: min(30vh, 300px);
		display: flex;
		align-items: center;

		h1 {
			font-size: 4rem;
			letter-spacing: calc(var(--tracking) * 2);
			font-variation-settings: var(--font-400);
		}
	}

	.project__content {
		margin-block: calc(var(--spacing) * 12);
		font-size: 1.2rem;
		max-width: 85%;
		margin-inline: auto;

		> * {
			margin-block-end: calc(var(--spacing) * 6);
		}

		a {
			color: var(--accent);
			text-decoration: underline;
			text-underline-offset: 4px;
			text-decoration-thickness: 1px;
		}

		ul, ol {
			margin-inline-start: calc(var(--spacing) * 6);
		}

		blockquote {
			font-size: 1.4rem;
			font-variation-settings: var(--font-400);
			color: var(--text-muted);
			border-left: 4px solid var(--accent);
			padding-left: calc(var(--spacing) * 4);
			margin-left: calc(var(--spacing) * 4);
		}
	}
}










/* Video Player */
.project__video {

	.player {
		position: relative;
		overflow: hidden;
		border-radius: calc(var(--spacing) * 2);
		background-color: var(--text);

		&.player--idle {
			cursor: none;

			.player__bar,
			.player__big {
				opacity: 0;
			}
		}

		&:fullscreen {
			border-radius: 0;

			.player__video {
				width: 100%;
				height: 100%;
				object-fit: contain;
			}
		}

		.player__video {
			display: block;
			width: 100%;
			height: auto;
			cursor: pointer;
		}

		.player__big {
			position: absolute;
			inset: 0;
			margin: auto;
			width: 4.5rem;
			height: 4.5rem;
			display: flex;
			align-items: center;
			justify-content: center;
			border: 0;
			border-radius: 50%;
			background-color: lch(from var(--accent) l c h / 90%);
			color: var(--bg);
			cursor: pointer;
			transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out;

			svg {
				width: 1.75rem;
				height: 1.75rem;
				fill: currentColor;
			}

			&:hover {
				transform: scale(1.08);
			}
		}

		&.is-playing .player__big {
			opacity: 0;
			pointer-events: none;
		}

		.player__bar {
			position: absolute;
			inset-inline: calc(var(--spacing) * 2);
			bottom: calc(var(--spacing) * 2);
			display: flex;
			align-items: center;
			gap: calc(var(--spacing) * 3);
			padding: calc(var(--spacing) * 2) calc(var(--spacing) * 4);
			border-radius: 10rem;
			background-color: lch(from var(--text) l c h / 55%);
			backdrop-filter: blur(10px) saturate(160%);
			color: var(--bg);
			transition: opacity 0.2s ease-in-out;
		}

		.player__btn {
			display: flex;
			padding: 0;
			border: 0;
			background-color: transparent;
			color: inherit;
			cursor: pointer;

			svg {
				width: 1.1rem;
				height: 1.1rem;
				fill: currentColor;
			}
		}

		.player__time,
		.player__duration {
			font-size: 0.8rem;
			font-variant-numeric: tabular-nums;
			opacity: 0.85;
		}

		.player__seek {
			flex: 1;
			height: 4px;
			appearance: none;
			border-radius: 999px;
			background: linear-gradient(
				to right,
				var(--accent) var(--fill, 0%),
				lch(from var(--bg) l c h / 30%) var(--fill, 0%)
			);
			cursor: pointer;

			&::-webkit-slider-thumb {
				appearance: none;
				width: 12px;
				height: 12px;
				border-radius: 50%;
				background-color: var(--bg);
				transition: transform 0.15s ease-in-out;
			}

			&:hover::-webkit-slider-thumb {
				transform: scale(1.2);
			}

			&::-moz-range-thumb {
				width: 12px;
				height: 12px;
				border: 0;
				border-radius: 50%;
				background-color: var(--bg);
			}
		}
	}
}




/* Archive Pages */
body.archive {
	.site-main {
		margin-block-start: calc(var(--spacing) * 12);
	}

	.works-archive__header {
		min-height: min(30vh, 300px);
		display: flex;
		align-items: center;

		h1 {
			font-size: 4rem;
			letter-spacing: calc(var(--tracking) * 2);
			font-variation-settings: var(--font-400);
		}
	}

	.works-grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: calc(var(--spacing) * 6);

		.works-grid__item {
			a {
				display: flex;
				flex-direction: column;
				gap: calc(var(--spacing) * 2);

				.works-card__media {
					border-radius: calc(var(--spacing) * 2);
					overflow: hidden;
				}

				.works-card__title {
					font-size: 1.2rem;
					letter-spacing: calc(var(--tracking) * 1);
					font-variation-settings: var(--font-400);
				}
			}
		}
	}
}






/* Footer Section */
.site-footer {
	max-width: var(--max-width);
	margin: 0 auto calc(var(--spacing) * 12);
	padding-block: calc(var(--spacing) * 12);
}










@media (max-width: 768px) {
	:root {
		--max-width: calc(100vw - 2rem);
	}

	.site-header.is-past-hero {
		& .site-brand {
			& a {
				.site-brand__name {
					display: none;
				}
			}
		}
	}

	.site-nav__list {
		transform: translateX(-10px);
		
		.site-nav__list-submenu {
			left: auto;
			right: calc(var(--spacing) * -5);

			li > a {
				text-align: right;
				flex-direction: row-reverse;
			}
		}
	}

	body:not(.home) {
			& .site-brand {
				& a {
					.site-brand__name {
						display: none;
					}
				}
			}
	}

	.hero {
		.hero__title {
			font-size: 3rem;
			line-height: 1.2;
			letter-spacing: calc(var(--tracking) * 2);
		}

		.hero__tagline {
			font-size: 1.6rem;
			letter-spacing: var(--tracking);
			font-variation-settings: var(--font-400);
			color: var(--text-muted);
			margin-top: calc(var(--spacing) * 3);
			padding-right: 2rem;
		}
	}

	.works-preview {
		.works-grid {
			display: grid;
			grid-template-columns: repeat(1, 1fr);
			gap: calc(var(--spacing) * 12);
		}
	}

	.about-preview {
		display: flex;
		align-items: center;
		min-height: clamp(400px, 100vh, 900px);
	}

	body.single {
		& .project__header {
			h1 {
				font-size: 2.7rem;
				letter-spacing: calc(var(--tracking) * 2);
				font-variation-settings: var(--font-400);
			}
		}
	}

	body.archive {
		.works-grid {
			display: grid;
			grid-template-columns: repeat(1, 1fr);
			gap: calc(var(--spacing) * 12);
		}
	}
}