/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;

@layer theme {

	:root,
	:host {
		/*
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
      "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
      */
	  	  		

		--font-sans: 'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
		--font-display: 'Sora', system-ui, sans-serif;
		--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
		--color-gray-200: oklch(92.8% 0.006 264.531);
		--color-gray-300: oklch(87.2% 0.01 258.338);
		--color-gray-400: oklch(70.7% 0.022 261.325);
		--color-gray-500: oklch(55.1% 0.027 264.364);
		--color-gray-600: oklch(44.6% 0.03 256.802);
		--color-gray-700: oklch(37.3% 0.034 259.733);
		--color-gray-900: oklch(21% 0.034 264.665);
		--color-black: #000;
		--color-white: #fff;
		--spacing: 0.25rem;
		--container-md: 28rem;
		--container-xl: 36rem;
		--container-2xl: 42rem;
		--container-3xl: 48rem;
		--container-4xl: 56rem;
		--container-5xl: 64rem;
		--container-6xl: 72rem;
		--container-7xl: 80rem;
		--text-xs: 0.75rem;
		--text-xs--line-height: calc(1 / 0.75);
		--text-sm: 0.875rem;
		--text-sm--line-height: calc(1.25 / 0.875);
		--text-lg: 1.125rem;
		--text-lg--line-height: calc(1.75 / 1.125);
		--text-xl: 1.25rem;
		--text-xl--line-height: calc(1.75 / 1.25);
		--text-2xl: 1.5rem;
		--text-2xl--line-height: calc(2 / 1.5);
		--text-3xl: 1.875rem;
		--text-3xl--line-height: calc(2.25 / 1.875);
		--text-4xl: 2.25rem;
		--text-4xl--line-height: calc(2.5 / 2.25);
		--text-5xl: 3rem;
		--text-5xl--line-height: 1;
		--text-6xl: 3.75rem;
		--text-6xl--line-height: 1;
		--font-weight-semibold: 600;
		--tracking-tight: -0.025em;
		--leading-tight: 1.25;
		--leading-relaxed: 1.625;
		--radius-sm: 0.25rem;
		--radius-md: 0.375rem;
		--radius-lg: 0.5rem;
		--radius-xl: 0.75rem;
		--radius-3xl: 1.5rem;
		--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
		--default-transition-duration: 150ms;
		--default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
		--default-font-family: var(--font-sans);
		--default-mono-font-family: var(--font-mono);


	}
}

@layer base {

	*,
	::after,
	::before,
	::backdrop,
	::file-selector-button {
		box-sizing: border-box;
		margin: 0;
		padding: 0;
		border: 0 solid;
	}

	html,
	:host {
		line-height: 1.5;
		-webkit-text-size-adjust: 100%;
		tab-size: 4;
		font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
		font-feature-settings: var(--default-font-feature-settings, normal);
		font-variation-settings: var(--default-font-variation-settings, normal);
		-webkit-tap-highlight-color: transparent;
	}

	hr {
		height: 0;
		color: inherit;
		border-top-width: 1px;
	}

	abbr:where([title]) {
		-webkit-text-decoration: underline dotted;
		text-decoration: underline dotted;
	}

	h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		font-size: inherit;
		font-weight: inherit;
	}

	a {
		color: inherit;
		-webkit-text-decoration: inherit;
		text-decoration: inherit;
	}

	b,
	strong {
		font-weight: bolder;
	}

	code,
	kbd,
	samp,
	pre {
		font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
		font-feature-settings: var(--default-mono-font-feature-settings, normal);
		font-variation-settings: var(--default-mono-font-variation-settings, normal);
		font-size: 1em;
	}

	small {
		font-size: 80%;
	}

	sub,
	sup {
		font-size: 75%;
		line-height: 0;
		position: relative;
		vertical-align: baseline;
	}

	sub {
		bottom: -0.25em;
	}

	sup {
		top: -0.5em;
	}

	table {
		text-indent: 0;
		border-color: inherit;
		border-collapse: collapse;
	}

	:-moz-focusring {
		outline: auto;
	}

	progress {
		vertical-align: baseline;
	}

	summary {
		display: list-item;
	}

	ol,
	ul,
	menu {
		list-style: none;
	}

	img,
	svg,
	video,
	canvas,
	audio,
	iframe,
	embed,
	object {
		display: block;
		/* vertical-align: middle; */
	}

	img,
	video {
		max-width: 100%;
		height: auto;
	}

	button,
	/*
  input,
  select,
  optgroup,
  textarea,
  */
	::file-selector-button {
		font: inherit;
		font-feature-settings: inherit;
		font-variation-settings: inherit;
		letter-spacing: inherit;
		color: var(text);
		border-radius: 0;
		background-color: transparent;
		opacity: 1;
	}

	:where(select:is([multiple], [size])) optgroup {
		font-weight: bolder;
	}

	:where(select:is([multiple], [size])) optgroup option {
		padding-inline-start: 20px;
	}

	::file-selector-button {
		margin-inline-end: 4px;
	}

	::placeholder {
		opacity: 1;
	}

	@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
		::placeholder {
			color: currentcolor;

			@supports (color: color-mix(in lab, red, red)) {
				color: color-mix(in oklab, currentcolor 50%, transparent);
			}
		}
	}

	textarea {
		resize: vertical;
	}

	::-webkit-search-decoration {
		-webkit-appearance: none;
	}

	::-webkit-date-and-time-value {
		min-height: 1lh;
		text-align: inherit;
	}

	::-webkit-datetime-edit {
		display: inline-flex;
	}

	::-webkit-datetime-edit-fields-wrapper {
		padding: 0;
	}

	::-webkit-datetime-edit,
	::-webkit-datetime-edit-year-field,
	::-webkit-datetime-edit-month-field,
	::-webkit-datetime-edit-day-field,
	::-webkit-datetime-edit-hour-field,
	::-webkit-datetime-edit-minute-field,
	::-webkit-datetime-edit-second-field,
	::-webkit-datetime-edit-millisecond-field,
	::-webkit-datetime-edit-meridiem-field {
		padding-block: 0;
	}

	::-webkit-calendar-picker-indicator {
		line-height: 1;
	}

	:-moz-ui-invalid {
		box-shadow: none;
	}

	button,
	input:where([type="button"], [type="reset"], [type="submit"]),
	::file-selector-button {
		appearance: button;
	}

	::-webkit-inner-spin-button,
	::-webkit-outer-spin-button {
		height: auto;
	}

	[hidden]:where(:not([hidden="until-found"])) {
		display: none !important;
	}
}

