/* ============================================================
   Layout: Visual / Media Focused — gallery-first
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

.mscp-portfolio-container {
	background: var(--mscp-bg-primary);
	color: var(--mscp-text-primary);
	font-family: var(--mscp-font-sans);
	font-size: var(--mscp-text-base);
	line-height: 1.7;
	min-height: 100vh;
	-webkit-font-smoothing: antialiased;
}

/* ── Hero: cinematic full-bleed ── */
.mscp-visual-hero {
	position: relative;
	min-height: 80vh;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	background:
		radial-gradient(ellipse at top left, var(--mscp-accent-subtle), transparent 60%),
		linear-gradient(135deg, var(--mscp-bg-secondary), var(--mscp-bg-primary));
	overflow: hidden;
	color: var(--mscp-text-primary);
}

/* Decorative floating orbs in the backdrop */
.mscp-visual-hero-bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
}
.mscp-visual-orb {
	position: absolute;
	border-radius: 50%;
	filter: blur(60px);
	opacity: 0.5;
	animation: mscp-visual-float 12s ease-in-out infinite;
}
.mscp-visual-orb-1 {
	width: 360px; height: 360px;
	background: var(--mscp-accent);
	top: -120px; left: -120px;
	opacity: 0.35;
}
.mscp-visual-orb-2 {
	width: 480px; height: 480px;
	background: var(--mscp-accent-hover);
	bottom: -180px; right: -180px;
	opacity: 0.25;
	animation-delay: -4s;
}
.mscp-visual-orb-3 {
	width: 280px; height: 280px;
	background: #fbbf24;
	top: 30%; left: 50%;
	opacity: 0.18;
	animation-delay: -8s;
}
@keyframes mscp-visual-float {
	0%, 100% { transform: translate(0, 0) scale(1); }
	50%      { transform: translate(20px, -30px) scale(1.05); }
}
@media (prefers-reduced-motion: reduce) {
	.mscp-visual-orb { animation: none; }
}

.mscp-visual-hero-photo {
	position: absolute;
	inset: 0;
}

.mscp-visual-hero-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.4;
}

.mscp-visual-hero-photo::after {
	content: '';
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to top, var(--mscp-bg-primary) 5%, transparent 50%),
		linear-gradient(135deg, rgba(0,0,0,0.2), transparent 60%);
}

.mscp-visual-hero-inner {
	position: relative;
	z-index: 2;
	max-width: 1100px;
	margin: 0 auto;
	padding: var(--mscp-space-24) var(--mscp-container-pad) var(--mscp-space-12);
	width: 100%;
	display: grid;
	grid-template-columns: 1fr;
	align-items: end;
	flex-grow: 1;
}

.mscp-visual-hero-text {
	max-width: 720px;
}

.mscp-visual-kicker {
	font-size: var(--mscp-text-xs);
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--mscp-accent);
	background: var(--mscp-accent-subtle);
	display: inline-block;
	padding: 6px 12px;
	border-radius: 9999px;
	margin: 0 0 var(--mscp-space-4);
	border: 1px solid var(--mscp-accent);
}

.mscp-visual-name {
	font-size: clamp(2.75rem, 7vw, 5.5rem);
	font-weight: 900;
	letter-spacing: -0.04em;
	line-height: 1;
	margin: 0 0 var(--mscp-space-4);
	text-shadow: 0 2px 20px rgba(0,0,0,0.05);
}

.mscp-visual-title {
	font-size: var(--mscp-text-lg);
	color: var(--mscp-accent);
	font-weight: 600;
	margin: 0 0 var(--mscp-space-3);
}

.mscp-visual-headline {
	font-size: clamp(1.125rem, 1.5vw, 1.375rem);
	color: var(--mscp-text-secondary);
	line-height: 1.6;
	margin: 0 0 var(--mscp-space-6);
	max-width: 60ch;
}

.mscp-visual-hero-cta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mscp-space-3);
	margin-top: var(--mscp-space-4);
}
.mscp-visual-btn-primary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 28px;
	background: var(--mscp-accent);
	color: white;
	border-radius: 9999px;
	text-decoration: none;
	font-weight: 600;
	font-size: var(--mscp-text-base);
	transition: transform 200ms ease, box-shadow 200ms ease;
	box-shadow: 0 8px 24px -8px var(--mscp-accent);
}
.mscp-visual-btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 32px -8px var(--mscp-accent);
}
.mscp-visual-btn-ghost {
	display: inline-flex;
	align-items: center;
	padding: 14px 22px;
	background: transparent;
	color: var(--mscp-text-primary);
	border: 1px solid var(--mscp-border-strong);
	border-radius: 9999px;
	text-decoration: none;
	font-weight: 500;
	font-size: var(--mscp-text-base);
	transition: all 200ms ease;
}
.mscp-visual-btn-ghost:hover {
	border-color: var(--mscp-accent);
	color: var(--mscp-accent);
	background: var(--mscp-accent-subtle);
}

/* Summary as a featured pull-quote below the hero */
.mscp-visual-summary {
	position: relative;
	z-index: 2;
	max-width: 880px;
	margin: 0 auto;
	padding: 0 var(--mscp-container-pad) var(--mscp-space-16);
	width: 100%;
}
.mscp-visual-summary p {
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	line-height: 1.5;
	color: var(--mscp-text-primary);
	font-family: var(--mscp-font-serif, Georgia, serif);
	font-style: italic;
	margin: 0;
	padding-left: var(--mscp-space-6);
	border-left: 3px solid var(--mscp-accent);
}

