body {
	font-family: 'Inter', sans-serif;
	background-color: #ffffff;
	color: #1a1a1a;
}

.font-serif {
	font-family: 'Cormorant Garamond', serif;
}

.fade-in {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1),
	            transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}

.fade-in.visible {
	opacity: 1;
	transform: translateY(0);
}

.image-hover {
	transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), filter 0.4s ease;
}

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

.image-container {
	overflow: hidden;
	background-color: #f5f5f5;
}

.menu-overlay {
	transition: opacity 0.4s ease, visibility 0.4s ease;
}

.menu-overlay.hidden {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.menu-overlay.visible {
	opacity: 1;
	visibility: visible;
	pointer-events: all;
}

.nav-link {
	position: relative;
}

.nav-link::after {
	content: '';
	position: absolute;
	width: 0;
	height: 1px;
	bottom: -2px;
	left: 0;
	background-color: #1a1a1a;
	transition: width 0.3s ease;
}

.nav-link:hover::after {
	width: 100%;
}

.project-title {
	transition: opacity 0.3s ease;
}

.group:hover .project-title {
	opacity: 1;
}

.custom-cursor {
	cursor: none;
}

@media (pointer: fine) {
	.custom-cursor {
		cursor: none;
	}
}

#sculpture,
#photography,
#other-media,
#about,
#contact {
	scroll-margin-top: 70px;
}

.no-scrollbar::-webkit-scrollbar {
	display: none;
}

.no-scrollbar {
	-ms-overflow-style: none;
	scrollbar-width: none;
}

#viewer iframe,
#viewer img {
	border: 0;
}

#viewer button {
	line-height: 1;
}

#statementOverlay {
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

#statementOverlay button {
	line-height: 1;
}

#viewerStatement p + p {
	margin-top: 1rem;
}

.button-layout {
  display: inline-flex;
  margin: 15px 0 0 0;
  padding: 10px 18px;
  border: 1px solid #1a1a1a;
  color: #1a1a1a;
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 0.05em;
  transition: all 0.2s ease;
  align-self: flex-start;
}

.button-layout:hover {
  background: #1a1a1a;
  color: rgb(255, 255, 255);
}

.gallery-arrow {
    position: absolute;
    top: 39%;
    transform: translateY(-50%);
    z-index: 20;

    width: 2.75rem;
    height: 2.75rem;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 2rem;
    line-height: 1;

    border: none;
	border-radius: 4px;
    background: transparent;
    color: #1a1a1a;

    cursor: pointer;
    transition: all 0.2s ease;
}

.gallery-arrow-left {
    left: -1.25rem;
}

.gallery-arrow-right {
    right: -1.25rem;
}

.gallery-arrow:hover {
    background: #1a1a1a;
    color: white;
}

.viewer-thumbs {
    width: 100%;
    max-width: 72rem;
    display: flex;
    justify-content: center;
    gap: 0.75rem;
    overflow-x: auto;
    padding: 0.25rem 0 0.5rem;
	
}

.viewer-thumb {
	width: 5.5rem;
	height: 3.75rem;
    flex: 0 0 auto;
    border: 1px solid transparent;
    opacity: 0.45;
    overflow: hidden;
    background: #f5f5f5;
    cursor: pointer;
    transition: opacity 0.5s ease, transform 0.5s ease, border-color 0.5s ease;
    position: relative;
	z-index: 30;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.viewer-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
	transition: transform 0.5s ease;
}

.viewer-thumbs.is-changing {
    opacity: 0.35;
    transform: translateY(2px);
}

.viewer-thumb:hover,
.viewer-thumb.active {
    opacity: 1;
    border-color: #1a1a1a;
	transform: translateY(-2px);
}

.video-thumb span {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgb(0 0 0 / 0.25);
    color: white;
    font-size: 1.25rem;
}

#viewerImage,
#viewerVideo {
    transition: opacity 0.25s ease;
}

#viewerStatementWrapper {
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.3) transparent;
}

#viewerStatementWrapper::-webkit-scrollbar {
    width: 6px;
}

#viewerStatementWrapper::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.3);
    border-radius: 999px;
}