html {
    scroll-behavior: smooth;
    scroll-padding-top: 88px;
    margin: 0;
    padding: 0;
    height: 100%;
    font-family: "Noto Sans JP", sans-serif;
}

body {
    background-color: #fff;
    color: rgb(0,0,0);
    font-size: 26px;
    font-weight: 300;
    letter-spacing: 1.4%;
    line-height: 1.5;
    margin: 0;
    padding: 0;
    height: 100%;
    overflow-x: hidden;  /* 3. 画面外へのはみ出しを一切禁止にする */
}

canvas {
  display: block; /* キャンバス下の謎の隙間を消す */
  
}

/* headerの基本設定 */
header {
    height: 80px;
    position: fixed;
    width: 100%;
    z-index: 2;
    background-color: transparent; /* 本体は常に透明 */
    display:flex;
    justify-content: space-between;
    align-items: center;
}


/* 背景画像専用のレイヤー（常にここに画像を持たせる） */
header::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(29,29,31);
    background-size: cover;
    background-position: center;
    
    /* 出現・消失の両方に効くアニメーション設定 */
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    z-index: -1; 
}

/* スクロール時に JS で付与されるクラス */
header.scrolled::before {
    opacity: 0.8; /* ここでふわっと出現させる */
}

main {
    display: flow-root;
    background-color: #ffffff;
    background-image: url(../media/pattern_background.png);
}



section {
    margin: 192px 0
}

h1{
    text-align: center;
    font-size: 38px;
}

h2 {
    font-size: 20px;
    font-weight: bold;
    text-align: center;
}


@media screen and (max-width:750px) {
    html {
        scroll-padding-top: 58px
    }
    
    header {
        height: 60px
    }

    body{
        font-size: 11px;
    }
    h1{
        font-size: 27px;
    }
    h2{
        font-size: 20px;
        font-weight: bold;
    }
    h3{
        font-size: 12px;
        font-weight: bold;
    }
    section {
        margin: 48px 0
    }




}

.header-container{
    color: #fff;
    position: absolute; /* 親要素（または初期コンテナブロック）を基準に配置する */
     top: 50%;           /* h1の上端をビューポートの垂直方向の中央に移動 */
    left: 50%;          /* h1の左端をビューポートの水平方向の中央に移動 */
    transform: translate(-50%, -50%); /* 要素自身の幅と高さの半分だけ位置を調整して真に中央揃えにする */
    text-align: center; /* h1内のテキストを中央揃えにする */
    /* h1自身のマージン・パディングをリセット（重要！） */
    margin: 0; 
    padding: 0; /* h1に余計な余白がないか確認 */
    line-height: 1.2; /* テキストの見た目に合わせて調整 */
}
.header-text{
    font-size: 10vw;
    text-align: center;
}

.wrap{
  border-right: 0.04em solid rgba(255,255,255,1);
}

#blink{
  animation-name: flashing;
  animation-duration: 1.0s;
  animation-timing-function: step-end;
  animation-fill-mode: forwards;
  animation-iteration-count: infinite;
}

@keyframes flashing {
  0% {
    border-right: 0.04em solid rgba(255,255,255,1);
  }
  50%{
    border-right: 0.04em solid rgba(255,255,255,0);
  }
  100% {
    border-right: 0.04em solid rgba(255,255,255,1);
  }
}

.header-icon-wrapper{
    height:100%;
    width:25%;
    display:flex;
    align-items: center;
    text-decoration: none;
}

.header-icon-wrapper img{
    height:60%;
    margin-left:10px;
}

.header-title{
    margin-left:5px;
    font-size: 26px;
    color:white;
    font-weight:bold;
    text-wrap: nowrap;
}

#header-ul {
    align-items: center;
    display: flex;
    justify-content: flex-end;
    margin: auto;
}

.header-nav-img {
    padding: 32px
}



.page-nav-ul{
    padding-right: 40px;
}

.nav--text{
    font-size: 20px;
}

.page-nav-link {
  color: #fff;
  text-decoration: none;
}
.page-nav-link:hover{
  color:#aaa;
}
.is-current:hover{
  color: #00face;
}

/* ナビゲーションの現在のセクションを強調 */
.page-nav-link.is-current h2 {
    color: #00face !important; /* 目立つ色に変更 */
    transition: color 0.3s ease;
}

.top-image{
    height: 100%;
}

.maincontents{
    margin: 0 auto;
    padding: 0 40px;
    max-width: 800px;
}

