@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600&family=Newsreader:ital,opsz,wght@1,6..72,400&display=swap');

:root {
	--ink: #17221e;
	--paper: #f3f0e8;
	--line: rgba(23, 34, 30, 0.2);
	--accent: #e85b3d;
	--sage: #b7cab7;
	--yellow: #e5bd55;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background:
		linear-gradient(rgba(23, 34, 30, 0.025) 1px, transparent 1px),
		linear-gradient(90deg, rgba(23, 34, 30, 0.025) 1px, transparent 1px),
		var(--paper);
	background-size: 40px 40px;
	color: var(--ink);
	font-family: "Manrope", sans-serif;
}

a {
	color: inherit;
}

.site-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 1440px;
	margin: 0 auto;
	padding: 24px 5vw;
	border-bottom: 1px solid var(--line);
	font-size: 13px;
	font-weight: 600;
}

.brand,
.header-link {
	display: flex;
	align-items: center;
	gap: 11px;
	text-decoration: none;
}

.brand-mark {
	display: grid;
	width: 32px;
	height: 32px;
	place-items: center;
	border-radius: 50%;
	background: var(--ink);
	color: var(--paper);
	font-family: "Newsreader", serif;
	font-size: 19px;
	font-style: italic;
}

.header-link {
	padding-bottom: 3px;
	border-bottom: 1px solid currentColor;
}

.hero {
	position: relative;
	max-width: 1440px;
	min-height: 520px;
	margin: 0 auto;
	padding: 9vw 5vw 8vw;
	overflow: hidden;
	border-bottom: 1px solid var(--line);
}

.eyebrow,
.card-meta,
.section-heading p,
footer {
	font-family: "DM Mono", monospace;
	text-transform: uppercase;
	letter-spacing: 0.09em;
}

.eyebrow {
	margin: 0 0 28px;
	font-size: 11px;
}

h1 {
	position: relative;
	z-index: 1;
	max-width: 900px;
	margin: 0;
	font-size: clamp(56px, 8.2vw, 126px);
	font-weight: 500;
	letter-spacing: -0.065em;
	line-height: 0.84;
}

h1 em {
	font-family: "Newsreader", serif;
	font-weight: 400;
}

.intro {
	position: relative;
	z-index: 1;
	max-width: 550px;
	margin: 46px 0 0;
	font-size: clamp(16px, 1.5vw, 21px);
	line-height: 1.6;
}

.hero-orbit {
	position: absolute;
	right: 2vw;
	bottom: -20%;
	width: min(36vw, 500px);
	aspect-ratio: 1;
}

.orbit {
	position: absolute;
	inset: 8%;
	border: 1px solid rgba(23, 34, 30, 0.23);
	border-radius: 50%;
	transform: rotate(-25deg) scaleY(0.43);
}

.orbit-two {
	inset: 24%;
	transform: rotate(30deg) scaleY(0.5);
}

.planet {
	position: absolute;
	top: 27%;
	right: 17%;
	width: 15%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--accent);
	box-shadow: -13px 13px 0 var(--ink);
}

.collection {
	max-width: 1440px;
	margin: 0 auto;
	padding: 80px 5vw 120px;
}

.section-heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 36px;
}

.section-heading h2 {
	margin: 0;
	font-size: clamp(28px, 3vw, 44px);
	font-weight: 500;
	letter-spacing: -0.04em;
}

.section-heading p {
	margin: 0;
	font-size: 10px;
}

.talk-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

.talk-card {
	display: grid;
	grid-template-columns: minmax(170px, 0.75fr) minmax(260px, 1.25fr);
	min-height: 330px;
	overflow: hidden;
	border: 1px solid var(--line);
	background: rgba(255, 255, 255, 0.3);
	text-decoration: none;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.talk-card:hover,
.talk-card:focus-visible {
	transform: translateY(-6px);
	box-shadow: 0 18px 45px rgba(23, 34, 30, 0.11);
}

.talk-card:focus-visible {
	outline: 3px solid var(--accent);
	outline-offset: 4px;
}

.featured {
	grid-column: 1 / -1;
	grid-template-columns: minmax(280px, 1fr) minmax(350px, 1fr);
}

.card-visual {
	position: relative;
	min-height: 250px;
	overflow: hidden;
	background: var(--ink);
}

.card-body {
	display: flex;
	flex-direction: column;
	padding: 27px 28px 25px;
}

.card-meta {
	display: flex;
	justify-content: space-between;
	margin-bottom: auto;
	font-size: 9px;
}

.card-body h3 {
	max-width: 520px;
	margin: 34px 0 12px;
	font-size: clamp(25px, 2.25vw, 39px);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1.05;
}

.card-body > p {
	max-width: 480px;
	margin: 0 0 32px;
	color: rgba(23, 34, 30, 0.72);
	font-size: 13px;
	line-height: 1.6;
}

.card-footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 18px;
	padding-top: 17px;
	border-top: 1px solid var(--line);
	font-size: 10px;
	line-height: 1.4;
}

.arrow {
	position: relative;
	display: grid;
	flex: 0 0 auto;
	width: 35px;
	height: 35px;
	place-items: center;
	border: 1px solid var(--ink);
	border-radius: 50%;
	color: transparent;
	font-size: 0;
	transition: background 180ms ease, color 180ms ease;
}

