body { font-family: "Source Sans Pro", "Fira Sans", Roboto, sans-serif; line-height: 1.2; background: #fff5f0; margin: 0; padding: 2vmin; padding-bottom: 0; box-sizing: border-box; min-height: 100vh; } a { color: #1d125f; } a:visited { color: #48122d; } a:hover { text-decoration: none; } body { display: grid; grid-template-columns: auto; grid-template-rows: auto auto auto 1fr; grid-template-areas: "header" "main" "social" "footer"; align-items: start; } header { grid-area: header; } main { grid-area: main; } .blog main { justify-self: center; } #social { grid-area: social; align-self: start; } footer { grid-area: footer; align-self: end; } @media (min-width:900px) or ((min-aspect-ratio:1/1) and (min-width:300px)) { body { grid-template-columns: 27vmin 2fr; grid-template-rows: auto 1fr auto; grid-template-areas: "header main" "social main" "footer footer"; gap: 1em 3em; } } @media (min-width:900px) { body { padding: 2em 2em 0; } body:not(.blog) main { font-size: 150%; margin-left: 4em; } } @media (min-width:1500px) { body { padding: 4em 4em 0; grid-template-columns: 250px 1fr; gap: 1em 4em; } body:not(.blog) main { display: flex; margin-left: 6em; } body:not(.blog) main > * { margin-right: 4em; flex-grow: 1; } } .wordmark { /* Font size determines the size of the midgard word mark */ line-height: 1; font-family: "Roboto Slab", serif; font-weight: 300; color: black; text-decoration: none; text-align: left; display: inline-block; width: 3.37em; } .wordmark span { display: block; } .wordmark span:last-child { text-align: right; } .wordmark span:last-child:before { content: " "; display: block; width: 3em; height: 1px; border-bottom: 0.055em solid black; margin-top: 0.04em; margin-bottom: -0.17em; } a:hover .wordmark span:first-child, a.wordmark:hover span:first-child { color: #a67b96; } a:hover .wordmark span:last-child, a.wordmark:hover span:last-child { color: #c28b88; } a:hover .wordmark span:last-child:before, a.wordmark:hover span:last-child:before { border-bottom-color: #e0c3d9; } header img { width: 25vmin; height: 25vmin; display: inline-block; } .sitename { margin: 0; margin-left: 0.3em; display: inline-block; font-size: 12vmin; } header img, .sitename { vertical-align: middle; } @media (min-width:900px) or ((min-aspect-ratio:1/1) and (min-width:300px)) { header img { width: 27vmin; height: 27vmin; display: block; } .sitename { margin: 0.3em 0 0 0; display: block; font-size: 8vmin; } } @media (min-width:1500px) { header img { width: 250px; height: 250px; display: block; } .sitename { margin: 0.3em 0 0 0; display: block; font-size: 56.5pt; } } .links ul { padding: 0; } .links li { list-style: none; margin: 1.5em 0; } .links li a { display: block; text-decoration: none; padding: 0.2em 0.3em; margin: 0 -0.3em; } .links li a:hover, li a:focus { background-color: #fffaf7; } .links a .summary { font-size: 75%; color: #333; margin-top: 0.3em; } .links a .title { text-decoration: underline; } .blog main { line-height: 1.5; max-width: 50em; } @media (min-width:900px) or ((min-aspect-ratio:1/1) and (min-width:300px)) { .blog main { line-height: 1.7; } } #social { font-size: 75%; } #social a { display: inline-block; width: 4em; text-align: center; vertical-align: top; text-decoration: none; color: #000; opacity: 0.5; } #social a:hover { opacity: 1; } #social a:before { content: " "; width: 3em; height: 3em; display: inline-block; background-size: contain; } #social a:hover:before { background-color: #fff; } #rss-link:before { background-image: url(rss.svg); } #irc-link:before { background-image: url(irc.svg); } @media (min-width:900px) or ((min-aspect-ratio:1/1) and (min-width:300px)) { #social { font-size: 2vmin; margin-top: 5em; } } @media (min-width:1500px) { #social { font-size: 100%; } } footer { text-align: center; background-color: #dbc7d7; padding: 0.3em; }