﻿body {
	margin: 0;
	font-family: var(--bs-body-font-family);
	font-size: var(--bs-body-font-size);
	font-weight: var(--bs-body-font-weight);
	line-height: var(--bs-body-line-height);
	color: var(--bs-body-color);
	text-align: var(--bs-body-text-align);
	background-color: var(--bs-body-bg);
	-webkit-text-size-adjust: 100%;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	overflow-x: hidden;
}

html {
	overflow-x: hidden;
	width: 100%;
}

* {
	box-sizing: border-box;
}

.main-footer {
	background-color: white;
	color: black;
}

:root {
	--bs-blue: #0d6efd;
	--bs-indigo: #6610f2;
	--bs-purple: #6f42c1;
	--bs-pink: #d63384;
	--bs-red: #dc3545;
	--bs-orange: #f4623a;
	--bs-yellow: #ffc107;
	--bs-green: #198754;
	--bs-teal: #20c997;
	--bs-cyan: #0dcaf0;
	--bs-black: #000;
	--bs-white: #fff;
	--bs-gray: #6c757d;
	--bs-gray-dark: #343a40;
	--bs-gray-100: #f8f9fa;
	--bs-gray-200: #e9ecef;
	--bs-gray-300: #dee2e6;
	--bs-gray-400: #ced4da;
	--bs-gray-500: #adb5bd;
	--bs-gray-600: #6c757d;
	--bs-gray-700: #495057;
	--bs-gray-800: #343a40;
	--bs-gray-900: #212529;
	--bs-primary: #f4623a;
	--bs-secondary: #6c757d;
	--bs-success: #198754;
	--bs-info: #0dcaf0;
	--bs-warning: #ffc107;
	--bs-danger: #dc3545;
	--bs-light: #f8f9fa;
	--bs-dark: #212529;
	--bs-primary-rgb: 244, 98, 58;
	--bs-secondary-rgb: 108, 117, 125;
	--bs-success-rgb: 25, 135, 84;
	--bs-info-rgb: 13, 202, 240;
	--bs-warning-rgb: 255, 193, 7;
	--bs-danger-rgb: 220, 53, 69;
	--bs-light-rgb: 248, 249, 250;
	--bs-dark-rgb: 33, 37, 41;
	--bs-white-rgb: 255, 255, 255;
	--bs-black-rgb: 0, 0, 0;
	--bs-body-color-rgb: 33, 37, 41;
	--bs-body-bg-rgb: 255, 255, 255;
	--bs-font-sans-serif: "Merriweather Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
	--bs-body-font-family: Merriweather, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
	--bs-body-font-size: 1rem;
	--bs-body-font-weight: 400;
	--bs-body-line-height: 1.5;
	--bs-body-color: #212529;
	--bs-body-bg: #fff;
	--bs-border-width: 1px;
	--bs-border-style: solid;
	--bs-border-color: #dee2e6;
	--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
	--bs-border-radius: 0.375rem;
	--bs-border-radius-sm: 0.25rem;
	--bs-border-radius-lg: 0.5rem;
	--bs-border-radius-xl: 1rem;
	--bs-border-radius-2xl: 2rem;
	--bs-border-radius-pill: 50rem;
	--bs-link-color: #f4623a;
	--bs-link-hover-color: #c34e2e;
	--bs-code-color: #d63384;
	--bs-highlight-bg: #fff3cd;
}

[data-bs-theme="dark"] {
	color-scheme: dark;
	--bs-body-color: #dee2e6;
	--bs-body-color-rgb: 222, 226, 230;
	--bs-body-bg: #212529;
	--bs-body-bg-rgb: 33, 37, 41;
	--bs-emphasis-color: #fff;
	--bs-emphasis-color-rgb: 255, 255, 255;
	--bs-secondary-color: rgba(222, 226, 230, 0.75);
	--bs-secondary-color-rgb: 222, 226, 230;
	--bs-secondary-bg: #343a40;
	--bs-secondary-bg-rgb: 52, 58, 64;
	--bs-tertiary-color: rgba(222, 226, 230, 0.5);
	--bs-tertiary-color-rgb: 222, 226, 230;
	--bs-tertiary-bg: #2b3035;
	--bs-tertiary-bg-rgb: 43, 48, 53;
	--bs-primary-text-emphasis: #f9a88b;
	--bs-secondary-text-emphasis: #a7acb1;
	--bs-success-text-emphasis: #75b798;
	--bs-info-text-emphasis: #6edff6;
	--bs-warning-text-emphasis: #ffda6a;
	--bs-danger-text-emphasis: #ea868f;
	--bs-light-text-emphasis: #f8f9fa;
	--bs-dark-text-emphasis: #dee2e6;
	--bs-primary-bg-subtle: #311316;
	--bs-secondary-bg-subtle: #161719;
	--bs-success-bg-subtle: #051b11;
	--bs-info-bg-subtle: #032830;
	--bs-warning-bg-subtle: #332701;
	--bs-danger-bg-subtle: #2c0b0e;
	--bs-light-bg-subtle: #343a40;
	--bs-dark-bg-subtle: #1a1d20;
	--bs-primary-border-subtle: #923a41;
	--bs-secondary-border-subtle: #41464b;
	--bs-success-border-subtle: #0f5132;
	--bs-info-border-subtle: #087990;
	--bs-warning-border-subtle: #997404;
	--bs-danger-border-subtle: #842029;
	--bs-light-border-subtle: #495057;
	--bs-dark-border-subtle: #343a40;
	--bs-heading-color: inherit;
	--bs-link-color: #f9a88b;
	--bs-link-hover-color: #faba9f;
	--bs-link-color-rgb: 249, 168, 139;
	--bs-link-hover-color-rgb: 250, 186, 159;
	--bs-code-color: #e685b5;
	--bs-border-color: #495057;
	--bs-border-color-translucent: rgba(255, 255, 255, 0.15);
	--bs-form-valid-color: #75b798;
	--bs-form-valid-border-color: #75b798;
	--bs-form-invalid-color: #ea868f;
	--bs-form-invalid-border-color: #ea868f;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

a {
	color: var(--bs-link-color);
	text-decoration: underline;
}

a:hover {
	color: var(--bs-link-hover-color);
}

a:not([href]):not([class]),
a:not([href]):not([class]):hover {
	color: inherit;
	text-decoration: none;
}

.text-body {
	--bs-text-opacity: 1;
	color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;
}

.text-muted {
	--bs-text-opacity: 1;
	color: #6c757d !important;
}



.validation-message {
	color: #e50000;
}

.invalid {
	border-color: red;
}

.valid {
	border-color: green;
}

.blazor-error-boundary {
	background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
	padding: 1rem 1rem 1rem 3.7rem;
	color: white;
}

.blazor-error-boundary::after {
	content: "An error has occurred."
}

.brand-shrink img {
	filter: invert(100%) sepia(100%) saturate(500%) hue-rotate(330deg);
}

#mainNav {
	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
	background-color: #fff;
	transition: background-color 0.2s ease;
}

