/* color theme */
:root {
  --gray-50: #f9fafb;
  --gray-100: #f3f4f6;
  --gray-200: #e5e7eb;
  --gray-300: #d1d5db;
  --gray-400: #9ca3af;
  --gray-500: #6b7280;
  --gray-600: #4b5563;
  --gray-700: #374151;
  --gray-800: #1f2937;
  --gray-900: #111827;
  --text: var(--gray-900);
  --text-secondary: var(--gray-700);
  --text-hint: var(--gray-500);
  --background: var(--gray-50);
  --background-secondary: var(--gray-200);
  --border: var(--gray-100);
  --link: #0ea5e9;
  --visited: #ec4899;
}

@media (prefers-color-scheme: dark) {
  :root {
    --text: var(--gray-50);
    --text-secondary: var(--gray-200);
    --text-hint: var(--gray-400);
    --background: var(--gray-900);
    --background-secondary: var(--gray-800);
    --border: var(--gray-800);
    color-scheme: dark;
  }
}

/* fluid font-size */
@media screen and (min-width: 320px) {
  html {
    font-size: calc(16px + 4 * ((100vw - 320px) / 680));
  }
}
@media screen and (min-width: 1000px) {
  html {
    font-size: 20px;
  }
}

/* Prevent scroll bar causing page shift */
@media screen and (min-width: 960px) {
  html {
    margin-left: calc(100vw - 100%);
    margin-right: 0;
  }
}

/* base layout and base styling*/
html {
  height: 100%;
  line-height: 1.5;
  font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,
    sans-serif, Apple Color Emoji, Segoe UI Emoji;
  background-color: var(--background);
  color: var(--text);
}

* {
  text-decoration: none;
  border-radius: 4px;
  margin: 0;
}

body {
  height: 100%;
  margin: 0 auto;
  max-width: 960px;
  display: flex;
  flex-direction: column;
}

main {
  flex: 1;
  padding: 0 1rem;
}

header,
footer {
  padding: 1rem;
}

h1 {
  font-size: 1.5rem;
  margin-top: 1.5rem;
}
h2 {
  font-size: 1.4rem;
  margin-top: 1.4rem;
}
h3 {
  font-size: 1.3rem;
  margin-top: 1.3rem;
}
h4 {
  font-size: 1.2rem;
  margin-top: 1.2rem;
}

h1,
h2,
h3,
h4,
p,
pre {
  margin-bottom: 1rem;
}
/* components styling */
body > header {
  font-size: 2rem;
  font-weight: bold;
  background: linear-gradient(45deg, #ef4444, #a855f7);
  background-clip: text;
  -webkit-background-clip: text;
  -moz-background-clip: text;
  -moz-text-fill-color: transparent;
  -webkit-text-fill-color: transparent;
}
body > header > a:hover {
  text-decoration: none;
}

footer {
  margin-left: auto;
  font-size: 0.8rem;
  color: var(--text-secondary);
}

a:hover {
  text-decoration: underline;
}
a:link {
  color: var(--link);
}
a:visited {
  color: var(--visited);
}

pre {
  overflow-x: auto;
  background-color: var(--background-secondary);
  padding: 1rem;
}

pre > code {
  padding: 0;
  margin: 0;
}

code {
  background-color: var(--background-secondary);
  padding: 0 0.25rem;
  margin: 0 0.25rem;
  font-family: monospace, monospace;
  font-size: 0.8rem;
}

img {
  height: auto;
  width: 100%;
}

ul,
ol {
  padding-left: 1.1rem;
}

time {
  font-size: 0.8rem;
  color: var(--text-hint);
}

/* home page's note list's header */
nav > article > h1 {
  margin: 0;
}
nav > article {
  margin: 0 0 1rem 0;
}

/* note page's header's */
article > header > h1 {
  margin: 0;
}
article > header {
  padding: 0;
}
