{
  "slug": "swimhub-portal",
  "officialName": "SwimHub Portal",
  "officialNameJa": "SwimHub 会員ポータル",
  "officialNameJaAlt": "SwimHub マイページ＋SNS",
  "inAppBrand": "SwimHub",
  "shortDescription": "個人スイマー向けの「マイページ ＋ SNS」統合ハブ。レース解析・ベストタイム・練習ログをひとつに集約し、フォロー／フィードでつながる。",
  "tagline": "記録も、解析も、仲間も。スイマーのためのホーム。",
  "taglineAlt": "レース解析・ベストタイム・練習ログをひとつに。",
  "primaryUrl": "https://portal.swimhub.jp/",
  "loginUrl": "https://portal.swimhub.jp/login",
  "signupUrl": "https://portal.swimhub.jp/signup",
  "accountRequirement": "ポータル本体（フィード／マイページ／練習ログ）はログイン必須。未ログインで見られるのは /login・/signup・利用規約(/terms)・サポート(/support)・共有teaser(/r/:shareId)・OGP のみ。",
  "platformRole": "swimhub.jp プラットフォームの consumer 個人ハブ。レース解析(race-analysis)・スタート解析(start-analysis)の結果を集約して表示し、練習ログSNSを提供する。解析ロジック自体は持たない（中央ストアから読むだけ）。",
  "brandColors": [
    { "name": "Primary Blue (プライマリ)", "value": "#2563EB" },
    { "name": "Blue 700 (プライマリ濃)", "value": "#1D4ED8" },
    { "name": "Cyan / Sky (アクセント・Hubグラデ終点)", "value": "#38BDF8" },
    { "name": "Sky 500 (PWA theme_color・OGグラデ中間)", "value": "#0EA5E9" },
    { "name": "Ink (主要テキスト・Swimワードマーク)", "value": "#0F1F33" },
    { "name": "Ink 2 (副次テキスト)", "value": "#3A4A60" },
    { "name": "Muted (補助テキスト)", "value": "#7585A0" },
    { "name": "Line (罫線/境界)", "value": "#E4EBF3" },
    { "name": "Canvas / Surface (背景・カード面)", "value": "#FFFFFF" },
    { "name": "Surface 2 (副次面・hover/タブ)", "value": "#F1F5FB" },
    { "name": "App BG / Tint (PWA background_color・ティント面)", "value": "#F7F9FC" },
    { "name": "Gold (自己ベスト/強調)", "value": "#F5A623" },
    { "name": "Green (改善/ポジティブ)", "value": "#16B981" },
    { "name": "Red (通知/警告)", "value": "#EF4444" }
  ],
  "brandGradient": {
    "name": "Brand Gradient (Swim→Hub・ボタン/ワードマークHub)",
    "css": "linear-gradient(120deg, #2563EB 0%, #38BDF8 100%)",
    "softCss": "linear-gradient(120deg, #1D4ED8 0%, #0EA5E9 60%, #38BDF8 100%)"
  },
  "fonts": {
    "latin": "Inter (Google Fonts・weight 400/500/600/700/800)",
    "japanese": "Noto Sans JP (Google Fonts・weight 400/500/700/800)",
    "stack": "\"Inter\", \"Noto Sans JP\", ui-sans-serif, system-ui, -apple-system, \"Hiragino Kaku Gothic ProN\", sans-serif",
    "wordmarkWeight": "800 (ExtraBold)"
  },
  "uiTone": "ライト基調の「ソーシャルハブ」。X(旧Twitter)風の白背景・3カラム、角丸18pxカード＋ソフトシャドウ、ブルー→シアンのグラデをブランドアクセントに使う。情報密度は高めだが余白とカードで整理。モバイルはボトムナビ＋ドロワー。",
  "logoFiles": [
    "logo/logo-swimhub-lockup.svg",
    "logo/logo-swimhub-wordmark.svg"
  ],
  "canonicalLogo": "logo/logo-swimhub-lockup.svg",
  "logoComposition": "ロックアップ = 角丸アプリアイコン + ワードマーク『SwimHub』（Swim=ink #0F1F33 / Hub=ブランドグラデ）。これがアプリ内 Wordmark.tsx の構成と一致。ワードマーク単体版は logo-swimhub-wordmark.svg。",
  "iconFiles": [
    "icon/icon-512.png",
    "icon/icon-192.png",
    "icon/apple-touch-icon.png",
    "icon/favicon-32.png",
    "icon/favicon-16.png",
    "icon/favicon.ico",
    "icon/manifest.webmanifest"
  ],
  "canonicalIcon": "icon/icon-512.png",
  "iconDescription": "青フルブリードの角丸スクエア（#2563EB→#38BDF8 系グラデ）に、白のグロッシーな抽象マーク2つ（レーン/うねりを想起させるフック状フォーム）。app-icon と maskable は同一原本（フルブリード）。",
  "screenshotFiles": [],
  "screenshotsPending": true,
  "screenshotPlan": {
    "desktop": [
      "screenshots/desktop/01-feed-home.png   (/ フォローフィード＝看板画面)",
      "screenshots/desktop/02-mypage.png      (/me マイページ：プロフィール＋ベストタイム＋成長カルテ＋マイツール)",
      "screenshots/desktop/03-record-detail.png (/me/records/:event 種目詳細：成長グラフ＋更新履歴)",
      "screenshots/desktop/04-workout-log.png (/me/logs 練習ログ一覧 or /me/logs/:id 詳細)",
      "screenshots/desktop/05-login-marketing.png (/login 分割レイアウトのマーケ面＝ブランド面)"
    ],
    "mobile": [
      "screenshots/mobile/01-feed-home.png    (/ フォローフィード)",
      "screenshots/mobile/02-mypage.png       (/me マイページ)",
      "screenshots/mobile/03-workout-editor.png (/me/logs/new 練習エディタ／筋肉図)",
      "screenshots/mobile/04-login.png        (/login)"
    ]
  },
  "bannerRecommended": [
    "screenshots/desktop/01-feed-home.png",
    "screenshots/desktop/02-mypage.png",
    "screenshots/desktop/05-login-marketing.png",
    "screenshots/mobile/01-feed-home.png",
    "screenshots/mobile/02-mypage.png"
  ],
  "logoDiffWithMediaSwim": "media-swim 側 site/public/media-kit/swimhub-portal/ に初回反映済み。public配下は既存Race/Startの流儀に合わせてフラット配置。原本からの差分は暗背景用の白文字派生SVG（logo-swimhub-lockup-dark.svg、logo-swimhub-wordmark-dark.svg）の追加のみ。スクリーンショットは未同梱でCAPTURE-GUIDEのみ反映。",
  "notes": [
    "表示名はユーザー確認済み：日本語『SwimHub 会員ポータル』／英語『SwimHub Portal』。アプリ内ワードマークは『SwimHub』単体（傘サイトでは他のSwimHub系プロダクトと区別するため Portal を付す）。",
    "ロゴ正式版は logo-swimhub-lockup.svg（アイコン＋ワードマークのロックアップ）。アイコンは原本512px PNGを埋め込み、ワードマークは Inter 800 のライブテキスト → 開く側に Inter があると正確。無い場合はアウトライン化 or Inter 同梱を推奨。",
    "リポジトリに独立したロゴ原本ファイル（.svg/.ai）は存在しない。ロゴはアプリ内 React コンポーネント Wordmark.tsx（CSS）＋アプリアイコンPNGで構成される。本パッケージの2つのSVGはそれを忠実に再現したもの（新規デザインではない）。",
    "ロゴ表記は1語キャメルケース『SwimHub』。『Swim Hub』『SWIMHUB』『swimhub』にしない。",
    "暗背景版ロゴは未提供。暗背景に置く場合は Swim/Hub 全文字を白 #FFFFFF にする想定（要作成）。",
    "app-icon-192/512 と maskable-192/512 はバイト同一（フルブリード）のため maskable は同梱省略。PWA の purpose:any / maskable は同じ画像を共用している。",
    "スクリーンショットは本パッケージでは未同梱（ユーザー判断で後回し）。撮影手順・撮るべき画面・PII ルールは screenshots/CAPTURE-GUIDE.md に明記。",
    "スクショ撮影時は seed のダミーユーザー（alice@dev.local 等・架空）でローカル起動して撮ること。実アカウント・実ユーザーデータは使わない。seed には未成年ユーザー mina が含まれるため、未成年の画面・限定公開コンテンツは撮影対象にしない（成人・public の alice を使う）。",
    "価格（freemium／月額想定）は社内検討段階で未確定。バナーに価格・『無料』『有料』を断定して載せない。",
    "競合比較・内部ポジショニング表現（例『Swimperia超え』）は社外公開素材に絶対に載せない。",
    "技術スタック名（Supabase / Cloudflare / React Router 等）はメディアキットには不要。載せない。"
  ]
}