#mainNav .navbar-brand {
	font-family: "Merriweather Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	font-weight: 700;
	color: #212529;
}

#mainNav .navbar-nav .nav-item .nav-link {
	color: #6c757d;
	font-family: "Merriweather Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	font-weight: 700;
	font-size: 0.9rem;
	padding: 0.75rem 0;
}

#mainNav .navbar-nav .nav-item .nav-link:hover,
#mainNav .navbar-nav .nav-item .nav-link:active {
	color: #f4623a;
}

#mainNav .navbar-nav .nav-item .nav-link.active {
	color: #f4623a !important;
}

@media (min-width: 992px) {
	#mainNav {
		box-shadow: none;
		background-color: transparent;
	}

	#mainNav .navbar-brand {
		color: rgba(255, 255, 255, 0.7);
	}

	#mainNav .navbar-brand:hover {
		color: #fff;
	}

	#mainNav .navbar-nav .nav-item .nav-link {
		color: rgba(255, 255, 255, 0.7);
		padding: 0 1rem;
	}

	#mainNav .navbar-nav .nav-item .nav-link:hover {
		color: #fff;
	}

	#mainNav .navbar-nav .nav-item:last-child .nav-link {
		padding-right: 0;
	}

	#mainNav .brand-mark-image {
		filter: invert(1);
	}

	#mainNav.navbar-shrink {
		box-shadow: none;
		background-color: transparent;
	}

	#mainNav.navbar-shrink .navbar-brand {
		color: #212529;
	}

	#mainNav.navbar-shrink .navbar-brand:hover {
		color: #f4623a;
	}

	#mainNav.navbar-shrink .navbar-nav .nav-item .nav-link {
		color: #212529;
	}

	#mainNav.navbar-shrink .navbar-nav .nav-item .nav-link:hover {
		color: #f4623a;
	}

	#mainNav.navbar-shrink .brand-mark-image {
		filter: invert(0);
	}
}

header.masthead {
	padding-top: 10rem;
	padding-bottom: calc(10rem - 4.5rem);
	background: linear-gradient(to bottom, rgba(92, 77, 66, 0.8) 0%, rgba(92, 77, 66, 0.8) 100%), url("/img/bg-masthead.jpg");
	background-position: center;
	background-repeat: no-repeat;
	background-attachment: scroll;
	background-size: cover;
}

header.masthead h1,
header.masthead .h1 {
	font-size: 2.25rem;
}

@media (min-width: 992px) {
	header.masthead {
		min-height: 40rem;
		padding-top: 4.5rem;
		padding-bottom: 0;
	}

	header.masthead p {
		font-size: 1.15rem;
	}

	header.masthead h1,
	header.masthead .h1 {
		font-size: 3rem;
	}
}

@media (min-width: 1200px) {

	header.masthead h1,
	header.masthead .h1 {
		font-size: 3.5rem;
	}
}

#portfolio .container-fluid,
#portfolio .container-sm,
#portfolio .container-md,
#portfolio .container-lg,
#portfolio .container-xl,
#portfolio .container-xxl {
	max-width: 1920px;
}

#portfolio .container-fluid .portfolio-box,
#portfolio .container-sm .portfolio-box,
#portfolio .container-md .portfolio-box,
#portfolio .container-lg .portfolio-box,
#portfolio .container-xl .portfolio-box,
#portfolio .container-xxl .portfolio-box {
	position: relative;
	display: block;
}

#portfolio .container-fluid .portfolio-box .portfolio-box-caption,
#portfolio .container-sm .portfolio-box .portfolio-box-caption,
#portfolio .container-md .portfolio-box .portfolio-box-caption,
#portfolio .container-lg .portfolio-box .portfolio-box-caption,
#portfolio .container-xl .portfolio-box .portfolio-box-caption,
#portfolio .container-xxl .portfolio-box .portfolio-box-caption {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	width: 100%;
	height: 100%;
	position: absolute;
	bottom: 0;
	text-align: center;
	opacity: 0;
	color: #fff;
	background: rgba(244, 98, 58, 0.9);
	transition: opacity 0.25s ease;
	text-align: center;
}

#portfolio .container-fluid .portfolio-box .portfolio-box-caption .project-category,
#portfolio .container-sm .portfolio-box .portfolio-box-caption .project-category,
#portfolio .container-md .portfolio-box .portfolio-box-caption .project-category,
#portfolio .container-lg .portfolio-box .portfolio-box-caption .project-category,
#portfolio .container-xl .portfolio-box .portfolio-box-caption .project-category,
#portfolio .container-xxl .portfolio-box .portfolio-box-caption .project-category {
	font-family: "Merriweather Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
}