@layer utilities {
	.visible {
		visibility: visible;
	}

	.absolute {
		position: absolute;
	}

	.relative {
		position: relative;
	}

	.sticky {
		position: sticky;
	}

	.inset-0 {
		inset: calc(var(--spacing) * 0);
	}

	.top-0 {
		top: calc(var(--spacing) * 0);
	}

	.z-50 {
		z-index: 50;
	}

	.mx-auto {
		margin-inline: auto;
	}

	.my-24 {
		margin-block: calc(var(--spacing) * 24);
	}

	.mt-1 {
		margin-top: calc(var(--spacing) * 1);
	}

	.mt-4 {
		margin-top: calc(var(--spacing) * 4);
	}

	.mt-6 {
		margin-top: calc(var(--spacing) * 6);
	}

	.mt-8 {
		margin-top: calc(var(--spacing) * 8);
	}

	.mt-10 {
		margin-top: calc(var(--spacing) * 10);
	}

	.mt-12 {
		margin-top: calc(var(--spacing) * 12);
	}

	.mt-16 {
		margin-top: calc(var(--spacing) * 16);
	}

	.mt-20 {
		margin-top: calc(var(--spacing) * 20);
	}

	.mt-24 {
		margin-top: calc(var(--spacing) * 24);
	}

	.mb-2 {
		margin-bottom: calc(var(--spacing) * 2);
	}

	.mb-4 {
		margin-bottom: calc(var(--spacing) * 4);
	}

	.mb-6 {
		margin-bottom: calc(var(--spacing) * 6);
	}

	.mb-8 {
		margin-bottom: calc(var(--spacing) * 8);
	}

	.mb-10 {
		margin-bottom: calc(var(--spacing) * 10);
	}

	.mb-12 {
		margin-bottom: calc(var(--spacing) * 12);
	}

	.mb-16 {
		margin-bottom: calc(var(--spacing) * 16);
	}

	.mb-20 {
		margin-bottom: calc(var(--spacing) * 20);
	}

	.mb-24 {
		margin-bottom: calc(var(--spacing) * 24);
	}

	.flex {
		display: flex;
	}

	.grid {
		display: grid;
	}

	.hidden {
		display: none;
	}

	.h-4 {
		height: calc(var(--spacing) * 4);
	}

	.h-5 {
		height: calc(var(--spacing) * 5);
	}

	.h-64 {
		height: calc(var(--spacing) * 64);
	}

	.h-\[320px\] {
		height: 320px;
	}

	.h-full {
		height: 100%;
	}

	.w-4 {
		width: calc(var(--spacing) * 4);
	}

	.w-5 {
		width: calc(var(--spacing) * 5);
	}

	.w-full {
		width: 100%;
	}

	.max-w-2xl {
		max-width: var(--container-2xl);
	}

	.max-w-3xl {
		max-width: var(--container-3xl);
	}

	.max-w-4xl {
		max-width: var(--container-4xl);
	}

	.max-w-5xl {
		max-width: var(--container-5xl);
	}

	.max-w-6xl {
		max-width: var(--container-6xl);
	}

	.max-w-7xl {
		max-width: var(--container-7xl);
	}

	.max-w-md {
		max-width: var(--container-md);
	}

	.max-w-xl {
		max-width: var(--container-xl);
	}

	.items-center {
		align-items: center;
	}

	.items-end {
		align-items: flex-end;
	}

	.justify-between {
		justify-content: space-between;
	}

	.gap-3 {
		gap: calc(var(--spacing) * 3);
	}

	.gap-4 {
		gap: calc(var(--spacing) * 4);
	}

	.gap-6 {
		gap: calc(var(--spacing) * 6);
	}

	.gap-10 {
		gap: calc(var(--spacing) * 10);
	}

	.gap-14 {
		gap: calc(var(--spacing) * 14);
	}

	.gap-20 {
		gap: calc(var(--spacing) * 20);
	}

	.space-y-3 {
		:where(& > :not(:last-child)) {
			--tw-space-y-reverse: 0;
			margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
			margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
		}
	}

	.space-y-4 {
		:where(& > :not(:last-child)) {
			--tw-space-y-reverse: 0;
			margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
			margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
		}
	}

	.space-y-6 {
		:where(& > :not(:last-child)) {
			--tw-space-y-reverse: 0;
			margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
			margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
		}
	}

	.space-y-10 {
		:where(& > :not(:last-child)) {
			--tw-space-y-reverse: 0;
			margin-block-start: calc(calc(var(--spacing) * 10) * var(--tw-space-y-reverse));
			margin-block-end: calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-y-reverse)));
		}
	}

	.space-y-24 {
		:where(& > :not(:last-child)) {
			--tw-space-y-reverse: 0;
			margin-block-start: calc(calc(var(--spacing) * 24) * var(--tw-space-y-reverse));
			margin-block-end: calc(calc(var(--spacing) * 24) * calc(1 - var(--tw-space-y-reverse)));
		}
	}

	.space-y-28 {
		:where(& > :not(:last-child)) {
			--tw-space-y-reverse: 0;
			margin-block-start: calc(calc(var(--spacing) * 28) * var(--tw-space-y-reverse));
			margin-block-end: calc(calc(var(--spacing) * 28) * calc(1 - var(--tw-space-y-reverse)));
		}
	}

	.space-y-32 {
		:where(& > :not(:last-child)) {
			--tw-space-y-reverse: 0;
			margin-block-start: calc(calc(var(--spacing) * 32) * var(--tw-space-y-reverse));
			margin-block-end: calc(calc(var(--spacing) * 32) * calc(1 - var(--tw-space-y-reverse)));
		}
	}

	.overflow-hidden {
		overflow: hidden;
	}

	.rounded {
		border-radius: 0.25rem;
	}

	.rounded-3xl {
		border-radius: var(--radius-3xl);
	}

	.rounded-xl {
		border-radius: var(--radius-xl);
	}

	.border-1 {
		border-style: var(--tw-border-style);
		border-width: 1px;
	}

	.border-b {
		border-bottom-style: var(--tw-border-style);
		border-bottom-width: 1px;
	}

	.bg-black\/55 {
		background-color: color-mix(in srgb, #000 55%, transparent);

		@supports (color: color-mix(in lab, red, red)) {
			background-color: color-mix(in oklab, var(--color-black) 55%, transparent);
		}
	}

	.bg-black\/65 {
		background-color: color-mix(in srgb, #000 65%, transparent);

		@supports (color: color-mix(in lab, red, red)) {
			background-color: color-mix(in oklab, var(--color-black) 65%, transparent);
		}
	}

	.bg-black\/70 {
		background-color: color-mix(in srgb, #000 70%, transparent);

		@supports (color: color-mix(in lab, red, red)) {
			background-color: color-mix(in oklab, var(--color-black) 70%, transparent);
		}
	}

	.bg-white {
		background-color: var(--color-white);
	}

	.bg-gradient-to-t {
		--tw-gradient-position: to top in oklab;
		background-image: linear-gradient(var(--tw-gradient-stops));
	}

	.from-\[\#F7F5F2\]\/80 {
		--tw-gradient-from: color-mix(in oklab, #F7F5F2 80%, transparent);
		--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
	}

	.from-black\/80 {
		--tw-gradient-from: color-mix(in srgb, #000 80%, transparent);

		@supports (color: color-mix(in lab, red, red)) {
			--tw-gradient-from: color-mix(in oklab, var(--color-black) 80%, transparent);
		}

		--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
	}

	.via-black\/50 {
		--tw-gradient-via: color-mix(in srgb, #000 50%, transparent);

		@supports (color: color-mix(in lab, red, red)) {
			--tw-gradient-via: color-mix(in oklab, var(--color-black) 50%, transparent);
		}

		--tw-gradient-via-stops: var(--tw-gradient-position),
		var(--tw-gradient-from) var(--tw-gradient-from-position),
		var(--tw-gradient-via) var(--tw-gradient-via-position),
		var(--tw-gradient-to) var(--tw-gradient-to-position);
		--tw-gradient-stops: var(--tw-gradient-via-stops);
	}

	.via-transparent {
		--tw-gradient-via: transparent;
		--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
		--tw-gradient-stops: var(--tw-gradient-via-stops);
	}

	.to-\[\#F7F5F2\]\/80 {
		--tw-gradient-to: color-mix(in oklab, #F7F5F2 80%, transparent);
		--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
	}

	.to-black\/20 {
		--tw-gradient-to: color-mix(in srgb, #000 20%, transparent);

		@supports (color: color-mix(in lab, red, red)) {
			--tw-gradient-to: color-mix(in oklab, var(--color-black) 20%, transparent);
		}

		--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
	}

	.object-cover {
		object-fit: cover;
	}

	.p-1 {
		padding: calc(var(--spacing) * 1);
	}

	.px-6 {
		padding-inline: calc(var(--spacing) * 6);
	}

	.py-4 {
		padding-block: calc(var(--spacing) * 4);
	}

	.py-8 {
		padding-block: calc(var(--spacing) * 8);
	}

	.py-28 {
		padding-block: calc(var(--spacing) * 28);
	}

	.py-32 {
		padding-block: calc(var(--spacing) * 32);
	}

	.py-36 {
		padding-block: calc(var(--spacing) * 36);
	}

	.py-40 {
		padding-block: calc(var(--spacing) * 40);
	}

	.py-44 {
		padding-block: calc(var(--spacing) * 44);
	}

	.pt-6 {
		padding-top: calc(var(--spacing) * 6);
	}

	.text-center {
		text-align: center;
	}

	.text-left {
		text-align: left;
	}

	.text-2xl {
		font-size: var(--text-2xl);
		line-height: var(--tw-leading, var(--text-2xl--line-height));
	}

	.text-3xl {
		font-size: var(--text-3xl);
		line-height: var(--tw-leading, var(--text-3xl--line-height));
	}

	.text-lg {
		font-size: var(--text-lg);
		line-height: var(--tw-leading, var(--text-lg--line-height));
	}

	.text-sm {
		font-size: var(--text-sm);
		line-height: var(--tw-leading, var(--text-sm--line-height));
	}

	.text-xl {
		font-size: var(--text-xl);
		line-height: var(--tw-leading, var(--text-xl--line-height));
	}

	.text-xs {
		font-size: var(--text-xs);
		line-height: var(--tw-leading, var(--text-xs--line-height));
	}

	.leading-relaxed {
		--tw-leading: var(--leading-relaxed);
		line-height: var(--leading-relaxed);
	}

	.leading-tight {
		--tw-leading: var(--leading-tight);
		line-height: var(--leading-tight);
	}

	.font-semibold {
		--tw-font-weight: var(--font-weight-semibold);
		font-weight: var(--font-weight-semibold);
	}

	.tracking-tight {
		--tw-tracking: var(--tracking-tight);
		letter-spacing: var(--tracking-tight);
	}

	.text-\[\#9C7C5B\] {
		color: #9C7C5B;
	}

	.text-\[var\(--accent\)\] {
		color: var(--accent);
	}

	.text-gray-200 {
		color: var(--color-gray-200);
	}

	.text-gray-300 {
		color: var(--color-gray-300);
	}

	.text-gray-400 {
		color: var(--color-gray-400);
	}

	.text-gray-500 {
		color: var(--color-gray-500);
	}

	.text-gray-600 {
		color: var(--color-gray-600);
	}

	.text-gray-700 {
		color: var(--color-gray-700);
	}

	.text-gray-900 {
		color: var(--color-gray-900);
	}

	.text-white {
		color: var(--color-white);
	}

	.shadow-2xl {
		--tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));
		box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
	}

	.md\:order-1 {
		@media (width >=48rem) {
			order: 1;
		}
	}

	.md\:order-2 {
		@media (width >=48rem) {
			order: 2;
		}
	}

	.md\:block {
		@media (width >=48rem) {
			display: block;
		}
	}

	.md\:h-\[420px\] {
		@media (width >=48rem) {
			height: 420px;
		}
	}

	.md\:grid-cols-2 {
		@media (width >=48rem) {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}
	}

	.md\:grid-cols-3 {
		@media (width >=48rem) {
			grid-template-columns: repeat(3, minmax(0, 1fr));
		}
	}

	.md\:grid-cols-4 {
		@media (width >=48rem) {
			grid-template-columns: repeat(4, minmax(0, 1fr));
		}
	}

	.md\:text-2xl {
		@media (width >=48rem) {
			font-size: var(--text-2xl);
			line-height: var(--tw-leading, var(--text-2xl--line-height));
		}
	}

	.md\:text-3xl {
		@media (width >=48rem) {
			font-size: var(--text-3xl);
			line-height: var(--tw-leading, var(--text-3xl--line-height));
		}
	}

	.md\:text-4xl {
		@media (width >=48rem) {
			font-size: var(--text-4xl);
			line-height: var(--tw-leading, var(--text-4xl--line-height));
		}
	}

	.md\:text-5xl {
		@media (width >=48rem) {
			font-size: var(--text-5xl);
			line-height: var(--tw-leading, var(--text-5xl--line-height));
		}
	}

	.md\:text-6xl {
		@media (width >=48rem) {
			font-size: var(--text-6xl);
			line-height: var(--tw-leading, var(--text-6xl--line-height));
		}
	}
}

body {
	/*font-family: 'Inter', sans-serif;*/
	font-family: var(--default-font-family);
}

h1,
h2,
h3 {
	/*font-family: 'Cormorant Garamond', serif;*/
	/*letter-spacing: 0.02em;*/	
	font-family: var(--font-display);
	letter-spacing: -0.015em;


}

h1 {
	font-weight: 600;
	line-height: 1.05;
}

h2 {
	font-weight: 500;
	line-height: 1.15;
}

h2 {
	position: relative;
	padding-left: 0;
}

h3 {
  font-weight: 500;
}

.abstract-image {
	filter: saturate(0.85) contrast(1.05);
	transform: scale(1.02);
	transition: transform 1.2s ease;
}

.abstract-image:hover {
	transform: scale(1.04);
}

.image-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
}

.image-modal.active {
	display: block;
}

.image-modal-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .85);
	backdrop-filter: blur(4px);
}

.image-modal-content {
	position: relative;
	z-index: 1;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
}

.image-modal-content img {
	max-width: 100%;
	max-height: 90vh;
	object-fit: contain;
	border-radius: 18px;
	box-shadow: 0 40px 100px rgba(0, 0, 0, .7);
}

.image-modal-close {
	position: absolute;
	top: 24px;
	right: 24px;
	font-size: 2.5rem;
	color: #F5F3EF;
	background: none;
	border: none;
	cursor: pointer;
	opacity: .85;
	transition: opacity .3s ease, transform .3s ease;
}

.image-modal-close:hover {
	opacity: 1;
	transform: scale(1.1);
}

.modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, .75);
	display: grid;
	place-items: center;
	z-index: 9999;
	padding: 24px;
}