.about-flex{
  display: flex;
  justify-content: center;
  align-items: center;
}

.about-item>img{
  width: 40%;
  height: auto;
  margin-right: 30px;
  border-radius: 100%;
}
.about-item{
  width: 50%;
}
.about-imgpos{
  text-align: end;
}

.name-text{
  font-size: 30px;
  font-weight: bold;
  line-height: 2;
}





.album-flex {
  display: flex;
  flex-wrap: wrap; /* 画面幅に合わせて折り返す */
  justify-content: flex-start; /* 左寄せで配置 */
}

.box {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden; /* 画像がボックスからはみ出さないようにする */
}

.album-item img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 画像をボックスに合わせて切り抜く */
}

.wrapper{
    min-height: 100vh;
    position: relative;/*←相対位置*/
    padding-bottom: 120px;/*←footerの高さ*/
    box-sizing: border-box;/*←全て含めてmin-height:100vhに*/
}

.container {
  position: relative;
  width: 23%; /* 画像のサイズに合わせて調整 */
  margin: 1%; /* 画像間の余白 */
}

.container img {
  width: 100%;
  display: block;
}

.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6); /* 背景を少し暗くする */
  color: white;
  
  /* 最初は隠しておく */
  opacity: 0;
  transition: opacity 0.3s ease; /* 0.3秒かけて変化 */
  display: block;
}

.title{
  font-size:15px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* 真ん中にずらす */
  width: 100%;
  text-align: center;
  font-weight: bold;
  line-height: 1.5;
}
.sub{
    position: absolute;
  bottom: 10px; /* 下からの余白 */
  right: 10px;  /* 右からの余白 */
  font-size: 12px; /* 少し小さくするとそれっぽくなります */
}

/* マウスが乗った（hover）時の設定 */
.container:hover .overlay {
  opacity: 1;
}

.contact-flex{
  display: flex;
  justify-content: space-around;
  align-items: center;
  column-gap: 60px;

}

.image-button {
    border: none; /* デフォルトのボーダーをなくす */
    background: none; /* デフォルトの背景をなくす */
    cursor: pointer;
    padding: 0; /* img要素にpaddingが影響しないように0にする */
    position: relative; /* 沈み込み時に位置を調整するため */
    width:20%;
}

.image-button>img {
    display: block; /* img要素がinline要素のため、余分なスペースをなくす */
    width: 100%; /* 画像の幅を調整 */
    height: auto; /* 高さは自動調整 */
    border-radius: 20%; /* 角丸にする */
    /* 立体感を出すためのシャドウ */
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3), /* 下方向への影 */
                0 2px 5px rgba(0, 0, 0, 0.2);  /* 軽い影で立体感を強調 */
    transition: all 0.1s ease-out; /* ホバー時、クリック時のアニメーションをスムーズに */
}

/* ホバー時のスタイル（少し浮き上がるような効果） */
.image-button:hover img {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4),
                0 3px 8px rgba(0, 0, 0, 0.25);
    transform: translateY(-2px); /* 少し上に移動させる */
}

/* クリック時のスタイル（沈み込み） */
.image-button:active img {
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2), /* 影を小さくして沈んだように見せる */
                0 1px 2px rgba(0, 0, 0, 0.1);
    transform: translateY(3px); /* 下に移動させて沈み込みを表現 */
}






@media screen and (max-width:750px) {


    .header-title{
        font-size: 16px;
    }
    #header-ul {
        flex-direction: column;
        height: auto;
        text-align: center;
    }

    .header-nav-img {
        padding: 12px
    }

    #menu-check:checked+nav {
        opacity: 1;
        transform: translateY(0)
    }

    #menu-button {
        display: block;
        float: right;
        padding: 14px;
        z-index: 4;
        width: 30px;
    }
    .page-nav-ul{
        padding-right: 0px;
    }
    #header-space {
        height: 52px
    }


    .maincontents{
        padding: 0 20px;
    }
    .about-item>img{
        width: 40%;
        height: auto;
        margin-right: 15px;
        border-radius: 100%;
    }
    .name-text{
        font-size: 15px;
        font-weight: bold;
    }

    .container {
        position: relative;
        width: 31%; /* 画像のサイズに合わせて調整 */
        margin: 1%; /* 画像間の余白 */
    }

    .title{
        font-size: 10px;
    }
    .sub{
        font-size: 8px; /* 少し小さくするとそれっぽくなります */
    }

}
