html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}

.clearfix:after {visibility: hidden; display: block; font-size: 0; content: ''; clear: both; height: 0; }

* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }

.visuallyHidden:not(:focus):not(:active) { position: absolute; width: 1px; height: 1px; margin: -1px;border: 0;padding: 0;white-space: nowrap;clip-path: inset(100%);clip: rect(00 0 0);overflow: hidden;}

html {
    font-size: 62.5%;
    font-family: 'Catamaran', sans-serif;
}

body {
    background: #000000;
    color: #ffffff;
    font-size: 1.8rem;
}

.wrapper {
    width: 95%;
    max-width: 1920px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100vh;
    border-color: #933;
    border-style: solid;
    border-width: 0 2px;
}

.uiContainer {
    display: grid;
    grid-template-columns: 26rem auto;
    grid-template-rows: auto 18rem;
    height: 100vh;
    border-radius: 5px;
}

.displayHolder {
    position: relative;
    grid-column: 2/3;
    grid-row: 1/2;
    overflow: hidden;
    background: black;
}

.display {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    height: 100vmin;
    width: 100vmin;
    max-width: 920px;
    max-height: 920px;
}

.menus {
    position: fixed;
    top: 0;
    right: 0;
    text-align: right;
    padding: 1rem;
}

.menus button {
    border: none;
    color: white;
    background: transparent;
    font-weight: bold;
    font-size: 3rem;
    filter: drop-shadow(0 0 1px white);
    transition: 0.2s;
}

.menus button:hover,
.menus button:focus {
    color: red;
    filter: drop-shadow(0 0 5px red);
}

a {
    color: goldenrod;
    filter: drop-shadow(0 0 0 black);
    transition: 0.2s;
}

a:hover, a:focus {
    color: red;
    filter: drop-shadow(0 0 5px red);
}

.controls {
    grid-row: 1/3;
    grid-column: 1/2;
    padding: 1rem;
    border-color: #933;
    border-style: solid;
    border-width: 0 2px 0 0;
    overflow-y: auto;
}

.controls ul {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.controls ul li {
    margin: 0.5rem 0;
}

.controls button,
.controls select {
    color: inherit;
    background: inherit;
    border: 2px solid goldenrod;
    border-radius: 5px;
    display: inline;
    text-align: center;
    transition: border 0.2s, filter 0.2s;
    filter: drop-shadow(0 0 0 black);
    width: 100%;
}

.controls button:hover,
.controls button:focus,
.controls select:hover,
.controls select:focus
{
    border: 2px solid red;
    filter: drop-shadow(0 0 6px red);
}

.controls select {
    margin: 0.5rem 0;
}

.controls select option {
    color: black;
    background: #ccc;
}

.log {
    grid-row: 2/3;
    grid-column: 2/3;
    border-color: #933;
    border-style: solid;
    border-width: 2px 0 0 0;
    padding: 1rem;
    overflow-y: scroll;
}

.log ol {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.log ol li {
    margin: 0.5rem 0;
}

.log ol li.notice {
    color: yellow;
    font-weight: bold;
}

.modalLayer {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.modal {
    width: 80%;
    max-width: 400px;
    background: black;
    border: 4px solid brown;
    border-radius: 10px;
    text-align: center;
    padding: 2rem;
    max-height: 90vh;
    overflow-y: auto;
}

.modalLayer.hidden {
    display: none;
}

.modal.big {
    max-width: 900px;
}

.modal h2 {
    margin: 0;
}

.modal p {
    margin: 2rem 0;
}

.modal .attribution {
    margin: 0;
}

.modal span {
    display: inline-block;
}

.modal .buttonBox {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.modal button {
    color: inherit;
    background: inherit;
    border: 3px solid goldenrod;
    border-radius: 10px;
    display: inline;
    text-align: center;
    transition: border 0.2s, filter 0.2s;
    filter: drop-shadow(0 0 0 black);
    padding: 0.5rem 1rem;
    margin: 1rem 0 0 0;
}

.modal button:hover,
.modal button:focus
{
    border: 3px solid red;
    filter: drop-shadow(0 0 6px red);
}

.pumpkin-tile {
    background-size: cover;
}

.wall {
    background-color: #933;
    background-image: url(./art/badBricksGray.png);
    background-blend-mode: multiply;
}


.floor {
    background-color: #ffffff;
    background-image: url(./art/badConcrete.png);
    background-blend-mode: multiply;
}

.floor.room {
    background-color: #fc8;
    background-image: url(./art/lolThatFloor.png);
}

.doorClosed {
    background-image: url(./art/doorClosed.png);
    background-blend-mode: normal;
}

.doorOpen {
    background-image: url(./art/doorOpen.png), url(./art/badConcrete.png);
    background-blend-mode: normal;
}

.stairsUp {
    background-image: url(./art/stairsUp.png), url(./art/badConcrete.png);
}

.stairsDown {
    background-image: url(./art/stairsDown.png), url(./art/badConcrete.png);
}

.green {
    background-color: green;
}

.blue {
    background-color: blue;
}

.blue {
    background-color: red;
}

.purple {
    background-color: purple;
}

.yellow {
    background-color: goldenrod;
}

.hideText {
    color: transparent;
}

.unseen {
    filter: grayscale() brightness(0.9);
}

/* Make twemoji's fit */
.display img.emoji {
    display: block;
    height: 1em;
    width: 1em;
    margin: 0 .05em 0 .1em;
    filter: drop-shadow(0 0 3px black);
}

.controls img.emoji {
    height: 1em;
    width: 1em;
    margin: 0 .05em 0 .1em;
    vertical-align: -0.1em;
}

@media(max-width:600px) {
    .wrapper {
        width: 100%;
    }
    body {
        font-size: 1.6rem;
    }
    .controls {
        grid-row: 1/2;
    }
    .log {
        grid-column: 1/3;
    }
    .uiContainer {
        grid-template-columns: 23rem auto;
    }
}

@media(max-width:500px) {
    .wrapper {
        border: none;
    }
    h1 {
        display: none;
    }
    h2 {
        font-size: 1.8rem;
    }
    .uiContainer {
        display: flex;
        flex-direction: column;
    }

    .controls {
        padding: 0 0.5rem;
        border-width: 2px 0;
        flex: 1 1 40%;
    }

    .displayHolder {
        flex-basis: 40%;
    }

    .log {
        flex-basis: 20%;
        flex-shrink: 1;
        border: none;
        min-height: 5rem;
    }
}

@media (max-height:500px) {
    h1 {
        font-size: 2rem;
    }
    h2 {
        font-size: 1.8rem;
    }
    body {
        font-size: 1.6rem;
    }
    .uiContainer {
        grid-template-rows: auto 10rem;
    }
}
