html {
    width:100%;
    height:100%;
    min-width:100%;
    min-height:100%;
    margin:0;
    padding:0;
    overflow-y:scroll;
    overflow-x:hidden;
    box-sizing: border-box;
}

body {
    width:100%;
    height:100%;
    min-height:100%;
    min-width:100%;
    margin:0;
    padding:0;
    box-sizing: border-box;
}

a {
    color:#E0E0E0;
}

div {
    box-sizing: border-box; /* This took forever to find why my flex box was too big. Div borders in containers! */
}

img {
    /* Fixes image behaving like text with kerning space for low-hanging characters. */
    /* https://stackoverflow.com/questions/10844205/html-5-strange-img-always-adds-3px-margin-at-bottom */
    vertical-align:sub;
    /* Image dragging */
    user-drag: none; 
    user-select: none;
    -moz-user-select: none;
    -webkit-user-drag: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    /* Contain */
    height:auto;
    max-width:100%;
    max-height:100%;
    object-fit:contain; /* Keep aspect */
}

.O_Accel {
    transform: translateZ(0); /* 3D acceleration for animations */
}

/* Force height so element exists. */
.O_HaveHeight {
    height:1px;
}

/* Misc. Overrides */
.O_Block {
    display:block!important;
}

.O_Inline {
    display:inline;
}

.O_Baseline {
    vertical-align: baseline;
}

.O_Inline-block {
    display:inline-block;
}

.O_Relative {
    position:relative;
}

.O_Overflow {
    overflow:hidden;
}

.O_OverflowContain {
    overflow:auto;
}

.O_Hidden {
    display:none;
}

.O_Inside {
    height:100%;
    width:100%;
}

.O_Pointer {
    cursor:pointer;
}