.inner_wrapper {
	display: grid;
	grid-template-columns: 2vw 1fr;
}

h2 {
  text-transform: uppercase;
  font-size: 1.5vw;
  margin: 0;
  padding: 0;
  line-height: 1;        /* optional but often helps */
}

h2 a {
  position: relative;
  z-index: 2;
  color: var(--white);
  text-decoration: none;
  display: inline-block;
  overflow: hidden;          /* keeps wipe inside the link */
  transition: color 0.3s ease;
}

.invis {
	color: var(--bgblack);
}

/* the wipe layer lives on the <a>, not the h3 */
h2 a::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 0%;
  width: 100%;
  background: var(--white);
  z-index: -1;               /* stays behind the text but above the background */
  transition: height 0.4s cubic-bezier(.2,.9,.2,1);
}

/* interaction */
h2 a:hover::before {
  height: 100%;
}

h2 a:hover {
  color: var(--black);
}

.menu {
	display: grid;
	position: fixed;
	width: 2vw;
	grid-template-columns: 1fr;
	grid-template-rows: auto;
	justify-content: center;
	justify-items: center;
	align-items: center;
	align-content: start;
	height: 100dvh;
	grid-column: 1 / 2;
	z-index: 10;
}

.menu h2 {
	writing-mode: sideways-lr;
}

.main_content {
	grid-column: 2 / 3;
	width: auto;
}

.song {
	display: grid;
	position: relative;
	width: 100%;
}

.video {
	width: 100%;
	height: auto;
	display: block;
}

img {
	width: 100%;
	height: auto;
	display: block;
}

.lyrics-text {
	position: absolute;
	width: auto;
	height: auto;
	padding: 2vw;
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	grid-template-rows: repeat(7, 1fr);
	grid-auto-rows: auto;
	align-content: start;
}

.cutw-text {
	grid-template-rows: repeat(45, 1fr);

}

.lyrics-text h3 {
	border-top: none;
}

@media (width >= 1025px){
	.dvop {
		height: 100%;
		width: 100%;
		padding: 0;
	}	
}

.title {
	border-top: none;
	grid-area: 1 / 4;
	place-self: center;
}

.music-links {
	grid-row: 2;
	grid-column: 5 / 8;
	place-self: center;
	display: flex;
	gap: 3vw;
}
.youtube {
	grid-area: 2 / 6;
	place-self: center;
}
.spotify {
	grid-area: 2 / 7;
	place-self: center;
}

.lyric1 {
	grid-area: 3 / 1;
}
.lyric2 {
	grid-area: 4 / 3;
}
.lyric3 {
	grid-area: 5 / 7;
}
.lyric4 {
	grid-area: 6 / 2;
}
.lyric5 {
	grid-area: 6 / 5;
}
.lyric6 {
	grid-area: 7 / 6;
}

.lyric1-cutw {
	grid-area: 3 / 1;
}
.lyric2-cutw {
	grid-area: 5 / 4;
}
.lyric3-cutw {
	grid-area: 7 / 7;
}
.lyric4-cutw {
	grid-area: 9 / 3;
}
.lyric5-cutw {
	grid-area: 11 / 5;
}
.lyric6-cutw {
	grid-area: 13 / 6;
}
.lyric7-cutw {
	grid-area: 15 / 2;
}
.lyric8-cutw {
	grid-area: 18 / 4;
}
.lyric9-cutw {
	grid-area: 20 / 7;
}
.lyric10-cutw {
	grid-area: 25 / 5;
}
.lyric11-cutw {
	grid-area: 30 / 2;
}
.lyric12-cutw {
	grid-area: 35 / 6;
}
.lyric13-cutw {
	grid-area: 40 / 4;
}


/* Songs submenu */
.nav_group {
	position: relative;
	width: 1.7vw; 
	height: auto;
}

.submenu {
	position: fixed;
	left: 2vw;
	top: 0;
	width: 3vw;
	height: 100vh;
	background-color: var(--bgblack);
	z-index: 99;
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: auto;
	justify-content: center;
	justify-items: center;
	align-items: center;
	align-content: start;
	grid-column: 1 / 2;
	padding-top: 3vw;
	gap: 2vw;
	
	/* Animation: Slide out from the left */
	opacity: 0;
	visibility: hidden;
	transform: translateX(-100%); /* Start tucked behind the main menu */
	transition: transform 0.4s cubic-bezier(.2,.9,.2,1), opacity 0.4s ease;
}

/* When hovering the link OR the sidebar itself, it stays open */
.nav_group:hover .submenu {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
}

/* 4. Text Styling */
.submenu h2 {
	writing-mode: sideways-lr;
	margin: 0;
	font-size: 1.2vw;
	text-transform: uppercase;
	border-top: none;
}

.submenu h3 a {
	text-decoration: none;
	color: var(--white);
	transition: color 0.3s ease;
}

.submenu h3 a:hover {
	color: var(--black);
}

@media (width <= 1025px) {
	.inner_wrapper {
		grid-template-columns: var(--menuwidth) 1fr;
	}
	.main_content {
		position: relative;
	}
	.menu {
		width: var(--menuwidth);
		align-content: space-evenly;
	}
	.menu h2 {
		font-size: 14px;
	}
	.nav_group {
		justify-self: center;
		width: 16px;
	}
	.submenu {
		display: none;
	}
	
	img {
		height: 100vh;
		object-fit: cover;
	}
	.lyrics-text {
		width: 100%;
		padding-top: 5vh;
	}
	.lyrics-text h3 {
		display: none;
	}
	.lyrics-text .title {
		display: block;
		grid-column: 2 / 7;
		font-size: 14px;
	}
	.music-links {
		font-size: 14px;
		grid-row: 5;
		grid-column: 1 / 8;
	}
}