@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Chokokutai&family=Noto+Sans+JP:wght@100;400;500;700;900&family=Noto+Serif+JP:wght@400;700;900&family=Rock+3D&family=Shippori+Mincho+B1:wght@400;500;700;800&family=Shizuru&family=Squada+One&family=Yomogi&family=Yuji+Boku&family=Zen+Kurenaido&display=swap');
* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
html {
    font-size: 62.5%;
    line-height: 1.6;
    color: #111111;
    scroll-behavior: smooth;
    text-align: center;
	height: -webkit-fill-available;
}
@media (max-width: 767px) {
	html {
		font-size: 1.5vw;
	}
}
@media (max-width: 500px) {
	html {
		font-size: 2vw;
	}
}
body {
	min-height: 100vh;
	min-height: 100dvh;
	/* mobile viewport bug fix */
	min-height: -webkit-fill-available;
	font-family: 'Yomogi', cursive;
}
img {
    width: auto;
    border:none;
    vertical-align: top;
}
a {
    text-decoration: none;
    outline: 1px solid transparent;
	cursor: pointer;
}
a:hover {
	opacity: 0.8;
}
.nw {
    white-space: nowrap;
	display: inline-block;
}
.gochic {
	font-family: 'Noto Sans JP', sans-serif;
}
.mincho {
	font-family: 'Hannari', 'Noto Serif JP', serif;
}
.vertical__part {
	text-orientation: upright;
}
.pc {
    display: inline-block;
}
.sp {
    display: none;
}

@media (max-width: 767px) {
    .pc {
        display: none;
    }
    .sp {
        display: inline-block;
    }
}
@media (max-width: 460px) {
}


