@font-face {
  font-family: 'PixelMplus10';
  src: url('./Font/PixelMplus10-Regular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;

}



body {
  font-family: 'Sawarabi Gothic', sans-serif;
  
}



body {
  
  margin: 0; /* ← デフォルト余白を消す */
  overflow-x: hidden; /* 横スクロールを防ぐ */
}

header {
  position: sticky;
  top: 0;
  display: flex;
  justify-content: center;
  font-family: Teko, sans-serif;
  line-height: 1.85;
  letter-spacing: 0.2em;
  font-size: 35px;
  z-index: 1;
  background-color: rgb(255, 255, 255);
  padding: 10px 20px; /* 内側に余白を追加 */
  /*box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* 影をつけて立体感を出す */
  
}



ul {
    display: flex;
    gap: 50px;
    list-style: none;
    padding: 25px;
    margin: 0px;                       /*ホームボタン全体の位置*/
    
}

header{
    
    text-decoration: none;
    color: rgb(247, 173, 69);
      
    font-weight: bold;                /*各ボタンの位置、サイズ、色*/
}



li a {
    position: relative;
    text-decoration: none;
    color: rgb(33, 33, 33);
    font-size: 35px;                 /*ボタンアニメーションの線*/
}

li a::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    background-color: rgb(33, 33, 33);
    left: 50%;
    bottom: -5px;
    transition: width 0.3s ease, left 0.3s ease;
}

li a:hover::after {  
    width: 100%;
    left: 0;                     /*ボタンアニメーション*/
}

/*↑↑　HomeボタンのCSS　↑↑*/





.MySlogn {
  margin-top: 100px;
  margin-left: 200px;
  font-size: 30px;
}


.MyPhoto {
  position: relative;
  height: 100vh;  /* 画面全体の高さ */
  
  overflow: hidden;
  margin-top: 100px;
  margin-left: 50px;
}

.MyPhoto img {
  width: 70%;
  height: 70%;
  object-fit: contain;
  object-position: left;
  opacity: 1;
  position: absolute;
  top: 0;
  left: 10;
  z-index: -1;  /* 背景画像として表示 */
}

.MyPhoto.fade-in {
  opacity: 0;
  transform: translateX(-50px);
  transition: all 0.8s ease-out;
}

.MyPhoto.fade-in.animate {
  opacity: 1;
  transform: translateX(0);
}

.TM-container1 {
  position: absolute;
  top: 51.3%; /* 中央配置 */
  left: 10%;
  transform: translate(-50%, -50%) rotate(-7deg); /* ←まとめる */
  text-align: left;
  z-index: 0; /* テキストを前面に出す */
  margin-top: 10px;
}

.TM-container2 {
  position: absolute;
  top: 54.5%; /* 中央配置 */
  left: 48%;
  transform: translate(-50%, -50%) rotate(33deg); /* ←まとめる */
  text-align: left;
  z-index: 0; /* テキストを前面に出す */
  margin-top: 10px;
}

.TM-container3 {
  position: absolute;
  top: 89%; /* 中央配置 */
  left: 20%;
  transform: translate(-50%, -50%) rotate(210deg); /* ←まとめる */
  text-align: left;
  z-index: 0; /* テキストを前面に出す */
  margin-top: 10px;
}

.TMme1, .TMme2 {
  position: absolute;
  top: 0%; /* 中央配置 */
  left: 30%;
  transform: translate(-50%, -50%);
  text-align: left;
  z-index: 0; /* テキストを前面に出す */
  margin-top: 10px;
  transform: translate(-50%, -50%) rotate(-15deg);
  
}

.TMme1 img, .TMme2 img {
  width: 80px;
}

.TMme1 {
  animation: blink1 1s infinite steps(1, end);
}

.TMme2 {
  animation: blink2 1s infinite steps(1, end);
}

@keyframes blink1 {
  0% { opacity: 1; z-index: 2; }
  50% { opacity: 0; z-index: 0; }
}

@keyframes blink2 {
  0% { opacity: 0; z-index: 0; }
  50% { opacity: 1; z-index: 2; }
}



.rect {
  position: absolute;
  /*background: rgb(255, 251, 238);*/
  background: linear-gradient(to right, transparent, rgb(255, 224, 180) 95%);
  max-width: 44vw;
  width: 73%;
  height: 60vh;
  top: 35%;
  left: 55vw;
  z-index: -2;

  animation: growRight 0.7s ease-out forwards;
   
    
    animation: growRight 0.7s ease-out forwards;
}

@keyframes growRight {
  from {
    width: 0;
  }
  to {
    width: 50vw;
  }
}



.Introduction {
  position: absolute;
  top: 40%; /* 中央配置 */
  left: 63%;
  transform: translate(-50%, -50%);
  text-align: left;
  z-index: 0; /* テキストを前面に出す */
  margin-top: 10px;
}


.Introduction h3 {    
  font-size: 40px;               /*名前の大きさ*/
  margin-bottom: 0%;
}

.Introduction h4 {
    margin: 0;
    padding: 0px 0;
    font-size: 20px;             /*学校名の大きさ*/
}  

.Introduction h6 {
  margin-bottom:  30px;
  margin-top: 10px;
font-size: 15px;
}

