*,
*::after,
*::before {
	box-sizing: border-box;
}
html {
    font-size: 16px;
}
:root {
	--page-padding: 1rem;
	--angle: -15deg;
	--trans-content: -30vh;
    --color-link: #FF6800;
}

body {
	margin: 0;
	color: var(--color-text);
	background-color: var(--color-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Text selection color: orange */
::selection {
    background: var(--color-link);
    color: white;
}

.noscroll {
	height: 100dvh;
	width: 100%;
	overflow: hidden;
	position: fixed;
    top: 0;
}

/* Page Loader */
.js .loading::before,
.js .loading::after {
	content: '';
	position: fixed;
	z-index: 1000;
}

.js .loading::before {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--color-bg);
}

.js .loading::after {
	top: 50%;
	left: 50%;
	width: 60px;
	height: 60px;
	margin: -30px 0 0 -30px;
	border-radius: 50%;
	opacity: 0.4;
	background: var(--color-link);
	animation: loaderAnim 0.7s linear infinite alternate forwards;

}

@keyframes loaderAnim {
	to {
		opacity: 1;
		transform: scale3d(0.5,0.5,1);
	}
}

.unbutton {
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	font: inherit;
	cursor: pointer;
}

.unbutton:focus {
	outline: none;
}

.intro {
	width: 100%;
	height: 100vh;
	overflow: hidden;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.intro::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url(/img/noise.png), radial-gradient(circle, #33505D75 0%, transparent 100%);
    background-size: 250px, 100%;
    pointer-events: none;
}

.intro--open {
	height: 80vh;
}

.home-grid {
	gap: 1rem;
	flex: none;
	position: relative;
	width: 200vw;
	height: 200vh;
	display: grid;
	grid-template-rows: repeat(5,1fr);
	grid-template-columns: 100%;
	transform: rotate(var(--angle));
  transform-origin: center center;
}

.row {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(7,1fr);
  will-change: transform, filter;
}

.row__item {
	position: relative;
}

.row__item-inner {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 10px;
}

.row__item-img {
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center center;
	position: absolute;
	top: 0;
	left: 0;
}

.row__item-img--large {
	width: 100vw;
	height: 100vh;
	top: 50%;
	left: 50%;
	margin: -50vh 0 0 -50vw;
	background-position: 50% 70%;
	will-change: transform, filter;
}


.fullview {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	pointer-events: none;
}

.fullview .row__item-inner {
	border-radius: 0px;
}

.content {
    background: url('/img/noise.png'), radial-gradient(at top, #D6E3E9 0%, #ddd 100%);
    background-size: 250px, 100%;
}



@media screen and (min-width: 53em) {
	body {
		--page-padding: 2rem 3rem;
	}
	.frame {
		grid-template-columns: auto 1fr;
		grid-template-areas: 'title sponsor';
		align-content: space-between;
	}
	.content__header h2 {
		font-size: clamp(2rem,20vh,16rem);
	}
	.content__text p.highlight {
		font-size: clamp(2rem,7vh,4rem);
	}
}

.typeshuffle {
    cursor: pointer;
    user-select: none;
}
.line {
    display: block;
}
.whitespace {
    display: inline-block;
    width: 0.5em;
}
.no-scrollbars {
    scrollbar-width: none;
}
.no-scrollbars::-webkit-scrollbar {
    display: none;
}

/* Add media query for mobile devices */
@media screen and (max-width: 768px) {
  .home-grid {
    /* Adjust height to ensure more rows are visible */
    height: 100vh; /* Increase total height to spread content */
    grid-template-rows: repeat(5, 25vh); /* Fixed height for each row */
    gap:0.5rem;
  }

  .row {
    /* Ensure rows don't exceed viewport height */
    min-height: 25vh; /* At least 4 rows will be visible (100vh ÷ 25vh = 4) */
    gap:0.5rem;
  }

  .intro--open {
    height: 100vh; /* Full viewport height on mobile */
  }
}