/*=========================================================
layout
===========================================================*/
.loading {
  position: fixed;
  width: 100%;
  height: 100%;
  background: #ffffff;
  z-index: 9999999;
  text-align:center;
  color:#fff;
}
.loading .loader {
  position: absolute;
  transform: translate(-50%, -50%);
  width:600px;
  height:36px;
  left:50%;
  top:50%;
  margin: 0 auto;
  overflow:visible;
  -webkit-user-select:none;
  -moz-user-select:none;
  -ms-user-select:none;
  user-select:none;
  cursor:default;
}
.loading .loader div {
  position:absolute;
  width:1em;
  height:1.5em;
  opacity:0;
  font-family:Helvetica, Arial, sans-serif;
  animation:move 2s linear infinite;
  -o-animation:move 2s linear infinite;
  -moz-animation:move 2s linear infinite;
  -webkit-animation:move 2s linear infinite;
  transform:rotate(180deg);
  -o-transform:rotate(180deg);
  -moz-transform:rotate(180deg);
  -webkit-transform:rotate(180deg);
  font-family: 'Squada One', cursive;
  font-weight: bold;
  font-size: 3rem;
  color: #000000;
}
.loading .loader div:nth-child(2) {
  animation-delay:0.2s;
  -o-animation-delay:0.2s;
  -moz-animation-delay:0.2s;
  -webkit-animation-delay:0.2s;
}
.loading .loader div:nth-child(3) {
  animation-delay:0.4s;
  -o-animation-delay:0.4s;
  -moz-animation-delay:0.4s;
  -webkit-animation-delay:0.4s;
}
.loading .loader div:nth-child(4) {
  animation-delay:0.6s;
  -o-animation-delay:0.6s;
  -moz-animation-delay:0.6s;
  -webkit-animation-delay:0.6s;
}
.loading .loader div:nth-child(5) {
  animation-delay:0.8s;
  -o-animation-delay:0.8s;
  -moz-animation-delay:0.8s;
  -webkit-animation-delay:0.8s;
}
.loading .loader div:nth-child(6) {
  animation-delay:1s;
  -o-animation-delay:1s;
  -moz-animation-delay:1s;
  -webkit-animation-delay:1s;
}
.loading .loader div:nth-child(7) {
  animation-delay:1.2s;
  -o-animation-delay:1.2s;
  -moz-animation-delay:1.2s;
  -webkit-animation-delay:1.2s;
}
.loading .loader div:nth-child(8) {
  animation-delay:1.4s;
  -o-animation-delay:1.4s;
  -moz-animation-delay:1.4s;
  -webkit-animation-delay:1.4s;
}
.loading .loader div:nth-child(9) {
  animation-delay:1.6s;
  -o-animation-delay:1.6s;
  -moz-animation-delay:1.6s;
  -webkit-animation-delay:1.6s;
}
.loading .loader div:nth-child(10) {
  animation-delay:1.8s;
  -o-animation-delay:1.8s;
  -moz-animation-delay:1.8s;
  -webkit-animation-delay:1.8s;
}
.loading .loader div:nth-child(11) {
  animation-delay:2s;
  -o-animation-delay:2s;
  -moz-animation-delay:2s;
  -webkit-animation-delay:2s;
}
.loading .loader div:nth-child(12) {
  animation-delay:2.2s;
  -o-animation-delay:2.2s;
  -moz-animation-delay:2.2s;
  -webkit-animation-delay:2.2s;
}
.loading .loader div:nth-child(13) {
  animation-delay:2.4s;
  -o-animation-delay:2.4s;
  -moz-animation-delay:2.4s;
  -webkit-animation-delay:2.4s;
}
.loading .loader div:nth-child(14) {
  animation-delay:2.6s;
  -o-animation-delay:2.6s;
  -moz-animation-delay:2.6s;
  -webkit-animation-delay:2.6s;
}
.loading .loader div:nth-child(15) {
  animation-delay:2.8s;
  -o-animation-delay:2.8s;
  -moz-animation-delay:2.8s;
  -webkit-animation-delay:2.8s;
}
@keyframes move {
  0% {
    left:0;
    opacity:0;
  }
  35% {
    left: 41%;
    -moz-transform:rotate(0deg);
    -webkit-transform:rotate(0deg);
    -o-transform:rotate(0deg);
    transform:rotate(0deg);
    opacity:1;
  }
  65% {
    left:59%;
    -moz-transform:rotate(0deg);
    -webkit-transform:rotate(0deg);
    -o-transform:rotate(0deg);
    transform:rotate(0deg);
    opacity:1;
  }
  100% {
    left:100%;
    -moz-transform:rotate(-180deg);
    -webkit-transform:rotate(-180deg);
    -o-transform:rotate(-180deg);
    transform:rotate(-180deg);
    opacity:0;
  }
}

@-moz-keyframes move {
  0% {
    left:0;
    opacity:0;
  }
  35% {
    left:41%;
    -moz-transform:rotate(0deg);
    transform:rotate(0deg);
    opacity:1;
  }
  65% {
    left:59%;
    -moz-transform:rotate(0deg);
    transform:rotate(0deg);
    opacity:1;
  }
  100% {
    left:100%;
    -moz-transform:rotate(-180deg);
    transform:rotate(-180deg);
    opacity:0;
  }
}

@-webkit-keyframes move {
  0% {
    left:0;
    opacity:0;
  }
  35% {
    left:41%;
    -webkit-transform:rotate(0deg);
    transform:rotate(0deg);
    opacity:1;
  }
  65% {
    left:59%;
    -webkit-transform:rotate(0deg);
    transform:rotate(0deg);
    opacity:1;
  }
  100% {
    left:100%;
    -webkit-transform:rotate(-180deg);
    transform:rotate(-180deg);
    opacity:0;
  }
}

@-o-keyframes move {
  0% {
    left:0;
    opacity:0;
  }
  35% {
    left:41%;
    -o-transform:rotate(0deg);
    transform:rotate(0deg);
    opacity:1;
  }
  65% {
    left:59%;
    -o-transform:rotate(0deg);
    transform:rotate(0deg);
    opacity:1;
  }
  100% {
    left:100%;
    -o-transform:rotate(-180deg);
    transform:rotate(-180deg);
    opacity:0;
  }
}

