:root {
  --gold: #FFD700;
  --gold-600: #c7ac00;
  --gray-900: #0f0f10;
  --gray-800: #17181a;
  --gray-700: #1e2023;
  --gray-600: #2a2d31;
  --gray-500: #3a3f45;
  --text: #e8e8e8;
  --muted: #b8b8b8;
  --shadow: 0 10px 30px rgba(0,0,0,0.3);
}

body {
  font-family: 'Noto Sans JP', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', sans-serif;
  color: var(--text);
  background: linear-gradient(180deg, var(--gray-900), var(--gray-800));
  letter-spacing: 0.02em;
}

.container {
  width: min(1100px, 92vw);
  margin: 0 auto;
}

.container.narrow { width: min(900px, 92vw); }

.topbar {
  position: fixed; inset: 0 0 auto 0;
  height: 64px; z-index: 50;
  background: rgba(15,15,16,0.6);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.topbar .container {
  height: 100%; display: flex; align-items: center; justify-content: space-between;
}

.brand { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.brand-mark { color: var(--gold); filter: drop-shadow(0 0 10px rgba(255,215,0,0.35)); }
.brand-name { font-family: 'Noto Serif JP', serif; letter-spacing: 0.06em; }

.nav { display: flex; gap: 16px; align-items: center; }
.nav-link { padding: 8px 12px; border-radius: 999px; transition: 250ms; color: var(--muted); }
.nav-link:hover { color: var(--text); background: rgba(255,255,255,0.06); }
.btn-primary {
  display: inline-block;
  padding: 10px 16px;
  background: linear-gradient(135deg, var(--gold), #ffe670);
  color: #262626;
  border-radius: 999px;
  font-weight: 700;
  border: 1px solid rgba(0,0,0,0.15);
  box-shadow: var(--shadow);
  transition: transform .2s ease;
}
.btn-primary:hover { transform: translateY(-2px); }

.glow { filter: drop-shadow(0 0 20px rgba(255,215,0,0.35)); }

.section { position: relative; min-height: 100vh; display: grid; place-items: center; padding: 120px 0 100px; }
.section-title {
  font-family: 'Noto Serif JP', serif; font-size: clamp(28px, 4vw, 40px);
  text-align: center; margin: 0 0 24px;
}
.lead { text-align: center; color: var(--muted); margin: 0 0 40px; }

.footer {
  background: var(--gray-700);
  padding: 24px 0;
  text-align: center;
  color: var(--muted);
  border-top: 1px solid rgba(255,255,255,0.06);
}

/* Reveal animation baseline */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in-view { opacity: 1; transform: translateY(0); }

/* Utilities */
.sp-only { display: none; }
@media (max-width: 768px) {
  .sp-only { display: inline; }
}
/* --- Header layout hardening --- */
.topbar .container { flex-wrap: nowrap; }
.nav, .brand { white-space: nowrap; }
.nav .nav-link { white-space: nowrap; }

/* --- Mobile: show only Apply --- */
@media (max-width: 640px) {
  .nav .nav-link.hide-sp { display: none; }        /* トップ/注意事項を隠す */
  .nav .apply-cta {                                 /* 応募だけ見せる */
    display: inline-block;
    padding: 8px 14px;
    font-size: 14px;
  }
  .brand-name { font-size: 14px; }
}