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

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

      :root {
      	--bg-dark: #1a2a3a;
      	--bg-mid: #243547;
      	--accent-red: #c0392b;
      	--accent-red-hover: #e74c3c;
      	--nav-active: #fff;
      	--text-light: #ecf0f1;
      	--text-muted: #a0b4c8;
      	--card-bg: rgba(255, 255, 255, 0.05);
      	--card-border: rgba(255, 255, 255, 0.12);
      }

      html {
      	scroll-behavior: smooth;
      }

      body {
      	font-family: 'Raleway', sans-serif;
      	background: linear-gradient(160deg, #1c2e42 0%, #243547 40%, #1a2535 100%);
      	min-height: 100vh;
      	color: var(--text-light);
      	line-height: 1.6;
      	display: flex;
      	flex-direction: column;
      	align-items: center;
      }

      header {
      	padding: 18px 0;
      	width: 100%;
      }

      nav {
      	width: min(100%, 1100px);
      	margin: 0 auto;
      	padding: 0 20px;
      }

      nav ul {
      	list-style: none;
      	display: flex;
      	justify-content: center;
      	gap: 50px;
      }

      nav a {
      	color: var(--text-muted);
      	text-decoration: none;
      	font-size: 1rem;
      	font-weight: 600;
      	letter-spacing: 0.05em;
      	text-transform: uppercase;
      	transition: color 0.3s;
      	position: relative;
      	padding-bottom: 4px;
      }

      nav a:hover,
      nav a.active {
      	color: var(--nav-active);
      }

      nav ul li:first-child a {
      	color: #fff;
      }

      nav ul li:first-child a::after {
      	content: '';
      	position: absolute;
      	bottom: -2px;
      	left: 0;
      	width: 100%;
      	height: 2px;
      	background: #fff;
      }

      .hero-section,
      #inicio {
      	display: flex;
      	justify-content: center;
      	align-items: center;
				padding-top: 7rem;
      	width: 100%;
      }

      .hero-card {
      	border: 1px solid var(--card-border);
      	border-radius: 8px;
      	padding: 48px 40px;
      	text-align: center;
      	max-width: 520px;
      	width: 100%;
      	background: rgba(255, 255, 255, 0.03);
      	display: flex;
      	flex-direction: column;
      	justify-content: center;
      	align-items: center;
      	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
      }

      .hero-card h1 {
      	font-size: clamp(2.8rem, 2vw, 4rem);
      	font-weight: 600;
      	letter-spacing: 0.03em;
      	margin-bottom: 18px;
      	color: #fff;
      	line-height: 1.1;
      }

      .hero-description {
      	font-size: 1.05rem;
      	font-weight: 400;
      	color: var(--text-muted);
      	margin-bottom: 34px;
      	letter-spacing: 0.03em;
      	max-width: 30ch;
      }

      .hero-card img {
      	display: none;
      }

      .btn-cv {
      	display: inline-flex;
      	align-items: center;
      	gap: 10px;
      	background-color: var(--accent-red);
      	color: #fff;
      	border: none;
      	padding: 14px 36px;
      	font-size: 0.9rem;
      	font-weight: 700;
      	letter-spacing: 0.1em;
      	text-transform: uppercase;
      	border-radius: 3px;
      	cursor: pointer;
      	transition: background-color 0.3s, transform 0.2s;
      	font-family: 'Raleway', sans-serif;
      }

      .btn-cv:hover {
      	background-color: var(--accent-red-hover);
      	transform: translateY(-2px);
      }

      #acerca {
      	padding: 80px 20px;
      	max-width: 800px;
      	margin: 0 auto;
      	text-align: center;
      }

      .section-title {
      	font-size: 1.6rem;
      	font-weight: 700;
      	letter-spacing: 0.08em;
      	text-transform: uppercase;
      	color: #fff;
      	margin-bottom: 30px;
      	position: relative;
      	display: inline-block;
      }

      .section-title::after {
      	content: '';
      	position: absolute;
      	bottom: -8px;
      	left: 50%;
      	transform: translateX(-50%);
      	width: 40px;
      	height: 2px;
      	background: var(--accent-red);
      }

      #acerca p {
      	color: var(--text-muted);
      	font-size: 1rem;
      	max-width: 600px;
      	margin: 0 auto;
      }

      #trabajos {
      	padding: 80px 20px;
      	max-width: 1000px;
      	margin: 0 auto;
      	text-align: center;
      }

      .projects-grid {
      	display: grid;
      	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      	gap: 24px;
      	margin-top: 40px;
      }

      .project-card {
      	background: var(--card-bg);
      	border: 1px solid var(--card-border);
      	border-radius: 4px;
      	overflow: hidden;
      	transition: transform 0.3s, border-color 0.3s;
      }

      .project-card:hover {
      	transform: translateY(-5px);
      	border-color: rgba(255, 255, 255, 0.3);
      }

      .project-card img {
      	width: 100%;
      	height: 180px;
      	object-fit: cover;
      	display: block;
      }

      .project-info {
      	padding: 16px;
      	text-align: left;
      }

      .project-info p:first-child {
      	font-weight: 600;
      	color: #fff;
      	margin-bottom: 6px;
      }

      .project-info .stack {
      	font-size: 0.82rem;
      	color: var(--accent-red);
      	letter-spacing: 0.05em;
      }

      #habilidades {
      	padding: 80px 20px;
      	max-width: 800px;
      	margin: 0 auto;
      	text-align: center;
      }

      .skills-list {
      	display: flex;
      	flex-wrap: wrap;
      	justify-content: center;
      	gap: 12px;
      	margin-top: 40px;
      }

      .skill-tag {
      	border: 1px solid var(--card-border);
      	padding: 8px 20px;
      	border-radius: 2px;
      	font-size: 0.85rem;
      	letter-spacing: 0.05em;
      	color: var(--text-muted);
      	transition: border-color 0.3s, color 0.3s;
      }

      .skill-tag:hover {
      	border-color: var(--accent-red);
      	color: #fff;
      }

      footer {
      	background: rgba(0, 0, 0, 0.2);
      	border-top: 1px solid var(--card-border);
      	padding: 70px 20px;
      	text-align: center;
      }

      footer h3 {
      	font-size: 1.6rem;
      	font-weight: 700;
      	letter-spacing: 0.08em;
      	text-transform: uppercase;
      	color: #fff;
      	margin-bottom: 40px;
      	position: relative;
      	display: inline-block;
      }

      footer h3::after {
      	content: '';
      	position: absolute;
      	bottom: -8px;
      	left: 50%;
      	transform: translateX(-50%);
      	width: 40px;
      	height: 2px;
      	background: var(--accent-red);
      }

      form {
      	display: flex;
      	flex-direction: column;
      	gap: 12px;
      	max-width: 420px;
      	margin: 0 auto 40px;
      }

      form input,
      form textarea {
      	background: rgba(255, 255, 255, 0.07);
      	border: 1px solid var(--card-border);
      	border-radius: 3px;
      	padding: 12px 16px;
      	font-size: 0.95rem;
      	font-family: 'Raleway', sans-serif;
      	color: #fff;
      	width: 100%;
      	transition: border-color 0.3s;
      }

      form input::placeholder,
      form textarea::placeholder {
      	color: var(--text-muted);
      }

      form input:focus,
      form textarea:focus {
      	outline: none;
      	border-color: rgba(255, 255, 255, 0.4);
      }

      form textarea {
      	resize: none;
      }

      form button {
      	align-self: center;
      	background: var(--accent-red);
      	color: #fff;
      	border: none;
      	padding: 12px 36px;
      	font-size: 0.9rem;
      	font-weight: 700;
      	letter-spacing: 0.1em;
      	text-transform: uppercase;
      	border-radius: 3px;
      	cursor: pointer;
      	font-family: 'Raleway', sans-serif;
      	transition: background-color 0.3s;
      }

      form button:hover {
      	background: var(--accent-red-hover);
      }

      .social-icons {
      	display: flex;
      	justify-content: center;
      	gap: 20px;
      	margin-top: 10px;
      }

      .social-icons i {
      	font-size: 1.4rem;
      	color: var(--text-muted);
      	cursor: pointer;
      	transition: color 0.3s, transform 0.2s;
      }

      .social-icons i:hover {
      	color: #fff;
      	transform: translateY(-3px);
      }

      main {
      	display: flex;
      	flex-direction: column;
      	justify-content: center;
      	align-items: center;
      	width: 100%;
      	max-width: 1100px;
      	height: auto;
      	padding: 24px 20px 80px;
      	gap: 80px;
      }

      main section {
      	width: min(100%, 800px);
      	margin: 0 auto;
      	text-align: center;
      }

      #home {
      	width: 100%;
      }

      #projects {
      	width: min(100%, 1000px);
      }

      #contact {
      	width: min(100%, 520px);
      }

      @media (max-width: 600px) {
      	nav ul {
      		gap: 20px;
      	}

      	nav a {
      		font-size: 0.75rem;
      	}

      	.hero-card {
      		padding: 40px 24px;
      		min-height: 420px;
      	}

      	.hero-card h1 {
      		font-size: 2.2rem;
      	}
      }
