@charset "UTF-8";


	@keyframes sparkle {
  0% {
    opacity: 0.5;
    transform: scale(0.8);
  }
  50% {
    opacity: 1;
    transform: scale(1.2);
  }
  100% {
    opacity: 0.5;
    transform: scale(0.8);
  }
}
	
	/* 1) iOSの自動縮小を無効化 */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

:root {
  --font-size-base: 16px;
  --line-height-base: 1.6;
}

	html, body{
		font-family: system-ui, -apple-system, "Helvetica Neue", Arial, "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  font-size: clamp(10px, 1.1vw + 0.9rem, 14px);
  line-height: var(--line-height-base);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
		margin:0;
		padding:0;
		background:#141716;
		color:#aaa;
	}
	body {
  opacity: 0;
  transition: opacity 1s;
}

body.loaded {
  opacity: 1;
}

	nav{
		display: grid;
    background: #000;
    border-radius: 10px;
    box-sizing: border-box;
    padding: 20px 15px;
	}
	nav ul li{
		    display: flex;
	}
	nav ul li::before{
		content:"";
background: url("SVG/icon.svg") no-repeat;
display: inline-block;
    width: 12px;
    height: 12px;
	animation: sparkle 0.8s ease-in-out infinite;
    padding-right: 10px;
vertical-align: middle;
	}
	nav ul li:nth-child(1)::before {
  animation-delay: 0s;
}

nav ul li:nth-child(2)::before {
  animation-delay: 0.3s;
}
	nav ul li a{
		font-size: 1.2em;
		margin:0;
		border:none;
		padding:0;
	}
	#wrapper{
		display: block;
		box-sizing: border-box;
    padding: 5%;
    margin: auto;
	}
	p{
		margin:0;
	}
	img{
		max-width:100%;
	}
	a{
		width: fit-content;
		padding:10px;
		border:1px solid #aaa;
		border-radius: 5px;
		color:#aaa;
		text-decoration: none;
		display: block;
		margin:10px 0 0;
	}
	a:hover{
		background:#000;
		transition:1.0s;
	}
	header {
    padding: 0 0 30px;
		display: flex;
    justify-content: space-between;
}
	h1{
	display: flex;
    justify-content: flex-start;
    margin: 0;
    width: 150px;
	}
	h1 a {
		margin:0;
    width: auto;
    padding: 0;
    border: none;
    display: flex;
}
h1 a:hover{
	background:transparent;
}
	h1 img:first-child {
    width: 30%;
	box-sizing: border-box;
    padding-right: 10px;
}
	h1 img:last-child {
    width: 70%;
}
	h2{
		font-size:2em;
	font-weight: 300;
	}
	h3 {
    font-size: 1.5em;
		line-height: 1.5em;
    font-weight: 300;
}
h4 {
    background: #333;
    padding: 1em;
}
	ul {
    padding: 10px;
    line-height: 2;
}
	input, textarea, select, button {
  font-size: 16px; /* iOSは16px未満だとフォーカス時にズームします */
}
	#clock {
      font-size: 0.9rem;
      font-family: monospace;
    }
	.time{
		display: grid;
		text-align: center;
	}
	.time p{
		font-size:0.6em;
	}
	
/*-------
 article
-------*/
	
	section{
		flex-wrap: wrap;
		display: flex;
		justify-content: space-between;
	}
	article{
		font-size: 0.8em;
    padding: 10px 0 30px;
		max-width: 48%;
		line-height: 1.5em;
	}
	article p{
		letter-spacing: 0.05em;
		line-height: 1.7em;
	}
	.updates{
	    padding-left: 4%;
    box-sizing: border-box;
    width: 30%;
	}
	.updates ul{
		margin:0;
		padding:0;
		list-style: none;
		font-size:0.8em;
	}
.message{
	
		width:70%;
		border-radius: 10px;
		aspect-ratio: 1 / 1.333;
		background:url("img/lolari.jpg");
		background-size: contain;
		background-repeat: no-repeat;
		filter: grayscale(100%);
	}
