@charset 'UTF-8';

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP&display=swap');

* {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  font-family: "minion-pro", "minion-variable-concept", "Minion Pro", "Times New Roman", serif;
  background-color: #fff;
  color: #111;
  height: 100%;
}

body {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

p, li, div, span, a, button {
  font-family: inherit;
}

:lang(ja),
.ja,
body *:not(.artist-name):not(.sub-text):lang(ja) {
  font-family: "dnp-shuei-gothic-gin-std", "dnp-shuei-mincho-pr6n", "Hiragino Mincho ProN", "Yu Mincho", serif;
}

.center {
  position: absolute;
  top: 48%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  width: 100%;
  padding: 0 5vw;
}

.overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at center, rgba(0,0,0,0.06) 0%, rgba(0,0,0,0.02) 35%, transparent 72%);
  animation: pulse 5s infinite ease-in-out;
}

@keyframes pulse {
  0%, 100% { opacity: 0.22; }
  50% { opacity: 0.55; }
}

.sub-text {
  margin: 0;
  font-family: "minion-pro", "minion-variable-concept", "Minion Pro", serif;
  font-size: clamp(1rem, 1.2vw, 1.25rem);
  letter-spacing: 0.18em;
  color: #111;
  opacity: 0.95;
}

.artist-name {
  position: absolute;
  top: 54.5%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: "canela", "Canela", "minion-pro", "Minion Pro", serif;
  font-size: clamp(2.4rem, 5.1vw, 5.2rem);
  line-height: 1.05;
  letter-spacing: 0.03em;
  color: #111;
  pointer-events: none;
  opacity: 0;
  transition: opacity 2.4s ease;
  text-align: center;
  width: min(92vw, 1200px);
}

.show-artist-name {
  opacity: 1;
}

.hidden {
  display: none;
}

.hamburger {
  position: fixed;
  top: 5vw;
  right: 5vw;
  width: 30px;
  height: 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: filter 5s ease;
  z-index: 999;
}

.bar {
  width: 30px;
  height: 4px;
  border-radius: 2px;
  background: #111;
  transition: all 5s ease;
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.18);
}

.menu {
  position: fixed;
  left: 0;
  top: 8vh;
  background-color: rgba(255,255,255,0.92);
  filter: blur(0.7px);
  width: 100vw;
  transition: opacity 1.5s ease, transform 1.5s ease;
  opacity: 0;
  z-index: 98;
  padding: 20vh 5vw;
  pointer-events: none;
}

.menu.open {
  opacity: 1;
  pointer-events: auto;
}

.menu ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.menu ul li {
  margin-bottom: 1.5rem;
}

.menu ul li a {
  font-family: "minion-pro", "minion-variable-concept", "Minion Pro", serif;
  font-size: 2rem;
  color: #111;
  text-decoration: none;
  position: relative;
  transition: opacity 5s ease;
  cursor: pointer;
  text-shadow: rgba(0, 0, 0, 0.18) 0.77px 2.52px 4px;
}

footer {
  padding: 1rem 5vw;
  text-align: center;
  font-size: 1rem;
  position: fixed;
  bottom: 0;
  width: 100%;
  color: #111;
}

.blog-content {
  width: 100%;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}

@media (max-width: 768px) {
  .center {
    top: 46.5%;
  }

  .artist-name {
    top: 53.5%;
    font-size: clamp(2rem, 9vw, 3.2rem);
    width: 90vw;
  }

  .sub-text {
    font-size: 0.95rem;
    letter-spacing: 0.14em;
  }

  .menu ul li a {
    font-size: 1.6rem;
  }
}
