html, body{
    font-size: 15pt;
}
body{
    background-color: #292929;
    color: floralwhite;
    padding: 0;
    margin: 0;
}

div.contents{
    width: min(80vw, 42em);
    box-sizing: border-box;
    margin: 0 auto;
    padding: 0;
}

h1{
    margin-top: 1.5em;
    box-sizing: border-box;
    width: 100%;
    background-color: black;
    padding: 1em 0;
    text-align: center;
}

h2{
    margin-top: 1.25em;
    box-sizing: border-box;
    padding: 0.6em 0 0.5em 0;
    text-align: center;
    width: 100%;
    background-color: rgba(0, 0, 0, 0.2);
    border-bottom: 0.1em solid rgba(128, 128, 128, 0.55);
}

ul.guideline{
    list-style-type: disc;
    padding: 0;
    margin: 2em auto 7em auto;
    width: 80%;
}
ul.guideline > li{
    margin: 1em 0;
}

ul.routine-list{
    list-style-type: none;
    margin: 0;
    padding: 0;
}

ul.routine-list > li{
    margin: 3.5em 0;
    padding: 1.7em;
    box-sizing: border-box;
    background-color: rgba(0, 0, 0, 0.1);
    border: 0.1em solid rgba(128, 128, 128, 0.25);
    border-radius: 2em;
}

.routine > .headline{
    --background-color-opacity: 0.3;
    border-radius: 0.5em;
    box-sizing: border-box;
    padding: 1.15em 0 0.65em 0;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: copy;
    border-width: 2px;
    border-color: transparent;
}
.routine[data-related-color="黒"] > .headline{
    background-color: rgba(84, 84, 84, var(--background-color-opacity));
}
.routine[data-related-color="赤"] > .headline{
    background-color: rgba(139, 0, 0, var(--background-color-opacity));
}
.routine[data-related-color="黄"] > .headline{
    background-color: rgba(139, 123, 0, var(--background-color-opacity));
}
.routine[data-related-color="青"] > .headline{
    background-color: rgba(0, 53, 139, var(--background-color-opacity));
}
.routine[data-related-color="白"] > .headline{
    background-color: rgba(234, 234, 234, var(--background-color-opacity));
}
.routine[data-related-color="紫"] > .headline{
    background-color: rgba(95, 0, 139, var(--background-color-opacity));
}
.routine[data-related-color="淡赤"] > .headline{
    background-color: rgba(139, 0, 97, var(--background-color-opacity));
}
.routine[data-related-color="淡緑"] > .headline{
    background-color: rgba(0, 139, 44, var(--background-color-opacity));
}
.routine[data-related-color="淡青"] > .headline{
    background-color: rgba(0, 86, 139, var(--background-color-opacity));
}
.routine[data-related-color="琥珀"] > .headline{
    background-color: rgba(139, 81, 0, var(--background-color-opacity));
}
.routine[data-related-color="硝子"] > .headline{
    background-color: transparent;
    border: 2px solid rgba(206, 206, 206, var(--background-color-opacity));
}
.routine > .headline:hover{
    --background-color-opacity: 0.5;
}
.routine > .headline > .category{
    margin-right: 1em;
    white-space: nowrap;
}
.routine > .headline > .name{
    font-size: 150%;
    border-bottom: 0.08em solid rgba(255, 255, 255, 0.1);
    letter-spacing: 0.1em;
    white-space: nowrap;
}
.routine > .headline > .name rt{
    --space: -0.25em;
    margin-bottom: var(--space);
    transform: translateY(var(--space));
}

.routine > .relation{
    display: block;
    box-sizing: border-box;
    width: 100%;
    text-align: right;
    margin: 0.5em 0 1.2em 0;
    white-space: nowrap;
}

.routine > .effect > .headline{
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 0.2em 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 120%;
    text-align: center;
}

.routine > .effect{
    cursor: copy;
}
.routine > .effect:hover{
    background-color: rgba(255, 255, 255, 0.05);
}
.routine > .effect > p{
    margin: 0;
    line-height: 195%;
    padding: 1em;
}
.routine > .effect > p::before{
    content: "";
    display: inline-block;
    width: 1em;
}
.routine > .effect > p:first-of-type{
    margin-top: 0.5em;
}
.routine > .effect > p:last-child{
    margin-bottom: 0;
}
.routine > .effect > p.inner-data{
    border: 1px dashed rgba(255, 255, 255, 0.2);
    border-radius: 1em;
    margin-top: 0.65em;
}
.routine > .effect > p.inner-data::before{
    display: none;
}
.routine > .effect > p.inner-data > .name{
    display: inline-block;
    background-color: rgba(255, 255, 255, 0.15);
    padding: 0 0.5em;
    margin-right: 0.3em;
    white-space: nowrap;
    border-radius: 1em;
}

.footer{
    display: flex;
    width: 100%;
    margin: 5em 0 0 0;
    height: 5em;
    background-color: rgba(0, 0, 0, 0.3);
    justify-content: flex-end;
    align-items: center;
    padding: 0 2em;
    box-sizing: border-box;
    color: rgba(255, 255, 255, 0.8);
}