.loadingbg {
  width: calc(100% - 50px);
  height: 100vh;
  box-shadow: 10px 0px 10px -6px rgba(0, 0, 0, 0.5);
  position: fixed;
  top: 0;
  left: 0;
  transform-origin: top;
  transform: scaleY(1);
  z-index: 200;
}
.graph .loadingbg {
	background-color: #ffffff;
  background-image: linear-gradient(90deg, transparent 15px, #dfdfdf 16px), linear-gradient(0deg, transparent 15px, #dfdfdf 16px);
  background-size: 16px 16px;
}
body.appear .loadingbg {
	animation-name:PageAnime;
	animation-duration:1.2s;
	animation-timing-function:ease-in-out;
	animation-fill-mode:forwards;
}
@keyframes PageAnime{
  0% {
    transform:scaleY(1);
  }
  100% {
    transform:scaleY(0);
  }
}









/* レイアウト */
.wrapper {
	width: 100%;
	min-height: 100vh;
	min-height: 100svh;
	position: relative;
	opacity: 0;
	transition: opacity 1.2s;
	background: repeating-radial-gradient( circle at 0% -1200%, rgba(35, 23, 22, 0.3), #231716 3.25%, rgba(35, 23, 22, 0.5) 5% ), repeating-radial-gradient( circle at 0% -1200%, #231716, #231716 0.05%, #331b19 0.1%, #331b19 0.2% );
}
body.appear .wrapper {
	opacity: 1;
  overflow: hidden;
}


.header {
	width: calc(100% - 50px);
	height: auto;
	font-size: 1.6rem;
	padding: 0.5em 1em;
	text-align: left;
	position: fixed;
	z-index: 100;
	background: rgba(255,255,255,0.5);
	transition: all 1s;
	left: 0;
}
.wrapper.nav-open .header {
	left: -100px;
}
.header .toggle-menu {
	width: 2em;
	height: 2em;
	border: none;
	position: absolute;
	top: 0.5em;
	right: 1em;
	text-align: center;
}
.header .toggle-menu span,
.header .toggle-menu span:before,
.header .toggle-menu span:after {
  content: '';
  display: block;
  height: 2px;
  width: 1.5em;
  border-radius: 2px;
  background: #000000;
  transition: 0.3s;
  position: absolute;
}
.header .toggle-menu span:before {
  bottom: 0.5em;
}
.header .toggle-menu span:after {
  top: 0.5em;
}
.wrapper.nav-open .header .toggle-menu span {
  background: transparent;
}
.wrapper.nav-open .header .toggle-menu span::before {
  bottom: 0;
  transform: rotate(45deg);
}
.wrapper.nav-open .header .toggle-menu span::after {
  top: 0;
  transform: rotate(-45deg);
}
.header .logo {
	font-family: 'Squada One', cursive;
	font-weight: bold;
	font-size: 2em;
	line-height: 1;
}
.nav {
	width: 150px;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	text-align: left;
	font-size: 1.6rem;
	padding: 1em 1em 1em 0;
	background:	
	repeating-radial-gradient(
    circle at 0% -1200%,
    rgba(35, 23, 22, 0.3),
    #231716 3.25%,
    rgba(35, 23, 22, 0.5) 5%
	),
	repeating-radial-gradient(
    circle at 0% -1200%,
    #231716,
    #231716 0.05%,
    #331b19 0.1%,
    #331b19 0.2%
	);
}
.nav .menu {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5em 0;
}
.nav .menu li {
	display: inline-block;
	width: 100%;
	transform: rotate(-3deg);
	transition: all 0.3s;
	margin-left: -0.5em;
}
.nav .menu li:nth-of-type(2n){
	transform: rotate(2deg) translateX(-2px);
}
.nav .menu li:nth-of-type(3n){
	transform: rotate(-1deg) translateX(1px);
}
.nav .menu li:hover {
	margin-left: -0.25em;
}
.nav .menu li a {
	display: inline-block;
	width: 100%;
	background: #ffffff;
	border-right: 0.75em solid #fc4b81;
	padding: 0.75em 0.25em 0.75em 0.75em;
	font-weight: bold;
	font-size: 110%;
	line-height: 1.1;
	letter-spacing: 0.2em;
	text-align: center;
}
.nav .menu li:hover a {
	opacity: 1;
}
.nav .menu li:nth-of-type(2n) a {
	border-color: #70e985;
}
.nav .menu li:nth-of-type(3n) a {
	border-color: #329dce;
}
.nav .menu li:nth-of-type(4n) a {
	border-color: #ff8728;
}
.nav .menu li:nth-of-type(5n) a {
	border-color: #daf157;
}
.nav .menu li:nth-of-type(4) a ,
.nav .menu li:nth-of-type(5) a {
	letter-spacing: normal;
}
.container {
	font-size: 1.6rem;
	padding-top: 3em;
	width: calc(100% - 50px);
	min-height: 100vh;
	min-height: 100svh;
	box-shadow: 10px 0px 10px -6px rgba(0, 0, 0, 0.5);
	position: absolute;
	top: 0;
	left: 0;
	transition: all 1s;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content:flex-end;
	z-index: 1;
}
.graph .container {
	background-color: #ffffff;
	background-image:
		linear-gradient(90deg, transparent 15px, #dfdfdf 16px),
		linear-gradient(0deg, transparent 15px, #dfdfdf 16px);
	background-size: 16px 16px;
}
.wrapper.nav-open .container {
	left: -100px;
}

.main {
	width: 100%;
	min-height: calc(100vh - 6em);
	min-height: calc(100svh - 6em);
	font-size: 1.6rem;
	padding: 1em 1em;
	text-align: left;
	position: relative;
}
.footer {
	width: 100%;
	font-size: 1.6rem;
	height: 3em;
	padding: 1em 1em;
	text-align: center;
	mix-blend-mode: difference;
	color: #ffffff;
	z-index: 2;
}
.footer .copy {
	font-weight: bold;
	line-height: 1;
	font-size: 80%;
	position: relative;
	z-index: 10;
}


/* contents */
.conts li.cont {
	width: 100%;
	max-height: calc(100vh - 8em);
	max-height: calc(100svh - 8em);
}
.conts li.cont .ttl {
	font-size: 2em;
	font-weight: bold;
	margin: 0 5vw;
}




/* 付箋 */
.fusen {
	display: block;
	background: #fff7ac;
	padding: 1em 1em;
	width: 20em;
	margin: 1em 1em;
	font-size: 1.6rem;
	font-weight: bold;
	transform: rotate(1deg);
}
.fusen .ttl {
	font-size: 1.25em;
}
.fusen-l {
	aspect-ratio: 1 / 1;
}
.fusen-m {
	aspect-ratio: 3 / 2;
}
.fusen-s {
	aspect-ratio: 3 / 1;
}
.fusen.yellow {
	background: #fff7ac;
}
.fusen.pink {
	background: #fad0da;
}
.fusen.blue {
	background: #b8cce4;
}
.fusen.green {
	background: #cce3cf;
}
.fusen:nth-last-child(2n){
	transform: rotate(-2deg);
}
.fusen:nth-last-child(3n){
	transform: rotate(3deg);
}
.fusen:nth-last-child(4n){
	transform: rotate(-1.5deg);
}


@media (max-width: 767px) {
}
@media (max-width: 460px) {
}















/* indexページ */
#index .header {
	background: transparent;
	padding-top: 4em;
}
#index .header .logo {
	font-size: 10vh;
	text-align: center;
}
#index .container {
	overflow: hidden;
}
#index .container::before {
	content: '';
	display: block;
	background: linear-gradient(135deg, transparent 0%, transparent 72%, #000000 72%, #000000 100%);
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
}/*
#index .footer .copy {
}*/
#index .container .records {
	position: absolute;
	bottom: 14em;
	right: 10px;
	z-index: 10;
}
#index .container .about {
	position: absolute;
	bottom: 7em;
	right: 10px;
	z-index: 10;
}
#index .container .weather {
	position: absolute;
	bottom: 0;
	right: 10px;
	z-index: 10;
}


