      /* ----------------------------------------------------
           Reset & Base
        ---------------------------------------------------- */
      * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
      }

      body {
        font-family: "Montserrat", "Noto Sans JP", sans-serif;
        background-color: #111;
        color: #fff;
        overflow: hidden; /* ローディング中はスクロール禁止 */
        height: 100vh;
        width: 100%;
      }

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

      /* ----------------------------------------------------
           Loader Styles (Curtain)
        ---------------------------------------------------- */
      .loader-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 9999;
        pointer-events: none; /* アニメーション後はクリックを通す */
      }

      .curtain-container {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: flex; /* パネルを横並びにする */
      }

      /* 修正箇所：カーテンを明るい色に変更して見やすく */
      .curtain-panel {
        flex: 1; /* 等間隔に分割 */
        height: 100%;
        background-color: #f2f2f2; /* 明るいグレー/白系に変更 */
        border-right: 1px solid rgba(0, 0, 0, 0.05); /* 境界線も黒系に調整 */
      }

      .curtain-content {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        color: #111; /* 背景が白なので文字は黒に */
        z-index: 10;
        overflow: hidden;
      }

      .curtain-title {
        display: block;
        font-size: 2rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        margin-bottom: 0.5rem;
        text-transform: uppercase;
      }

      .curtain-sub {
        display: block;
        font-size: 0.875rem;
        color: #666; /* サブテキストも少し濃く */
        letter-spacing: 0.05em;
      }

      /* ----------------------------------------------------
           First View (Hero) Styles
        ---------------------------------------------------- */
      .hero {
        position: relative;
        width: 100%;
        height: 100vh;
        display: flex;
        justify-content: center;
        align-items: center;
        opacity: 0; /* 最初は隠しておく */
      }

      /* 背景画像とオーバーレイ */
      .hero-bg {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        /* Unsplashからのイメージ画像 */
        background-image: url("https://images.unsplash.com/photo-1550751827-4bd374c3f58b?q=80&w=2070&auto=format&fit=crop");
        background-size: cover;
        background-position: center;
        z-index: -1;
        filter: grayscale(100%) brightness(0.4); /* モノクロにして暗くする */
      }

      .hero-container {
        text-align: center;
        z-index: 1;
        padding: 2rem;
      }

      /* ブランドロゴ（ITO LOG） */
      .brand-logo {
        font-size: 1rem;
        letter-spacing: 0.4em;
        margin-bottom: 2rem;
        display: inline-block;
        position: relative;
        opacity: 0;
        transform: translateY(20px);
      }

      .brand-logo::after {
        content: "";
        position: absolute;
        bottom: -10px;
        left: 50%;
        transform: translateX(-50%);
        width: 40px;
        height: 1px;
        background-color: #fff;
      }

      /* メインタイトル (WEB CODER) */
      .main-title {
        font-size: clamp(3rem, 10vw, 8rem);
        font-weight: 900;
        line-height: 1;
        letter-spacing: -0.02em;
        margin-bottom: 3rem;
        overflow: hidden;
      }

      .title-line {
        display: block;
        overflow: hidden;
      }

      .title-word {
        display: inline-block;
        transform: translateY(110%);
      }

      /* VIEW MORE ボタン */
      .view-more-btn {
        display: inline-block;
        padding: 1rem 3rem;
        border: 1px solid rgba(255, 255, 255, 0.3);
        color: #fff;
        font-size: 0.875rem;
        letter-spacing: 0.1em;
        transition: all 0.3s ease;
        position: relative;
        overflow: hidden;
        opacity: 0;
        transform: translateY(20px);
      }

      .view-more-btn::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 0%;
        height: 100%;
        background-color: #fff;
        transition: width 0.3s ease;
        z-index: -1;
      }

      .view-more-btn:hover {
        color: #000;
        border-color: #fff;
      }

      .view-more-btn:hover::before {
        width: 100%;
      }
