/* ================================================
   共通スタイル（トップページ）
   ================================================ */

/* =====================
   CSS Variables
   ===================== */
   :root {
    /* background */
    --color-bg-dark: #0b1428;
    --color-bg-black: #000000;
  
    /* text */
    --color-text-white: #ffffff;
    --color-text-light: rgba(255, 255, 255, 0.9);
    --color-text-muted: rgba(255, 255, 255, 0.4);
  }
  
  /* =====================
     Base Layout
     ===================== */
  body {
    background-color: #000;
    background-image: url(../img/pae_bg.jpg);
    background-attachment: fixed;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    background-size: cover;
  }
  
  /* =====================
     App Container
     ===================== */
  .app-container {
    width: 100%;
    max-width: 640px;
    background-color: var(--color-bg-dark);
    color: var(--color-text-white);
    min-height: 100vh;
    position: relative;
    background-image: url(../img/pae_bg.jpg);
  }
  
  /* =====================
     Image Utility
     ===================== */
  .image-box {
    width: 100%;
    line-height: 0;
  }
  
  .image-box img {
    width: 100%;
    height: auto;
    display: block;
  }
  
  h3 > img {
    width: 80%;
    margin: 0 auto;
  }
  
  /* =====================
     Content Section
     ===================== */
  .content-section {
    padding: 0 2% 12%;
    text-align: center;
    font-family: 'Shippori Mincho', serif;
  }
  
  /* =====================
     Catch Phrase
     ===================== */
  .catch-phrase {
    font-size: 20px;
    letter-spacing: 0.25em;
    margin-bottom: 30px;
    font-weight: 400;
  }
  
  /* =====================
     Divider
     ===================== */
  .divider-box {
    width: 100%;
    padding: 0 40px;
    margin-bottom: 60px;
  }
  
  /* =====================
     Main Text
     ===================== */
  .main-text {
    font-size: 15px;
    line-height: 2;
    letter-spacing: 0.1em;
  }
  
  /* =====================
     Artist Section
     ===================== */
  .artist-section {
    text-align: center;
  }
  
  .artist-title-img {
    width: 65%;
    margin: 0 auto 10px;
    mix-blend-mode: plus-lighter;
    opacity: 0.7;
  }
  
  .artist-subtitle {
    font-size: 14px;
    letter-spacing: 0.3em;
    margin-bottom: 40px;
    font-weight: 400;
    font-family: 'Shippori Mincho', serif;
  }
  
  .artist-main-visual {
    width: 100%;
    margin: 4% auto 0;
  }
  
  /* =====================
     Artist Description
     ===================== */
  .artist-description {
    padding: 0 40px;
    text-align: justify;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 0.02em;
    margin-bottom: 40px;
    font-family: sans-serif;
    color: var(--color-text-light);
  }
  
  /* =====================
     Button
     ===================== */
  .btn-more {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 80%;
    margin: 0 auto;
    background-color: #000;
    color: #fff;
    padding: 20px 25px;
    text-decoration: none;
    font-size: 14px;
    font-weight: bold;
    letter-spacing: 0.1em;
    transition: opacity 0.3s;
  }
  
  .btn-more:hover {
    opacity: 0.8;
  }
  
  /* =====================
     Gallery Section
     ===================== */
  .gallery-section {
    padding: 40px 40px 80px;
    display: flex;
    flex-direction: column;
    gap: 60px;
  }
  
  .artwork-item {
    width: 100%;
  }
  .artwork-caption {
    margin-top: 0;         
    font-size: 11px;     
    line-height: 1.4;
    letter-spacing: 0.15em;
    color: var(--color-text-light);
    text-align: center;
    opacity: 0.85;
  }
  .artwork-gap-tight {
    margin-bottom: -58px;
  }
  
  
  /* =====================
     Information Section
     ===================== */
  .info-section {
    padding: 60px 0 100px;
    text-align: center;
  }
  
  .info-title-img {
    width: 80%;
    margin: 0 auto 10px;
  }
  
  .info-subtitle {
    font-size: 18px;
    letter-spacing: 0.2em;
    margin-bottom: 50px;
    font-family: 'Shippori Mincho', serif;
  }
  
  .info-table {
    width: calc(100% - 60px);
    margin: 0 auto 60px;
    font-family: sans-serif;
  }
  
  .info-row {
    display: flex;
    align-items: flex-start;
    margin-bottom: 25px;
    text-align: left;
  }
  
  .info-label {
    background-color: #fff;
    color: #000;
    font-weight: bold;
    font-size: 13px;
    padding: 6px 15px;
    min-width: 100px;
    text-align: center;
    margin-right: 20px;
    letter-spacing: 0.1em;
  }
  
  .info-value {
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 0.05em;
    flex: 1;
  }
  
  .map-box {
    width: 80%;
    margin: 0 auto;
  }
  
  /* =====================
     Footer
     ===================== */
  footer {
    padding: 60px 0;
    font-size: 10px;
    letter-spacing: 0.3em;
    opacity: 0.8;
    text-align: center;
  }
  
  /* =====================
     Animation
     ===================== */
  
  /* Slide Up */
  .mini-slideUp {
    transform: translateY(5vw) scale(1);
    transition-duration: 0.6s;
    transition-timing-function: ease;
    transition-property: transform, opacity, filter;
    opacity: 0;
    will-change: transform, opacity;
  }
  
  .mini-slideUp.active {
    transform: translateY(0);
    opacity: 1;
  }
  
  /* Text Line Animation */
  .main-text .line {
    display: block;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.8s ease, transform 0.8s ease;
  }
  
  .scroll-anim.active .line {
    opacity: 1;
    transform: translateY(16px);
    transition: opacity 1s ease, transform 1s cubic-bezier(.22,1,.36,1);
  }
  
  /* stagger */
  .scroll-anim.active .line:nth-of-type(1)  { transition-delay: .2s; }
  .scroll-anim.active .line:nth-of-type(2)  { transition-delay: .4s; }
  .scroll-anim.active .line:nth-of-type(3)  { transition-delay: .6s; }
  .scroll-anim.active .line:nth-of-type(4)  { transition-delay: .8s; }
  .scroll-anim.active .line:nth-of-type(5)  { transition-delay: 1.0s; }
  .scroll-anim.active .line:nth-of-type(6)  { transition-delay: 1.2s; }
  .scroll-anim.active .line:nth-of-type(7)  { transition-delay: 1.4s; }
  .scroll-anim.active .line:nth-of-type(8)  { transition-delay: 1.6s; }
  .scroll-anim.active .line:nth-of-type(9)  { transition-delay: 1.8s; }
  .scroll-anim.active .line:nth-of-type(10) { transition-delay: 2.0s; }
  .scroll-anim.active .line:nth-of-type(11) { transition-delay: 2.2s; }
  .scroll-anim.active .line:nth-of-type(12) { transition-delay: 2.4s; }
  .scroll-anim.active .line:nth-of-type(13) { transition-delay: 2.6s; }
  .scroll-anim.active .line:nth-of-type(14) { transition-delay: 2.8s; }
  .scroll-anim.active .line:nth-of-type(15) { transition-delay: 3.0s; }
  .scroll-anim.active .line:nth-of-type(16) { transition-delay: 3.2s; }
  