/* koten */
#koten .kokin {
  font-family: 'Noto Serif JP', serif;
	display: flex;
	flex-direction:column;
  writing-mode: vertical-rl;
  text-orientation: mixed;
}
#koten .kokin .waka {
	padding: 1.5em 1.5em;
	display: flex;
	flex-direction:column;
	gap: 0.5em;
  aspect-ratio: 1 / 4;
	min-height: calc(80vh - 8em);
	min-height: calc(80svh - 8em);
	max-height: calc(100vh - 8em);
	max-height: calc(100svh - 8em);
	/*overflow: hidden;*/
}
#koten .kokin .waka > * {
	position: relative;
	z-index: 1;
}
#koten .kokin .waka .title {
	padding: 1em 0;
}
#koten .kokin .waka .song {
	font-size: 1.25em;
	font-weight: bold;
}
#koten .kokin .waka .author {
	text-align: end;
}



/* 短冊 */
#koten .tanzaku {
	transform: translate(-60%, -50%) rotate(1deg);
	box-shadow: 0px 10px 10px -6px rgba(0, 0, 0, 0.3);
  position: absolute;
  top: 50%;
  left: 50%;
}
#koten .tanzaku .tanzaku-bg {
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(45deg, #3bade3,#9844b7,#44ea76);
    background-image: linear-gradient(45deg, rgb(40, 211, 120), rgb(227, 132, 192), rgb(54, 127, 216));
    background-size: 300% 300%;
    animation: bggradient 8s ease infinite;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}
