/* /assets/style/shared.css */
.is_hidden{
	display:none;
}

.album_section_icon{
	display:inline-block;
	fill:currentColor;
	flex:0 0 auto;
	height:1.5rem;
	opacity:0.95;
	width:1.5rem;
}

.action_btn{
	align-items:center;
	background:rgba(var(--card),0.62);
	border:0.0625rem solid rgba(var(--line),0.12);
	border-radius:var(--pill_r);
	color:rgba(var(--text),0.95);
	cursor:pointer;
	display:inline-flex;
	font-size:0.8125rem;
	font-weight:600;
	gap:0.5rem;
	justify-content:center;
	min-height:2.75rem;
	min-width:6rem;
	padding:0.75rem 1.125rem;
	transition:background 0.14s ease,border-color 0.14s ease,box-shadow 0.14s ease,transform 0.14s ease;
	-webkit-user-select:none;
	user-select:none;
}

.action_btn:active{
	transform:translateY(0.0625rem) scale(0.99);
}

.action_btn:focus-visible{
	border-radius:var(--pill_r);
}

.action_btn:hover{
	border-color:rgba(var(--accent_a),0.42);
	box-shadow:0 1rem 2.5rem rgba(var(--shadow),0.35);
	transform:translateY(-0.0625rem);
}

.action_btn.is_primary{
	background:rgba(var(--accent_b),0.12);
	border-color:rgba(var(--accent_b),0.40);
}

:root.has_spotify_theme .action_btn.is_primary{
	background:rgba(var(--spotify_theme_rgb),0.18);
	border-color:var(--spotify_theme_color);
}

.action_btn.is_spotify{
	background:rgb(29,185,84);
	border:0.0625rem solid rgba(29,185,84,0.85);
	color:rgba(0,0,0,0.92);
}

.action_btn.is_spotify:hover{
	border-color:rgba(30,215,96,0.95);
	box-shadow:0 1rem 2.5rem rgba(var(--shadow),0.35);
	transform:translateY(-0.0625rem);
}

.action_btn.is_disabled,
.action_btn:disabled{
	box-shadow:none;
	cursor:not-allowed;
	opacity:0.55;
	transform:none;
}

.action_btn.is_disabled:hover,
.action_btn:disabled:hover{
	border-color:rgba(var(--line),0.12);
	box-shadow:none;
	transform:none;
}

.action_btn_icon{
	display:block;
	fill:currentColor;
	height:1.125rem;
	width:1.125rem;
}

@media (max-width:60rem){
	.album_sticky_actions #album_back_to_library{
		min-width:2.75rem;
		padding:0.75rem;
	}

	.album_sticky_actions #album_back_to_library .action_btn_label{
		display:none;
	}
}

.album_grid,
.artist_shell .album_grid,
.album_other_albums_shell .album_grid,
.artist_cover_only_grid{
	display:grid;
	gap:var(--gap);
}

.album_card,
.artist_cover_only_card{
	background:linear-gradient(180deg,rgba(var(--card),0.96),rgba(var(--panel),0.74));
	border:0.0625rem solid rgba(var(--line),0.10);
	border-radius:0.75rem;
	box-shadow:0 1.5rem 3.75rem rgba(var(--shadow),0.40);
	margin:0 auto;
	max-width:12rem;
	overflow:hidden;
	position:relative;
	transition:border-color 0.18s ease,box-shadow 0.18s ease,transform 0.18s ease;
	width:100%;
}

.album_card.is_inactive{
	opacity:0.72;
}

.album_card.is_inactive:hover{
	border-color:rgba(var(--line),0.12);
	box-shadow:0 1.5rem 3.75rem rgba(var(--shadow),0.40);
	transform:none;
}

.album_card:active,
.artist_cover_only_card:active{
	transform:translateY(0.0625rem) scale(0.99);
}