.message p {
    color: #141716;
    width: 40%;
    text-align: justify;
    line-height: 1.8em;
    font-size: 0.8em;
    border-radius: 5px;
    margin: 4%;
    padding: 20px;
    background: #ffffff80;
}
	.photo{
		width:70%;
		border-radius: 10px;
		aspect-ratio: 1 / 0.75;
		background:url("img/lola105.jpg");
		background-size: contain;
		background-repeat: no-repeat;
		filter: grayscale(100%);
	}
	.img{
		padding: 20px;
		border:1px solid #aaa;
		border-radius:10px;
	}
	.img p{
		    text-align: center;
		background:#000;
		    line-height: 0;
		border-radius:5px;
	}
	
	.img p img{
		filter: grayscale(100%);
		border-radius:5px;
	}
	button{
		font-size: 1em;
    border: none;
    background: transparent;
		    display: block;
		margin: 20px auto 50px;
	}
#aboutme section p{
	font-size:0.8em;
}
.footer-wrap {
  position: fixed;
  bottom: 5px;
    right: 15px;
  z-index: 2;
  overflow: visible;
}
footer{
    font-size: 0.7em;
    transform: rotate(90deg);
    transform-origin: right bottom; /* 回転の基準点を調整 */
    width: max-content; /* 必要な分だけ幅をとる */
    pointer-events: none; /* スクロール阻害を防ぐ */
	}
body::after{
	content: "";
  display: block;

}
.sns{
	display: flex;
    justify-content: center;
    text-align: center;
    width: 100%;
    margin: auto;
}
.sns a{
	border:none;
}
.sns a:hover{
	background:transparent;
}
.sns img{
	width:15px;
}
/*-------
 bubble
-------*/
	
.bubble-container {
      z-index: 5;
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden;
	pointer-events: none; /* ← これがポイント */
}

/* シャボン玉の基本 */
.bubble {
  position: absolute;
  bottom: -50px; /* 初期位置は画面下 */
  width: 20px;
  height: 20px;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.8), rgba(255,255,255,0.2));
  border-radius: 50%;
  opacity: 0.7;
  animation-name: rise;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

/* ランダムにサイズや位置、アニメーション時間を変える */
.bubble:nth-child(1) { left: 10%; width: 15px; height: 15px; animation-duration: 6s; animation-delay: 0s; }
.bubble:nth-child(2) { left: 25%; width: 25px; height: 25px; animation-duration: 8s; animation-delay: 2s; }
.bubble:nth-child(3) { left: 50%; width: 20px; height: 20px; animation-duration: 7s; animation-delay: 1s; }
.bubble:nth-child(4) { left: 70%; width: 18px; height: 18px; animation-duration: 5s; animation-delay: 3s; }
.bubble:nth-child(5) { left: 85%; width: 22px; height: 22px; animation-duration: 9s; animation-delay: 0.5s; }

/* アニメーション */
@keyframes rise {
  0% {
    transform: translateY(0) scale(1);
    opacity: 0.6;
  }
  50% {
    transform: translateY(-200px) scale(1.1);
    opacity: 0.8;
  }
  100% {
    transform: translateY(-500px) scale(1.2);
    opacity: 0;
  }
}

#toc-list li {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeUp 0.6s ease forwards;
}

@keyframes fadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


	
	
	
	
	
	
	@media (max-width: 640px) {
		html,body{
			overflow-x: hidden;
		}
		.message {
			display: inline-block;
    width: 100%;
		}
		.photo{
			display: inline-block;
    width: 100%;
		}
		.message p{
			letter-spacing: 0;
			line-height: 1.5em;
		}
		.img {
    padding: 10px;
		}
		section{
			display: inline;
		}
		article{
			display: inline;
			width:100%;
		}
		.updates {
			        padding: 0 0 20px;
    width: 100%;
}
		.footer-wrap{
			bottom: 100px;
    right: 35px;
		}
	}