#portfolio .container-fluid .portfolio-box .portfolio-box-caption .project-name,
#portfolio .container-sm .portfolio-box .portfolio-box-caption .project-name,
#portfolio .container-md .portfolio-box .portfolio-box-caption .project-name,
#portfolio .container-lg .portfolio-box .portfolio-box-caption .project-name,
#portfolio .container-xl .portfolio-box .portfolio-box-caption .project-name,
#portfolio .container-xxl .portfolio-box .portfolio-box-caption .project-name {
	font-size: 1.2rem;
}

#portfolio .container-fluid .portfolio-box:hover .portfolio-box-caption,
#portfolio .container-sm .portfolio-box:hover .portfolio-box-caption,
#portfolio .container-md .portfolio-box:hover .portfolio-box-caption,
#portfolio .container-lg .portfolio-box:hover .portfolio-box-caption,
#portfolio .container-xl .portfolio-box:hover .portfolio-box-caption,
#portfolio .container-xxl .portfolio-box:hover .portfolio-box-caption {
	opacity: 1;
}

.page-section {
	padding: 5rem 0;
}

@media (min-width: 992px) {

	header.masthead>.container,
	.page-section>.container,
	.main-footer>.container {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

hr.divider {
	height: 0.2rem;
	max-width: 3.25rem;
	margin: 1.5rem auto;
	background-color: #f4623a;
	opacity: 1;
}

hr.divider-light {
	background-color: #fff;
}

.text-white-75 {
	color: rgba(255, 255, 255, 0.75) !important;
}

.btn {
	--bs-btn-padding-x: 0.75rem;
	--bs-btn-padding-y: 0.375rem;
	--bs-btn-font-family: Merriweather Sans, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
	--bs-btn-font-size: 1rem;
	--bs-btn-font-weight: 400;
	--bs-btn-line-height: 1.5;
	--bs-btn-color: #212529;
	--bs-btn-bg: transparent;
	--bs-btn-border-width: 1px;
	--bs-btn-border-color: transparent;
	--bs-btn-border-radius: 0.375rem;
	--bs-btn-hover-border-color: transparent;
	--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
	--bs-btn-disabled-opacity: 0.65;
	--bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
	display: inline-block;
	padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
	font-family: var(--bs-btn-font-family);
	font-size: var(--bs-btn-font-size);
	font-weight: var(--bs-btn-font-weight);
	line-height: var(--bs-btn-line-height);
	color: var(--bs-btn-color);
	text-align: center;
	text-decoration: none;
	vertical-align: middle;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
	border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
	border-radius: var(--bs-btn-border-radius);
	background-color: var(--bs-btn-bg);
	transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
	.btn {
		transition: none;
	}
}

.btn:hover {
	color: var(--bs-btn-hover-color);
	background-color: var(--bs-btn-hover-bg);
	border-color: var(--bs-btn-hover-border-color);
}

.btn-check+.btn:hover {
	color: var(--bs-btn-color);
	background-color: var(--bs-btn-bg);
	border-color: var(--bs-btn-border-color);
}

.btn:focus-visible {
	color: var(--bs-btn-hover-color);
	background-color: var(--bs-btn-hover-bg);
	border-color: var(--bs-btn-hover-border-color);
	outline: 0;
	box-shadow: var(--bs-btn-focus-box-shadow);
}

.btn-check:focus-visible+.btn {
	border-color: var(--bs-btn-hover-border-color);
	outline: 0;
	box-shadow: var(--bs-btn-focus-box-shadow);
}

.btn-check:checked+.btn,
:not(.btn-check)+.btn:active,
.btn:first-child:active,
.btn.active,
.btn.show {
	color: var(--bs-btn-active-color);
	background-color: var(--bs-btn-active-bg);
	border-color: var(--bs-btn-active-border-color);
}

.btn-check:checked+.btn:focus-visible,
:not(.btn-check)+.btn:active:focus-visible,
.btn:first-child:active:focus-visible,
.btn.active:focus-visible,
.btn.show:focus-visible {
	box-shadow: var(--bs-btn-focus-box-shadow);
}

.btn:disabled,
.btn.disabled,
fieldset:disabled .btn {
	color: var(--bs-btn-disabled-color);
	pointer-events: none;
	background-color: var(--bs-btn-disabled-bg);
	border-color: var(--bs-btn-disabled-border-color);
	opacity: var(--bs-btn-disabled-opacity);
}

.btn-primary {
	--bs-btn-color: #fff;
	--bs-btn-bg: #f4623a;
	--bs-btn-border-color: #f4623a;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #cf5331;
	--bs-btn-hover-border-color: #c34e2e;
	--bs-btn-focus-shadow-rgb: 246, 122, 88;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #c34e2e;
	--bs-btn-active-border-color: #b74a2c;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: #f4623a;
	--bs-btn-disabled-border-color: #f4623a;
}

.btn-secondary {
	--bs-btn-color: #fff;
	--bs-btn-bg: #6c757d;
	--bs-btn-border-color: #6c757d;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #5c636a;
	--bs-btn-hover-border-color: #565e64;
	--bs-btn-focus-shadow-rgb: 130, 138, 145;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #565e64;
	--bs-btn-active-border-color: #51585e;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: #6c757d;
	--bs-btn-disabled-border-color: #6c757d;
}

.btn-success {
	--bs-btn-color: #fff;
	--bs-btn-bg: #198754;
	--bs-btn-border-color: #198754;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #157347;
	--bs-btn-hover-border-color: #146c43;
	--bs-btn-focus-shadow-rgb: 60, 153, 110;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #146c43;
	--bs-btn-active-border-color: #13653f;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: #198754;
	--bs-btn-disabled-border-color: #198754;
}

.btn-info {
	--bs-btn-color: #000;
	--bs-btn-bg: #0dcaf0;
	--bs-btn-border-color: #0dcaf0;
	--bs-btn-hover-color: #000;
	--bs-btn-hover-bg: #31d2f2;
	--bs-btn-hover-border-color: #25cff2;
	--bs-btn-focus-shadow-rgb: 11, 172, 204;
	--bs-btn-active-color: #000;
	--bs-btn-active-bg: #3dd5f3;
	--bs-btn-active-border-color: #25cff2;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #000;
	--bs-btn-disabled-bg: #0dcaf0;
	--bs-btn-disabled-border-color: #0dcaf0;
}

.btn-warning {
	--bs-btn-color: #000;
	--bs-btn-bg: #ffc107;
	--bs-btn-border-color: #ffc107;
	--bs-btn-hover-color: #000;
	--bs-btn-hover-bg: #ffca2c;
	--bs-btn-hover-border-color: #ffc720;
	--bs-btn-focus-shadow-rgb: 217, 164, 6;
	--bs-btn-active-color: #000;
	--bs-btn-active-bg: #ffcd39;
	--bs-btn-active-border-color: #ffc720;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #000;
	--bs-btn-disabled-bg: #ffc107;
	--bs-btn-disabled-border-color: #ffc107;
}

.btn-danger {
	--bs-btn-color: #fff;
	--bs-btn-bg: #dc3545;
	--bs-btn-border-color: #dc3545;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #bb2d3b;
	--bs-btn-hover-border-color: #b02a37;
	--bs-btn-focus-shadow-rgb: 225, 83, 97;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #b02a37;
	--bs-btn-active-border-color: #a52834;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: #dc3545;
	--bs-btn-disabled-border-color: #dc3545;
}

.btn-light {
	--bs-btn-color: #000;
	--bs-btn-bg: #f8f9fa;
	--bs-btn-border-color: #f8f9fa;
	--bs-btn-hover-color: #000;
	--bs-btn-hover-bg: #d3d4d5;
	--bs-btn-hover-border-color: #c6c7c8;
	--bs-btn-focus-shadow-rgb: 211, 212, 213;
	--bs-btn-active-color: #000;
	--bs-btn-active-bg: #c6c7c8;
	--bs-btn-active-border-color: #babbbc;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #000;
	--bs-btn-disabled-bg: #f8f9fa;
	--bs-btn-disabled-border-color: #f8f9fa;
}

.btn-dark {
	--bs-btn-color: #fff;
	--bs-btn-bg: #212529;
	--bs-btn-border-color: #212529;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #424649;
	--bs-btn-hover-border-color: #373b3e;
	--bs-btn-focus-shadow-rgb: 66, 70, 73;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #4d5154;
	--bs-btn-active-border-color: #373b3e;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: #212529;
	--bs-btn-disabled-border-color: #212529;
}

.btn-outline-primary {
	--bs-btn-color: #f4623a;
	--bs-btn-border-color: #f4623a;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #f4623a;
	--bs-btn-hover-border-color: #f4623a;
	--bs-btn-focus-shadow-rgb: 244, 98, 58;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #f4623a;
	--bs-btn-active-border-color: #f4623a;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #f4623a;
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: #f4623a;
	--bs-gradient: none;
}

.btn-outline-secondary {
	--bs-btn-color: #6c757d;
	--bs-btn-border-color: #6c757d;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #6c757d;
	--bs-btn-hover-border-color: #6c757d;
	--bs-btn-focus-shadow-rgb: 108, 117, 125;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #6c757d;
	--bs-btn-active-border-color: #6c757d;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #6c757d;
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: #6c757d;
	--bs-gradient: none;
}

.btn-outline-success {
	--bs-btn-color: #198754;
	--bs-btn-border-color: #198754;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #198754;
	--bs-btn-hover-border-color: #198754;
	--bs-btn-focus-shadow-rgb: 25, 135, 84;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #198754;
	--bs-btn-active-border-color: #198754;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #198754;
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: #198754;
	--bs-gradient: none;
}

.btn-outline-info {
	--bs-btn-color: #0dcaf0;
	--bs-btn-border-color: #0dcaf0;
	--bs-btn-hover-color: #000;
	--bs-btn-hover-bg: #0dcaf0;
	--bs-btn-hover-border-color: #0dcaf0;
	--bs-btn-focus-shadow-rgb: 13, 202, 240;
	--bs-btn-active-color: #000;
	--bs-btn-active-bg: #0dcaf0;
	--bs-btn-active-border-color: #0dcaf0;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #0dcaf0;
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: #0dcaf0;
	--bs-gradient: none;
}

.btn-outline-warning {
	--bs-btn-color: #ffc107;
	--bs-btn-border-color: #ffc107;
	--bs-btn-hover-color: #000;
	--bs-btn-hover-bg: #ffc107;
	--bs-btn-hover-border-color: #ffc107;
	--bs-btn-focus-shadow-rgb: 255, 193, 7;
	--bs-btn-active-color: #000;
	--bs-btn-active-bg: #ffc107;
	--bs-btn-active-border-color: #ffc107;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #ffc107;
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: #ffc107;
	--bs-gradient: none;
}

.btn-outline-danger {
	--bs-btn-color: #dc3545;
	--bs-btn-border-color: #dc3545;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #dc3545;
	--bs-btn-hover-border-color: #dc3545;
	--bs-btn-focus-shadow-rgb: 220, 53, 69;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #dc3545;
	--bs-btn-active-border-color: #dc3545;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #dc3545;
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: #dc3545;
	--bs-gradient: none;
}

.btn-outline-light {
	--bs-btn-color: #f8f9fa;
	--bs-btn-border-color: #f8f9fa;
	--bs-btn-hover-color: #000;
	--bs-btn-hover-bg: #f8f9fa;
	--bs-btn-hover-border-color: #f8f9fa;
	--bs-btn-focus-shadow-rgb: 248, 249, 250;
	--bs-btn-active-color: #000;
	--bs-btn-active-bg: #f8f9fa;
	--bs-btn-active-border-color: #f8f9fa;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #f8f9fa;
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: #f8f9fa;
	--bs-gradient: none;
}

.btn-outline-dark {
	--bs-btn-color: #212529;
	--bs-btn-border-color: #212529;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #212529;
	--bs-btn-hover-border-color: #212529;
	--bs-btn-focus-shadow-rgb: 33, 37, 41;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #212529;
	--bs-btn-active-border-color: #212529;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #212529;
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: #212529;
	--bs-gradient: none;
}

.btn-link {
	--bs-btn-font-weight: 400;
	--bs-btn-color: var(--bs-link-color);
	--bs-btn-bg: transparent;
	--bs-btn-border-color: transparent;
	--bs-btn-hover-color: var(--bs-link-hover-color);
	--bs-btn-hover-border-color: transparent;
	--bs-btn-active-color: var(--bs-link-hover-color);
	--bs-btn-active-border-color: transparent;
	--bs-btn-disabled-color: #6c757d;
	--bs-btn-disabled-border-color: transparent;
	--bs-btn-box-shadow: none;
	--bs-btn-focus-shadow-rgb: 246, 122, 88;
	text-decoration: underline;
}

.btn-link:focus-visible {
	color: var(--bs-btn-color);
}

.btn-link:hover {
	color: var(--bs-btn-hover-color);
}

.btn-lg,
.btn-group-lg>.btn {
	--bs-btn-padding-y: 0.5rem;
	--bs-btn-padding-x: 1rem;
	--bs-btn-font-size: 1.25rem;
	--bs-btn-border-radius: 0.5rem;
}

.btn-sm,
.btn-group-sm>.btn {
	--bs-btn-padding-y: 0.25rem;
	--bs-btn-padding-x: 0.5rem;
	--bs-btn-font-size: 0.875rem;
	--bs-btn-border-radius: 0.25rem;
}


.btn-xl {
	padding: 1.25rem 2.25rem;
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
	border: none;
	border-radius: 10rem;
}

:root {
	--presentation-bg: #fdf7ef;
	--presentation-surface: #fffdf8;
	--presentation-surface-strong: #f5ebdd;
	--presentation-border: #e8dccb;
	--presentation-border-strong: #cdbda6;
	--presentation-text: #3f434a;
	--presentation-muted: #6d727c;
	--presentation-blue: #2d7ff9;
	--presentation-shadow: 0 24px 80px rgba(63, 67, 74, 0.08);
	--presentation-shadow-soft: 0 16px 40px rgba(63, 67, 74, 0.06);
	--presentation-radius-lg: 40px;
	--presentation-radius-md: 28px;
	--presentation-radius-sm: 18px;
	--presentation-radius-pill: 9999px;
	--bs-primary: #2d7ff9;
	--bs-primary-rgb: 45, 127, 249;
	--bs-link-color: #2d7ff9;
	--bs-link-hover-color: #1d63ca;
	--bs-body-font-family: "Manrope", "Segoe UI", sans-serif;
	--bs-font-sans-serif: "Manrope", "Segoe UI", sans-serif;
	--bs-body-color: #3f434a;
	--bs-body-bg: #fdf7ef;
}

html {
	background: var(--presentation-bg);
}

body {
	font-family: var(--bs-body-font-family);
	color: var(--presentation-text);
	background:
		radial-gradient(circle at top left, rgba(240, 217, 183, 0.65), transparent 30%),
		radial-gradient(circle at top right, rgba(45, 127, 249, 0.08), transparent 28%),
		linear-gradient(180deg, #fffdf9 0%, var(--presentation-bg) 100%);
}

a {
	text-decoration: none;
}

a:hover {
	text-decoration: none;
}

.home-page {
	position: relative;
	padding-bottom: 3rem;
}

.btn-pill {
	border-radius: var(--presentation-radius-pill);
	padding-inline: 1.5rem;
}

.btn-dark,
.btn-outline-dark,
.btn-primary,
.btn-outline-primary {
	border-radius: var(--presentation-radius-pill);
	font-weight: 700;
	letter-spacing: -0.01em;
	box-shadow: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.btn-dark {
	--bs-btn-bg: #2f343b;
	--bs-btn-border-color: #2f343b;
	--bs-btn-hover-bg: #25292f;
	--bs-btn-hover-border-color: #25292f;
	--bs-btn-active-bg: #25292f;
	--bs-btn-active-border-color: #25292f;
	box-shadow: 0 12px 26px rgba(47, 52, 59, 0.18);
}

.btn-outline-dark {
	--bs-btn-color: #2f343b;
	--bs-btn-border-color: rgba(47, 52, 59, 0.18);
	--bs-btn-hover-color: #2f343b;
	--bs-btn-hover-bg: rgba(255, 255, 255, 0.76);
	--bs-btn-hover-border-color: rgba(47, 52, 59, 0.24);
	background: rgba(255, 253, 248, 0.65);
	backdrop-filter: blur(12px);
}

.btn-primary {
	--bs-btn-bg: var(--presentation-blue);
	--bs-btn-border-color: var(--presentation-blue);
	--bs-btn-hover-bg: #206fe5;
	--bs-btn-hover-border-color: #206fe5;
}

.btn-outline-primary {
	--bs-btn-color: var(--presentation-blue);
	--bs-btn-border-color: rgba(45, 127, 249, 0.22);
	--bs-btn-hover-bg: rgba(45, 127, 249, 0.08);
	--bs-btn-hover-border-color: rgba(45, 127, 249, 0.3);
	--bs-btn-hover-color: #206fe5;
	background: rgba(220, 231, 255, 0.35);
}

.btn-dark:hover,
.btn-outline-dark:hover,
.btn-primary:hover,
.btn-outline-primary:hover {
	transform: translateY(-1px);
}

#mainNav {
	box-shadow: none;
	background: transparent;
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.presentation-topbar-shell {
	padding: 0.75rem 1rem;
	border: 1px solid rgba(232, 220, 203, 0.85);
	border-radius: var(--presentation-radius-pill);
	background: rgba(255, 253, 248, 0.82);
	backdrop-filter: blur(20px);
	box-shadow: 0 10px 30px rgba(63, 67, 74, 0.06);
}

#mainNav.navbar-shrink .presentation-topbar-shell {
	background: transparent;
	box-shadow: none;
}

.brand-lockup {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	color: var(--presentation-text) !important;
}

.brand-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.7rem;
	height: 2.7rem;
	border-radius: 50%;
	overflow: hidden;
	box-shadow: 0 12px 24px rgba(47, 52, 59, 0.18);
}

.brand-mark-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: filter 0.2s ease;
}

.brand-copy {
	display: flex;
	flex-direction: column;
	line-height: 1.05;
}

.brand-name {
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: -0.03em;
}

.brand-tagline {
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--presentation-muted);
}

