body {
    font: 22px serif;
}

p {
    max-width:30em;
    margin:1em auto;
}

svg {
    user-select:none;
    -webkit-user-select: none;
    -webkit-tap-highlight-color:  transparent;
}

.flexColumn {
    display:flex;
    flex-direction:column;
    align-items:center;
}


.flexRow {
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
}


footer {
    text-align:center;
    margin:3em;
}

rect, path {
    stroke-width:1px;
    stroke:#000;
    fill:none;
}

text {
    font-size:20px;
    stroke-width:10px;
    text-orientation: upright;
}

text.vertical {
    writing-mode: tb;
}

.rule path {
    stroke:#888;
}

#cursor rect {
    stroke-width:10px;
    stroke:#ccc;
    fill:none;
    opacity:.5;
}

#cursor path {
    stroke:#ccc;
    stroke-width:10px;
}

path#hairline {
    stroke:#f00;
    stroke-width:1px;
    stroke-dasharray:3;
}