.Introduction.fade-in {
  opacity: 0;
  transform: translateX(-50px);
  transition: all 0.8s ease-out;
}

.Introduction.fade-in.animate {
  opacity: 1;
  transform: translateX(0);
}

.Introduction h5 {
  font-size: 20px;
  margin-top: 80px;
}



.Skill-container {
  display: flex;
  flex-direction: column;  /* 子要素を縦に並べる */
  align-items: center;     /* 横中央に配置 */
  margin-top: 0px;
  padding-bottom: 0px;
  margin: auto;
  width: 100vw;
}

.Keireki-container {
  display: flex;
  flex-direction: column;  /* 子要素を縦に並べる */
  align-items: center;     /* 横中央に配置 */
  margin-top: 0px;
  padding-bottom: 100px;
  margin: auto;
  width: 100vw;
}

.Policy-container {
  display: flex;
  flex-direction: column;  /* 子要素を縦に並べる */
  align-items: center;     /* 横中央に配置 */
  margin-top: 0px;
  padding-bottom: 100px;
  margin: auto;
  width: 100vw;

  
}

.Tenbou-container {
  display: flex;
  flex-direction: column;  /* 子要素を縦に並べる */
  align-items: center;     /* 横中央に配置 */
  margin-top: 0px;
  padding-bottom: 100px;
  margin: auto;
  width: 100vw;

  
}
.Skill,
.Policy,
.Keireki,
.Tenbou {
  font-size: 40px;
  margin-top: 50px;
  text-align: center;
  font-weight: bold; /* 文字を太くする */
  font-family: Teko, sans-serif;
  line-height: 1.85;
  letter-spacing: 0.2em;
}

.SkillAbout,
.PolicyAbout,
.KeirekiAbout,
.TenbouAbout {
  font-size: 18px;
  text-align: center;
  margin-top: 0px;
  max-width: 1000px; /* 読みやすくするために横幅を制限 */
  line-height: 60px;
}

.Skill, .Policy, .Keireki, .Tenbou {
  text-align: center;
  margin-bottom: 20px;
}

.Skill h3, .Policy h3, .Keireki h3, .Tenbou h3 {
  display: inline-flex;
  align-items: center;
  position: relative;
}

.Skill h3::before,
.Skill h3::after,
.Policy h3::before,
.Policy h3::after,
.Keireki h3::before,
.Keireki h3::after,
.Tenbou h3::before,
.Tenbou h3::after {
  content: "";
  height: 2px;
  background: black;
  width: 0;
  transition: width 0.6s ease;
}

.Skill h3::before,
.Policy h3::before,
.Keireki h3::before,
.Tenbou h3::before {
  margin-right: 30px;
}

.Skill h3::after,
.Policy h3::after,
.Keireki h3::after,
.Tenbou h3::after {
  margin-left:30px;
}

/* アニメーション発火後 */
.Skill.animate h3::before,
.Skill.animate h3::after,
.Policy.animate h3::before,
.Policy.animate h3::after,
.Keireki.animate h3::before,
.Keireki.animate h3::after,
.Tenbou.animate h3::before,
.Tenbou.animate h3::after {
  width: 100px;
}

span.PolicyAbout {
	overflow: hidden;
	display: block;
}

/* アニメーションで傾斜がついている文字列を水平に戻す*/
span.PolicyAboutTrigger{
	transition: .8s ease-in-out;
	transform: translate3d(0,100%,0) skewY(12deg);
	transform-origin: left;
	display: block;
}
span.PolicyAboutTrigger.PolicyAboutAppear{
    transform: translate3d(0,0,0) skewY(0);
}


span.smoothText {
	overflow: hidden;
	display: block;
}

/* アニメーションで傾斜がついている文字列を水平に戻す*/
span.smoothTextTrigger{
	transition: .8s ease-in-out;
	transform: translate3d(0,100%,0) skewY(12deg);
	transform-origin: left;
	display: block;
}
span.smoothTextTrigger.smoothTextAppear{
    transform: translate3d(0,0,0) skewY(0);
}
.Iama h3 {
  
    padding: 20px;
    font-size: 40px;
}


.Iama p {
  
  padding: 20px;
  font-size: 30px;
}

.SkillIcon {
  display: grid;
  width: fit-content;
  column-gap: 2em;
  grid-template-columns: repeat(2, auto);
}

.SkillIcon img {
  /* 不要なflex指定を削除 */
  width: 100px; /* これで画像の幅を固定 */
  height: auto; /* 高さは自動（比率維持） */
  margin: 20px;
}

.SkillIcon p {
  /* 不要なflex指定を削除 */
  margin: 20px;
  margin-top: 10px; /* 調整用（必要に応じて） */
}

.PFスキルアイコンAi,
.PFスキルアイコンPs,
.PFスキルアイコンFigma,
.PFスキルアイコンMaya,
.PFスキルアイコンUnity,
.PFスキルアイコンWeb {
  margin: 20px;
  display: flex;              /* 子要素を横並びか縦並びにする */
  flex-direction: column;     /* 子要素を縦並びにする */
  align-items: center;        /* 子要素を中央揃え（必要に応じて） */
}