.album_card::before,
.artist_cover_only_card::before{
	background:
		radial-gradient(5.625rem 5.625rem at 18% 20%,rgba(var(--accent_a),0.18),transparent 60%),
		radial-gradient(5.625rem 5.625rem at 80% 30%,rgba(var(--accent_b),0.10),transparent 65%);
	content:"";
	inset:0;
	opacity:0.9;
	pointer-events:none;
	position:absolute;
}

.album_card:hover,
.artist_cover_only_card:hover{
	border-color:rgba(var(--accent_a),0.40);
	box-shadow:0 2rem 5rem rgba(var(--shadow),0.55);
	transform:translateY(-0.25rem) scale(1.012);
}

.album_card_cover_shell,
.artist_cover_only_cover_shell{
	aspect-ratio:1/1;
	background:
		linear-gradient(90deg,rgba(255,255,255,0.00),rgba(255,255,255,0.06),rgba(255,255,255,0.00)),
		radial-gradient(7.5rem 7.5rem at 20% 25%,rgba(var(--accent_a),0.10),transparent 60%),
		radial-gradient(7.5rem 7.5rem at 78% 32%,rgba(var(--accent_b),0.08),transparent 62%),
		rgb(var(--vinyl));
	border-radius:0.75rem;
	overflow:hidden;
	position:relative;
	width:100%;
}

.album_card_cover_shell.is_inactive{
	box-shadow:
		inset 0 0 0 0.1875rem rgba(var(--inactive_soft)),
		inset 0 0 1.25rem 0.1875rem rgba(var(--inactive_soft_2));
}

.album_card_cover_shell.is_inactive::after{
	background:linear-gradient(180deg,rgba(0,0,0,0.0),rgba(0,0,0,0.55));
	content:"";
	inset:0;
	pointer-events:none;
	position:absolute;
	z-index:1;
}

.album_card_inactive_badge{
	backdrop-filter:blur(0.25rem);
	background:rgba(var(--inactive),0.26);
	border:0.0625rem solid rgba(var(--inactive),0.58);
	border-bottom-left-radius:0.75rem;
	border-top-right-radius:0.75rem;
	box-shadow:0 0.5rem 1.25rem rgba(0,0,0,0.45);
	color:rgba(var(--inactive),1);
	font-family:var(--mono);
	font-size:0.75rem;
	letter-spacing:0.1em;
	padding:0.3125rem 0.625rem;
	position:absolute;
	right:0;
	text-shadow:0 0.0625rem 0.1875rem rgba(0,0,0,0.75);
	text-transform:uppercase;
	top:0;
	z-index:2;
}

.album_card_cover_shell.is_inactive .album_card_cover.is_loaded{
	filter:grayscale(0.35) saturate(0.65) brightness(0.82);
}

.album_card_cover,
.artist_cover_only_cover{
	height:100%;
	object-fit:cover;
	opacity:0;
	position:absolute;
	transition:opacity 0.22s ease;
	width:100%;
}

.album_card_cover.is_loaded,
.artist_cover_only_cover.is_loaded{
	opacity:1;
}

.album_card_meta{
	background:linear-gradient(to top,rgba(0,0,0,0.86),rgba(0,0,0,0.22) 65%,rgba(0,0,0,0));
	inset:auto 0 0 0;
	padding:0.875rem;
	position:absolute;
}

.album_card_artist{
	font-size:0.8125rem;
	font-weight:900;
	letter-spacing:0.02em;
	overflow:hidden;
	text-overflow:ellipsis;
	text-shadow:var(--text_shadow_edge);
	white-space:nowrap;
}

.album_card_title{
	color:rgba(var(--muted),0.95);
	font-size:0.75rem;
	margin-top:0.125rem;
	overflow:hidden;
	text-overflow:ellipsis;
	text-shadow:var(--text_shadow_edge);
	white-space:nowrap;
}

.album_card_cover_shell::after,
.album_detail_cover_shell::after{
	animation:shimmer 1.25s linear infinite;
	background:linear-gradient(90deg,rgba(255,255,255,0.00),rgba(255,255,255,0.08),rgba(255,255,255,0.00));
	content:"";
	inset:0;
	opacity:0.55;
	pointer-events:none;
	position:absolute;
	transform:translateX(-60%);
}

