/* カラートークン */
:root {
  --color-primary:      #1e2939;
  --color-primary-dark: #0f172a;
  --bg-base:            #ffffff;
  --bg-dark:            #1e2939;
  --text-primary:       #0f172a;
  --text-inverse:       #ffffff;
  --text-muted:         rgba(255, 255, 255, 0.7);
  --text-secondary:     rgba(0, 0, 0, 0.6);
}

body {
  font-family: 'Gen Interface JP', sans-serif;
  font-weight: 300;
  color: var(--text-primary);
  background-color: var(--bg-base);
}

/* Hero + Message アニメーション */
@keyframes heroFadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

.hero-logo {
  opacity: 0;
  animation: heroFadeUp 1.4s cubic-bezier(0.22, 1, 0.36, 1) 1.1s forwards;
}

/* スクロールフェードイン（JS で .visible を付与） */
.fade-in {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

.slide-up {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.slide-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Header: JS で切り替える色クラス */
#header.header-light { color: var(--text-primary); }
#header.header-dark  { color: var(--text-inverse); }

#header.header-dark  .header-logo img { filter: brightness(0) invert(1); }
#header.header-light .header-logo img { filter: none; }

/* SP Menu: JS で切り替える開閉状態 */
#sp-menu {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

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

#hero-message h1 {
  line-height: 1.5;
}

#interview h2 {
  line-height: 1.2;
}


.text-gradient {
  background: linear-gradient(90deg, #FF6023 0%, #FB3161 25%, #867FF9 47%, #4496F2 70%, #01C8BF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block;
  vertical-align: top;
}
