    /* ===== ラウンジ レスポンシブ調整 ===== */
    /* PC: 参加者リストをサイドバーで常時表示 */
    #lounge-participants-aside {
      width: 230px;
      border-left: 1px solid #f0efe9;
      background: #fafaf7;
      overflow-y: auto;
      flex-shrink: 0;
    }

    #lounge-participants-toggle {
      display: none;
    }

    @media (max-width: 640px) {

      /* モバイル: 参加者リストをドロワーに変更 */
      #lounge-participants-aside {
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        width: 70%;
        max-width: 280px;
        border-left: 1px solid #f0efe9;
        background: #fff;
        box-shadow: -4px 0 16px rgba(0, 0, 0, 0.15);
        z-index: 10;
        transform: translateX(100%);
        transition: transform .25s ease;
      }

      #lounge-participants-aside.open {
        transform: translateX(0);
      }

      #lounge-participants-toggle {
        display: inline-flex !important;
      }

      #lounge-participants-close-btn {
        display: inline-flex !important;
      }
    }

    /* 賑わいインジケータ: 最初にパカパカ点滅してから鼓動へ移行 */
    @keyframes dot-blink {

      0%,
      100% {
        opacity: 1;
        transform: scale(1);
      }

      45% {
        opacity: 0.08;
        transform: scale(.85);
      }
    }

    @keyframes pulse-live {
      0% {
        box-shadow: 0 0 0 0 rgba(34, 255, 136, .65);
      }

      70% {
        box-shadow: 0 0 0 9px rgba(34, 255, 136, 0);
      }

      100% {
        box-shadow: 0 0 0 0 rgba(34, 255, 136, 0);
      }
    }

    /* 点滅(0.45s × 6 = 2.7s)→鼓動に切替。animation プロパティで連鎖 */
    .live-dot {
      display: inline-block;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: #22ff88;
      animation:
        dot-blink 0.45s ease-in-out 6,
        /* 6回点滅 ≈ 2.7s */
        pulse-live 1.6s ease-out 2.7s infinite;
      /* その後に鼓動ループ */
      will-change: transform, opacity, box-shadow;
    }

    /* =====================================================
       賑わい数字: デジタル時計風フェード切替 + キラキラ
       ===================================================== */
    .live-stat {
      position: relative;
      overflow: visible;
    }

    /* --- 数字の退場 / 入場 --- */
    @keyframes num-exit {
      0% {
        opacity: 1;
        transform: translateY(0) scaleY(1);
        filter: blur(0px);
      }

      100% {
        opacity: 0;
        transform: translateY(-18px) scaleY(.65);
        filter: blur(3px);
      }
    }

    @keyframes num-enter {
      0% {
        opacity: 0;
        transform: translateY(18px) scaleY(.65);
        filter: blur(3px);
      }

      55% {
        opacity: 1;
        transform: translateY(-4px) scaleY(1.06);
        filter: blur(0px);
      }

      100% {
        opacity: 1;
        transform: translateY(0) scaleY(1);
        filter: blur(0px);
      }
    }

    /* 数字変化後の一瞬ゴールドグロー */
    @keyframes num-glow-flash {
      0% {
        text-shadow: 0 0 14px rgba(255, 255, 255, .25);
      }

      25% {
        text-shadow: 0 0 28px rgba(255, 220, 70, .95), 0 0 52px rgba(255, 160, 20, .55);
      }

      100% {
        text-shadow: 0 0 14px rgba(255, 255, 255, .25);
      }
    }

    .num.num-exit {
      animation: num-exit .22s ease-in forwards !important;
    }

    .num.num-enter {
      animation: num-enter .40s cubic-bezier(.22, .9, .36, 1) forwards !important;
    }

    .num.num-glow {
      animation: num-glow-flash .75s ease-out forwards;
    }

    /* is-now の発光は glow 中は上書きしない（!important で num-glow 優先） */

    /* --- シマーリング（黄金の円形光輪） --- */
    /* position:fixed で body に append → overflow:hidden に一切クリップされない */
    @keyframes shimmer-ring {
      0% {
        transform: translate(-50%, -50%) scale(.3);
        opacity: .85;
      }

      100% {
        transform: translate(-50%, -50%) scale(2.6);
        opacity: 0;
      }
    }

    .num-shimmer {
      position: fixed;
      width: 80px;
      height: 80px;
      border-radius: 50%;
      background: radial-gradient(circle,
          rgba(255, 230, 60, .65) 0%,
          rgba(255, 180, 20, .25) 50%,
          transparent 72%);
      pointer-events: none;
      z-index: 9998;
      animation: shimmer-ring .7s ease-out forwards;
    }


    /* デジタル風大数字 (賑わいカウンター用) */
    @keyframes digit-bounce {
      0% {
        transform: scale(1);
      }

      50% {
        transform: scale(1.08);
      }

      100% {
        transform: scale(1);
      }
    }

    @keyframes shine-sweep {
      0% {
        transform: translateX(-100%) skewX(-20deg);
      }

      60% {
        transform: translateX(220%) skewX(-20deg);
      }

      100% {
        transform: translateX(220%) skewX(-20deg);
      }
    }

    /* フル幅: #screen-login section { max-width:720px } を完全に打ち消す
       ビューポート端から端まで色帯を出すため margin/padding をゼロ化 */
    #screen-login section.live-stats-wrap,
    #screen-login section.recruit-rail-wrap {
      max-width: 100% !important;
      width: 100% !important;
      margin-left: 0 !important;
      margin-right: 0 !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
    }

    .live-stats-wrap {
      width: 100%;
      max-width: 100%;
      margin: 18px 0 0;
      padding: 0;
      /* 端から端まで色帯にする */
      box-sizing: border-box;
    }

    .live-stats-card {
      background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
      border-radius: 0;
      /* フル幅帯にするので角丸なし */
      padding: 18px 16px 20px;
      box-shadow: 0 4px 14px rgba(15, 52, 96, .15);
      position: relative;
      overflow: hidden;
    }

    /* 十分な画面幅では中央に寄せて読みやすく */
    @media (min-width: 900px) {
      .live-stats-card {
        padding: 22px 28px 24px;
      }

      .live-stats-card>* {
        max-width: 1040px;
        margin-left: auto;
        margin-right: auto;
      }
    }

    .live-stats-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 30%;
      height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .06), transparent);
      animation: shine-sweep 6s ease-in-out infinite;
      pointer-events: none;
    }

    .live-stats-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 14px;
      flex-wrap: wrap;
      gap: 6px;
      position: relative;
      z-index: 1;
    }

    .live-stats-head .ttl {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-weight: 800;
      color: #fff;
      font-size: 16px;
      letter-spacing: .05em;
    }

    .live-stats-head .sub {
      font-size: 11px;
      color: #a0c4ff;
    }

    .live-stats-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      position: relative;
      z-index: 1;
    }

    @media (min-width: 560px) {
      .live-stats-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
      }
    }

    .live-stat {
      background: rgba(255, 255, 255, .07);
      border: 1px solid rgba(255, 255, 255, .12);
      border-radius: 12px;
      padding: 12px 8px 14px;
      text-align: center;
      transition: transform .2s, background .2s;
    }

    .live-stat:hover {
      transform: translateY(-2px);
      background: rgba(255, 255, 255, .10);
    }

    .live-stat .lbl {
      font-size: 11px;
      color: #b8c5e0;
      font-weight: 700;
      margin-bottom: 6px;
      letter-spacing: .03em;
    }

    .live-stat .num {
      /* 機械的でシンプルな等幅フォント (LED風) を優先 */
      font-family: 'Share Tech Mono', 'Courier New', 'Consolas', 'SF Mono', 'Menlo', monospace;
      font-size: clamp(40px, 12vw, 64px);
      font-weight: 900;
      line-height: 1;
      letter-spacing: .04em;
      display: inline-block;
      color: #ffffff;
      /* 白一色 */
      text-shadow: 0 0 14px rgba(255, 255, 255, .25);
      /* 軽い発光感だけ残す */
      transition: transform .25s ease-out;
    }

    .live-stat .num.bump {
      animation: digit-bounce .35s ease-out;
    }

    /* 「いま活動中」だけは控えめなグリーンの発光で「ライブ感」をキープ。
       数字本体は引き続き白色。 */
    .live-stat.is-now .num {
      color: #ffffff;
      text-shadow: 0 0 16px rgba(122, 242, 166, .55);
    }

    .live-stat.is-now .lbl {
      color: #b6f3c9;
    }

    .live-stat .unit {
      font-size: 11px;
      color: #98a8c8;
      margin-top: 4px;
      font-weight: 600;
    }

    .live-stats-cats {
      margin-top: 14px;
      padding-top: 12px;
      border-top: 1px dashed rgba(255, 255, 255, .15);
      position: relative;
      z-index: 1;
    }

    .live-stats-cats-ttl {
      font-size: 11px;
      color: #b8c5e0;
      margin-bottom: 8px;
      font-weight: 700;
    }

    .live-stats-cats-list {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }

    .live-stats-cats-list a {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      background: rgba(255, 255, 255, .10);
      border: 1px solid rgba(255, 255, 255, .18);
      border-radius: 14px;
      padding: 5px 11px;
      font-size: 12px;
      color: #fff;
      text-decoration: none;
      transition: background .15s;
    }

    .live-stats-cats-list a:hover {
      background: rgba(255, 255, 255, .18);
    }

    .live-stats-cats-list a strong {
      color: #ffd479;
      font-weight: 800;
    }

    .live-stats-cats-list a .ct {
      color: #b8c5e0;
      font-size: 10px;
    }

    /* ---- 公開募集カルーセル (フル幅) ---- */
    .recruit-rail-wrap {
      width: 100%;
      max-width: 100%;
      margin: 22px 0 0;
      padding: 18px 0 8px;
      box-sizing: border-box;
      background: linear-gradient(180deg, #fff 0%, #fafaf7 100%);
      border-top: 1px solid #ececea;
      border-bottom: 1px solid #ececea;
    }

    .recruit-rail-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin: 0 0 12px;
      padding: 0 16px;
      max-width: 1040px;
      margin-left: auto;
      margin-right: auto;
    }

    .recruit-rail-head h2 {
      font-size: 16px;
      font-weight: 800;
      color: #1a1a18;
      margin: 0;
      letter-spacing: .03em;
    }

    .recruit-rail-head a {
      font-size: 12px;
      color: #534AB7;
      text-decoration: none;
      font-weight: 700;
    }

    .recruit-rail {
      display: flex;
      gap: 12px;
      overflow-x: auto;
      overflow-y: hidden;
      -webkit-overflow-scrolling: touch;
      scroll-snap-type: x mandatory;
      scroll-padding-left: 16px;
      padding: 4px 16px 16px;
      scrollbar-width: thin;
      /* カードが少なくて画面に収まる場合は中央に寄せる
         (overflow 時は左揃えに戻る・safe で対応) */
      justify-content: safe center;
    }

    .recruit-rail::-webkit-scrollbar {
      height: 6px;
    }

    .recruit-rail::-webkit-scrollbar-thumb {
      background: rgba(83, 74, 183, .25);
      border-radius: 6px;
    }

    /* === 横長カード: 左=写真 / 右=詳細 (写真は切らずに全表示) === */
    .recruit-card {
      flex: 0 0 auto;
      width: 340px;
      min-height: 140px;
      background: #fff;
      border: 1px solid #e2e0d8;
      border-radius: 14px;
      padding: 12px;
      text-decoration: none;
      color: inherit;
      scroll-snap-align: start;
      transition: transform .15s, box-shadow .15s, border-color .15s;
      display: grid;
      grid-template-columns: 120px 1fr;
      grid-template-areas:
        "thumb cat"
        "thumb title"
        "thumb snip"
        "thumb loc";
      grid-template-rows: auto auto 1fr auto;
      column-gap: 12px;
      row-gap: 4px;
      box-sizing: border-box;
      align-items: start;
    }

    .recruit-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 6px 18px rgba(83, 74, 183, .12);
      border-color: #d0c8f0;
    }

    .recruit-card .rc-cat {
      grid-area: cat;
      display: inline-flex;
      align-items: center;
      background: #f5f4ff;
      color: #534AB7;
      font-size: 10px;
      font-weight: 700;
      padding: 3px 9px;
      border-radius: 10px;
      margin-bottom: 2px;
      justify-self: start;
      max-width: 100%;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .recruit-card .rc-thumb {
      grid-area: thumb;
      align-self: stretch;
      width: 120px;
      height: 100%;
      min-height: 116px;
      border-radius: 10px;
      overflow: hidden;
      background: #f3f4f6;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 36px;
    }

    .recruit-card .rc-thumb img {
      width: 100%;
      height: 100%;
      /* 写真を切らずに縦横比のまま全体表示 */
      object-fit: contain;
      object-position: center;
      display: block;
    }

    .recruit-card .rc-title {
      grid-area: title;
      font-size: 13px;
      font-weight: 800;
      color: #1a1a18;
      line-height: 1.4;
      margin: 0;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .recruit-card .rc-snip {
      grid-area: snip;
      font-size: 11px;
      color: #666;
      line-height: 1.5;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .recruit-card .rc-loc {
      grid-area: loc;
      font-size: 10px;
      color: #888;
      margin-top: 6px;
      padding-top: 6px;
      border-top: 1px dashed #ececea;
    }

    /* 狭い画面: カード幅を画面に応じて縮小 */
    @media (max-width: 420px) {
      .recruit-card {
        width: calc(100vw - 56px);
        max-width: 340px;
      }
    }

    .recruit-rail-hint {
      font-size: 11px;
      color: #aaa;
      text-align: center;
      margin: 2px auto 0;
      padding: 0 16px;
      line-height: 1.7;
      max-width: 1040px;
    }

    @keyframes matchDot {

      0%,
      80%,
      100% {
        opacity: .3;
        transform: scale(.85);
      }

      40% {
        opacity: 1;
        transform: scale(1.1);
      }
    }

    /* ===== MatchAI アイコン（9マスグリッド + HSL3次元のユーザー別色） ===== */
    /* :root のユーザー固有色 (--user-hue / --user-sat / --user-bright) は
       index.php のインライン <style> で PHP から動的に注入する。
       ここでは定義しないので、その値が無くても他のスタイルが壊れないように
       下記の各 .matchai-icon-* で fallback を持たせる。 */

    .matchai-icon {
      display: inline-block;
      vertical-align: middle;
      flex-shrink: 0;
      /* HSL3次元: 主軸=色相、確信度=彩度、外向性=明度 */
      filter: hue-rotate(var(--user-hue, 0deg)) saturate(var(--user-sat, 1)) brightness(var(--user-bright, 1));
      animation: matchai-color-shift 6s ease-in-out infinite;
    }

    /* 色相 ±60° + 彩度 ±0.3 + 明度 ±0.1 で全方位に色変化 */
    @keyframes matchai-color-shift {

      0%,
      100% {
        filter: hue-rotate(calc(var(--user-hue, 0deg) - 60deg)) saturate(calc(var(--user-sat, 1) * 0.85)) brightness(calc(var(--user-bright, 1) * 0.95));
      }

      25% {
        filter: hue-rotate(calc(var(--user-hue, 0deg) + 30deg)) saturate(calc(var(--user-sat, 1) * 1.2)) brightness(calc(var(--user-bright, 1) * 1.05));
      }

      50% {
        filter: hue-rotate(calc(var(--user-hue, 0deg) + 60deg)) saturate(calc(var(--user-sat, 1) * 0.9)) brightness(calc(var(--user-bright, 1) * 1.08));
      }

      75% {
        filter: hue-rotate(calc(var(--user-hue, 0deg) - 30deg)) saturate(calc(var(--user-sat, 1) * 1.15)) brightness(calc(var(--user-bright, 1) * 0.98));
      }
    }

    /* 各セルが対角線方向の波で光る */
    .matchai-icon rect {
      transform-origin: center;
      transform-box: fill-box;
      animation: matchai-cell-pulse 2.4s ease-in-out infinite;
    }

    .matchai-icon rect:nth-child(1) {
      animation-delay: 0.00s;
    }

    .matchai-icon rect:nth-child(2) {
      animation-delay: 0.15s;
    }

    .matchai-icon rect:nth-child(3) {
      animation-delay: 0.30s;
    }

    .matchai-icon rect:nth-child(4) {
      animation-delay: 0.15s;
    }

    .matchai-icon rect:nth-child(5) {
      animation-delay: 0.30s;
    }

    .matchai-icon rect:nth-child(6) {
      animation-delay: 0.45s;
    }

    .matchai-icon rect:nth-child(7) {
      animation-delay: 0.30s;
    }

    .matchai-icon rect:nth-child(8) {
      animation-delay: 0.45s;
    }

    .matchai-icon rect:nth-child(9) {
      animation-delay: 0.60s;
    }

    @keyframes matchai-cell-pulse {

      0%,
      100% {
        opacity: 1;
        transform: scale(1);
      }

      50% {
        opacity: .55;
        transform: scale(.85);
      }
    }

    /* ===== ロゴテキスト「MatchAI」のアニメーション ===== */
    /* 案A: 常時グラデーション波（各文字に独立適用） */
    /* 案B: ページ読み込み時の1回だけ、各文字が順番にポンッと弾む */
    .logo-text-anim {
      display: inline-block;
      font-weight: 700;
      white-space: nowrap;
    }

    .logo-letter {
      display: inline-block;
      background: linear-gradient(90deg,
          #FF5577, #FF7E5C, #E76BB5,
          #534AB7, #7B6BE0, #3D8AE0,
          #FF5577);
      background-size: 250% auto;
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      color: transparent;
      animation:
        logoGradient 7s linear infinite,
        logoIntroPulse 1.2s cubic-bezier(.34, 1.56, .64, 1) 1 both;
      transform-origin: center bottom;
    }

    /* 各文字の intro パルス開始時刻をずらす（gradient も同じく少しズレて波に） */
    .logo-letter:nth-child(1) {
      animation-delay: 0s, 0.10s;
    }

    .logo-letter:nth-child(2) {
      animation-delay: -0.5s, 0.18s;
    }

    .logo-letter:nth-child(3) {
      animation-delay: -1.0s, 0.26s;
    }

    .logo-letter:nth-child(4) {
      animation-delay: -1.5s, 0.34s;
    }

    .logo-letter:nth-child(5) {
      animation-delay: -2.0s, 0.42s;
    }

    .logo-letter:nth-child(6) {
      animation-delay: -2.5s, 0.50s;
    }

    .logo-letter:nth-child(7) {
      animation-delay: -3.0s, 0.58s;
    }

    @keyframes logoGradient {
      0% {
        background-position: 0% center;
      }

      100% {
        background-position: 250% center;
      }
    }

    @keyframes logoIntroPulse {
      0% {
        opacity: 0;
        transform: translateY(6px) scale(0.6);
      }

      60% {
        opacity: 1;
        transform: translateY(-2px) scale(1.18);
      }

      100% {
        opacity: 1;
        transform: translateY(0) scale(1);
      }
    }

    /* ヘッダーロゴ（コンパクト）のホバー時アクセント */
    .app-header .header-logo:hover .logo-letter {
      animation-duration: 2.5s, 1.2s;
    }

    /* モーション低減設定をリスペクト */
    @media (prefers-reduced-motion: reduce) {

      .matchai-icon,
      .matchai-icon rect,
      .logo-text-anim,
      .logo-letter {
        animation: none !important;
      }

      .logo-text-anim {
        -webkit-text-fill-color: #534AB7;
        color: #534AB7;
        background: none;
      }
    }

    /* ロゴ（ログイン画面・ロック画面）: テキストの左に大きく */
    .logo {
      display: inline-flex;
      align-items: center;
      gap: 12px;
    }

    .logo .matchai-icon {
      width: 40px;
      height: 40px;
    }

    /* ヘッダー（メイン画面）: 小さめでテキストの左に */
    .header-logo {
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }

    .header-logo .matchai-icon {
      width: 22px;
      height: 22px;
    }

    /* ホバー時にほんのり拡大 */
    .header-logo:hover .matchai-icon {
      transform: scale(1.08) rotate(-3deg);
      transition: transform .25s ease;
    }

    /* Twemoji 画像表示（本文中） */
    img.twemoji {
      height: 1.2em;
      width: 1.2em;
      margin: 0 .04em 0 .04em;
      vertical-align: -0.2em;
      display: inline-block;
    }

    /* Twemoji 画像（ピッカーグリッド内・タブ内） */
    #emoji-grid img.twemoji {
      height: 22px;
      width: 22px;
      margin: 0;
      vertical-align: middle;
    }

    #emoji-cat-tabs img.twemoji {
      height: 22px;
      width: 22px;
      margin: 0;
      vertical-align: middle;
    }

    /* 日記フィード本文の絵文字サイズ（テキストとほぼ同じ高さ） */
    #diary-feed img.twemoji,
    #diary-feed img.emoji {
      height: 1.5em;
      width: 1.5em;
      vertical-align: -0.3em;
    }

    /* ===== トップヘッダー（スタイリッシュ版） ===== */
    .app-header {
      display: flex;
      align-items: center;
      gap: 4px;
      padding: 10px 16px;
      background: rgba(255, 255, 255, 0.92);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      border-bottom: 1px solid rgba(0, 0, 0, 0.05);
      position: sticky;
      top: 0;
      z-index: 100;
    }

    .app-header .header-logo {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-weight: 700;
      font-size: 17px;
      color: #534AB7;
    }

    .app-header .header-logo .matchai-icon {
      width: 28px;
      height: 28px;
    }

    .app-header .btn-icon {
      padding: 8px;
      border-radius: 10px;
      transition: background .15s, transform .12s;
    }

    .app-header .btn-icon:hover {
      background: #f5f4ff;
      transform: scale(1.05);
    }

    .app-header .btn-icon:active {
      transform: scale(0.92);
    }

    /* サイドメニューに移したヘッダーボタンは非表示 */
    .hidden-header-btn {
      display: none !important;
    }

    /* ===== サイドメニュー ===== */
    #side-menu.open {
      transform: translateX(0) !important;
    }

    #side-menu-backdrop.open {
      display: block !important;
      opacity: 1 !important;
    }

    .side-menu-item {
      width: 100%;
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 14px 20px;
      background: none;
      border: none;
      cursor: pointer;
      font-size: 14px;
      color: #1a1a18;
      text-align: left;
      transition: background .12s;
      position: relative;
    }

    .side-menu-item:hover {
      background: #fafaf7;
    }

    .side-menu-item:active {
      background: #f0efe9;
    }

    .side-menu-item .smi-icon {
      flex-shrink: 0;
      width: 24px;
      height: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .side-menu-item .smi-label {
      flex: 1;
      font-weight: 500;
    }

    .side-menu-item .smi-badge {
      background: #FFB85C;
      color: #5a3a00;
      font-size: 10px;
      font-weight: 700;
      min-width: 18px;
      height: 18px;
      line-height: 18px;
      border-radius: 9px;
      padding: 0 6px;
      text-align: center;
    }

    .side-menu-divider {
      height: 1px;
      background: #f0efe9;
      margin: 8px 16px;
    }

    /* ===== ログイン画面のレイアウト調整（スクロール可・統一幅） ===== */
    #screen-login {
      align-items: stretch !important;
      justify-content: flex-start !important;
      height: auto !important;
      min-height: 100dvh;
      overflow-y: auto;
      padding: 0 !important;
      background: #f8f7f4;
    }

    #screen-login .login-box {
      max-width: 720px !important;
      width: calc(100% - 40px) !important;
      margin: 0 auto !important;
      padding: 32px 28px !important;
    }

    /* ===== ピクセルアートにゃんこマスコット ===== */
    .cat-pet-wrap {
      position: relative;
      width: 220px;
      height: 64px;
      margin: 22px auto 30px;
      /* ↓ 注意書きと十分な空間を確保 */
      overflow: visible;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
      outline: none;
      user-select: none;
    }

    .cat-pet-wrap:focus-visible {
      outline: 2px dashed #534AB7;
      outline-offset: 8px;
      border-radius: 6px;
    }

    /* 吹き出し（クリック時に表示） */
    .cat-pet-bubble {
      position: absolute;
      bottom: 100%;
      left: 50%;
      margin-bottom: 8px;
      background: #fff;
      color: #534AB7;
      font-size: 12px;
      font-weight: 700;
      padding: 6px 13px;
      border-radius: 14px;
      border: 1.5px solid #534AB7;
      white-space: nowrap;
      opacity: 0;
      transform: translateX(-50%) translateY(8px) scale(.85);
      transition: opacity .2s, transform .3s cubic-bezier(.34, 1.56, .64, 1);
      pointer-events: none;
      box-shadow: 0 3px 10px rgba(83, 74, 183, 0.2);
      z-index: 5;
    }

    .cat-pet-bubble.show {
      opacity: 1;
      transform: translateX(-50%) translateY(0) scale(1);
    }

    .cat-pet-bubble::after {
      content: '';
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%);
      width: 0;
      height: 0;
      border: 6px solid transparent;
      border-top-color: #534AB7;
    }

    .cat-pet-bubble::before {
      content: '';
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%) translateY(-2px);
      width: 0;
      height: 0;
      border: 5px solid transparent;
      border-top-color: #fff;
      z-index: 1;
    }

    .cat-particles {
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 3;
    }

    .cat-particle {
      position: absolute;
      bottom: 38%;
      font-size: 14px;
      line-height: 1;
      pointer-events: none;
      user-select: none;
      animation: catParticleFloat 1.4s ease-out forwards;
      animation-delay: var(--delay, 0s);
      will-change: transform, opacity;
    }

    @keyframes catParticleFloat {
      0% {
        transform: translate(0, 0) scale(.3);
        opacity: 0;
      }

      15% {
        transform: translate(calc(var(--dx, 0px) * .25), -6px) scale(1.15);
        opacity: 1;
      }

      100% {
        transform: translate(var(--dx, 0px), -42px) scale(.55);
        opacity: 0;
      }
    }

    .cat-pet {
      position: absolute;
      bottom: 6px;
      width: 6px;
      height: 6px;
      background: transparent;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
      outline: none;
      will-change: transform;
    }

    .cat-pet:focus-visible {
      outline: 2px dashed #534AB7;
      outline-offset: 8px;
      border-radius: 3px;
    }

    /* 9 マス × 6px = 54px 幅、7 マス × 6px = 42px 高さの猫 */
    .cat-a {
      left: 8px;
      animation: catA-walk 5s ease-in-out infinite;
    }

    .cat-b {
      right: 8px;
      animation: catB-walk 5s ease-in-out infinite;
    }

    /* ─ 白ねこ（左→中央へ。横幅66px = 11セル×6px）─ */
    @keyframes catA-walk {
      0% {
        transform: translateX(0) translateY(0);
      }

      8% {
        transform: translateX(6px) translateY(-2px);
      }

      16% {
        transform: translateX(12px) translateY(0);
      }

      24% {
        transform: translateX(18px) translateY(-2px);
      }

      32% {
        transform: translateX(24px) translateY(0);
      }

      40% {
        transform: translateX(31px) translateY(-2px);
      }

      48% {
        transform: translateX(36px) translateY(0) scale(1);
      }

      50% {
        transform: translateX(36px) translateY(-3px) scale(1.1) rotate(-4deg);
      }

      /* ぶつかる */
      55% {
        transform: translateX(32px) translateY(0) scale(1) rotate(2deg);
      }

      /* 跳ね返り */
      60% {
        transform: translateX(34px) translateY(-1px) scale(1);
      }

      68% {
        transform: translateX(26px) translateY(-2px);
      }

      80% {
        transform: translateX(15px) translateY(0);
      }

      92% {
        transform: translateX(5px) translateY(-2px);
      }

      100% {
        transform: translateX(0) translateY(0);
      }
    }

    /* ─ 黒ねこ（右→中央へ）─ */
    @keyframes catB-walk {
      0% {
        transform: translateX(0) translateY(0);
      }

      8% {
        transform: translateX(-6px) translateY(-2px);
      }

      16% {
        transform: translateX(-12px) translateY(0);
      }

      24% {
        transform: translateX(-18px) translateY(-2px);
      }

      32% {
        transform: translateX(-24px) translateY(0);
      }

      40% {
        transform: translateX(-31px) translateY(-2px);
      }

      48% {
        transform: translateX(-36px) translateY(0) scale(1);
      }

      50% {
        transform: translateX(-36px) translateY(-3px) scale(1.1) rotate(4deg);
      }

      55% {
        transform: translateX(-32px) translateY(0) scale(1) rotate(-2deg);
      }

      60% {
        transform: translateX(-34px) translateY(-1px) scale(1);
      }

      68% {
        transform: translateX(-26px) translateY(-2px);
      }

      80% {
        transform: translateX(-15px) translateY(0);
      }

      92% {
        transform: translateX(-5px) translateY(-2px);
      }

      100% {
        transform: translateX(0) translateY(0);
      }
    }

    /* 動きを止めたい設定のユーザーには静止 */
    @media (prefers-reduced-motion: reduce) {

      .cat-a,
      .cat-b {
        animation: none;
      }

      .cat-particle {
        animation: none;
        opacity: .7;
      }
    }

    /* PC では遊び場を少し広げる（猫サイズはそのまま、歩く距離が伸びる） */
    @media (min-width: 900px) {
      .cat-pet-wrap {
        width: 240px;
        height: 72px;
        margin: 28px auto 36px;
      }
    }

    /* 「公開募集を見る」ボタンのホバー（白背景＋グレー枠） */
    .skl-cta-explore:hover {
      background: #fafaf7 !important;
      border-color: #b8b6ac !important;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    }

    /* ログイン CTA バナーのホバー */
    #btn-open-login-modal:hover {
      transform: translateY(-2px);
      box-shadow: 0 6px 20px rgba(83, 74, 183, 0.45);
    }

    #btn-open-login-modal:active {
      transform: translateY(0);
    }

    /* ログインモーダルの開閉 */
    #login-modal.is-open {
      opacity: 1 !important;
    }

    #login-modal.is-open #login-modal-inner {
      transform: scale(1) !important;
    }

    #screen-login section,
    #screen-login footer {
      max-width: 720px !important;
      width: calc(100% - 40px);
      margin-left: auto !important;
      margin-right: auto !important;
    }

    /* ===== PC でも幅をのびのび使う（タブレット〜大型ディスプレイ） ===== */
    @media (min-width: 900px) {
      #screen-login .skl-hero {
        max-width: 1040px !important;
        padding-left: 40px !important;
        padding-right: 40px !important;
      }

      #screen-login section.skl-section {
        max-width: 1040px !important;
      }

      #screen-login footer {
        max-width: 1040px !important;
      }
    }

    @media (min-width: 1280px) {

      #screen-login .skl-hero,
      #screen-login section.skl-section,
      #screen-login footer {
        max-width: 1180px !important;
      }
    }

    /* CTA バナー（ログインボタン外側）も PC では広めに */
    @media (min-width: 900px) {
      #screen-login>div[style*="max-width:720px"] {
        max-width: 1040px !important;
      }
    }

    /* 折りたたみ詳細内のグリッドを PC では多列化（ステップ・安全項目） */
    @media (min-width: 900px) {
      #screen-login .skl-faq .skl-steps {
        grid-template-columns: 1fr 1fr 1fr !important;
      }

      #screen-login .skl-faq .skl-trust>div[style*="grid-template-columns:1fr"] {
        grid-template-columns: 1fr 1fr !important;
      }
    }

    @media (min-width: 1280px) {
      #screen-login .skl-faq .skl-trust>div[style*="grid-template-columns:1fr"] {
        grid-template-columns: 1fr 1fr 1fr !important;
      }
    }

    #screen-login .login-box .tagline {
      font-size: 15px;
      margin-bottom: 24px;
    }

    #screen-login .login-box .btn {
      font-size: 15px;
      padding: 13px 22px;
    }

    #screen-login .login-box .privacy-note {
      font-size: 13px;
      line-height: 1.7;
    }

    /* ヒーロー */
    .skl-hero {
      padding: 40px 24px 20px !important;
    }

    .skl-hero .logo {
      font-size: 36px !important;
    }

    .skl-hero .skl-tagline {
      font-size: 20px !important;
      margin: 18px 0 8px !important;
    }

    .skl-hero .skl-sub {
      font-size: 16px !important;
    }

    .skl-hero .skl-chip {
      font-size: 13px !important;
      padding: 6px 12px !important;
    }

    .skl-hero .skl-notice {
      font-size: 14px !important;
      padding: 12px 18px !important;
      max-width: 480px !important;
      line-height: 1.7 !important;
    }

    .skl-hero .skl-notice small {
      font-size: 12px !important;
    }

    /* セクション見出し */
    .skl-section {
      margin: 32px auto !important;
      padding: 0 24px !important;
    }

    .skl-section h2 {
      font-size: 19px !important;
      margin-bottom: 18px !important;
    }

    /* 使い方ステップ */
    .skl-step {
      padding: 20px 22px !important;
      gap: 16px !important;
    }

    .skl-step .skl-num {
      width: 44px !important;
      height: 44px !important;
      font-size: 18px !important;
    }

    .skl-step .skl-step-title {
      font-size: 16px !important;
      margin-bottom: 5px !important;
    }

    .skl-step .skl-step-desc {
      font-size: 14px !important;
      line-height: 1.75 !important;
    }

    /* 信頼性カード */
    .skl-trust {
      padding: 22px !important;
    }

    .skl-trust .skl-trust-item {
      font-size: 14px !important;
      gap: 10px !important;
    }

    .skl-trust .skl-trust-item small {
      font-size: 12px !important;
      display: block;
      margin-top: 2px;
    }

    .skl-trust .skl-operator {
      font-size: 14px !important;
      padding-top: 18px !important;
      line-height: 1.8 !important;
    }

    .skl-trust .skl-operator small {
      font-size: 12px !important;
    }

    .skl-trust .skl-operator a {
      font-size: 13px !important;
    }

    /* FAQ */
    .skl-faq {
      padding: 18px 22px !important;
    }

    .skl-faq summary {
      font-size: 15px !important;
    }

    .skl-faq>div {
      font-size: 14px !important;
      line-height: 1.9 !important;
    }

    /* CTAボタン (公開募集を見る) */
    .skl-cta-explore {
      font-size: 15px !important;
      padding: 12px 28px !important;
    }

    /* フッター */
    #screen-login footer {
      padding: 24px !important;
      font-size: 13px !important;
    }

    #screen-login footer p:first-child {
      margin-bottom: 10px;
    }

    #screen-login footer a {
      font-size: 13px !important;
    }

    @media (min-width: 720px) {
      .skl-steps {
        grid-template-columns: 1fr 1fr 1fr !important;
      }
    }

    /* ===== 右上フローティングログインボタン（未ログイン時のみ） ===== */
    #floating-login-btn {
      position: fixed;
      top: 16px;
      right: 20px;
      z-index: 2000;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: #fff;
      border: 1.5px solid rgba(83, 74, 183, .25);
      box-shadow: 0 2px 10px rgba(0, 0, 0, .14);
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      color: #534AB7;
      transition: box-shadow .15s, transform .12s;
      -webkit-tap-highlight-color: transparent;
    }

    #floating-login-btn:hover {
      box-shadow: 0 4px 16px rgba(83, 74, 183, .28);
      transform: scale(1.07);
    }

    #floating-login-btn:active {
      transform: scale(.94);
    }

    /* ======================================================================
       Silver theme（トップページ／未ログイン時のランディング）
       - ベースを白に近いシルバーに統一
       - ボタン/チップ/カードはシルバーガラス調で統一
       - 装飾アイコンはモノクロ SVG (.ic) で統一
       ====================================================================== */
    body { background:#eef1f5; }
    #screen-login {
      background:
        radial-gradient(1200px 600px at 50% -10%, #ffffff 0%, rgba(255,255,255,0) 60%),
        linear-gradient(180deg, #f4f6f9 0%, #e9edf2 100%);
      color:#2a2e34;
    }
    #screen-login .skl-hero .skl-tagline,
    #screen-login .skl-hero .skl-tagline strong { color:#2a2e34 !important; }
    #screen-login .skl-hero .skl-sub { color:#6a7280 !important; }

    /* ===== ファーストビュー: 信頼バー ===== */
    .hero-trust-bar{
      display:inline-flex;
      flex-wrap:wrap;
      align-items:center;
      justify-content:center;
      gap:4px 4px;
      margin:14px auto 2px;
      padding:8px 16px;
      background:rgba(255,255,255,0.7);
      border:1px solid #d5dae1;
      border-radius:999px;
      font-size:12.5px;
      color:#5a6270;
      line-height:1.6;
      backdrop-filter:blur(4px);
      -webkit-backdrop-filter:blur(4px);
    }
    .hero-trust-bar strong{ color:#1f2226; font-weight:800; }
    .hero-trust-bar .sep{ color:#b0b7c1; margin:0 2px; }
    .hero-trust-bar .ic{ color:#5a6270; vertical-align:-0.2em; margin-right:1px; }

    /* 興味タグをリンク化したときの装飾（既存 glass-chip を踏襲しつつ下線なし） */
    a.skl-chip.glass-chip{ text-decoration:none; cursor:pointer; }
    a.skl-chip.glass-chip:hover{ background:#eef1f7 !important; }
    /* チップ内の単色アイコン */
    .skl-chip .ic{ color:#5a6270; }

    /* ===== 事業者向けバナー（C2B 訴求） ===== */
    .biz-banner-wrap{ width:90%; max-width:760px; margin:20px auto 0; box-sizing:border-box; }
    .biz-banner{
      background:linear-gradient(180deg,#ffffff 0%,#f4f6f9 100%);
      border:1px solid #c8ccd2;
      border-radius:16px;
      padding:20px 22px;
      box-sizing:border-box;
    }
    .biz-banner-head{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
    .biz-banner-icon{
      flex-shrink:0;
      width:44px; height:44px;
      border-radius:12px;
      background:#eef1f5;
      border:1px solid #c8ccd2;
      display:inline-flex; align-items:center; justify-content:center;
      color:#5a6270;
    }
    .biz-banner-icon svg{ width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
    .biz-banner-title{ font-size:18px; font-weight:800; color:#1f2226; margin:0; line-height:1.3; }
    .biz-banner-sub{ font-size:12.5px; color:#5a6270; margin:2px 0 0; font-weight:600; }
    .biz-banner-lead{ font-size:13.5px; color:#3a3f47; line-height:1.85; margin:0 0 14px; }
    .biz-banner-lead strong{ color:#1f2226; }
    .biz-banner-examples{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:16px; }
    @media (max-width:480px){ .biz-banner-examples{ grid-template-columns:1fr; } }
    .biz-ex{
      display:flex; align-items:center; gap:8px;
      background:#ffffff; border:1px solid #c8ccd2; border-radius:10px;
      padding:9px 12px; font-size:12.5px; color:#3a3f47; font-weight:600;
    }
    .biz-ex-ic{ flex-shrink:0; color:#5a6270; display:inline-flex; }
    .biz-ex-ic svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
    .biz-banner-cta{ display:flex; flex-wrap:wrap; gap:10px; }
    .biz-cta-primary, .biz-cta-secondary{
      flex:1; min-width:160px;
      display:inline-flex; align-items:center; justify-content:center;
      padding:13px 16px; border-radius:10px;
      font-size:14px; font-weight:700; cursor:pointer; text-decoration:none; box-sizing:border-box;
    }
    .biz-cta-primary{ background:#1f2226; color:#ffffff; border:1px solid #1f2226; }
    .biz-cta-primary:hover{ background:#2f343c; }
    .biz-cta-secondary{ background:#ffffff; color:#2a2e34; border:1px solid #c8ccd2; }
    .biz-cta-secondary:hover{ background:#f4f6f9; }
    .biz-banner-note{ font-size:11px; color:#9aa1ab; margin:10px 0 0; text-align:center; line-height:1.6; }

    /* ===== CTA: ミニ保証バッジ ===== */
    .cta-assurance{
      display:flex;
      flex-wrap:wrap;
      align-items:center;
      justify-content:center;
      gap:6px;
      margin-top:12px;
    }
    .cta-badge{
      font-size:11.5px;
      font-weight:700;
      color:#3a7a4a;
      background:#eef7f0;
      border:1px solid #c5e3cd;
      border-radius:999px;
      padding:4px 11px;
      white-space:nowrap;
    }

    /* モノクロアイコン共通 */
    .ic{
      display:inline-block;
      width:1em; height:1em;
      vertical-align:-0.18em;
      fill:none;
      stroke:currentColor;
      stroke-width:1.7;
      stroke-linecap:round;
      stroke-linejoin:round;
      flex-shrink:0;
    }
    .ic--lg{ width:1.5em; height:1.5em; }

    /* シルバートーン共通（平面・立体感なし） */
    .glass{
      background:#f4f6f9;
      border:1px solid #c8ccd2;
      box-shadow:none;
      color:#2a2e34;
    }

    /* 3 用途チップ（教える/趣味/お店） */
    .skl-chip.glass-chip{
      background:#ffffff !important;
      color:#3a3f47 !important;
      border:1px solid #c8ccd2;
      box-shadow:none;
      display:inline-flex; align-items:center; gap:6px;
      padding:6px 14px;
      border-radius:999px;
      font-weight:600;
    }
    .skl-chip.glass-chip .ic{ color:#5a6270; }

    /* シナリオカード 3 件 */
    .skl-scenarios .glass-card{
      background:#ffffff !important;
      border:1px solid #c8ccd2 !important;
      box-shadow:none;
    }
    .skl-scenarios .glass-card .ic{ color:#5a6270; }
    .skl-scenarios .glass-card .scen-ttl{ color:#2a2e34; }
    .skl-scenarios .glass-card .scen-desc{ color:#6a7280; }
    /* 3つの利用例カード（学ぶ/一緒にやる/頼む）*/
    .scen3-card .scen-ttl{ color:#1f2226; }
    .scen3-card .scen-desc{ color:#5a6270; }
    .scen3-ic svg{ width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

    /* メインCTA（ログイン/新規登録） */
    #btn-open-login-modal.glass-cta{
      background:#f4f6f9 !important;
      color:#2a2e34 !important;
      border:1px solid #c8ccd2 !important;
      box-shadow:none !important;
      display:inline-flex; align-items:center; gap:10px; justify-content:center;
    }
    #btn-open-login-modal.glass-cta:hover{
      background:#eaedf2 !important;
      transform:none;
      box-shadow:none !important;
    }
    #btn-open-login-modal.glass-cta .ic{ color:#5a6270; }

    /* サービス詳細サマリー */
    .skl-faq.glass-faq{
      background:#ffffff !important;
      border:1px solid #c8ccd2 !important;
      box-shadow:none !important;
    }
    .skl-faq.glass-faq summary{ color:#2a2e34 !important; }
    .skl-faq.glass-faq summary .ic{ color:#5a6270; }

    /* 公開募集ヘッダ */
    .recruit-rail-head h2{ color:#2a2e34 !important; display:inline-flex; align-items:center; gap:8px; }
    .recruit-rail-head h2 .ic{ color:#5a6270; }

    /* 安心の3つの約束ボックス */
    section[aria-label="安心の3つの約束"] > div{
      background:#ffffff !important;
      border:1px solid #c8ccd2 !important;
      box-shadow:none;
    }
    section[aria-label="安心の3つの約束"] h2{ color:#2a2e34 !important; display:inline-flex; align-items:center; gap:8px; }
    section[aria-label="安心の3つの約束"] h2 .ic{ color:#5a6270; }

    /* フローティングログインボタンもシルバーに寄せる（平面） */
    #floating-login-btn{
      background:#ffffff;
      border:1px solid #c8ccd2;
      color:#3a3f47;
      box-shadow:none;
    }
    #floating-login-btn:hover{
      background:#f4f6f9;
      transform:none;
      box-shadow:none;
    }