@keyframes bggradient{
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}





/* 桜を降らせる */
.flower {
  display: block;
  position: absolute;
  opacity: 0;
  z-index: 100;
}
.flower span {
  display: block;
  position: absolute;
  left: 50%;
  bottom: 0;
  transform-origin: center bottom;
  transform: rotate(0deg);
}
.flower span:nth-child(2){
  transform: rotate(72deg);
}
.flower span:nth-child(3){
  transform: rotate(144deg);
}
.flower span:nth-child(4){
  transform: rotate(216deg);
}
.flower span:nth-child(5){
  transform: rotate(288deg);
}


.flower.sakura span {
  width: 40px;
  height: 60px;
  aspect-ratio: 1 / 1.5;
  background: url(../images/sakura.svg);
  background-size: contain;
  transform-origin: center bottom;
  /*background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="40px,60px"><path fill="%23ff000099" stroke="%23000" d="M19.943967208259 10.254l9.7536-9.7539q23.4162 35.1147-9.7538 58.5347-33.17-23.42-9.7538-58.5348z" /></svg>');*/
}
.flower.sakura {
  width: 40px;
  height: 60px;
  transform-origin: bottom right;
  animation: rotate 6s forwards linear infinite, swing 12s forwards linear infinite var(--delay);
}
.flower.sakura.hov {
  animation-duration: 1s, 12s;
}


@keyframes rotate {
  0% {
    transform: scale(var(--scale)) rotate(0deg);
  }
  100% {
    transform: scale(var(--scale)) rotate(360deg);
  }
}
@keyframes swing {
  0% {
    left: var(--left);
    top: var(--top);
    opacity: 0;
  }
  5% {
    opacity: 1;
  }
  25% {
    left: calc(var(--left) + 25%);
  }
  50% {
    left: var(--left);
  }
  75% {
    left: calc(var(--left) - 25%);
  }
  95% {
    opacity: 1;
  }
  100% {
    left: var(--left);
    top: calc(var(--top) + 60%);
    opacity: 0;
  }
}