.modal-overlay.hidden {
	display: none;
}

.modal-card {
	background: #F7F5F2;
	border-radius: 28px;
	max-width: 520px;
	width: 100%;
	box-shadow: 0 40px 120px rgba(0, 0, 0, .6);
}

.modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 28px;
}

.modal-header h3 {
	font-size: 1.6rem;
}

.modal-header button {
	font-size: 1.2rem;
	opacity: .6;
}

.modal-form {
	padding: 0 28px 32px;
	display: grid;
	gap: 14px;
}

/*
.modal-form input,
.modal-form select {
  width: 100%;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid rgba(0, 0, 0, .15);
  background: white;
  color: var(--text-);
}
  */

.modal-card {
	opacity: 0;
	transform: translateY(24px) scale(.96);
	animation: modalIn .45s ease forwards;
}

@keyframes modalIn {
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.upload-box {
	border: 1px dashed rgba(0, 0, 0, .25);
	padding: 16px;
	border-radius: 14px;
	font-size: .9rem;
	color: #6B665F;
	cursor: pointer;
}

.upload-box input {
	display: none;
}

.form-note {
	text-align: center;
	font-size: .75rem;
	color: #6B665F;
	margin-top: 8px;
}

.compare-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.compare-frame {
	position: relative;
	height: 260px;
	border-radius: 18px;
	overflow: hidden;
	background: linear-gradient(180deg, #2A2825, #1C1B19);
	box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .55);
}

.compare-frame img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

.compare-frame {
	transition: transform .6s ease, box-shadow .6s ease;
}

.compare-frame:hover {
	transform: translateY(-6px);
	box-shadow: 0 40px 90px -35px rgba(0, 0, 0, .75);
}

.compare-label {
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #A9A39A;
}

.trust-line {
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--text-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
}

.trust-line span {
	opacity: .9;
}

h3 {
	font-weight: 500;
}

.section-title {
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.75rem;
	color: var(--text-muted);
}

.reveal {
	opacity: 0;
	transform: translateY(14px);
	transition: all .6s ease;
}

.reveal.visible {
	opacity: 1;
	transform: translateY(0);
}

.parallax {
	position: relative;
	background-attachment: fixed;
	background-size: cover;
	background-position: center;
}

.card-lux i {
	opacity: .9;
	transition: transform .35s ease;
}

.card-lux:hover i {
	transform: scale(1.15);
}

section img {
	filter: saturate(0.92) contrast(1.02);
	transition: transform .6s ease;
}

section img:hover {
	transform: scale(1.015);
}

.pack-text {
	color: #E6E2DB;
	font-size: 0.95rem;
	line-height: 1.6;
}

.pack-muted {
	/*
	color: #A9A39A;
	font-size: 0.9rem;
	*/
}

:root {
	/*
  --bg-main: #F7F5F2;
  --bg-dark: #1C1B19;
  --text-main: #1F1E1C;
  --text-muted: #6B665F;
  --accent: #9C7C5B;
  */

	/* BASE */
	--bg-main: #0B0B0D;
	--bg-soft: #121216;
	--bg-card: #18181D;

	/* TEXTO */
	--text-main: #F5F5F7;
	--text-muted: #9A9AA2;
	--text-soft: #6E6E76;

	/* ACENTO */
	--accent: #7C5CFF;
	/* roxo fotográfico */
	--accent-soft: #B4A8FF;

	/* BORDAS / SOMBRAS */
	--border-soft: rgba(255, 255, 255, .08);
	--shadow-strong: 0 40px 120px rgba(0, 0, 0, .85);

}

.card-lux {
	background: white;
	border-radius: 24px;
	padding: 2rem;
	box-shadow: 0 20px 50px -20px rgba(0, 0, 0, .25);
	transition: all .45s ease;
}

.card-lux:hover {
	transform: translateY(-6px);
	box-shadow: 0 35px 80px -30px rgba(0, 0, 0, .35);
}

.ribbon {
	position: absolute;
	top: 20px;
	right: -40px;
	transform: rotate(45deg);
	background: var(--accent);
	color: white;
	padding: 6px 40px;
	font-size: 12px;
	letter-spacing: .08em;
}

.bg-editorial {
	background: var(--bg-soft);
}

.bg-editorial-dark {
	background: #050507;
	color: var(--text-main);
}

.bg-editorial-soft {
	background: linear-gradient(180deg,
			#0B0B0D 0%,
			#14141A 100%);
	color: var(--text-main);
}

.section-divider {
	height: 120px;
	background: linear-gradient(to bottom,
			rgba(255, 255, 255, 0.04),
			transparent);
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	padding: 1rem 2.5rem;
	border-radius: 999px;
	font-size: 1rem;
	font-weight: 500;
	cursor: pointer;
	transition:
		transform .3s ease,
		box-shadow .3s ease,
		background-color .3s ease;
}

.btn:hover {
	transform: scale(1.03);
}

.btn:active {
	transform: scale(0.97);
}


/* =========================================================
   BUTTONS — DARK PHOTO THEME
   ========================================================= */

.btn-primary {
	background: linear-gradient(135deg,
			var(--accent),
			#4F3DCC);
	color: #fff;
	box-shadow:
		0 20px 60px rgba(124, 92, 255, .45),
		inset 0 0 0 1px rgba(255, 255, 255, .08);
}

.btn-primary:hover {
	background: linear-gradient(135deg,
			#8D78FF,
			#5B49E6);
	box-shadow:
		0 28px 80px rgba(124, 92, 255, .65);
}


.btn-ghost {
	background: transparent;
	color: var(--text-main);
	border: 1px solid rgba(255, 255, 255, .25);
	backdrop-filter: blur(4px);
}

.btn-ghost:hover {
	background: rgba(255, 255, 255, .06);
	border-color: rgba(255, 255, 255, .45);
}


/* Ghost para fundos claros (caso ainda exista) */
.btn-ghost.dark {
	color: var(--text-main);
	border-color: rgba(255, 255, 255, .25);
}

.btn-ghost.dark:hover {
	background: rgba(255, 255, 255, .05);
	border-color: rgba(255, 255, 255, .4);
}


/* =========================================================
   PACKS / PRICING — DARK CINEMATIC
   ========================================================= */

.pack-card {
	background: linear-gradient(180deg,
			#15151B 0%,
			#0E0E13 100%);
	border-radius: 28px;
	padding: 2.5rem;
	border: 1px solid rgba(255, 255, 255, 0.10);
	box-shadow:
		0 40px 120px -40px rgba(0, 0, 0, .95);
	transition: transform .45s ease, box-shadow .45s ease;
}

.pack-card:hover {
	transform: translateY(-10px);
	box-shadow:
		0 60px 160px -50px rgba(0, 0, 0, 1);
}

.pack-title {
	color: var(--text-main);
	font-size: 1.3rem;
	font-weight: 600;
	letter-spacing: .02em;
}

.pack-old {
	color: var(--text-soft);
	font-size: .85rem;
	text-decoration: line-through;
}

.pack-price {
	font-size: 3rem;
	font-weight: 600;
	color: var(--accent-soft);
	margin: .8rem 0 1.6rem;
}

.pack-list li,
.pack-text {
	color: #DADAF0;
	font-size: .95rem;
	line-height: 1.65;
}


/* =========================================================
   FEATURED PACK
   ========================================================= */

.pack-featured {
	border: 1px solid var(--accent);
	box-shadow:
		0 60px 180px -60px rgba(124, 92, 255, .65);
	transform: scale(1.06);
}

.pack-tag {
	position: absolute;
	top: 22px;
	right: 22px;
	font-size: .7rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--accent);
	border: 1px solid var(--accent);
	padding: 6px 14px;
	border-radius: 999px;
	background: rgba(124, 92, 255, .08);
}


/* =========================================================
   PACK BUTTONS
   ========================================================= */

.pack-btn {
	display: block;
	text-align: center;
	margin-top: 2.2rem;
	padding: 15px;
	border-radius: 999px;
	font-size: .95rem;
	font-weight: 500;
	transition: all .35s ease;
}

.pack-btn.primary {
	background: linear-gradient(135deg,
			var(--accent),
			#4F3DCC);
	color: #ffffff;
	box-shadow: 0 18px 50px rgba(124, 92, 255, .45);
}

.pack-btn.primary:hover {
	background: linear-gradient(135deg,
			#8D78FF,
			#5B49E6);
	box-shadow: 0 28px 80px rgba(124, 92, 255, .65);
}

.pack-btn.ghost {
	border: 1px solid rgba(255, 255, 255, .25);
	color: var(--text-main);
}

.pack-btn.ghost:hover {
	background: rgba(255, 255, 255, .06);
}


/*
.btn-primary {
  background: var(--accent);
  color: #ffffff;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .30);
}
.btn-primary:hover {
  background: var(--accent);
  box-shadow: 0 26px 55px rgba(0, 0, 0, .40);
}
.btn-ghost {
  background: transparent;
  color: #F5F3EF;
  border: 1px solid rgba(255, 255, 255, .35);
}
.btn-ghost:hover {
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .6);
  box-shadow: 0 18px 40px rgba(0, 0, 0, .35);
}
.btn-ghost.dark {
  color: var(--bg-dark);
  border-color: rgba(0, 0, 0, .25);
}
.btn-ghost.dark:hover {
  background: rgba(0, 0, 0, .05);
  border-color: rgba(0, 0, 0, .4);
}
.pack-card {
  background: #23211E;
  border-radius: 28px;
  padding: 2.5rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .7);
  transition: all .5s ease;
}
.pack-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 40px 100px -35px rgba(0, 0, 0, .85);
}
.pack-title {
  color: #F5F3EF;
  font-size: 1.25rem;
  font-weight: 600;
}
.pack-old {
  color: #8F8B84;
  font-size: .9rem;
  text-decoration: line-through;
}
.pack-price {
  font-size: 2.8rem;
  font-weight: 600;
  color: #CBB59A;
  margin: .6rem 0 1.5rem;
}
.pack-list li {
  color: #D1CDC6;
  font-size: .95rem;
  margin-bottom: .6rem;
}
.pack-featured {
  border: 1px solid #CBB59A;
  transform: scale(1.06);
}
.pack-tag {
  position: absolute;
  top: 22px;
  right: 22px;
  font-size: .7rem;
  letter-spacing: .12em;
  color: #CBB59A;
  border: 1px solid #CBB59A;
  padding: 6px 14px;
  border-radius: 999px;
}
.pack-btn {
  display: block;
  text-align: center;
  margin-top: 2rem;
  padding: 14px;
  border-radius: 999px;
  font-size: .95rem;
  transition: all .35s ease;
}
.pack-btn.primary {
  background: #CBB59A;
  color: #1C1B19;
}
.pack-btn.primary:hover {
  background: #BFA889;
}
.pack-btn.ghost {
  border: 1px solid rgba(255, 255, 255, .25);
  color: #F5F3EF;
}
.pack-btn.ghost:hover {
  background: rgba(255, 255, 255, .06);
}
*/
.cta-slow.reveal {
	transition-duration: 1.2s;
}

@keyframes slowZoom {
	0% {
		transform: scale(1);
	}

	100% {
		transform: scale(1.06);
	}
}

.cta-bg-animate {
	animation: slowZoom 22s ease-in-out infinite alternate;
}

@media (max-width: 768px) {
	body {
		font-size: 15px;
		line-height: 1.7;
	}

	p {
		line-height: 1.75;
	}

	h1 {
		line-height: 1.1;
	}

	h2 {
		line-height: 1.2;
	}

	.card-lux p {
		line-height: 1.7;
	}

	.card-lux.scale-105 {
		transform: none;
	}

	.card-lux ul li {
		line-height: 1.65;
	}

	.parallax {
		background-attachment: scroll;
	}
}

@property --tw-space-y-reverse {
	syntax: "*";
	inherits: false;
	initial-value: 0;
}

@property --tw-border-style {
	syntax: "*";
	inherits: false;
	initial-value: solid;
}

@property --tw-gradient-position {
	syntax: "*";
	inherits: false;
}

@property --tw-gradient-from {
	syntax: "<color>";
	inherits: false;
	initial-value: #0000;
}

@property --tw-gradient-via {
	syntax: "<color>";
	inherits: false;
	initial-value: #0000;
}

@property --tw-gradient-to {
	syntax: "<color>";
	inherits: false;
	initial-value: #0000;
}

@property --tw-gradient-stops {
	syntax: "*";
	inherits: false;
}

@property --tw-gradient-via-stops {
	syntax: "*";
	inherits: false;
}

@property --tw-gradient-from-position {
	syntax: "<length-percentage>";
	inherits: false;
	initial-value: 0%;
}

@property --tw-gradient-via-position {
	syntax: "<length-percentage>";
	inherits: false;
	initial-value: 50%;
}

@property --tw-gradient-to-position {
	syntax: "<length-percentage>";
	inherits: false;
	initial-value: 100%;
}

@property --tw-leading {
	syntax: "*";
	inherits: false;
}

@property --tw-font-weight {
	syntax: "*";
	inherits: false;
}

@property --tw-tracking {
	syntax: "*";
	inherits: false;
}

@property --tw-shadow {
	syntax: "*";
	inherits: false;
	initial-value: 0 0 #0000;
}

@property --tw-shadow-color {
	syntax: "*";
	inherits: false;
}

@property --tw-shadow-alpha {
	syntax: "<percentage>";
	inherits: false;
	initial-value: 100%;
}

@property --tw-inset-shadow {
	syntax: "*";
	inherits: false;
	initial-value: 0 0 #0000;
}

@property --tw-inset-shadow-color {
	syntax: "*";
	inherits: false;
}

@property --tw-inset-shadow-alpha {
	syntax: "<percentage>";
	inherits: false;
	initial-value: 100%;
}

@property --tw-ring-color {
	syntax: "*";
	inherits: false;
}

@property --tw-ring-shadow {
	syntax: "*";
	inherits: false;
	initial-value: 0 0 #0000;
}

@property --tw-inset-ring-color {
	syntax: "*";
	inherits: false;
}

@property --tw-inset-ring-shadow {
	syntax: "*";
	inherits: false;
	initial-value: 0 0 #0000;
}

@property --tw-ring-inset {
	syntax: "*";
	inherits: false;
}

@property --tw-ring-offset-width {
	syntax: "<length>";
	inherits: false;
	initial-value: 0px;
}

@property --tw-ring-offset-color {
	syntax: "*";
	inherits: false;
	initial-value: #fff;
}

@property --tw-ring-offset-shadow {
	syntax: "*";
	inherits: false;
	initial-value: 0 0 #0000;
}

@layer properties {
	@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {

		*,
		::before,
		::after,
		::backdrop {
			--tw-space-y-reverse: 0;
			--tw-border-style: solid;
			--tw-gradient-position: initial;
			--tw-gradient-from: #0000;
			--tw-gradient-via: #0000;
			--tw-gradient-to: #0000;
			--tw-gradient-stops: initial;
			--tw-gradient-via-stops: initial;
			--tw-gradient-from-position: 0%;
			--tw-gradient-via-position: 50%;
			--tw-gradient-to-position: 100%;
			--tw-leading: initial;
			--tw-font-weight: initial;
			--tw-tracking: initial;
			--tw-shadow: 0 0 #0000;
			--tw-shadow-color: initial;
			--tw-shadow-alpha: 100%;
			--tw-inset-shadow: 0 0 #0000;
			--tw-inset-shadow-color: initial;
			--tw-inset-shadow-alpha: 100%;
			--tw-ring-color: initial;
			--tw-ring-shadow: 0 0 #0000;
			--tw-inset-ring-color: initial;
			--tw-inset-ring-shadow: 0 0 #0000;
			--tw-ring-inset: initial;
			--tw-ring-offset-width: 0px;
			--tw-ring-offset-color: #fff;
			--tw-ring-offset-shadow: 0 0 #0000;
		}
	}
}


body {
	background: var(--bg-main);
	color: var(--text-main);	
}

/* =========================================================
   BACKGROUND SYSTEM — DARK PHOTO RHYTHM
   ========================================================= */

.bg-editorial {
	background: var(--bg-soft);
	/* respiro */
}

.bg-editorial-dark {
	background: #050507;
	/* base cinematográfica */
	color: var(--text-main);
}

.bg-editorial-soft {
	background: linear-gradient(180deg,
			#0B0B0D 0%,
			#14141A 100%);
	color: var(--text-main);
}

/* separador invisível entre seções iguais */
.section-divider {
	height: 120px;
	background: linear-gradient(to bottom,
			rgba(255, 255, 255, 0.04),
			transparent);
}

/* =========================================================
   HEADER — DARK GLASS
   ========================================================= */

header {
	background: linear-gradient(to bottom,
			rgba(5, 5, 7, .85),
			rgba(5, 5, 7, .65));
	backdrop-filter: blur(12px);
	border-bottom: 1px solid rgba(255, 255, 255, .08);
}

header .text-gray-500 {
	color: var(--text-muted);
}

header .btn-primary {
	box-shadow: 0 14px 40px rgba(124, 92, 255, .45);
}



.card-lux {
	background: var(--bg-card);
	border-radius: 24px;
	padding: 2rem;
	border: 1px solid var(--border-soft);
	box-shadow: var(--shadow-strong);
	transition: all .45s ease;
}

.card-lux:hover {
	transform: translateY(-6px);
}

.card-lux span,
.card-lux p {
	color: var(--text-main);
}

.card-lux i {
	opacity: .9;
	transition: transform .35s ease;
}

.card-lux:hover i {
	transform: scale(1.15);
}


/* =========================================================
   FORM — DARK CINEMATIC (TEMA ATUAL)
   ========================================================= */

.modal-card {
	background: var(--bg-card);
	color: var(--text-main);
	border: 1px solid var(--border-soft);
}

.modal-header h3 {
	color: var(--text-main);
}

.modal-header button {
	color: var(--text-muted);
}

/* INPUTS / SELECT / TEXTAREA */
.form-input {
	width: 100%;
	padding: 14px 16px;
	border-radius: 14px;
	background: var(--bg-soft);
	border: 1px solid var(--border-soft);
	color: var(--text-main);
	transition: border-color .25s ease, box-shadow .25s ease;
}

.form-input::placeholder {
	color: var(--text-soft);
}

.form-input:focus {
	outline: none;
	border-color: var(--accent);
	box-shadow: 0 0 0 1px rgba(124, 92, 255, .4);
}

/* SELECT (seta custom) */
.form-select {
	appearance: none;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--text-soft) 50%),
		linear-gradient(135deg, var(--text-soft) 50%, transparent 50%);
	background-position:
		calc(100% - 18px) 50%,
		calc(100% - 12px) 50%;
	background-size: 6px 6px;
	background-repeat: no-repeat;

}

/* UPLOAD */
.upload-box {
	border: 1px dashed var(--border-soft);
	background: var(--bg-soft);
	padding: 16px;
	border-radius: 14px;
	font-size: .9rem;
	color: var(--text-soft);
	cursor: pointer;
	transition: border-color .25s ease, background .25s ease;
}

.upload-box:hover {
	border-color: var(--accent);
	background: rgba(124, 92, 255, .06);
}

/* NOTE */
.form-note {
	color: var(--text-muted);
}