# DESIGN.md — Preferred Networks(PFN)
> 株式会社 Preferred Networks(https://www.preferred.jp/ja/)のデザイン仕様書。
> 2014 年創業。深層学習の研究開発から**自社設計の AI プロセッサ(MN-Core)まで、AI 技術のバリューチェーンを垂直統合**する日本の AI 企業。
> 最大の特徴は **`letter-spacing` と `line-height` が「36px を境に切り替わる」1 本の規則で全ページを通している**こと。**36px 以上は `0.03em` / `1.3`、30px 以下は `0.05em` / `1.5`**。例外がほとんど無い。
> 色は **`#1a4aff`(電圧の高い青)1 色**。**面色は塗らず、`background-image` のグラデーションで塗る**ため、`background-color` を読むだけでは色が一切見えない。
> ヒーローの大見出しは **`background-clip: text` によるグラデーション文字**(濃紺 → 青)。**`color` は `rgba(0,0,0,0)` を返す**。
> **`font-weight` は 400 がほぼすべて**。72px の見出しも Regular で、太らせずにサイズだけで階層を作る。
> **`font-feature-settings: "palt"` が全要素に継承される**。
> 実サイトの computed style 実測(2026-08-15 取得。日本語トップ + ニュース一覧)に基づく。
---
## 1. Visual Theme & Atmosphere
- **デザイン方針**: **白地に、Regular の大きな和文と 1 色の青**。装飾を持たず、**タイポグラフィのサイズ差と青のグラデーションだけ**で構成する。研究開発企業らしい理知的な静けさ
- **PFN について**: 「現実世界を計算可能にし、共に未来を創り出す」がミッション。**半導体からアプリケーションまでの垂直統合**という事業構造を、サイトでは**「白地の説明 → 濃紺のグラデーションカード」という 2 層の切り替え**で表現している
- **密度**: 中程度。**ヒーローは 72px の見出し 1 つだけ**で、以降は白地セクションと濃紺カードが交互に現れる
- **キーワード**: `#1a4aff`、グラデーション文字、radius 6px / 16px、weight 400 一択、`palt`、Noto Sans JP
- **特徴**:
- **`letter-spacing` と `line-height` が 36px を境に切り替わる**。**≥36px → `0.03em` / `1.3`、≤30px → `0.05em` / `1.5`**、**14px だけ `0.05em` / `1.3`**。この 1 本の規則が全ページを貫く
- **`font-weight` は 400 が原則**。**500 が現れるのはドロワーの見出しリンク(20px)だけ**。72px の h1 も 48px の h2 も Regular
- **面を `background-color` で塗らない**。CTA も濃紺カードも **`background-image: linear-gradient(...)`** で塗る。ソリッドな青も **「全ストップが同色のグラデーション」**(`linear-gradient(160deg, #1a4aff, #1a4aff)`)として書かれている
- **ヒーローの大見出しは `background-clip: text` のグラデーション文字**。`linear-gradient(160deg, #010947, #0043af 51%, #0046ff 99%)` を文字で切り抜く。**`color` は `rgba(0,0,0,0)`**
- **radius は 2 段だけ**: **ボタン `6px`(`rounded-md`)/ カード `16px`(`rounded-2xl`)**。ニュースの告知バーだけ `80px` のピル
- **`box-shadow` を 1 つも使わない**。奥行きは**濃紺グラデーションのカード**が担う
- **`font-feature-settings: "palt"`** が `body` から全要素に継承される
- 実装は **Tailwind CSS + Mantine**。**`--mantine-*` の CSS 変数は 250 個あるが、すべてライブラリの既定値でブランド設計とは無関係**
---
## 2. Color Palette & Roles
> 実測値。地は `#ffffff`(`pageBackground.resolved` = `rgb(255,255,255)` / 根拠 `viewportTopBySample (12/12)`。**html / body ともに塗り指定が無く、`background-color` からは判定できない**)。
> **重要**: このサイトは**面色を `background-image` で塗る**。`background-color` だけを見ると **CTA も濃紺カードも「透明」**に見える。**必ず `background-image` を読むこと**。
### Brand(ブランド)
- **PFN Blue** (`#1a4aff`, rgb 26,74,255): **唯一の主色**。CTA の面、リンク文字、告知バーの枠、アウトラインボタンの文字。**`uniqueBackgrounds` で最頻(16 回)**
- 面として塗られるときは **`linear-gradient(160deg, #1a4aff 0px, #1a4aff ...)`**(全ストップ同色)
- **Deep Navy** (`#0d318f`, rgb 13,49,143): Cookie バーの面とボタン。**青の暗い側**
### Gradients(このサイトの面色の実体)
- **Heading Gradient**: **`linear-gradient(160deg, #010947, #0043af 51.03%, #0046ff 99.04%)`**
- **`background-clip: text` で大見出しに掛ける**。左上の濃紺から右下の鮮青へ。**文字色ではなくグラデーションで見出しを塗る**
- **Card Gradient(濃紺)**: **`linear-gradient(160deg, #01053f 20%, #001b6d 40%, #022d73 60%, #00237e 70%, #000a58 90%)`**
- **5 ストップ**。ステートメントカード・事業紹介カードの面。**両端が最も暗く、中央が明るい**(斜めに光が差す)
- **Card Gradient(放射)**: **`radial-gradient(circle at 76% 84%, #002fd7 0px, #000e7e 100%)`**
- 採用セクションのカード。**右下に光源を置く**
- **Solid-as-Gradient**: **`linear-gradient(160deg, #1a4aff, #1a4aff)`** — CTA の面。**ソリッドもグラデーションとして書く**(appearance をトークンで切り替えるための実装)
### Neutral(ニュートラル)
- **Background** (`#ffffff`): ページ地色。**純白**
- **Surface Tint** (`#f3f7ff`, rgb 243,247,255): 告知バーの面。**青の最も薄い版**
- **Surface Gray** (`#f7f7f8`, rgb 247,247,248): 事業紹介セクションの面。**ほぼ無彩色**
- **Ink** (`#000000`): 本文・ナビの文字。**純黒を使う**
- **Ink Inverse** (`#ffffff`): 濃紺カードの上の文字
- **Ink Inverse Muted** (`rgba(255,255,255,0.9)` / `rgba(255,255,255,0.7)`): 濃紺カード上の補足・日付。**白を透過で弱める**(別の色を足さない)
- **Border** (`rgba(0,0,0,0.2)`): CTA の枠。実測は `oklab(0 0 0 / 0.2)` で出る
- **Divider** (`#90a1b9`, rgb 144,161,185): 罫線
### Semantic(意味的な色)
意味色は**サイト内に現れない**。実装で必要になった場合は以下を目安にする。
- **Danger/Error**: `#d62828` 目安。**`#1a4aff` と明度を揃える**
- **Warning**: 新色を足さず、**`#0d318f`(既存の Deep Navy)+ 枠**で表す
- **Success**: `#1a4aff`(既存の PFN Blue)を流用する
- **非活性**: 面 `#f7f7f8` / 文字 `rgba(0,0,0,0.4)`
---
## 3. Typography Rules
> **「36px を境に `letter-spacing` と `line-height` が切り替わる」1 本の規則**がこのサイトの核。書体は Noto Sans JP 単独、ウェイトは 400 一択。
### 3.1 和文フォント
- **全要素共通**: **`"Noto Sans JP", "Noto Sans JP Fallback"`**
- **`"Noto Sans JP Fallback"` は Next.js の `next/font` が自動生成するローカル調整フォント**。実在の書体ではなく、**Web フォント読み込み前後で文字幅がずれない(CLS を防ぐ)ためのメトリクス合わせ**。`size-adjust` / `ascent-override` を持つ
- 一部の要素(ニュース見出しなど)は **`"Noto Sans JP", sans-serif`** とだけ書かれている
- **OS 標準書体(游ゴシック・ヒラギノ・メイリオ)をフォールバックに並べない**。**Noto Sans JP 単独**の構成
- **ウェイト**: **400 が原則**。**500 はドロワーの見出しリンク(20px)だけ**。**700 は 1 箇所も現れない**
- **72px の h1 も 48px の h2 も 400**。**太さで階層を作らず、サイズと色(グラデーション)で作る**
### 3.2 欧文フォント
- **欧文専用の書体を持たない**。`Preferred Networks` `PFN` `MN-Core` `AI` はすべて **Noto Sans JP の字形**で出る
- ロゴのみ SVG
- 等幅フォントは使わない(`--mantine-font-family-monospace` は宣言されているが未使用)
- **preview.html での注記**: **Noto Sans JP は Google Fonts で取得できるため、実サイトと同じ書体でプレビューできる**。`"Noto Sans JP Fallback"` は Next.js の内部生成なので**そのまま書かず、`sans-serif` に置き換えてよい**
### 3.3 font-family 指定
```css
/* 全要素共通 */
font-family: "Noto Sans JP", sans-serif;
/* 実サイトは "Noto Sans JP", "Noto Sans JP Fallback"。
Fallback は next/font のメトリクス合わせで、自前実装では不要 */
/* body の既定 */
font-size: 16px;
font-weight: 400;
line-height: 1.6; /* 25.6px。ただし各要素は 1.5 / 1.3 で上書きする */
letter-spacing: normal; /* body は開かない。要素ごとに当てる */
color: #000000;
font-feature-settings: "palt"; /* ← 全要素に継承される */
```
**フォールバックの考え方**:
- **Noto Sans JP 単独**。OS 標準書体を並べない
- **`body` の `letter-spacing` は `normal`**。字間は**サイズ帯ごとに個別に当てる**(後述の規則)
- **`body` の `line-height: 1.6` は継承の初期値**で、実際のテキストはすべて 1.5 か 1.3 に上書きされる
### 3.4 文字サイズ・ウェイト階層
| Role | Size | Weight | Line Height | Letter Spacing | Color | 備考 |
|------|------|--------|-------------|----------------|-------|------|
| Hero (h1) | **72px** | **400** | **1.3** (93.6px) | **0.03em** (2.16px) | **グラデーション** | `background-clip: text`。`color` は透明 |
| Statement (h2) | **48px** | **400** | **1.3** (62.4px) | **0.03em** (1.44px) | `#ffffff` / グラデーション | 濃紺カード上 / 白地上 |
| Section Head (h2) | **36px** | **400** | **1.3** (46.8px) | **0.03em** (1.08px) | `#ffffff` | 「注目ニュース」 |
| Lead (h2) | 30px | 400 | **1.5** (45px) | **0.05em** (1.5px) | `#ffffff` / グラデーション | 「最先端の技術を最適な形で実装」 |
| Card Head (h3) | 24px | 400 | 1.5 (36px) | 0.05em (1.2px) | `#000000` | 「世界最高水準の AI 技術を擁する…」 |
| Industry (h3) | 22px | 400 | 1.5 (33px) | 0.05em (1.1px) | `#000000` | 「製造業」 |
| Nav (drawer) | 20px | **500** | 1.5 (30px) | 0.05em (1px) | `#000000` | 「企業情報」。**500 が出る唯一の箇所** |
| Body (L) | 18px | 400 | 1.5 (27px) | 0.05em (0.9px) | `#000000` / `#ffffff` | 本文(大) |
| Body | 16px | 400 | 1.5 (24px) | 0.05em (0.8px) | `#000000` / `#ffffff` | 本文の基準 |
| Button | 16px | 400 | 1.5 | **normal** | `#ffffff` / `#1a4aff` | **ボタンだけ字間を開かない** |
| Nav | 14px | 400 | **1.3** (18.2px) | 0.05em (0.7px) | `#000000` | グローバルナビ |
| Meta / Date | 14px | 400 | **1.3** (18.2px) | 0.05em (0.7px) | `rgba(255,255,255,0.7)` | 「2026.07.16」 |
| Small | 12px | 400 | 1.5 (18px) | 0.05em (0.6px) | `#000000` | 「ENGLISH」 |
- **`font-weight` は 400 が原則**。**500 はドロワーの 20px リンクだけ、700 はゼロ**
- **`letter-spacing` は 2 値だけ**: **≥36px → `0.03em`**、**≤30px → `0.05em`**。**ボタンだけ `normal`**
- **`line-height` は 2 値だけ**: **≥36px → `1.3`**、**16〜30px → `1.5`**、**14px → `1.3`**
- **14px が 1.3 なのは「行が短い UI テキスト(ナビ・日付)だから」**。本文サイズ帯(16〜30px)だけが 1.5
### 3.5 行間・字間
**このサイトの字送りは 1 本の規則で説明できる。**
| サイズ帯 | letter-spacing | line-height | 性格 |
|---------|---------------|-------------|------|
| **≥ 36px** | **0.03em** | **1.3** | 見出し。**字間を締め、行を詰めて塊にする** |
| **16〜30px** | **0.05em** | **1.5** | 本文・小見出し。**字間を開き、行を空けて読ませる** |
| **14px 以下** | 0.05em | **1.3** | UI テキスト。字間は本文と同じ、行だけ詰める |
| **ボタン** | **normal** | 1.5 | **唯一の例外**。ピル/矩形の中で横に伸びないよう字間を切る |
- **大見出しほど字間が狭い**(0.03em)のは、**72px という大きさで 0.05em を当てると単語が散る**ため。**サイズが上がるほど締める**という原則
- **`body` に `letter-spacing` を置かない**。サイズ帯ごとに当てる
- **1.3 と 1.5 の 2 値しかない**。1.6 や 1.75 は使わない
**ガイドライン**:
- **新しい文字サイズを足すときは、36px の境界のどちら側かを先に決める**。そこで `letter-spacing` と `line-height` が自動的に決まる
- **ボタンの `letter-spacing: normal` を守る**。ボタンだけは規則の外に置く
- **`line-height` に 1.4 や 1.6 を持ち込まない**。1.3 と 1.5 の 2 値で通す
- **weight を上げて強調しない**。強調は**サイズ・色(グラデーション)・面(濃紺カード)**で作る
### 3.6 禁則処理・改行ルール
```css
overflow-wrap: break-word;
line-break: strict;
word-break: normal;
```
**禁則対象**:
- 行頭禁止: `)」』】〕〉》、。,.・:;?!`
- 行末禁止: `(「『【〔〈《`
- **`palt` が効いているため約物は詰まっている**。追加のマージンを入れない
- **ミッションステートメントは意図した位置で改行させる**(`現実世界を計算可能にし、` / `共に未来を創り出す`)。**読点の直後で折る**。`
` か `max-width` で制御し、自動折り返しに任せない
- **`background-clip: text` の見出しは、改行位置でグラデーションが分断されない**(要素全体に 1 枚のグラデーションが掛かる)。**行ごとに要素を分けないこと**(分けるとグラデーションが行ごとにリセットされる)
- 製品名・略語(`MN-Core`、`PFN`、`Preferred Networks (PFN)`)は**ハイフン・括弧の途中で折らない**(`white-space: nowrap`)
- 「半導体からアプリケーションまで、AI 技術のバリューチェーンを垂直統合」のような**長い名詞句は読点で折る**
- 日付(`2026.07.16`)はドットの前後で折らない
- ボタンのラベル(「お問い合わせ」「業界一覧」)は折り返さない
### 3.7 OpenType 機能
```css
font-feature-settings: "palt"; /* body から全要素に継承 */
```
- **`palt` を `body` に置いて全要素へ継承させる**。約物が自動で詰まる
- **その上で `letter-spacing` を 0.03em / 0.05em で開き直す**。**「詰めてから開く」の二段構え**
- **`palt` と `letter-spacing: 0.05em` の組み合わせが本文の基準**。`palt` を外すと約物が空いて間延びする
- 英数字の多い文書(`MN-Core` `AI` `72` など)が混じるので、**必要なら `"palt", "pkna"` を足す**と欧文プロポーショナルも効く(現行サイトは `palt` のみ)
- **`tnum`(等幅数字)は未使用**。ニュース日付の桁を揃えたい場合は足す
### 3.8 縦書き
- 現行サイトは全面横組み(`writing-mode: horizontal-tb`)
- 縦組みを使う場合は以下
```css
writing-mode: vertical-rl;
text-orientation: mixed;
font-family: "Noto Sans JP", sans-serif;
font-weight: 400;
letter-spacing: 0.05em; /* 本文帯の字間を維持する */
line-height: 1.9; /* 縦組みは横組みの 1.5 より広げる */
font-feature-settings: "vpal"; /* 縦組みでは palt ではなく vpal */
```
- 縦組み中の英数字(`AI` `MN-Core`)は `text-combine-upright: all` を 2 桁までに限定する。**それ以上は横倒しのまま**にする(`MN-Core` は縦中横にしない)
- **`background-clip: text` のグラデーション文字は縦組みに持ち込まない**。グラデーションの角度(160deg)が縦組みでは意味を失う
---
## 4. Component Stylings
> **radius は 2 段だけ**(ボタン `6px` / カード `16px`)。**面は `background-image` のグラデーションで塗る**。**影は使わない**。
### Buttons
**Primary(塗り)**
- Background: **`linear-gradient(160deg, #1a4aff 0px, #1a4aff 100%)`**
— **`background-color` ではない**。ソリッドも全ストップ同色のグラデーションで書く
- Text: **`#ffffff`**
- Border: **`1px solid rgba(0,0,0,0.2)`**
- Padding: **`12px 24px`**
- Border Radius: **`6px`**
- Font: 16px / **weight 400** / lh 1.5 / **`letter-spacing: normal`**
- 例: ヘッダーの「お問い合わせ」
- **枠が `rgba(0,0,0,0.2)` の半透明黒**。青の面に暗い縁が乗って、わずかに沈んで見える
**Secondary(白地・文字だけ青)**
- Background: **`#ffffff`**
- Text: **`#1a4aff`**
- Border: **なし**(`0px solid #1a4aff`)
- Padding: **`0 24px`**(大)/ **`0 16px`**(小)
- Border Radius: **`6px`**
- Font: 16px(大)/ 14px(小) / weight 400 / ls 0.05em
- 例: フッターの「お問い合わせ」「事業内容」「研究開発」「ニュース一覧」「採用情報」
- **枠を持たない**。青い文字だけで押せることを示す
**On-Navy(濃紺カード上)**
- Background: **`linear-gradient(160deg, #1a4aff, #1a4aff)`**
- Text: `#ffffff`
- Border: **なし**
- Padding: `0 16px`
- Border Radius: **`6px`**
- Font: 14px / weight 400 / ls 0.05em
- 例: 濃紺カード内の「業界一覧」「企業情報」「創業者メッセージ」
**Announcement Pill(告知バー)— radius 80px**
- Background: **`#f3f7ff`**(青の最薄)
- Text: `#000000`(末尾の「詳細 ›」だけ `#1a4aff`)
- Border: **`1px solid #1a4aff`**
- Padding: **`12px 20px`**
- Border Radius: **`80px`** — **サイト唯一のピル**
- Font: 14px / weight 400 / ls 0.05em
- 例: 「Noetra によるフィジカル AI 向け国産マルチモーダル基盤モデル開発に参画」
- **左端にベルアイコン(青い円)、右端に「詳細 ›」を縦罫で区切って置く**
- **ピルはこの告知バーだけ**。他の操作要素は必ず 6px の矩形
### Cards
**Navy Statement Card — このサイトの主役**
- Background: **`linear-gradient(160deg, #01053f 20%, #001b6d 40%, #022d73 60%, #00237e 70%, #000a58 90%)`**
- Border Radius: **`16px`**(`rounded-2xl`)
- Shadow: **なし**
- Overflow: `hidden`
- Text: `#ffffff`(見出し)/ `rgba(255,255,255,0.9)`(本文)/ `rgba(255,255,255,0.7)`(日付)
- 構成: 48px / 400 の見出し → 18px / 400 の本文 → On-Navy ボタン
- **白地セクションと濃紺カードを交互に置く**のがページのリズム。**濃紺カードが「章」の単位**
**Radial Card(採用)**
- Background: **`radial-gradient(circle at 76% 84%, #002fd7 0px, #000e7e 100%)`**
- Border Radius: `16px`
- **右下に光源**。ステートメントカード(線形)と使い分ける
**Light Card(事業紹介)**
- Background: **`#f7f7f8`**
- Border Radius: `16px`
- Text: `#000000`
- 構成: 22〜24px / 400 の見出し → 16px / 400 の本文
### Inputs
実サイトに公開フォームが無いため、**このサイトの原則(radius 6px / 影なし / weight 400)から導くと以下**。
- Background: `#ffffff`
- Border: **`1px solid rgba(0,0,0,0.2)`**(Primary ボタンの枠と同じ)
- Border (focus): **`1px solid #1a4aff`**
- Border Radius: **`6px`**
- Padding: **`12px 16px`**
- Font: 16px / weight 400 / ls 0.05em / Text Color: `#000000`
- Placeholder: `rgba(0,0,0,0.4)`
### Cookie Banner
- Background: `#ffffff`
- Text: 13px / weight 400 / lh 1.5 / `#333333`
- Link: **`#0d318f`**(Deep Navy。**`#1a4aff` ではない**)
- Accept ボタン: 面 **`#0d318f`** / 文字 `#ffffff` / **radius `0px`** / padding `3.25px 6.5px`
- Settings ボタン: 白地 / 文字 `#0d318f` / **`2px solid #0d318f`** / radius `0px`
- **Cookie バーだけ設計が違う**(radius 0、色が Deep Navy、枠 2px)。**サードパーティの CMP なので、自社実装のリファレンスにしない**
---
## 5. Layout Principles
### Spacing Scale
Tailwind の `0.25rem` 系スケール。
| Token | Value |
|-------|-------|
| 1 | 4px |
| 2 | 8px |
| 3 | 12px |
| 4 | 16px |
| 6 | 24px |
| 8 | 32px |
| 12 | 48px |
| 20 | 80px |
### Container
- Max Width: **1200px** 目安(1440px 幅でカードが左右 120px の余白を持つ)
- 読み物カラム: **760px** 目安
- Padding (horizontal): 24〜120px
- ヘッダーは **`position: fixed`・白地・不透過**。**KV に重ねない**
- **ヘッダー構成**: 左にロゴ(SVG)→ 中央にナビ 7 項目(14px / 400)→ 右に Primary ボタン + 縦罫 + `ENGLISH`(12px)
### Grid
- Columns: 業界カードは **3〜4 カラム**、ニュースは 1 カラム
- Gutter: 16〜24px
- **ページのリズムは「白地セクション → 濃紺カード → 白地セクション」の交互**。**セクションごとに地色を変えるのではなく、カードの面色で章を切る**
- **告知バーはヘッダー直下・コンテナ幅の左寄せ**(全幅にしない)
- 濃紺カードは **`overflow: hidden` + radius 16px** で、内部の装飾グラフィックを切り抜く
---
## 6. Depth & Elevation
**実測の `box-shadow` は 0 段**。サイト内に影が 1 つも存在しない。
| Level | Shadow | 用途 |
|-------|--------|------|
| 0 | **`none`** | **全要素**。ボタン・カード・ヘッダー・告知バーのすべて |
- **奥行きは「濃紺グラデーションのカード」が担う**。影の代わりに**面の暗さ**で層を作る:
| 層 | 面 | 用途 |
|----|-----|------|
| 地 | `#ffffff` | ページ全体 |
| 薄い面 | `#f7f7f8` / `#f3f7ff` | 事業紹介カード / 告知バー |
| 主役の面 | **濃紺グラデーション** | ステートメント・事業カード |
- **枠線は 1px の 2 種類だけ**: `rgba(0,0,0,0.2)`(Primary ボタン)と `#1a4aff`(告知バー)
- **`--mantine-shadow-xs〜xl` は Mantine の既定値で、サイトでは 1 つも使われていない**。**ライブラリの CSS 変数をブランドトークンと取り違えないこと**(`--mantine-primary-color-*` の水色系 10 段も同様に未使用。**PFN の青 `#1a4aff` は Mantine のパレットに存在しない**)
---
## 7. Do's and Don'ts
### Do(推奨)
- **`letter-spacing` と `line-height` を「36px の境界」で切り替える**。**≥36px → 0.03em / 1.3、16〜30px → 0.05em / 1.5、14px → 0.05em / 1.3**
- **`font-weight` は 400 で通す**。500 はドロワーの 20px リンクだけ、**700 は使わない**
- **強調はサイズ・グラデーション・面の暗さで作る**。太さで作らない
- **有彩色は `#1a4aff` の 1 色**に絞る
- **面は `background-image: linear-gradient(...)` で塗る**。ソリッドも**全ストップ同色のグラデーション**として書く(appearance をトークンで切り替えられる)
- **大見出しは `background-clip: text` のグラデーション文字**にする(`linear-gradient(160deg, #010947, #0043af 51%, #0046ff 99%)`)。**`color` は `transparent`**
- **radius は 6px(ボタン)と 16px(カード)の 2 段**にする
- **告知バーだけ radius 80px のピル**にする。他の操作要素をピルにしない
- **`box-shadow` を使わない**。奥行きは濃紺カードで作る
- **`font-feature-settings: "palt"` を `body` に置いて全継承させる**
- **ボタンの `letter-spacing` だけ `normal`** にする
- **白地セクションと濃紺カードを交互に置く**。濃紺カードを「章」の単位にする
- **濃紺カード上の弱いテキストは白の透過**(0.9 / 0.7)で作る。別の色を足さない
- **ミッションステートメントは読点で改行させる**(`
` か `max-width`)
- **`background-clip: text` の見出しを行ごとに要素分割しない**(グラデーションがリセットされる)
- **Noto Sans JP 単独**でフォールバックを組む
### Don't(禁止)
- **`font-weight: 700` を使わない**。太字での強調はこのサイトの語彙に無い
- **`line-height` に 1.4 / 1.6 / 1.75 を持ち込まない**。**1.3 と 1.5 の 2 値だけ**
- **`letter-spacing` を 0.03em / 0.05em / normal 以外の値にしない**
- **36px の境界を跨いで字間・行間を混ぜない**(48px に 0.05em を当てない)
- **`body` に `letter-spacing` を置いて全継承させない**(サイズ帯ごとに当てる)
- **ボタンの中で `letter-spacing` を開かない**(`normal` を守る)
- **色を増やさない**。有彩色は `#1a4aff` だけ。Deep Navy `#0d318f` は Cookie バー由来なので UI に持ち出さない
- **`background-color` で面を塗らない**(グラデーションで塗る実装に揃える)
- **影を付けない**。`0 2px 8px` のような一般的なカードシャドウを持ち込まない
- **radius を増やさない**(6px / 16px / 告知バーの 80px 以外を作らない)
- **操作要素をピルにしない**(ピルは告知バーだけ)
- **濃紺カードを 2 枚続けて置かない**(白地を挟んでリズムを作る)
- **`--mantine-*` の色・影・radius をブランドトークンとして使わない**(250 個すべてライブラリ既定値。**PFN の青は Mantine のパレットに無い**)
- **`"Noto Sans JP Fallback"` を自前実装にコピーしない**(`next/font` が生成する内部フォント)
- **游ゴシック・ヒラギノをフォールバックに並べない**
- **グラデーション文字を縦組みに持ち込まない**
- **Cookie バーの設計(radius 0 / 枠 2px / Deep Navy)を自社 UI の参照にしない**(サードパーティ CMP)
---
## 8. Responsive Behavior
### Breakpoints
Tailwind の既定ブレークポイントに従う。
| Name | Width | 説明 |
|------|-------|------|
| Mobile | < 768px (`md` 未満) | 1 カラム。ナビはドロワー。**`ENGLISH` は `hidden md:block` で非表示** |
| Tablet | 768–1023px (`md`) | 2 カラム。濃紺カードの padding を詰める |
| Desktop | ≥ 1024px (`lg`) | ナビ 7 項目を横並び。業界カードは 3〜4 カラム |
### タッチターゲット
- 最小サイズ: 44px × 44px(WCAG 基準)
- **Primary ボタンは `padding 12px 24px` + 16px / lh 1.5 で高さ 48px**。基準を満たす
- **Secondary ボタンは `padding 0 24px`(縦 padding ゼロ)**。**高さは親のフレックスで決まるため、モバイルでは `min-height: 44px` を明示する**
- **On-Navy ボタン(14px / `padding 0 16px`)も同様に `min-height: 44px` が必要**
- **告知バーは全体をタップ領域**にする(「詳細 ›」だけを押させない)
- カードは**カード全体をタップ領域**にする
### フォントサイズの調整
- 本文 16px は据え置く(14px を下回らない)
- **Hero 72px → モバイルでは 32〜36px。36px を下回ったら `letter-spacing` を 0.05em、`line-height` を 1.5 に切り替える**(境界の規則をモバイルでも守る)
- **Statement 48px → 28〜30px。同じく 36px を割った時点で 0.05em / 1.5 に切り替える**
- Section Head 36px → 24〜26px(→ 0.05em / 1.5)
- Card Head 24px → 20px。**0.05em / 1.5 は維持する**
- Nav 14px → 14px(据え置き)
- Button 16px → 15px まで。**`letter-spacing: normal` と高さ 44px は維持する**
- **`font-weight: 400` はモバイルでも維持する**(小さくなっても太らせない)
- **`palt` はモバイルでも維持する**
- **radius 6px / 16px はモバイルでも変えない**
---
## 9. Agent Prompt Guide
### クイックリファレンス
```
Background: #ffffff (ページ地色。純白。html/body に塗り指定は無い)
Surface Tint: #f3f7ff (告知バーの面。青の最薄)
Surface Gray: #f7f7f8 (事業紹介カードの面)
PFN Blue: #1a4aff (唯一の主色。CTA・リンク・枠)
Deep Navy: #0d318f (Cookie バー専用。UI に持ち出さない)
Ink: #000000 (本文・ナビ。純黒を使う)
Ink Inverse: #ffffff / rgba(255,255,255,0.9) / rgba(255,255,255,0.7)
Border: rgba(0,0,0,0.2)(Primary ボタン枠)/ #1a4aff(告知バー枠)
--- 面はすべて background-image で塗る(background-color は使わない)---
CTA: linear-gradient(160deg, #1a4aff, #1a4aff) ← ソリッドもグラデで書く
見出し: linear-gradient(160deg, #010947, #0043af 51.03%, #0046ff 99.04%)
+ background-clip: text + color: transparent
濃紺カード: linear-gradient(160deg, #01053f 20%, #001b6d 40%, #022d73 60%,
#00237e 70%, #000a58 90%)
放射カード: radial-gradient(circle at 76% 84%, #002fd7 0px, #000e7e 100%)
Font: "Noto Sans JP", sans-serif(Noto Sans JP 単独。OS 書体を並べない)
Body: 16px / weight 400 / lh 1.5 / ls 0.05em / #000000
Weight: 400 一択。500 はドロワーの 20px リンクだけ。700 は使わない
--- 字送りは「36px の境界」1 本の規則 ---
≥ 36px … letter-spacing 0.03em / line-height 1.3 (72 / 48 / 36px)
16〜30px … letter-spacing 0.05em / line-height 1.5 (30 / 24 / 22 / 20 / 18 / 16px)
≤ 14px … letter-spacing 0.05em / line-height 1.3 (14 / 12px)
ボタン … letter-spacing normal (唯一の例外)
Feature: font-feature-settings: "palt" を body に置いて全継承
Radius: ボタン 6px / カード 16px / 告知バーのみ 80px(サイト唯一のピル)
Shadow: 全要素 none(奥行きは濃紺カードの面で作る)
Container: 1200px(読み物 760px)
Rhythm: 白地セクション → 濃紺カード → 白地セクション の交互
```
### プロンプト例
```
Preferred Networks(PFN)のデザインシステムに従って、AI 企業の「事業内容」ページを作成してください。
- フォントは "Noto Sans JP", sans-serif。Noto Sans JP 単独で、
游ゴシック・ヒラギノ・メイリオをフォールバックに並べない
- body に font-feature-settings: "palt" を置いて全要素に継承させる。
body には letter-spacing を置かない(サイズ帯ごとに当てる)
- 字送りは「36px の境界」1 本の規則で決める:
36px 以上 → letter-spacing 0.03em / line-height 1.3
16〜30px → letter-spacing 0.05em / line-height 1.5
14px 以下 → letter-spacing 0.05em / line-height 1.3
ボタンだけ letter-spacing: normal
line-height は 1.3 と 1.5 の 2 値だけ。1.4 や 1.6 を持ち込まない
- font-weight は 400 で通す。700 は一切使わない。
72px の見出しも 48px の見出しも Regular。
強調はサイズ・グラデーション・面の暗さで作り、太さでは作らない
- 有彩色は #1a4aff(PFN Blue)の 1 色だけ。色を増やさない
- 面は background-color ではなく background-image のグラデーションで塗る。
ソリッドな青も linear-gradient(160deg, #1a4aff, #1a4aff) と全ストップ同色で書く
- ページの大見出しは background-clip: text のグラデーション文字にする:
background-image: linear-gradient(160deg, #010947, #0043af 51.03%, #0046ff 99.04%);
background-clip: text; color: transparent;
見出しを行ごとに要素分割しない(グラデーションがリセットされる)
- ページのリズムは「白地セクション → 濃紺カード → 白地セクション」の交互にする。
濃紺カードが章の単位:
background: linear-gradient(160deg, #01053f 20%, #001b6d 40%, #022d73 60%,
#00237e 70%, #000a58 90%);
border-radius: 16px; overflow: hidden;
カード上の文字は #ffffff、本文は rgba(255,255,255,0.9)、日付は rgba(255,255,255,0.7)。
弱いテキストに別の色を足さず、白の透過で作る
- ボタンは radius 6px:
Primary=面 linear-gradient(160deg,#1a4aff,#1a4aff) + 文字 #ffffff +
1px solid rgba(0,0,0,0.2) + padding 12px 24px + 16px weight 400 + ls normal
Secondary=白地 + 文字 #1a4aff + 枠なし + padding 0 24px
濃紺カード上=面 #1a4aff + 文字 #ffffff + 枠なし + padding 0 16px + 14px
- ヘッダー直下の告知バーだけ radius 80px のピルにする:
面 #f3f7ff + 1px solid #1a4aff + padding 12px 20px + 14px。
左にベルアイコン、右に「詳細 ›」を縦罫で区切る。
他の操作要素はピルにしない(radius は 6px と 16px の 2 段だけ)
- box-shadow は一切使わない。奥行きは濃紺カードの面で作る
- ミッションステートメントは読点の位置で改行させる(
か max-width で制御)。
MN-Core や Preferred Networks (PFN) はハイフン・括弧の途中で折らない
- コンテナ幅は 1200px、読み物カラムは 760px
```