﻿* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	background: transparent;
}

/*
     * Control width here only.
     * Height is set entirely by JavaScript to maintain 34% aspect ratio.
     * Set width to whatever fits your layout — 100%, 50%, 600px, etc.
     */


/* Your hero container */
.hero {
	position: relative;
	/*height: 100vh;*/
	min-height: 100vh;
	background: radial-gradient(1400px 520px at 32% 78%, rgba(120, 150, 180, 0.22) 0%, rgba(76, 98, 122, 0.14) 28%, rgba(22, 31, 42, 0.04) 55%, rgba(5, 8, 12, 0) 72%), linear-gradient(180deg, #000101 0%, #071119 18%, #163346 46%, #1e3a51 67%, #0b1219 100%);
}

/* Scale sits at the bottom of the hero */
#scale-wrap {
	/* position: absolute; */
	bottom: 0;
	left: 0;
	width: 100%;
	box-shadow: 0 3px 6px -3px var(--darK-grey);
	min-height: 100vh;
}

	/* Canvas — NO height, JS controls it */
	#scale-wrap canvas {
		display: block;
		width: 100%;
		border: 2px xolid yellow;
		transform: scale(.8);
		display: none;
		mix-blend-mode: soft-light;
		/* filter: blur(3px);*/
		transition: opacity 0.4s ease, filter 0.4s ease;
		top: -25vh
	}

.hero:hover #scale-wrap canvas {
	/* filter: blur(0px);*/
	mix-blend-mode: unset;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

/* Subtle noise texture overlay for surface feel */
.hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
	opacity: 0.04;
	pointer-events: none;
	z-index: 1;
}

/* Floor vignette — gives illusion of depth/back wall */
.hero::after {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at 50% 110%, rgba(0,0,0,0.65) 0%, transparent 60%), radial-gradient(ellipse at 50% -10%, rgba(0,0,0,0.4) 0%, transparent 55%), linear-gradient(to right, rgba(0,0,0,0.18) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.18) 100%);
	pointer-events: none;
	z-index: 1;
	opacity: .8;
}

.hero:hover::after {
	display: none;
}

/* ── MESSAGING OVERLAY ───────────────────────────────────────────────────
   * pointer-events: none means all clicks/drags pass through to the canvas.
   * Opacity transitions on hero hover via JS class toggle.
   */
#methods-messaging {
	/* position: absolute; */
	/* top: 0; */
	/* left: 0; */
	/* right: 0; */
	/* bottom: 0; */
	z-index: 3;
	margin-left: 12%;
	pointer-events: none;
	display: block;
	/* Push content into right ~55% of hero */
	opacity: 1;
	transition: opacity 0.55s ease;
}



.hero:hover #methods-messaging {
	/*opacity: 0.12;*/
}

.msg-inner {
	max-width: 80%;
}

.msg-eyebrow {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(10px, 1vw, 13px);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.38);
	margin-bottom: 18px;
}

.msg-headline {
	font-family: 'Lora', serif;
	font-style: italic;
	font-weight: 400;
	font-size: clamp(22px, 2.8vw, 42px);
	line-height: 1.22;
	color: rgba(255,255,255,0.92);
	margin-bottom: 22px;
	letter-spacing: -0.01em;
}

.msg-sub {
	font-family: var(--font-sans);
	font-weight: 300;
	font-size: clamp(13px, 1.1vw, 15px);
	line-height: 1.7;
	color: rgba(255,255,255,1);
	max-width: 100%;
}






.home-services.in-panel {
	/* position: absolute; */
	/* bottom: 0; */
	/* padding: 0 100px; */
	color: #fff;
}

	.home-services.in-panel canvas {
		transform: scale(.8);
	}


	.home-services.in-panel .home-services-boxes {
	}

	.home-services.in-panel .home-service {
		border: none;
		background: none;
		color: #fff;
		box-shadow: none;
	}

		.home-services.in-panel .home-service p {
			font-weight: 200;
		}

.home-services-link-all {
	color: #fff;
	display: flex;
	text-align: center;
	font-weight: 200;
	margin-top: 22px;
	margin-bottom: 64px;
	font-weight: 600;
	font-family: 'Lora';
	text-transform: uppercase;
	text-align: right;
	justify-content: flex-end;
	align-items: center;
	flex-wrap: nowrap;
}

	.home-services-link-all i {
		color: #fff;
		background: var(--agency-purple);
		width: 19px;
		height: 20px;
		border-radius: 50%;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		font-size: 50%;
		margin-left: 10px;
	}
/*****************************/


.bureau-cta {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 32px;
}



@media (min-width: 768px) {
	.home-services {
		padding: 60px;
	}

		.home-services.in-panel {
			position: absolute;
			bottom: 0;
		}


	.home-services-intro {
		padding: 0 0 30px 0;
	}

	.home-services-boxes {
		grid-template-columns: repeat(2,1fr);
	}

	.hsf-grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1rem;
	}

	.home-services-final {
		display: flex;
		flex-wrap: nowrap;
		justify-content: space-between;
		align-items: center;
		gap: 1rem;
		padding: 30px 0;
	}

	.hsb2 {
		max-width: 75%;
	}

	.home-services {
		padding: 60px;
	}

	.home-services-intro {
		padding: 0 0 30px 0;
	}

	.home-services-boxes {
		grid-template-columns: repeat(2,1fr);
	}

	.hsf-grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1rem;
	}

	.home-services-final {
		display: flex;
		flex-wrap: nowrap;
		justify-content: space-between;
		align-items: center;
		gap: 1rem;
		padding: 30px 0;
	}

	.hsb2 {
		max-width: 75%;
	}

	#methods-messaging {
		display: block;
		padding: 0;
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		margin-left: unset;
	}




	.msg-inner {
		max-width: 80%;
		left: 50%;
		transform: translateX(-50%);
	}

	#scale-wrap {
		position: absolute;
		height: 100vh;
	}

		#scale-wrap canvas {
			display: block;
			top: -35vh;
		}
}



@media (min-width: 1024px) {
	.home-services-boxes {
		grid-template-columns: repeat(4,1fr);
	}

	.home-services {
		padding: 100px 100px 100px 100px;
	}

	.home-services-final {
		padding: 30px 30px;
	}

	.home-services-boxes {
		grid-template-columns: repeat(4,1fr);
	}

	.home-services {
		/*padding: 100px 100px 100px 100px;*/
		padding: 0;
		margin: 100px 100px 100px 100px;
	}

	.home-services-final {
		padding: 30px 30px;
	}

	#methods-messaging {
		display: flex;
		padding: unset;
		padding-left: 33%;
		padding-right: 6%;
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
	}



	.msg-inner {
		max-width: 80%;
		left: unset;
		transform: none;
	}

	#scale-wrap canvas {
		top: -25vh;
	}

	.bureau-cta {
		flex-direction: row;
	}
}
