/* ==========================================================================
   1. アニメーション & 共通エフェクト
   ========================================================================== */
@keyframes superBlurFadeIn {
    0% { filter: blur(24px); opacity: 0; transform: scale(0.99); }
    100% { filter: blur(0); opacity: 1; transform: scale(1); }
}
.blur-entrance {
    animation: superBlurFadeIn 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.img-crisp {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

/* ==========================================================================
   2. 共通背景設定（重複を統一）
   ========================================================================== */
.page-background,
.page-photo-bg,
.page-profile-bg {
    background-attachment: fixed;
    background-size: cover;
    background-position: center center;
}

/* 各ページの個別背景画像 */
.page-background,
.page-photo-bg {
    background-image: url("https://lh3.googleusercontent.com/aida-public/AB6AXuDmm-tPU_EWLWSINiVUdVtiMq89apqzVtX7llp78he0ihX6f6wwN8Ds6eeCPNn-ppKHqFEreM45ITgZUvJ9mkP3Y7iKUeFdTobeZuxO6droT4sICidU3J2avS9DARopFbWl44ptD67Paz3SSJQqVGlzYEmxvwaehcivroLv08OVLhtxMhB3DNN90F_G1HF8Mf5JXd9HInlxhq5X4GI6RmaTkkKsdYl8LbfF3WNngy5MYLvBCT8l0PevO4y7OBvh1ejseE-geOvVsCqe");
}
.page-profile-bg {
    background-image: url("https://lh3.googleusercontent.com/aida-public/AB6AXuBlhu-Pep42T0RXt-cZXjcNp3ZYuRDTtw8HlPcpVqYzDXfoQZTqSNYb7-zhlOtAaAm7XWRfC9RuzFUK2g6HM56mvd_Wdf7s6re9h_UAG5uYb2IQjSfxy2Vn50Nc2p6ow_kg5Vdu0sqKu4BPs7rcLGtsnwbA1K04Vdo-0w_gTehynT9Akh-nNBXLGWHC62XJJzDuKKe5Dnho7q94rT21Uo-KWdKdfDBYoVLNP6u2nJzSiBtxSuIhWjtiUiQmZpstH3cIjOFf60fXYWEF");
}
.page-profile .map-bg { background-image: url(/_common/img/map.jpg); }
.page-about .signature-font { font-family: "Shippori Mincho", serif; }

.page-home .parallax-section {
    background-image: url('/_common/img/parallax-bg.jpg');
    background-attachment: fixed;
    background-size: cover;
    background-position: center;
}

/* ==========================================================================
   3. 各ページ専用コンポーネント
   ========================================================================== */
/* SERVICES */
.page-services .glass-card {
    background: rgba(255, 255, 255, 0.45);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.5);
}
.page-services .roadmap-node { position: relative; z-index: 10; }
.page-services .roadmap-node::after {
    content: ''; position: absolute; top: 50%; left: 100%; width: 100%; height: 1px;
    background: repeating-linear-gradient(to right, rgb(210, 134, 180) 0, rgb(210, 134, 180) 4px, transparent 4px, transparent 8px);
    z-index: -1; transform: translateY(-50%);
}
.page-services .roadmap-node:last-child::after { display: none; }
.page-services .icon-filled { font-variation-settings: 'FILL' 1; }

/* ==========================================================================
   4. パーティクル（共通化と一括管理）
   ========================================================================== */
.particle {
    position: absolute;
    background-color: #fff;
    border-radius: 50%;
}

/* 共通のサイズと配置パターン（全ページ共通） */
:is(.page-home, .page-contact, .page-services) .particle--01 { width: 12px; height: 12px; left: 10%; top: 20%; opacity: 0.3; filter: blur(6px); }
:is(.page-home, .page-contact, .page-services) .particle--02 { width: 20px; height: 20px; left: 45%; top: 5%; opacity: 0.4; filter: blur(10px); }
:is(.page-home, .page-contact, .page-services) .particle--03 { width: 8px; height: 8px; left: 80%; top: 15%; opacity: 0.25; filter: blur(4px); }
:is(.page-home, .page-contact, .page-services) .particle--04 { width: 24px; height: 24px; left: 30%; top: -5%; opacity: 0.5; filter: blur(12px); }
:is(.page-home, .page-contact, .page-services) .particle--05 { width: 15px; height: 15px; left: 65%; top: 40%; opacity: 0.35; filter: blur(7px); }

/* HOME / CONTACT ページ用のアニメーション */
:is(.page-home, .page-contact) .particle--01 { animation: glide-diag 45s linear infinite -15s; }
:is(.page-home, .page-contact) .particle--02 { animation: glide-diag 52s linear infinite -32s; }
:is(.page-home, .page-contact) .particle--03 { animation: glide-diag 38s linear infinite -5s; }
:is(.page-home, .page-contact) .particle--04 { animation: glide-diag 60s linear infinite -42s; }
:is(.page-home, .page-contact) .particle--05 { animation: glide-diag 48s linear infinite -10s; }

/* SERVICES ページ用のアニメーション（固有の速度・遅延を上書き） */
.page-services .particle--01 { animation: glide-diag 44.7173s linear infinite -20.6243s; }
.page-services .particle--02 { animation: glide-diag 56.7817s linear infinite -0.864443s; }
.page-services .particle--03 { animation: glide-diag 39.6566s linear infinite -16.7753s; }
.page-services .particle--04 { animation: glide-diag 43.3392s linear infinite -25.9405s; }
.page-services .particle--05 { animation: glide-diag 46.4406s linear infinite -47.1867s; }