.arrow::before {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 9px;
	border-top: 1.5px solid var(--ink);
	border-right: 1.5px solid var(--ink);
	content: "";
	transform: translate(-42%, -58%);
}

.arrow::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 13px;
	height: 1.5px;
	background: var(--ink);
	content: "";
	transform: translate(-50%, -50%) rotate(-45deg);
	transform-origin: center;
}

.talk-card:hover .arrow {
	background: var(--ink);
	color: var(--paper);
}

.talk-card:hover .arrow::before {
	border-color: var(--paper);
}

.talk-card:hover .arrow::after {
	background: var(--paper);
}

.card-stars {
	--visual: #b9d0bf;
}

.card-stars .card-visual {
	background: var(--visual);
}

.star {
	position: absolute;
	width: 42%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--yellow);
	box-shadow: 0 0 0 18px rgba(229, 189, 85, 0.16);
}

.star::before,
.star::after {
	position: absolute;
	inset: 47% -60%;
	height: 2px;
	background: var(--ink);
	content: "";
}

.star::after {
	transform: rotate(90deg);
}

.star-one {
	top: 21%;
	left: 30%;
}

.star-two {
	top: -7%;
	right: -10%;
	width: 18%;
}

.star-three {
	bottom: -6%;
	left: -6%;
	width: 24%;
}

.card-galaxies .card-visual {
	background: #d9b07f;
}

.galaxy {
	position: absolute;
	inset: 12%;
	border: 2px solid var(--ink);
	border-radius: 50%;
	transform: rotate(-25deg) scaleY(0.55);
	box-shadow: 0 0 0 15px rgba(23, 34, 30, 0.08), 0 0 0 35px rgba(23, 34, 30, 0.06);
}

.galaxy::before {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 27%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--accent);
	box-shadow: 0 0 22px var(--accent);
	content: "";
	transform: translate(-50%, -50%);
}

.card-bondi .card-visual {
	min-height: 360px;
	background: #263c35;
}

.binary {
	position: absolute;
	top: 50%;
	width: 17%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--paper);
	box-shadow: 0 0 30px rgba(243, 240, 232, 0.35);
}

.binary-one {
	left: 29%;
	transform: translate(-50%, -50%);
}

.binary-two {
	right: 29%;
	transform: translate(50%, -50%);
}

.flow-line {
	position: absolute;
	inset: 20%;
	border: 1px solid rgba(243, 240, 232, 0.48);
	border-radius: 50%;
	transform: rotate(12deg) scaleY(0.42);
}

.flow-two {
	inset: 8%;
	transform: rotate(-8deg) scaleY(0.5);
}

.flow-three {
	inset: -8%;
	transform: rotate(18deg) scaleY(0.45);
}

.card-hydro .card-visual {
	background: #81aeba;
}

.wave {
	position: absolute;
	left: -10%;
	width: 120%;
	height: 40%;
	border: 3px solid var(--ink);
	border-color: var(--ink) transparent transparent;
	border-radius: 50%;
}

.wave-one {
	top: 30%;
	transform: rotate(9deg);
}

.wave-two {
	top: 48%;
	transform: rotate(-8deg);
}

.wave-three {
	top: 68%;
	transform: rotate(5deg);
}

.card-hip .card-visual {
	background: #e2c459;
}

.code-mark {
	position: absolute;
	top: 18%;
	left: 16%;
	font-family: "DM Mono", monospace;
	font-size: clamp(34px, 5vw, 72px);
}

.code-line {
	position: absolute;
	left: 18%;
	height: 5px;
	background: var(--ink);
}

.code-one {
	right: 18%;
	bottom: 35%;
}

.code-two {
	right: 34%;
	bottom: 27%;
}

.code-three {
	right: 25%;
	bottom: 19%;
}

footer {
	display: flex;
	justify-content: space-between;
	max-width: 1440px;
	margin: 0 auto;
	padding: 28px 5vw;
	border-top: 1px solid var(--line);
	font-size: 9px;
}

footer p {
	margin: 0;
}

@media (max-width: 900px) {
	.hero {
		min-height: 490px;
	}

	.hero-orbit {
		right: -15%;
		width: 58vw;
	}

	.talk-grid {
		grid-template-columns: 1fr;
	}

	.featured {
		grid-column: auto;
	}

	.talk-card,
	.featured {
		grid-template-columns: minmax(190px, 0.85fr) minmax(280px, 1.15fr);
	}
}

@media (max-width: 620px) {
	.site-header {
		padding: 18px 20px;
	}

	.hero {
		min-height: 480px;
		padding: 80px 20px 70px;
	}

	h1 {
		font-size: clamp(51px, 17vw, 76px);
	}

	.intro {
		margin-top: 34px;
		font-size: 15px;
	}

	.hero-orbit {
		bottom: -4%;
		opacity: 0.6;
	}

	.collection {
		padding: 58px 20px 80px;
	}

	.talk-card,
	.featured {
		grid-template-columns: 1fr;
	}

	.card-visual,
	.card-bondi .card-visual {
		min-height: 230px;
	}

	.card-body {
		min-height: 290px;
	}

	footer {
		gap: 24px;
		padding: 24px 20px;
	}
}

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

	.talk-card,
	.arrow {
		transition: none;
	}
}
