﻿* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background-color: white;
  font-family: "Noto Sans", "Noto Sans JP", "Noto Sans TC", sans-serif;
  overflow-x: hidden;
}

div {
  display: none;
}

p, article li {
  line-height: 1.5;
}

header div, main div, section div, article div {
  display: block;
}

h1, h2 {
  text-align: center;
}

.cal {
  margin: 0 auto;
  padding: 20px 10px;
}

.cal table, .cal th, .cal td{
  width: 100%;
  border: 1px solid black;
}

.cal table{
  border-collapse: collapse;
}

.cal th, .cal td{
  width: 30%;
  padding: 5px;
}

.cal th:first-child, .cal td:first-child {
  width: 10%;
  min-width: 90px;
  text-align: center;
  background-color: lightgray;
}

.cal th:nth-child(2), .cal td:nth-child(2) {
  background-color: lightyellow;
}

.cal th:nth-child(3), .cal td:nth-child(3) {
  background-color: seashell;
}

.cal th:nth-child(4), .cal td:nth-child(4) {
  background-color: aliceblue;
}

.cal tr:hover td:first-child {
  background-color: gainsboro;
}

.cal tr:hover td:nth-child(2) {
  background-color: ivory;
}

.cal tr:hover td:nth-child(3) {
  background-color: #fffcfc;
}

.cal tr:hover td:nth-child(4) {
  background-color: #fafcff;
}

.cal .month th {
  background-color: black;
  color: white;
}

@keyframes rainbow {
  0%   {color: red;}
  20%  {color: gold;}
  40%  {color: green;}
  60%  {color: blue;}
  80%  {color: purple;}
  100% {color: red;}
}

.rainbow {
  animation-name: rainbow;
  animation-duration: 1s;
  animation-iteration-count: infinite;
}