#mainNav .navbar-nav .nav-link {
	color: var(--presentation-text);
	font-family: var(--bs-body-font-family);
	font-weight: 700;
	font-size: 0.95rem;
	padding: 0.5rem 0.9rem;
	border-radius: 9999px;
}

#mainNav .navbar-nav .nav-link:hover,
#mainNav .navbar-nav .nav-link:active,
#mainNav .navbar-nav .nav-link.active {
	color: var(--presentation-text);
	background: rgba(255, 255, 255, 0.72);
}

.presentation-nav-cta {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.nav-github-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.35rem;
	color: var(--presentation-text);
	opacity: 0.7;
	transition: opacity 0.2s ease;
	line-height: 1;
}

.nav-github-link:hover {
	opacity: 1;
	color: var(--presentation-text);
}

header.masthead {
	min-height: unset;
	padding-top: 9rem;
	padding-bottom: 2.25rem;
	background: transparent;
}

.hero-pill,
.blog-hero-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.8rem;
	padding: 0.45rem 0.9rem;
	margin-bottom: 1.5rem;
	border: 1px solid rgba(232, 220, 203, 0.95);
	border-radius: var(--presentation-radius-pill);
	background: rgba(255, 255, 255, 0.82);
	box-shadow: 0 12px 24px rgba(63, 67, 74, 0.05);
	color: var(--presentation-text);
	font-size: 0.95rem;
	font-weight: 700;
}

