body {
    position: relative;
}

#courseIndex {
    min-height: 100vh;
    padding-bottom: 2rem;

    --indexHighlightTransitionTime: calc(.2s * var(--durationScalar));
}

/* Summary Styles */
details summary {
    color: var(--interactive);
    list-style: none;
    transition: all var(--indexHighlightTransitionTime) ease-in-out;
    cursor: default;
}

/* Course Styles */

details.course {
    border-bottom: solid var(--border_color) var(--border_weight);
    transition: all var(--indexHighlightTransitionTime) ease-in-out;
    padding: 1em 2em;
}

details.course>summary,
details.unit>summary {
    border-bottom: solid var(--border_weight);
    /* margin-bottom: calc(-1* var(--border_weight)); */

    border-color: transparent;
    transition: all var(--indexHighlightTransitionTime) ease-in-out;
}

/* Unit Styles */
details.unit summary {
    color: var(--interactive);
    transition: all var(--indexHighlightTransitionTime) ease-in-out;
}

/* Link Styles */
a.contentTopic {
    text-decoration: none !important;
}

/* Module and LI Styles */
li {
    padding-top: .5rem;
    margin-left: 3em;
    color: var(--interactive);
}

a.contentTopic {
    border-bottom: solid transparent var(--border_weight);
    margin-bottom: calc(var(--border_weight));
    transition: all var(--indexHighlightTransitionTime) ease-in-out;
}

/* Module Description */
.moduleDescription {
    display: block;
    max-width: 75ch;
    margin-left: 1em;
    text-wrap-style: balance;
}

/* Hover and Open States */
details.course[open]>summary,
details:hover>summary {
    color: var(--interacting);
    transition: all var(--indexHighlightTransitionTime) ease-in-out;
}

details.course:hover,
details.course[open] {
    background-color: var(--extraContrast);
    transition: all var(--indexHighlightTransitionTime) ease-in-out;
}

a:hover {
    color: var(--interacting);
    border-color: var(--border_color);
    transition: all var(--indexHighlightTransitionTime) ease-in-out;
}

details.course summary:hover {
    border-color: var(--border_color);
    transition: all var(--indexHighlightTransitionTime) ease-in-out;
}

details.unit[open]>summary {
    color: var(--interacting);
    transition: all var(--indexHighlightTransitionTime) ease-in-out;
}


/* OBSCURED LINKS */
#obscuredLinks {
    opacity: 0;
    position: absolute;
    bottom: 0;
    right: 1rem;
    transition-property: opacity;
    transition-duration: 1s;
    transition-timing-function: ease-in-out;
    transition-delay: 5s;
}

#obscuredLinks a {
    cursor: default;
}

#obscuredLinks:hover {
    opacity: .8;
}