/* ===== Base ===== */

body {
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "BIZ UDMincho", "Noto Serif JP", serif;
  margin: 2em;
  background-color: #fef8e4;
  background-image: url("../img/bg_paper_texture.png");
  background-repeat: repeat;
  background-size: auto;
  background-position: top left;
  color: #222;
  line-height: 1.6;
}
h1,
h2 {
  border-left: 6px solid #333;
  padding-left: 0.6em;
}
.verse {
  background: #f9f9f9;
  background: #f9f5e9 url("../img/bg_verse_paper.png") repeat;
  padding-left: 2em;
  border-left: 4px solid #ccc;
  padding: 1em;
  margin: 1.5em 0;
  white-space: pre-wrap;
  font-weight: 500;
  letter-spacing: 0.01em;
  text-shadow: 0 0 0.2px #00000022;
  line-height: 1.4;
}
.dialogue {
  margin: 1em 0;
  padding-left: 2em;
}
.leo {
  color: #004466;
  font-weight: bold;
}
.annika {
  color: #664400;
  font-weight: bold;
}
.poem-archive {
  display: flex;
  flex-direction: column;
  gap: 2em;
  margin: 2em 1em;
}
.poem-entry {
  padding: 1.5em;
  background: #fef8e4;
  border: 1px solid #ccc;
  border-radius: 8px;
  box-shadow: 0 2px 6px #0001;
}
.poem-entry a {
  text-decoration: none;
  color: inherit;
}
.poem-entry h2 {
  font-size: 1.4em;
  margin-bottom: 0.3em;
}
.subtitle {
  font-size: 0.9em;
  color: #666;
}
.desc {
  font-size: 1em;
  color: #444;
}
.footer-marquee {
  background: #f9f5e9;
  color: #444;
  font-size: 0.8em;
  padding: 1em 0;
  overflow: hidden;
  position: relative;
}
.footer-marquee .marquee {
  display: flex;
  white-space: nowrap;
  animation: scroll-loop 25s linear infinite;
}
.footer-marquee .marquee span {
  display: inline-block;
  padding-right: 4em; /* 間隔を少し空けると美しい */;
}
/* ===== Back-to-Home（記事上部に小さく表示） ===== */
.poem-header {
  margin: 0 0 0.5rem;
}
.back-to-home,
.back-to-home:link,
.back-to-home:visited {
  color: #4b2e2b !important; /* チョコレートブラウン */;
  font-weight: 700;
  font-size: 0.8em;
  opacity: 1 !important;
  text-shadow: 0 0 1px rgba(0,0,0,0.15); /* 薄い縁取りで視認性アップ */;
}
.back-to-home img {
  width: 28px;
  height: 28px;
  width: 28px; height: 28px; transition: transform .25s ease;
}
.back-to-home:hover {
  opacity: 0.8;
  opacity: 1;
}
/* ダークモードがある場合の軽い調整 */

/* ===== Back-to-Home micro-interaction ===== */
.poem-header {
  margin: 0 0 .5rem;
}
.back-to-home {
  display: inline-flex; align-items: center; gap: .45em;
  text-decoration: none; color: #333; font-size: .95em; opacity: .92;
  transform: translateY(-2px); animation: homeFade .5s ease-out both;
}
.back-to-home span {
  position: relative; overflow: hidden;
}
.back-to-home span::after {
  content:""; position:absolute; left:0; bottom:-2px; width:100%; height:1px;
  background: currentColor; transform: translateX(-100%); transition: transform .35s ease;
}
.back-to-home:hover img {
  transform: rotate(-6deg) scale(1.02);
}
.back-to-home:hover span::after {
  transform: translateX(0);
}
/* ===== Scroll reveal for verse & dialogue ===== */
.reveal {
  opacity: 0; transform: translateY(10px); transition: opacity .6s ease, transform .6s ease;
}
.reveal.in-view {
  opacity: 1; transform: translateY(0);
}
/* 詩行は少しだけ遅延 */
.verse.reveal {
  transition-delay: .05s;
}
/* モーション配慮 */
/* ===== Floating to-top ===== */
.to-top {
  position: fixed; right: 1rem; bottom: 3rem; width: 42px; height: 42px; z-index: 1000;
  border: 1px solid #0002; border-radius: 10px;
  background: #f9f5e9cc; backdrop-filter: blur(2px);
  box-shadow: 0 4px 10px #0002; cursor: pointer; opacity: 0; pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
  font: 600 14px/42px system-ui, -apple-system, "Segoe UI", sans-serif;
}
.to-top.show {
  opacity: 1; pointer-events: auto;
}
.to-top:hover {
  transform: translateY(-2px);
}
/* poem.html コントロール部の文字色調整 */
.controls label,
.controls select,
.controls input[type="search"],
.controls button {
  color: #4b2e2b !important;
  font-weight: 600;
}

.controls select,
.controls input[type="search"],
.controls button {
  border: 1px solid #4b2e2b !important;
  background-color: #fff !important;
}


/* ===== At-rules preserved ===== */

@media screen and (max-width: 600px) {
  .dialogue {
    padding-left: 0.2em;
  }

  .verse {
    padding-left: 1em;
    padding-right: 1em;
  }
}

@keyframes scroll-loop {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@media (prefers-color-scheme: dark) {
  .back-to-home { color: #ddd; }
}

@keyframes homeFade{from{opacity:0; transform:translateY(-8px);}to{opacity:1; transform:translateY(-2px);}}


@media (prefers-color-scheme: dark){ .back-to-home{ color:#ddd; } }
@media (prefers-reduced-motion: reduce){
  .back-to-home, .back-to-home img, .back-to-home span::after { animation: none !important; transition: none !important; }
}

@media (prefers-reduced-motion: reduce){
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

@media (prefers-color-scheme: dark){
  .to-top{ background:#222c; color:#eee; border-color:#fff1; }
}