.hero-pill-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.6rem;
	border-radius: var(--presentation-radius-pill);
	background: rgba(45, 127, 249, 0.12);
	color: var(--presentation-blue);
	font-size: 0.78rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
	gap: 3rem;
	align-items: center;
}

.hero-copy h1 {
	margin: 0;
	font-size: clamp(3.2rem, 8vw, 6.2rem);
	line-height: 0.96;
	letter-spacing: -0.06em;
	font-weight: 800;
	color: var(--presentation-text);
	max-width: 12ch;
}

.hero-kicker,
.section-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.85rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--presentation-blue);
}

.hero-script {
	font-family: "Caveat", cursive;
	font-weight: 700;
	font-size: 1.12em;
	line-height: 0;
	color: var(--presentation-blue);
	white-space: nowrap;
}

.hero-lead,
.section-lead {
	margin-top: 1.6rem;
	font-size: 1.2rem;
	line-height: 1.7;
	color: var(--presentation-muted);
	max-width: 42rem;
}

.section-body {
	font-size: 1rem;
	line-height: 1.8;
	color: var(--presentation-muted);
	max-width: 44rem;
}

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem;
	margin-top: 2rem;
}

.hero-proof-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.hero-proof-list span,
.expertise-tags span {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.55rem 0.95rem;
	border-radius: var(--presentation-radius-pill);
	background: rgba(255, 255, 255, 0.82);
	border: 1px solid rgba(232, 220, 203, 0.95);
	font-size: 0.92rem;
	font-weight: 700;
	color: var(--presentation-text);
	box-shadow: 0 10px 24px rgba(63, 67, 74, 0.04);
}

