* {
    margin: 0;
    padding: 0;
}

a,
a:hover,
a:focus,
a:active {
    text-decoration: underline;
}

a {
    color: blue;
}

a:hover,
a:focus,
a:active {
    color: royalblue;
}

html,
body {
    font-family: sans-serif;
    text-align: center;
    background: #fcfcfc;
}

header,
aside,
footer,
article p {
    padding-left: 2%;
    padding-right: 2%;
}

header,
main,
aside,
footer {
    padding-top: 1em;
}

header {
    background: gold;
    padding-bottom: 1em;
}

header h1 {
    font: 800 1.1em sans-serif;
    text-transform: uppercase;
}

header h1 a,
header h1 a:hover,
header h1 a:focus,
header h1 a:active {
    text-decoration: none;
    border: 2px solid blue;
    display: inline-block;
    padding: 0 0.3em;
}

aside,
footer,
p {
    max-width: 760px;
    margin: 0 auto;
}

footer {
    padding-bottom: 10%;
}

p {
    padding-top: 1em;
}

footer p {
    padding-top: 5em;
}

hr {
    border: 0;
    border-bottom: 1px solid #ccc;
    margin: 1em 0 2em 0;
}

#soup {
    margin: 0 auto;
    padding: 2% 0;
}

#pelialue {
    min-height: 55em;
    text-align: left;
    margin: 1% auto;
    overflow: hidden;
}

div#game-options {
    background: #fff;
    background: linear-gradient(to bottom,#eee,#fff);
    padding: 1em;
    box-shadow: 0 0 1em #ccc;
    text-align: center;
}

div#game-options ul {
    display: inline-block;
    margin: 0 auto;
}

div#game-options ul li { 
    display: inline-block;
    list-style: none;
    line-height: 200%;
    margin-left: -4px;
}

div#game-options ul li b {
    margin-right: 1em;
}

#html5-wordsearch-timer,
#html5-wordsearch-score {
    cursor: default;
}

#html5-wordsearch-score {
    display: block;
    text-align: center;
}

#modal-window #save-score-form .button {
    float: none;
    clear: both;
}

#save-score-input {
    padding: 0.5em;
    margin: 0 0.5em;
}

.loading .html5-wordsearch,
.loading div#game-options {
    visibility: hidden;
}

.wordsearch {
    position: relative;
    background: #eee;
}

.html5-wordsearch canvas,
.html5-wordsearch ul,
.html5-wordsearch div {
    font: 1.2em sans-serif;
}

.html5-wordsearch {
    position: relative;
    transition: opacity .5s linear;
}

.html5-wordsearch canvas {
    cursor: pointer;
    position: absolute;
    top: 0;
    left: 0;
}

.html5-wordsearch canvas.grid {
    background: #fff;
}

.html5-wordsearch div.description {
    position: absolute;
    font-weight: bold;
    margin: 0.5em;
}

.html5-wordsearch .description span.word {
    background: green;
    color: #fff;
    padding: 0.2em 0.4em;
    border-radius: 3px;
}

.html5-wordsearch .list {
    background: #fff;
    position: absolute;
    top: 0;
    right: 0;
    width: 20em;
    overflow: auto;
}

.html5-wordsearch .list li {
    position: relative;
    padding: 0.5em 1em;
    line-height: 200%;
    color: #333;
    border-bottom: 1px solid #eee;
}

.html5-wordsearch .list li a {
    outline: none;
    color: #676f7f;
    padding: 0.2em 0.4em;
    background: #f1f0f0;
    border-radius: 3px;
    text-decoration: none;
    text-shadow: 0 1px #fff;
}

.html5-wordsearch .list li.crossed {
    background-repeat: no-repeat;
    background-position: 0.5em 1em;
    padding-left: 2em;
}

.html5-wordsearch .list li.crossed.bad {
    background-image: url('bad-icon.png');
}

.html5-wordsearch .list li.crossed.good {
    background-image: url('check-icon.png');
}

.crossed {
    text-decoration: line-through;
    cursor: default;
}

.crossed a {
    display: none;
}

div#modal-window.help li {
    list-style: circle;
    margin: 1em;
}

div#modal-window.help #puzzle-description.hide,
caption {
    display: none;
}

div#modal-window.help #puzzle-description {
    background: #efefef;
    color: #555;
    font-size: 1.1em;
    font-weight: bold;
    text-align: left;
    padding: 1em;
    border-radius: 5px;
}

a.button,
b.button {
    color: #6e6e6e;
    font: bold 1em sans-serif;
    outline: none;
    text-decoration: none;
    padding: 0.5em 1em;
    position: relative;
    display: inline-block;
    zoom: 1;
    text-shadow: 0 1px 0 #fff;
    transition: border-color .218s;
    background: #f3f3f3;
    background: linear-gradient(to bottom,#F5F5F5,#F1F1F1);
    border: solid 1px #dcdcdc;
    border-radius: 2px;
    margin-right: 10px;
}

a.button:hover {
    color: #333;
    border-color: #999;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

a.button:active {
    color: #000;
    border-color: #444;
}

a.left {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    margin: 0;
}

a.middle {
    border-radius: 0;
    border-left: solid 1px #f3f3f3;
    margin: 0;
    border-left: solid 1px rgba(255, 255, 255, 0);
}

a.middle:hover,
a.right:hover {
    border-left: solid 1px #999
}

a.right {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-left: solid 1px #f3f3f3;
    border-left: solid 1px rgba(255, 255, 255, 0);
}

a.help {
    background: #f3f3f3 url('help.png') 0.5em 50% no-repeat;
    padding-left: 2em;
}

mark {
    background: lightpink;
    display: inline-block;
    padding: 0.2em 0.3em;
}

nav ul,
nav li,
nav a {
    list-style: none;
    display: inline-block;
}

nav a {
    padding: 0.5em 1em;
    border: 3px solid blue;
    color: blue;
    margin: 0 0.5em 0.5em 0.5em;
}

#avattu a,
nav a:hover,
nav a:focus,
nav a:active {
    background: blue;
    color: #fff;
}

nav a,
nav a:hover,
nav a:focus,
nav a:active {
    text-decoration: none;
}

table {
    width: 100%;
    margin-bottom: 2em;
    border-radius: 5px;
    background: #fcfcfc;
    text-align: left;
    border-collapse: collapse;
}

th,
td {
    padding: 0.5em;
}

tr:nth-child(odd) td {
    background: #eee;
}

footer img {
    width: auto;
    height: auto;
    max-width: 100%;
    image-rendering: crisp-edges;
}