/* Base Styles - Typography and Resets */

/* CSS Reset */
html {
  box-sizing: border-box;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
}

*, :after, :before {
  box-sizing: inherit;
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  margin: 10px 0;
  letter-spacing: -0.01em;
}

h1 { font-size: 36px; }
h2 { font-size: 30px; }
h3 { font-size: 24px; }
h4 { font-size: 20px; }
h5 { font-size: 18px; }
h6 { font-size: 16px; }

p {
  font-weight: 400;
  line-height: 1.7;
  margin-bottom: 1em;
}

b, strong {
  font-weight: 600;
}

em, i {
  font-style: italic;
  font-weight: inherit;
}

/* Font Size Utilities */
.large { font-size: 18px !important; }
.xlarge { font-size: 24px !important; }
.xxlarge { font-size: 36px !important; }

/* Links */
a {
  color: inherit;
  background-color: transparent;
}

a:active, a:hover {
  outline-width: 0;
}

/* Lists */
.ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
  box-shadow: 0 2px 8px 0 rgba(0,0,0,.1);
  transition: box-shadow .3s ease;
}

.ul li {
  padding: 8px 16px;
  border-bottom: 1px solid #ddd;
}

.ul li:last-child {
  border-bottom: none;
}

.ul:hover {
  box-shadow: 0 4px 12px 0 rgba(0,0,0,.15);
}

/* Horizontal Rule */
hr {
  border: 0;
  border-top: 1px solid #eee;
  margin: 20px 0;
}

/* Images */
.image, img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  transition: box-shadow .3s ease;
}

.image:hover, img:hover {
  box-shadow: 0 4px 12px 0 rgba(0,0,0,.15);
}

.half img {
  margin-bottom: -6px;
  margin-top: 16px;
  opacity: 0.8;
  cursor: pointer;
}

.half img:hover {
  opacity: 1;
}

/* Form Elements */
button, input, optgroup, select, textarea {
  font: inherit;
  margin: 0;
}

button, input {
  overflow: visible;
}

button, select {
  text-transform: none;
}

[type=button], [type=reset], [type=submit], button {
  -webkit-appearance: button;
}

textarea {
  overflow: auto;
}

[type=checkbox], [type=radio] {
  padding: 0;
}

/* Code */
code, kbd, pre, samp {
  font-family: "JetBrains Mono", "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;
  font-size: 1em;
}

/* Misc Elements */
article, aside, details, figcaption, figure, footer, header, main, menu, nav, section {
  display: block;
}

figure {
  margin: 1em 40px;
}

fieldset {
  border: 1px solid silver;
  margin: 0 2px;
  padding: .35em .625em .75em;
}

legend {
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}

mark {
  background: #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; }