.hero-visual {
	position: relative;
	min-height: 560px;
}

.hero-visual-card {
	position: relative;
	padding: 1rem;
	border-radius: var(--presentation-radius-lg);
	border: 1px solid rgba(232, 220, 203, 0.95);
	background: rgba(255, 253, 248, 0.88);
	box-shadow: var(--presentation-shadow);
	overflow: hidden;
}

.hero-visual-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(220, 231, 255, 0.4), transparent 32%);
	pointer-events: none;
}

.hero-browser-bar {
	display: flex;
	gap: 0.45rem;
	padding: 0.2rem 0.3rem 0.9rem;
}

.hero-browser-bar span {
	width: 0.72rem;
	height: 0.72rem;
	border-radius: 50%;
	background: rgba(63, 67, 74, 0.18);
}

.hero-visual-card img {
	display: block;
	width: 100%;
	border-radius: calc(var(--presentation-radius-lg) - 10px);
	border: 1px solid rgba(232, 220, 203, 0.85);
	background: #fff;
	position: relative;
	z-index: 1;
}

.hero-visual-note {
	position: absolute;
	max-width: 240px;
	padding: 1rem 1.1rem;
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.9);
	border: 1px solid rgba(232, 220, 203, 0.95);
	box-shadow: 0 14px 30px rgba(63, 67, 74, 0.08);
	backdrop-filter: blur(14px);
	z-index: 2;
}

