.portalbox {
position: relative;
display: flex;
}
.portalbox-wrapper {
overflow: hidden;
position: relative;
flex: 1;
display: flex;
background-color: var(--portalbox-transparent);
outline: 1px outset var(--portalbox-light);
border-radius: var(--border-radius-small);
box-shadow: var(--template-shadow--small) -1px var(--portalbox-light);
transition-property: box-shadow;
transition-duration: var(--transition-time);
z-index: 1;
}
.portalbox:hover .portalbox-wrapper {
box-shadow: var(--template-shadow--small) -1px var(--portalbox-opaque);
}
.portalbox.rainbow:hover:before {
filter: blur(4px);
}
.portalbox.rainbow:before {
content: '';
position: absolute;
inset: 0;
filter: blur(2px);
transition-property: filter;
transition-duration: var(--transition-time);
z-index: -1;
}
.portalbox.rainbow:after {
content: '';
position: absolute;
inset: 0;
background: var(--color-primal-blur);
backdrop-filter: blur(128px);
border-radius: var(--border-radius-small);
z-index: 0;
}
.portalbox.rainbow .portalbox-wrapper {
background-color: transparent;
outline-color: var(--color-border);
}
.portalbox-role {
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;
width: 128px;
gap: 0.5rem;
padding: 0.5rem 0;
background-color: var(--portalbox-transparent);
border-right: 1px solid var(--portalbox-light);
box-shadow: var(--template-shadow--medium) -1px var(--portalbox-light);
}
.portalbox-image a {
transition-property: filter;
transition-duration: var(--transition-time);
}
.portalbox:active .portalbox-image a {
filter: drop-shadow(0 0 3px var(--portalbox-primary));
transition-duration: 0s;
}
.portalbox-name {
hyphens: auto;
font-weight: bold;
line-height: 1rem;
padding: 0 0.25rem;
}
.portalbox-name a {
color: var(--color-text);
}
.portalbox-name a:before {
content: '';
position: absolute;
inset: 0;
}
.portalbox-desc {
flex: 1;
line-height: 1.1rem;
padding: 0.5rem;
}
.portalbox-desc a {
position: relative;
z-index: 2;
}