.mscp-visual-link {
	color: var(--mscp-text-secondary);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-right: var(--mscp-space-4);
	font-size: var(--mscp-text-sm);
}

.mscp-visual-link:hover {
	color: var(--mscp-accent);
}

/* ── Sections ── */
.mscp-visual-section {
	max-width: 1100px;
	margin: 0 auto;
	padding: var(--mscp-space-12) var(--mscp-container-pad);
}

.mscp-visual-section-title {
	font-size: var(--mscp-text-xs);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--mscp-accent);
	margin: 0 0 var(--mscp-space-6);
}

/* ── Gallery grid ── */
.mscp-visual-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--mscp-space-5);
}

.mscp-visual-media-item {
	position: relative;
	border-radius: var(--mscp-radius-lg);
	overflow: hidden;
	background: var(--mscp-bg-secondary);
	box-shadow: var(--mscp-shadow-sm);
	transition: all var(--mscp-transition-base);
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--mscp-accent);
	font-size: var(--mscp-text-2xl);
}

.mscp-visual-media-item:hover {
	transform: scale(1.02);
	box-shadow: var(--mscp-shadow-lg);
}

.mscp-visual-media-item img,
.mscp-visual-media-item video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mscp-visual-media-title {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: var(--mscp-space-4);
	background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
	color: #fff;
	font-size: var(--mscp-text-sm);
	font-weight: 600;
}

/* ── Video embeds ── */
.mscp-visual-video {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: var(--mscp-radius-lg);
	overflow: hidden;
	background: var(--mscp-bg-secondary);
	box-shadow: var(--mscp-shadow-md);
}

.mscp-visual-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ── Project cards ── */
.mscp-visual-projects-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: var(--mscp-space-6);
}

.mscp-visual-project-card {
	background: var(--mscp-bg-card);
	border: 1px solid var(--mscp-border);
	border-radius: var(--mscp-radius-lg);
	overflow: hidden;
	box-shadow: var(--mscp-shadow-sm);
	transition: all var(--mscp-transition-base);
}

.mscp-visual-project-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--mscp-shadow-xl);
}

.mscp-visual-project-media {
	height: 200px;
	background: linear-gradient(135deg, var(--mscp-accent-subtle), var(--mscp-bg-secondary));
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--mscp-accent);
	font-size: var(--mscp-text-3xl);
}

.mscp-visual-project-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--mscp-transition-slow);
}

.mscp-visual-project-card:hover .mscp-visual-project-media img {
	transform: scale(1.05);
}

.mscp-visual-project-body {
	padding: var(--mscp-space-5);
}

.mscp-visual-project-name {
	font-size: var(--mscp-text-lg);
	font-weight: 700;
	margin: 0 0 var(--mscp-space-1);
}

.mscp-visual-project-year {
	font-size: var(--mscp-text-xs);
	color: var(--mscp-text-muted);
	margin: 0 0 var(--mscp-space-2);
}

.mscp-visual-project-summary {
	font-size: var(--mscp-text-sm);
	color: var(--mscp-text-secondary);
	margin: 0 0 var(--mscp-space-3);
}

.mscp-visual-project-link {
	font-size: var(--mscp-text-sm);
	font-weight: 600;
	color: var(--mscp-accent);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.mscp-visual-project-link:hover {
	gap: 8px;
}

/* ── Document links ── */
.mscp-visual-doc-link {
	display: inline-flex;
	align-items: center;
	gap: var(--mscp-space-3);
	padding: var(--mscp-space-4) var(--mscp-space-5);
	background: var(--mscp-bg-card);
	border: 1px solid var(--mscp-border);
	border-radius: var(--mscp-radius-md);
	text-decoration: none;
	color: var(--mscp-text-primary);
	font-weight: 600;
	transition: all var(--mscp-transition-base);
}

.mscp-visual-doc-link:hover {
	border-color: var(--mscp-accent);
	box-shadow: var(--mscp-shadow-md);
}

/* ── Footer ── */
.mscp-visual-footer {
	background: var(--mscp-bg-secondary);
	border-top: 1px solid var(--mscp-border);
	margin-top: var(--mscp-space-12);
	padding: var(--mscp-space-12) var(--mscp-container-pad);
}

.mscp-visual-footer-inner {
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: var(--mscp-space-10);
}

.mscp-visual-footer-bio {
	font-size: var(--mscp-text-base);
	color: var(--mscp-text-secondary);
	line-height: 1.8;
	margin: 0;
}

.mscp-visual-footer-contact {
	display: flex;
	flex-direction: column;
	gap: var(--mscp-space-2);
	font-size: var(--mscp-text-sm);
}

.mscp-visual-footer-contact a {
	color: var(--mscp-text-secondary);
	text-decoration: none;
}

.mscp-visual-footer-contact a:hover {
	color: var(--mscp-accent);
}

/* ── Responsive ── */
@media (max-width: 800px) {
	.mscp-visual-hero {
		min-height: 55vh;
	}

	.mscp-visual-footer-inner {
		grid-template-columns: 1fr;
		gap: var(--mscp-space-6);
	}
}