.hero-visual-note-top {
	top: 1.4rem;
	right: -1rem;
}

.hero-visual-note-bottom {
	left: -1rem;
	bottom: 2rem;
}

.hero-note-label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--presentation-blue);
}

.hero-visual-note strong {
	font-size: 0.96rem;
	line-height: 1.45;
	color: var(--presentation-text);
}

.page-section {
	padding: 4.5rem 0;
}

.masthead+.page-section {
	padding-top: 2.75rem;
}

.section-shell,
.team-shell,
.contact-shell {
	padding: clamp(1.6rem, 3vw, 3rem);
	border-radius: var(--presentation-radius-lg);
	border: 1px solid rgba(232, 220, 203, 0.95);
	background: rgba(255, 253, 248, 0.78);
	box-shadow: var(--presentation-shadow-soft);
	backdrop-filter: blur(10px);
}

.section-shell-warm,
.contact-shell {
	background:
		radial-gradient(circle at top right, rgba(220, 231, 255, 0.45), transparent 32%),
		radial-gradient(circle at bottom left, rgba(240, 217, 183, 0.55), transparent 34%),
		rgba(255, 253, 248, 0.84);
}

.section-heading {
	max-width: 48rem;
	margin-bottom: 2.4rem;
}

.section-title-xl {
	margin: 0;
	font-size: clamp(2rem, 4vw, 3.8rem);
	line-height: 1.02;
	letter-spacing: -0.05em;
	font-weight: 800;
	color: var(--presentation-text);
}

.value-stack {
	display: grid;
	gap: 1rem;
}

.value-card,
.team-card,
.contact-form-card,
.contact-side-card,
.portfolio-project-card {
	border-radius: var(--presentation-radius-md);
	border: 1px solid rgba(232, 220, 203, 0.95);
	background: rgba(255, 255, 255, 0.8);
	box-shadow: 0 16px 36px rgba(63, 67, 74, 0.05);
}

.value-card {
	padding: 1.3rem 1.35rem;
}

.value-card-accent {
	background: linear-gradient(180deg, rgba(220, 231, 255, 0.65), rgba(255, 255, 255, 0.9));
}

.value-card-index {
	display: inline-flex;
	margin-bottom: 0.65rem;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--presentation-blue);
}

.value-card h3,
.portfolio-project-card h3,
.team-card h3 {
	margin-bottom: 0.55rem;
	font-size: 1.35rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--presentation-text);
}

.value-card p,
.portfolio-project-card p,
.team-card p,
.footer-copy {
	margin-bottom: 0;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--presentation-muted);
}

.portfolio-stack {
	display: grid;
	gap: 1.5rem;
}

.portfolio-project-card {
	display: grid;
	grid-template-columns: minmax(260px, 0.85fr) minmax(0, 1.15fr);
	gap: 1.5rem;
	padding: 1.4rem;
}

.portfolio-project-card-alt {
	background: linear-gradient(180deg, rgba(240, 217, 183, 0.35), rgba(255, 255, 255, 0.82));
}

.portfolio-project-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.8rem;
	padding: 0.4rem;
}

.project-category {
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--presentation-blue);
}

.project-link,
.team-link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin-top: 0.2rem;
	font-size: 0.95rem;
	font-weight: 800;
	color: var(--presentation-text);
}

.project-link:hover,
.team-link:hover {
	color: var(--presentation-blue);
}

.portfolio-media-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	align-items: stretch;
}

.portfolio-media-grid-three {
	grid-template-columns: 1.2fr 1fr 0.72fr;
}

.portfolio-media-grid a {
	display: block;
	padding: 0.6rem;
	border-radius: calc(var(--presentation-radius-md) - 8px);
	border: 1px solid rgba(232, 220, 203, 0.95);
	background: rgba(255, 255, 255, 0.92);
}

.portfolio-media-grid img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: calc(var(--presentation-radius-md) - 14px);
	box-shadow: 0 10px 28px rgba(63, 67, 74, 0.08);
}

.media-mobile img {
	object-fit: contain;
	background: #fff;
}

.team-shell {
	background: rgba(255, 253, 248, 0.65);
}

.expertise-tags {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.8rem;
	margin-bottom: 2rem;
}

.ai-provider-tags {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.8rem;
	margin: -0.6rem 0 2rem;
}

.ai-provider-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.55rem 0.9rem;
	border: 1px solid rgba(232, 220, 203, 0.95);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.72);
	color: var(--presentation-text);
	font-size: 0.9rem;
	font-weight: 700;
	box-shadow: 0 10px 24px rgba(63, 67, 74, 0.04);
}

.ai-provider-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.1rem;
	font-size: 1rem;
	line-height: 1;
	flex-shrink: 0;
}

.ai-provider-icon-openai {
	color: #111111;
}

.ai-provider-icon-anthropic {
	color: #9a3412;
}

.ai-provider-icon-gemini {
	color: #2563eb;
}

.ai-provider-icon-mistral {
	color: #ea580c;
}

.ai-provider-icon-openrouter {
	color: #2d7ff9;
}

.ai-provider-icon-hermes {
	color: #4338ca;
}

.team-card {
	overflow: hidden;
	height: 100%;
	max-width: 320px;
	margin-left: auto;
	margin-right: auto;
}

.team-portrait-link {
	display: block;
	padding: 1rem 1rem 0;
}

.team-portrait {
	width: 100%;
	height: auto;
	display: block;
	border-radius: calc(var(--presentation-radius-md) - 8px);
	border: 1px solid rgba(232, 220, 203, 0.95);
	background: linear-gradient(180deg, rgba(240, 217, 183, 0.4), rgba(255, 255, 255, 0.7));
}

