:root{
    --tile: 84px;
    --gap: 10px;
    --rowGap: 2px;
    --inset: 4px;
    --borderW: 2px;
    --borderC: white;
    --anchorH: 64px;
    --shrineBodyH: clamp(220px, 32vh, 380px);
    --rowH: clamp(230px, 34vh, 380px);
    --rowTextW: clamp(220px, 32vw, 520px);
    --cellPad: calc(var(--inset) + var(--borderW));
}

*, *::before, *::after{ box-sizing: border-box; }

a, a:visited{ color: inherit; text-decoration: none; }
a:hover, a:focus{ color: inherit; text-decoration: underline; }
a:active{ color: inherit; }

html, body{ height: 100%; margin: 0; }

body{
    padding: 40px;
    background-image: url("/images/floor.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: repeat-y;
    background-color: black;
    color: white;
    font-family: Verdana, serif;
}

.anattaFont{
    width: 20%;
    height: auto;
}

.musicTable{
    width: 90vw;
    height: 90vh;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: var(--gap);
}

.musicTable tr:first-child{ height: var(--anchorH); }
.musicTable tr:last-child{ height: calc(90vh - var(--anchorH) - 3 * var(--gap)); }

.siteTH{
    position: relative;
    padding: 0;
    text-align: center;
    vertical-align: middle;
    overflow: hidden;
    background: transparent;
    border: 0;
}

.siteTH::after{
    content: "";
    position: absolute;
    inset: var(--inset);
    border: var(--borderW) solid var(--borderC);
    pointer-events: none;
}

.siteAnchors{ vertical-align: middle; }

.anchorNav{
    height: calc(100% - 2 * var(--cellPad));
    margin: var(--cellPad);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
}

.anchorLink{
    border: 2px solid white;
    padding: 10px 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
}

.anchorLink:hover{
    background: rgba(255, 255, 255, 0.12);
    text-decoration: none;
}

.musicMain{ vertical-align: top; }

.musicMainInner{
    width: calc(100% - 2 * var(--cellPad));
    height: calc(100% - 2 * var(--cellPad));
    margin: var(--cellPad);
    overflow: hidden;
    padding: 14px;
    text-align: left;
}

.musicMainInner :is(p,h1,h2,h3,h4,h5,h6){
    margin: 0;
    overflow-wrap: anywhere;
}

.rowsStack{
    display: flex;
    flex-direction: column;
    gap: var(--gap);
}

.musicMainInner .rowsStack .rowBox{
    position: relative;
    height: var(--rowH);
    overflow: visible;
}

.musicMainInner .rowsStack .rowBox::after{
    content: "";
    position: absolute;
    inset: var(--inset);
    border: var(--borderW) solid var(--borderC);
    pointer-events: none;
}

.musicMainInner .rowsStack .rowScroll{
    height: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-gutter: stable;
    display: flex;
}

.musicMainInner .rowsStack .rowTable{
    width: max-content;
    height: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.musicMainInner .rowsStack .rowTable > tbody{
    display: flex;
    height: 100%;
}

.musicMainInner .rowsStack .rowTable > tbody > tr{
    display: flex;
    gap: var(--rowGap);
    height: 100%;
    align-items: stretch;
}

.musicMainInner .rowsStack .rowCell{
    position: relative;
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex: 0 0 auto;
    height: 100%;
    overflow: hidden;
    padding: var(--cellPad);
    min-width: 0;
}

.musicMainInner .rowsStack .rowCell.rowText {
    height: 100%;
    width: var(--rowTextW);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 10px 6px;
    overflow-y: auto;
}

.musicMainInner .rowsStack .rowCell.rowMedia{
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.musicMainInner .rowsStack .rowCell.rowMedia .rowInner{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.musicMainInner .rowsStack .rowCell.rowMedia .rowImg {
    max-height: calc(var(--rowH) - 2 * var(--cellPad) - 9px);
    max-width: calc(100% - 9px);
    width: auto;
    object-fit: contain;
}