
html, body{
  margin: 0;
  padding: 0;
}

*, *::before, *::after{
  box-sizing: border-box;
}

body {
  background-size: cover;
  background-repeat: no-repeat;		/* 繰り返し表示しない */
  background-position: center top;	/* 画面いっぱいに拡大縮小して表示、上部中央に揃える */
  background-attachment: fixed;		/* スクロールしても背景を固定 */
  position: relative;

/* 文字サイズの指定（PC基準） */
  font-size: 18px;

  scrollbar-gutter: stable;
}

/* 文字サイズの指定（スマホ用） */
@media (max-width: 640px){
  body{
    font-size: 16px; /* 例：スマホは少し小さめに */
  }
}

.overlay {
  background-color: rgba(255, 255, 255, 0.88);/* 半透明の背景 */
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);

  /* 固定フレーム */
  position: static;
  inset:auto;

  /* 中身配置 */
  /*display: block;*/

  /* 余白と幅 */
  padding: 1.5em 2em; /* 上下に1.5em、左右に2emの余白 */
  max-width: 94%;
  margin: 2em auto;

  display: flex;
  flex-direction: column;

}

.content {
  flex: 1;
  min-height: 0;          /* これがないと内側スクロールが不安定になりがち */
  height: 100%;
  scrollbar-gutter: stable; /* スクロールバー有無で横幅が揺れない */ 
  overflow-y: scroll;

}

.content::-webkit-scrollbar{
  width:8px;
}

.site-title {
  text-align: center;
  font-weight: 600;
  color: #065243;
  margin-bottom: 0.2em;
}

.subtitle {
  text-align: center;
  color: #469283;
  margin-bottom: 2em;
  font-style: italic;
}

blockquote.catch {
  position: relative;
  margin: 10px 0 0;
  padding: 10px 28px 10px 55px; 
  background-color: rgba(255,255,255,0.35); 
  backdrop-filter: blur(10px);
  border: 1px solid #e6e8ee;
  border-left: 4px solid #66b2a3; /* 縦線 */
  border-radius: 12px;
  box-shadow: 0 1px 0 rgba(16,24,40,0.03);
  color: #1f2937;
  font-size: 1.05em;
  font-weight: 450;
  line-height: 1.9;
}

blockquote.catch::before {
  content: "“";
  position: absolute;
  left: 12px;
  top: 10px;
  font-size: 5em;
  line-height: 1;
  color: rgba(15,23,42,0.08); /* 薄いグレー */
  font-family: Georgia, "Times New Roman", serif;
}

.work-summary {
  text-align: left;
  font-size: clamp(1.6rem, 3.2vw, 1.8rem);
  font-weight: 600;
  color: #065243;
  margin-bottom: 0.2em;
  padding-left: 0.25em;
}

.work-synopsis {
  text-align: left;
  font-size: clamp(1.4rem, 3.2vw, 1.6rem);
  font-weight: 500;
  color: #065243;
  margin-bottom: 0.2em;
  padding-left: 0.25em;
}



.dot{
  width:.50em;
  height:.50em;
  margin-right: .4em;
  border-radius:50%;
  background:#469283;
  box-shadow:0 0 0 .20em rgba(43,109,243,0.12);
  display:inline-block;
  vertical-align: middle;
}

hr {
  border: none;
  height: 1px;
  background: linear-gradient(
    to right,
    transparent,
    #66b2a3,
    transparent
  );
  margin: 40px 0;
}

.top-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  margin: 18px 0 26px;
  justify-content: center;
}

.top-links a{
  display:inline-block;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(102,178,163,0.35);
  background: rgba(255,255,255,0.55);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  color:#1f2937;
  text-decoration:none;
  font-size: .95em;
}

.top-links a:hover{
  background: rgba(255,255,255,0.75);
}

.top-links a:focus-visible{
  outline: 2px solid rgba(102,178,163,0.8);
  outline-offset: 2px;
}

.top-links a.active{
  background: rgba(102,178,163,0.25);
  border-color: rgba(102,178,163,0.7);
  font-weight: 600;
  color: #134e4a;
  box-shadow: inset 0 -2px 0 rgba(102,178,163,0.8);
}

.top-links a.active:hover{
  background: rgba(102,178,163,0.35);
}

/* Post meta bottom right */
.post-meta{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
  font-size:12px;
  margin-top:10px;
  padding:0 6px;
}


/* Footer */
.site-footer{
  margin-top:auto;
  padding:18px 0 26px;
  text-align:center;
}

.site-footer a {
  margin: 0 0.3em;
  font-size:1em;
}

.site-footer small{
 font-size:0.5em;display:block; line-height:1.7;
}

@media (max-width:768px){
  .overlay{
    position: static;
    inset:auto;
  }
  .content{
    overflow:visible;
  }
}

.page-top{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 9999;

  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,0.2);
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  cursor: pointer;

  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.page-top.is-visible{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}


.calendar{
  opacity: 0.75;
  font-size: 0.95em;
}