.team-card-body {
	padding: 1.2rem 1.25rem 1.35rem;
}

.team-role {
	margin-bottom: 0.8rem !important;
	font-size: 0.92rem !important;
	font-weight: 800 !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--presentation-blue) !important;
}

.contact-side-cards {
	display: grid;
	gap: 1rem;
	margin-top: 2rem;
}

.contact-side-card {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.1rem;
	color: var(--presentation-text);
}

.contact-side-card i {
	font-size: 1.25rem;
	width: 3rem;
	height: 3rem;
	border-radius: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(45, 127, 249, 0.1);
	color: var(--presentation-blue);
}

.contact-side-card span {
	display: block;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--presentation-muted);
}

.contact-side-card strong {
	display: block;
	margin-top: 0.2rem;
	font-size: 1rem;
	color: var(--presentation-text);
}

.contact-side-card-content {
	flex: 1;
	min-width: 0;
}

.contact-side-card-line {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.85rem;
	min-height: 2.2rem;
	margin-top: 0.2rem;
}

.contact-phone-link {
	display: inline-flex;
	align-items: center;
	color: var(--presentation-text);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
}

.contact-whatsapp-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 2.2rem;
	height: 2.2rem;
	border-radius: 999px;
	background: rgba(37, 211, 102, 0.12);
	color: #25d366;
	line-height: 1;
	text-decoration: none;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.contact-whatsapp-link i {
	display: block;
	width: auto;
	height: auto;
	border-radius: 0;
	background: transparent;
	color: currentColor;
	font-size: 2.1rem;
	line-height: 1;
}

.contact-whatsapp-link:hover {
	transform: translateY(-1px);
	background: rgba(37, 211, 102, 0.2);
}

.contact-form-card {
	padding: 1.5rem;
	background: rgba(255, 255, 255, 0.88);
}

.contact-form-card .form-control {
	border-color: rgba(232, 220, 203, 0.95);
	border-radius: 18px;
	background: rgba(253, 247, 239, 0.58);
	box-shadow: none;
}

.contact-form-card .form-control:focus {
	border-color: rgba(45, 127, 249, 0.45);
	box-shadow: 0 0 0 0.2rem rgba(45, 127, 249, 0.08);
	background: #fff;
}

.contact-form-card .form-floating>label {
	color: var(--presentation-muted) !important;
}

.contact-success-state {
	padding: 2rem 1rem;
	border-radius: 22px;
	background: linear-gradient(180deg, rgba(220, 231, 255, 0.45), rgba(255, 255, 255, 0.92));
	color: var(--presentation-text);
}

.main-footer {
	padding: 0 0 2.5rem;
	background: transparent;
	color: var(--presentation-text);
}

.main-footer-shell {
	display: grid;
	grid-template-columns: 1.2fr auto auto;
	gap: 2rem;
	padding: 1.5rem 1.6rem;
	border: 1px solid rgba(232, 220, 203, 0.95);
	border-radius: var(--presentation-radius-md);
	background: rgba(255, 253, 248, 0.82);
	box-shadow: var(--presentation-shadow-soft);
}

.footer-brand {
	font-size: 1.2rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	margin-bottom: 0.6rem;
}

.footer-social-links {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 0.25rem;
}

.footer-social-link {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	color: var(--presentation-text);
	font-weight: 700;
	text-decoration: none;
}

.footer-social-link i {
	color: var(--presentation-blue);
	font-size: 1rem;
}

.footer-social-link:hover {
	color: var(--presentation-blue);
}

.footer-links,
.footer-meta {
	display: grid;
	align-content: start;
	gap: 0.45rem;
	font-size: 0.95rem;
	color: var(--presentation-muted);
}

.footer-links a,
.footer-meta a {
	color: var(--presentation-text);
	font-weight: 700;
}

.footer-links a:hover,
.footer-meta a:hover {
	color: var(--presentation-blue);
}

@media (max-width: 1199.98px) {

	.hero-grid,
	.portfolio-project-card,
	.main-footer-shell {
		grid-template-columns: 1fr;
	}

	.hero-visual {
		min-height: 0;
	}

	.hero-visual-note-top,
	.hero-visual-note-bottom {
		position: static;
		max-width: none;
		margin-top: 1rem;
	}
}

@media (max-width: 991.98px) {
	#mainNav {
		padding-top: 0.75rem;
	}

	.presentation-topbar-shell {
		padding: 0.85rem 1rem;
		border-radius: 28px;
	}

	.presentation-nav-cta {
		flex-direction: column;
		align-items: stretch;
		margin-top: 1rem;
	}

	#mainNav .navbar-nav .nav-link {
		padding-inline: 0.2rem;
	}

	header.masthead {
		padding-top: 8rem;
		min-height: auto;
		padding-bottom: 1.5rem;
	}

	.hero-copy h1 {
		max-width: none;
	}

	.portfolio-media-grid-three,
	.portfolio-media-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767.98px) {
	.page-section {
		padding: 3.2rem 0;
	}

	.masthead+.page-section {
		padding-top: 2.2rem;
	}

	.hero-pill,
	.blog-hero-pill {
		font-size: 0.82rem;
		flex-wrap: wrap;
	}

	.hero-actions,
	.presentation-nav-cta {
		width: 100%;
	}

	.hero-actions .btn,
	.presentation-nav-cta .btn {
		width: 100%;
	}

	.hero-proof-list,
	.expertise-tags {
		justify-content: flex-start;
	}

	.hero-visual-card,
	.section-shell,
	.team-shell,
	.contact-shell,
	.contact-form-card,
	.main-footer-shell {
		border-radius: 24px;
	}

	.contact-form-card {
		padding: 1.2rem;
	}
}