.album_card_cover_shell.has_loaded::after,
.album_detail_cover_shell.has_loaded::after{
	animation:none;
	opacity:0;
}

@keyframes shimmer{
	0%{transform:translateX(-60%);}
	100%{transform:translateX(60%);}
}

.album_track_left{
	align-items:center;
	display:flex;
	gap:0.75rem;
}

.album_meta_pills{
	display:flex;
	gap:0.5rem;
	margin-top:0.5rem;
}

.album_pill{
	background:rgba(0,0,0,0.28);
	border:0.0625rem solid rgba(var(--line),0.12);
	border-radius:var(--pill_r);
	color:rgba(var(--muted),0.92);
	display:inline-flex;
	font-family:var(--mono);
	font-size:0.6875rem;
	letter-spacing:0.02em;
	padding:0.1875rem 0.5rem;
	white-space:nowrap;
}

.album_pill_top40{
	background:rgba(255,0,0,0.18);
	border:0.0625rem solid rgba(255,0,0,0.55);
	color:rgba(255,255,255,0.95);
	font-weight:950;
}

.album_pill_badge_top40{
	align-items:center;
	background:#ff0000;
	border-radius:62.4375rem;
	color:#ffffff;
	display:inline-flex;
	font-family:var(--mono);
	font-size:0.6875rem;
	font-weight:950;
	height:1.25rem;
	justify-content:center;
	letter-spacing:0.02em;
	min-width:1.25rem;
	padding:0 0.375rem;
}

.album_pill_year_wrap{
	align-items:center;
	display:inline-flex;
	gap:0.375rem;
}

:root.has_spotify_theme .album_pill_year{
	border-color:var(--spotify_theme_color);
}

.album_pill_explicit{
	color:rgba(var(--text),0.92);
	font-weight:800;
}

.album_track_pills{
	align-items:center;
	display:inline-flex;
	gap:0.375rem;
}

.album_sticky_bar{
	backdrop-filter:blur(0.5rem);
	background:rgba(0,0,0,0.72);
	border-bottom:0.0625rem solid rgba(255,255,255,0.08);
	display:block;
	left:0;
	position:fixed;
	right:0;
	top:var(--header_h,4.5rem);
	transform:translateY(0);
	z-index:60;
}

.album_sticky_bar.is_hidden{
	display:none;
}

.album_sticky_inner{
	align-items:center;
	display:flex;
	gap:1rem;
	justify-content:space-between;
	margin:0 auto;
	max-width:var(--max);
	padding:0.5rem var(--page_pad_x);
}

.album_sticky_left{
	align-items:center;
	display:flex;
	flex:1 1 auto;
	gap:0.75rem;
	min-width:0;
}

.album_sticky_thumb_shell{
	border-radius:0.375rem;
	flex:0 0 auto;
	height:2.25rem;
	overflow:hidden;
	width:2.25rem;
}

.album_sticky_thumb{
	display:block;
	height:100%;
	object-fit:cover;
	width:100%;
}

.album_sticky_meta{
	min-width:0;
}

.album_sticky_artist{
	font-size:0.8125rem;
	opacity:0.75;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}

.album_sticky_title{
	font-size:0.9375rem;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}

.album_sticky_actions{
	align-items:center;
	display:flex;
	flex:0 0 auto;
	gap:0.5rem;
}

.album_nav_btn{
	border-radius:50%;
	flex:0 0 auto;
	min-height:2.75rem;
	min-width:2.75rem;
}

@media (max-width:45rem){
	.album_sticky_inner{
		padding:0.5rem var(--page_pad_x_sm);
	}
}

@media (prefers-reduced-motion:reduce){
	*{
		animation:none !important;
		scroll-behavior:auto !important;
		transition:none !important;
	}
}