:root {
  --bg: #121211;
  --bg-elevated: #1a1a18;
  --card: #1a1a1a;
  --accent: #00ff00;
  --accent-cta: #ff9100;
  --accent-dim: rgba(0, 255, 0, 0.1);
  --text: #f2f2f2;
  --muted: #a8a8a0;
  --border: #2a2a28;
  --grid-line: rgba(0, 255, 0, 0.08);
  --danger: #ff6b6b;
  --on-accent: #0d0d0d;
  --hero-grad: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(0, 255, 0, 0.12), transparent 55%),
    linear-gradient(180deg, #1a1f18 0%, #121211 45%, #0e0e0d 100%);
  --font-display: "Noto Sans CJK JP", "Noto Sans JP", "Hiragino Sans", sans-serif;
  --font-body: "Noto Sans CJK JP", "Noto Sans JP", "Hiragino Sans", sans-serif;
  --max: 1180px;
  --pad: clamp(1rem, 4vw, 2rem);
  /* 白銀比 ≈ 1 : √2（約 1 : 1.414）／フィボナッチ近似 ≈ 1 : 1.618 */
  --ratio-silver: 1.414;
  --ratio-fib: 1.618;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
}

html, body {
  margin: 0;
  padding: 0;
  min-height: 100%;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-weight: 400;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

a {
  color: var(--accent);
  text-decoration: none;
}
a:hover { text-decoration: underline; }

img { max-width: 100%; display: block; }

/* ── Auth（パスワード再設定）既存レイアウト ── */
.page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
}

.card {
  width: 100%;
  max-width: 400px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 28px 22px;
}

.title { margin: 0 0 8px; font-size: 22px; font-weight: 800; font-family: var(--font-display); }
.sub { margin: 0 0 24px; font-size: 14px; line-height: 1.5; color: var(--muted); }
.label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; color: var(--muted); }
.input {
  width: 100%;
  margin-bottom: 14px;
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #111;
  color: var(--text);
  font-size: 16px;
  font-family: inherit;
}
.btn {
  width: 100%;
  margin-top: 8px;
  padding: 14px 16px;
  border: none;
  border-radius: 12px;
  background: var(--accent);
  color: var(--on-accent);
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
  font-family: inherit;
}
.btn:disabled { opacity: 0.6; cursor: not-allowed; }
.error {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(255, 107, 107, 0.12);
  color: var(--danger);
  font-size: 13px;
  line-height: 1.4;
}
.muted { color: var(--muted); font-size: 13px; line-height: 1.5; }
.center { text-align: center; }
.hidden { display: none !important; }

/* ── 公式サイト共通 ── */
.site {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  backdrop-filter: blur(12px);
  background: rgba(18, 18, 17, 0.88);
  border-bottom: 1px solid var(--border);
}

.site-header__inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0.85rem var(--pad);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.brand {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.25rem;
  letter-spacing: 0.02em;
  color: var(--text);
  text-decoration: none;
}
.brand:hover { text-decoration: none; color: var(--accent); }
.brand span { color: var(--accent); }

.nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  justify-content: flex-end;
  font-size: 0.875rem;
}
.nav a {
  color: var(--muted);
  text-decoration: none;
}
.nav a:hover { color: var(--text); }

.site-main { flex: 1; }

.site-footer {
  margin-top: auto;
  border-top: 1px solid var(--border);
  background: #0c0c0b;
  padding: 2.5rem var(--pad) 2rem;
}

.site-footer__inner {
  max-width: var(--max);
  margin: 0 auto;
  display: grid;
  gap: 1.5rem;
}

.site-footer__brand {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.1rem;
}
.site-footer__brand span { color: var(--accent); }

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  font-size: 0.85rem;
}
.footer-links a { color: var(--muted); }
.footer-links a:hover { color: var(--text); }

.footer-copy {
  font-size: 0.75rem;
  color: var(--muted);
  margin: 0;
}

/* セクション */
.wrap {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.section {
  padding: 3.5rem 0;
}
.section--tight { padding: 2.5rem 0; }
.section--border { border-top: 1px solid var(--border); }

.eyebrow {
  margin: 0 0 0.75rem;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 700;
}

.section-title {
  margin: 0 0 0.75rem;
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 3.5vw, 2.25rem);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

.lead {
  margin: 0;
  max-width: 36rem;
  color: var(--muted);
  font-size: 1rem;
}

/* ヒーロー */
.hero {
  position: relative;
  min-height: min(88vh, 720px);
  display: flex;
  align-items: flex-end;
  background: var(--hero-grad);
  border-bottom: 1px solid var(--border);
  overflow: hidden;
}

.hero--split {
  align-items: stretch;
  flex-direction: column;
  min-height: auto;
}
@media (min-width: 900px) {
  .hero--split {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    min-height: min(78vh, 640px);
  }
}

.hero__media {
  min-height: 220px;
  border-bottom: 1px solid var(--border);
}
@media (min-width: 900px) {
  .hero__media {
    min-height: 100%;
    border-bottom: none;
    border-right: 1px solid var(--border);
    order: -1;
  }
}

.hero-placeholder {
  height: 100%;
  min-height: 220px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 2rem;
  background:
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 12px,
      rgba(255, 255, 255, 0.03) 12px,
      rgba(255, 255, 255, 0.03) 24px
    ),
    #1a1a18;
  text-align: center;
}
@media (min-width: 900px) {
  .hero-placeholder { min-height: 100%; }
}
.hero-placeholder__label {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  font-size: 0.8rem;
}
.hero-placeholder__hint {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
  max-width: 16rem;
  line-height: 1.5;
}

.hero__inner {
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding: 3rem var(--pad) 3rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (min-width: 900px) {
  .hero--split .hero__inner {
    max-width: none;
    padding: 3.5rem 2.5rem;
  }
}

.hero__brand {
  margin: 0 0 1rem;
  font-family: var(--font-display);
  font-size: clamp(3rem, 10vw, 5.5rem);
  font-weight: 800;
  line-height: 0.95;
  letter-spacing: -0.03em;
}
.hero__brand span { color: var(--accent); }

.hero__headline {
  margin: 0 0 0.85rem;
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 4vw, 2.35rem);
  font-weight: 800;
  line-height: 1.3;
  max-width: 18em;
}

.hero__sub {
  margin: 0 0 0.25rem;
  color: var(--muted);
  font-size: 1rem;
  max-width: 32rem;
  line-height: 1.65;
}

/* ニュース枠（発表前は準備中） */
.news-slot {
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--border);
  background: var(--bg-elevated);
}
.news-slot__inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--pad);
  display: flex;
  gap: 1rem;
  align-items: baseline;
  flex-wrap: wrap;
}
.news-slot__label {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: var(--accent);
  text-transform: uppercase;
}
.news-slot__text {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  align-items: baseline;
}
.news-slot__text a { color: var(--text); }
.news-slot__text a:hover { color: var(--accent); }
.news-slot__more { color: var(--accent) !important; font-weight: 700; font-size: 0.85rem; }
.news-slot__sep { color: var(--border); }

.news-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}
.news-list__item {
  display: flex;
  gap: 1rem;
  align-items: center;
  padding: 1.25rem 1.1rem;
  border: 1px solid var(--border);
  background: var(--bg-elevated);
  transition: border-color 0.15s ease;
}
.news-list__item:hover,
.news-list__item:focus-within {
  border-color: var(--accent);
}
.news-list__thumb-link {
  flex-shrink: 0;
  line-height: 0;
}
.news-list__content {
  flex: 1;
  min-width: 0;
  text-decoration: none;
  color: inherit;
}
.news-list__content:hover {
  text-decoration: none;
}
.news-list__thumb {
  width: 72px;
  height: 72px;
  object-fit: contain;
  background: #fff;
  border-radius: 8px;
  flex-shrink: 0;
}
.news-list__body { min-width: 0; flex: 1; }
.news-list__meta {
  display: block;
  font-size: 0.75rem;
  color: var(--accent);
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-bottom: 0.4rem;
}
.news-list__title {
  display: block;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.05rem;
  margin-bottom: 0.35rem;
  line-height: 1.4;
}
.news-list__sum {
  display: block;
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.5;
}

.news-figure {
  margin: 1.25rem 0 1.75rem;
  padding: 1.25rem;
  background: #fff;
  border-radius: 12px;
  width: fit-content;
  max-width: 100%;
}
.news-figure a,
.news-figure__link {
  display: block;
}
.news-figure img {
  width: min(240px, 100%);
  height: auto;
}

.news-article h1 {
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  line-height: 1.35;
}

.people-grid {
  list-style: none;
  margin: 2rem 0 0;
  padding: 0;
  display: grid;
  gap: 1.75rem;
  grid-template-columns: 1fr;
}
@media (min-width: 720px) {
  .people-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
}
.person {
  margin: 0;
  display: grid;
  gap: 0.35rem 1.35rem;
  grid-template-columns: 148px 1fr;
  grid-template-rows: auto auto 1fr;
  align-items: start;
}
@media (min-width: 720px) {
  .person {
    grid-template-columns: 168px 1fr;
  }
}
.person__frame {
  grid-row: 1 / span 3;
  width: 100%;
  max-width: 168px;
  aspect-ratio: 1 / var(--ratio-silver);
  padding: 0;
  border: 1px solid var(--border);
  background: #0a0a0a;
  box-sizing: border-box;
  overflow: hidden;
}
.person__photo {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center top;
  border-radius: 0;
  display: block;
}

.nobr {
  white-space: nowrap;
}
.person__name {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.25rem;
  line-height: 1.3;
}
.person__creds {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--accent);
  line-height: 1.4;
}
.person__bio {
  margin: 0.35rem 0 0;
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.65;
}
.person__note {
  margin: 0.25rem 0 0;
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.4;
}

/* 会社一言 */
.company-blurb {
  padding: 2.75rem 0;
  border-bottom: 1px solid var(--border);
}
.company-blurb p {
  margin: 0.75rem 0 0;
  color: var(--muted);
  max-width: 40rem;
}

/* 二本柱 */
.pillars {
  display: grid;
  gap: 1rem;
  margin-top: 1.75rem;
}
@media (min-width: 720px) {
  .pillars { grid-template-columns: 1fr 1fr; gap: 1.25rem; }
}

.pillar {
  display: block;
  padding: 1.75rem 1.5rem;
  border: 1px solid var(--border);
  background: linear-gradient(160deg, rgba(0, 255, 0, 0.06), transparent 50%), var(--bg-elevated);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.pillar:hover {
  border-color: var(--accent);
  text-decoration: none;
  transform: translateY(-2px);
}
.pillar__kicker {
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--accent);
  text-transform: uppercase;
}
.pillar__title {
  margin: 0 0 0.5rem;
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 800;
}
.pillar__desc {
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: 0.95rem;
}
.pillar__cta {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--accent);
}

/* ページヒーロー（下層） */
.page-hero {
  padding: 3rem 0 2rem;
  border-bottom: 1px solid var(--border);
  background: var(--hero-grad);
}
.page-hero h1 {
  margin: 0 0 0.75rem;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 800;
  line-height: 1.2;
}
.page-hero .lead { font-size: 1.05rem; }

/* 機能リスト等 */
.feature-list {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}
.feature-list li {
  padding: 1rem 1.1rem;
  border-left: 3px solid var(--accent);
  background: var(--accent-dim);
  font-size: 0.95rem;
}
.feature-list strong {
  display: block;
  margin-bottom: 0.2rem;
  font-family: var(--font-display);
}

.prose {
  max-width: 42rem;
}
.prose h2 {
  margin: 2rem 0 0.75rem;
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--accent);
}
.prose p, .prose li {
  color: var(--muted);
  font-size: 0.95rem;
}
.prose ul {
  padding-left: 1.2rem;
}

/* 料金 */
.plans {
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
}
@media (min-width: 640px) {
  .plans { grid-template-columns: 1fr 1fr; }
}
.plan {
  padding: 1.5rem;
  border: 1px solid var(--border);
  background: var(--bg-elevated);
}
.plan--accent {
  border-color: rgba(0, 255, 0, 0.35);
  background: linear-gradient(160deg, rgba(0, 255, 0, 0.08), transparent 40%), var(--bg-elevated);
}
.plan h3 {
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-size: 1.2rem;
}
.plan__price {
  margin: 0 0 1rem;
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 800;
}
.plan__price small {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--muted);
}
.plan ul {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--muted);
  font-size: 0.9rem;
}
.plan li { margin-bottom: 0.35rem; }

/* CTA 群 */
.cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.75rem;
}

.btn-primary,
.btn-ghost,
.btn-store {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.25rem;
  border-radius: 10px;
  font-size: 0.95rem;
  font-weight: 700;
  font-family: inherit;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: opacity 0.15s ease, transform 0.15s ease;
}
.btn-primary:hover,
.btn-ghost:hover,
.btn-store:hover {
  text-decoration: none;
  opacity: 0.92;
  transform: translateY(-1px);
}

.btn-primary {
  background: var(--accent-cta);
  color: #fff;
}
.btn-ghost {
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
}
.btn-store {
  background: #222;
  color: var(--text);
  border: 1px solid var(--border);
  min-width: 10rem;
}
.btn-store.is-disabled,
.btn-store[aria-disabled="true"] {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}
.btn-store small {
  display: block;
  font-size: 0.7rem;
  font-weight: 500;
  color: var(--muted);
  margin-top: 0.15rem;
}

/* 会社概要テーブル */
.meta-table {
  width: 100%;
  max-width: 36rem;
  border-collapse: collapse;
  margin-top: 1.5rem;
  font-size: 0.95rem;
}
.meta-table th,
.meta-table td {
  text-align: left;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
.meta-table th {
  width: 8rem;
  color: var(--muted);
  font-weight: 600;
}

/* フォーム */
.form {
  max-width: 32rem;
  margin-top: 1.5rem;
  display: grid;
  gap: 1rem;
}
.form .input,
.form textarea {
  margin-bottom: 0;
}
.form textarea {
  min-height: 8rem;
  resize: vertical;
}
.form-note {
  margin: 0.5rem 0 0;
  font-size: 0.8rem;
  color: var(--muted);
}

/* 法的ドキュメント */
.legal {
  max-width: 44rem;
  padding: 2.5rem 0 4rem;
}
.legal h1 {
  margin: 0 0 0.5rem;
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 800;
}
.legal .enacted {
  margin: 0 0 2rem;
  color: var(--muted);
  font-size: 0.85rem;
}
.legal-section {
  margin-bottom: 1.75rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--border);
}
.legal-section h2 {
  margin: 0 0 0.65rem;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--accent);
  font-family: var(--font-display);
}
.legal-section p {
  margin: 0;
  white-space: pre-wrap;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.7;
}

@media (max-width: 640px) {
  .nav { font-size: 0.8rem; gap: 0.25rem 0.75rem; }
}

/* 信頼バー・主従ピラー・比較・FAQ 等 */
.footer-nap { margin: 0; font-size: 0.8rem; }

.trust-bar { padding: 1.75rem 0; }
.trust-bar__inner {
  display: flex;
  gap: 1.25rem;
  align-items: center;
}
.trust-bar__logo {
  width: 72px;
  height: 72px;
  object-fit: contain;
  background: #fff;
  border-radius: 10px;
  flex-shrink: 0;
}
.trust-bar__text {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.55;
}

.pillars--priority .pillar--primary {
  border-color: rgba(0, 255, 0, 0.35);
  background:
    linear-gradient(var(--grid-line) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 0 0 / 24px 24px,
    var(--bg-elevated);
}
.pillars--priority .pillar--secondary {
  opacity: 0.95;
}

.role-grid {
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
}
@media (min-width: 720px) {
  .role-grid { grid-template-columns: repeat(3, 1fr); }
}
.role-card {
  padding: 1.25rem;
  border: 1px solid var(--border);
  background: var(--bg-elevated);
}
.role-card h3 {
  margin: 0 0 0.5rem;
  font-family: var(--font-display);
  font-size: 1.1rem;
  color: var(--accent);
}
.role-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.55;
}

.compare {
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
}
@media (min-width: 720px) {
  .compare { grid-template-columns: 1fr 1fr; }
}
.compare__col {
  padding: 1.25rem 1.35rem;
  border: 1px solid var(--border);
  background: var(--bg-elevated);
}
.compare__col--new {
  border-color: rgba(0, 255, 0, 0.35);
}
.compare__col h3 {
  margin: 0 0 0.75rem;
  font-family: var(--font-display);
  font-size: 1rem;
}
.compare__col ul {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--muted);
  font-size: 0.92rem;
}
.compare__col li { margin-bottom: 0.4rem; }

.steps {
  margin: 1.5rem 0 0;
  padding-left: 1.25rem;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.7;
}
.steps li { margin-bottom: 0.65rem; }
.steps strong { color: var(--text); }

.faq {
  margin-top: 1.25rem;
  display: grid;
  gap: 0.65rem;
  max-width: 40rem;
}
.faq details {
  border: 1px solid var(--border);
  background: var(--bg-elevated);
  padding: 0.85rem 1rem;
}
.faq summary {
  cursor: pointer;
  font-weight: 700;
  font-family: var(--font-display);
}
.faq details p {
  margin: 0.75rem 0 0;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.6;
}

.cta-band {
  background:
    linear-gradient(var(--grid-line) 1px, transparent 1px) 0 0 / 32px 32px,
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 0 0 / 32px 32px,
    #101010;
  border-top: 1px solid var(--border);
}

.nav a[aria-current="page"] { color: var(--text); }

/* モーション（控えめ） */
@keyframes rise-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

.hero--split .hero__inner {
  animation: rise-in 0.7s ease-out both;
}
.hero--split .hero__media {
  animation: fade-in 0.9s ease-out both;
}
.trust-bar__inner {
  animation: rise-in 0.55s ease-out 0.1s both;
}
.btn-primary {
  transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.btn-primary:hover {
  transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
  .hero--split .hero__inner,
  .hero--split .hero__media,
  .trust-bar__inner {
    animation: none;
  }
  .btn-primary:hover { transform: none; }
}


/* ホームお知らせ（大きめカード） */
.news-feature { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.news-feature__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.news-feature__head .section-title { margin: 0; }
.news-feature__all {
  font-weight: 700;
  font-size: 0.95rem;
  white-space: nowrap;
}
.news-feature__card {
  display: grid;
  gap: 1.25rem;
  padding: 1.5rem;
  border: 1px solid var(--border);
  background:
    linear-gradient(var(--grid-line) 1px, transparent 1px) 0 0 / 28px 28px,
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 0 0 / 28px 28px,
    var(--bg-elevated);
  transition: border-color 0.15s ease;
}
.news-feature__card:hover,
.news-feature__card:focus-within {
  border-color: var(--accent);
}
.news-feature__logo-link,
.news-feature__body-link {
  text-decoration: none;
  color: inherit;
}
.news-feature__logo-link {
  display: block;
  line-height: 0;
}
.news-feature__body-link {
  display: block;
}
@media (min-width: 720px) {
  .news-feature__card {
    grid-template-columns: 160px 1fr;
    align-items: center;
    padding: 1.75rem;
  }
}
.news-feature__img {
  width: 120px;
  height: 120px;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--border);
}
@media (min-width: 720px) {
  .news-feature__img { width: 160px; height: 160px; }
}
.news-feature__meta {
  margin: 0 0 0.5rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--accent);
}
.news-feature__title {
  margin: 0 0 0.65rem;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2.5vw, 1.55rem);
  font-weight: 800;
  line-height: 1.35;
}
.news-feature__sum {
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.6;
}

/* ビジュアルグリッド（帯の代替） */
.viz-grid {
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
}
@media (min-width: 800px) {
  .viz-grid { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
}
.viz-card {
  padding: 1.5rem 1.25rem 1.75rem;
  border: 1px solid var(--border);
  background:
    linear-gradient(var(--grid-line) 1px, transparent 1px) 0 0 / 20px 20px,
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 0 0 / 20px 20px,
    #141414;
  text-align: center;
}
.viz-card img {
  margin: 0 auto 1.1rem;
  width: 100%;
  max-width: 120px;
  height: auto;
  border: 1px solid var(--border);
}
.viz-card h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 2.2vw, 1.25rem);
  font-weight: 800;
  line-height: 1.4;
}

.viz-rows {
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
}
.viz-row {
  display: grid;
  gap: 1rem;
  align-items: center;
  padding: 1.25rem;
  border: 1px solid var(--border);
  background: #141414;
}
@media (min-width: 640px) {
  .viz-row { grid-template-columns: 96px 1fr; gap: 1.5rem; padding: 1.5rem 1.75rem; }
}
.viz-row img {
  width: 96px;
  height: 96px;
  border: 1px solid var(--border);
}
.viz-row h3 {
  margin: 0 0 0.4rem;
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 800;
}
.viz-row p {
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.55;
}

.flow-steps {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}
@media (min-width: 720px) {
  .flow-steps { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
}
.flow-steps li {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--border);
  background: #141414;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.05rem;
}
.flow-steps span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--accent);
  color: var(--accent);
  font-size: 0.9rem;
  flex-shrink: 0;
}

.flow-guide {
  list-style: none;
  margin: 2rem 0 0;
  padding: 0;
  display: grid;
  gap: 2.25rem;
}
@media (min-width: 860px) {
  .flow-guide {
    grid-template-columns: repeat(3, 1fr);
    gap: 2.75rem;
  }
}
.flow-guide__step {
  position: relative;
  padding: 2rem 1.5rem 1.75rem;
  border: 1px solid var(--border);
  background:
    linear-gradient(rgba(0, 255, 0, 0.04) 1px, transparent 1px) 0 0 / 24px 24px,
    #141414;
  text-align: center;
}
/* モバイル：下向き矢印（次ステップへ） */
.flow-guide__step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -1.35rem;
  z-index: 1;
  width: 0.7rem;
  height: 0.7rem;
  border-right: 2px solid var(--accent);
  border-bottom: 2px solid var(--accent);
  transform: translateX(-50%) rotate(45deg);
}
/* デスクトップ：右向き矢印（アイコン中央の高さ・カード間中央） */
@media (min-width: 860px) {
  .flow-guide__step:not(:last-child)::after {
    left: auto;
    bottom: auto;
    top: calc(2rem + 4.25rem); /* padding-top + アイコン半径 */
    right: calc(2.75rem / -2); /* gap の中央 */
    width: 0.9rem;
    height: 0.9rem;
    border-right: 2.5px solid var(--accent);
    border-bottom: 2.5px solid var(--accent);
    border-top: none;
    transform: translate(50%, -50%) rotate(-45deg);
  }
}
.flow-guide__icon {
  width: 8.5rem;
  height: 8.5rem;
  margin: 0 auto 1.25rem;
  border: 1px solid var(--border);
  background: #141414;
  box-shadow: 0 0 0 1px rgba(0, 255, 0, 0.06);
}
.flow-guide__icon img {
  width: 100%;
  height: 100%;
  display: block;
}
.flow-guide__num {
  margin: 0 0 0.45rem;
  color: var(--accent);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.flow-guide__step h3 {
  margin: 0 0 0.65rem;
  font-size: 1.2rem;
  font-weight: 800;
}
.flow-guide__step > p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.65;
}

.page-hero h1 {
  font-size: clamp(1.85rem, 5vw, 2.75rem);
}
.section-title {
  font-size: clamp(1.45rem, 3vw, 1.9rem);
}
.person__bio { display: block; }

/* チーム向け：プロダクトを大きく見せる */
.page-hero--product {
  padding: clamp(3.5rem, 8vw, 7rem) 0;
  background:
    radial-gradient(circle at 82% 24%, rgba(0, 255, 0, 0.12), transparent 28%),
    linear-gradient(135deg, #121712 0%, #0d0f0d 55%, #090a09 100%);
}

.product-hero {
  display: grid;
  align-items: center;
  gap: clamp(2.5rem, 6vw, 5rem);
}

@media (min-width: 860px) {
  .product-hero {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}

.page-hero--product h1 {
  max-width: none;
  font-size: clamp(2.2rem, 4vw, 3.8rem);
  line-height: 1.2;
  letter-spacing: -0.03em;
}

.page-hero--product h1 .headline-line {
  display: block;
  white-space: nowrap;
}

.page-hero--product .lead {
  max-width: 30rem;
  font-size: clamp(1.05rem, 2vw, 1.3rem);
}

.media-placeholder {
  position: relative;
  width: 100%;
  aspect-ratio: var(--ratio-silver) / 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  overflow: hidden;
  border: 1px solid rgba(0, 255, 0, 0.32);
  background:
    linear-gradient(rgba(0, 255, 0, 0.08) 1px, transparent 1px) 0 0 / 32px 32px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.08) 1px, transparent 1px) 0 0 / 32px 32px,
    radial-gradient(circle at 70% 30%, rgba(0, 255, 0, 0.16), transparent 32%),
    #101310;
  box-shadow: inset 0 0 70px rgba(0, 255, 0, 0.04);
}

.media-placeholder::before,
.media-placeholder::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.media-placeholder::before {
  inset: 10%;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.media-placeholder::after {
  width: 38%;
  height: 2px;
  top: 27%;
  right: 12%;
  background: var(--accent);
  box-shadow: 0 42px 0 rgba(0, 255, 0, 0.35), 0 84px 0 rgba(0, 255, 0, 0.16);
}

.media-placeholder span,
.media-placeholder strong,
.media-placeholder small {
  position: relative;
  z-index: 1;
}

.media-placeholder span {
  margin-bottom: 0.45rem;
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.media-placeholder strong {
  font-size: clamp(1.35rem, 3vw, 2rem);
  line-height: 1.3;
}

.media-placeholder small {
  margin-top: 0.35rem;
  color: var(--muted);
  font-size: 0.85rem;
}

.media-placeholder--hero {
  aspect-ratio: var(--ratio-fib) / 1;
}

.chart-mock {
  width: 100%;
  padding: clamp(0.75rem, 1.8vw, 1.1rem);
  border: 1px solid rgba(0, 255, 0, 0.32);
  background:
    linear-gradient(rgba(0, 255, 0, 0.05) 1px, transparent 1px) 0 0 / 28px 28px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.05) 1px, transparent 1px) 0 0 / 28px 28px,
    #0a0a0a;
  box-shadow: inset 0 0 80px rgba(0, 255, 0, 0.03);
}
.chart-mock__main {
  display: flex;
  flex-direction: column;
  gap: clamp(0.5rem, 1.2vw, 0.75rem);
  align-items: center;
}
.chart-mock__radar-wrap {
  width: 100%;
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.chart-mock__radar-square {
  width: min(78%, 290px);
  aspect-ratio: 1 / 1;
}
.chart-mock__radar {
  display: block;
  width: 100%;
  height: 100%;
}
.chart-mock__aside {
  width: min(72%, 270px);
  min-width: 0;
}
.chart-mock__cards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
}
.chart-mock__card {
  min-width: 0;
}
.chart-mock__thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  min-height: 2.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background:
    radial-gradient(circle at 30% 25%, rgba(0, 255, 0, 0.12), transparent 45%),
    linear-gradient(145deg, #1a1a1a, #101010);
}
.chart-mock__brand {
  font-size: clamp(0.55rem, 1.6vw, 0.72rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #f0f0f0;
}
.chart-mock__brand span {
  color: var(--accent);
}
.chart-mock__play {
  position: absolute;
  right: 0.35rem;
  bottom: 0.35rem;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 50%;
  border: 1px solid rgba(0, 255, 0, 0.5);
  background: rgba(0, 0, 0, 0.55);
}
.chart-mock__play::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 55%;
  transform: translate(-50%, -50%);
  width: 0;
  height: 0;
  border-top: 0.22rem solid transparent;
  border-bottom: 0.22rem solid transparent;
  border-left: 0.34rem solid var(--accent);
}
.home-overview__visual {
  aspect-ratio: var(--ratio-silver) / 1;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: -1.25rem -1.25rem 1.5rem;
  border-bottom: 1px solid var(--border);
  background: radial-gradient(circle, rgba(0, 255, 0, 0.09), transparent 55%);
}

.home-overview__visual img {
  width: min(42%, 128px);
  height: auto;
  aspect-ratio: 1;
  border: 1px solid var(--border);
}

.pillar__icon {
  display: block;
  width: min(48%, 96px);
  height: auto;
  aspect-ratio: 1;
  margin: 0 auto 1.25rem;
  border: 1px solid var(--border);
}

.pillar {
  text-align: center;
}

.media-placeholder--app {
  aspect-ratio: var(--ratio-silver) / 1;
  min-height: 0;
}

.strength-section {
  padding: clamp(5rem, 10vw, 8.5rem) 0;
  border-top: 1px solid var(--border);
}

.strength-section--dark {
  background:
    linear-gradient(rgba(0, 255, 0, 0.035) 1px, transparent 1px) 0 0 / 48px 48px,
    #0d0f0d;
}

.feature-showcase {
  display: grid;
  align-items: center;
  gap: clamp(2.5rem, 7vw, 6rem);
}

@media (min-width: 860px) {
  .feature-showcase {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  }

  .feature-showcase--reverse {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  }

  .feature-showcase--reverse .feature-showcase__copy {
    order: 2;
  }
}

.feature-showcase__copy h2 {
  margin: 0 0 1.5rem;
  font-size: clamp(1.75rem, 3.4vw, 3rem);
  line-height: 1.2;
  letter-spacing: -0.03em;
}

.feature-showcase__copy > p:not(.feature-number) {
  margin: 0;
  color: var(--muted);
  font-size: clamp(1rem, 1.8vw, 1.15rem);
  line-height: 1.8;
}

.feature-number {
  margin: 0 0 1rem;
  color: var(--accent);
  font-size: clamp(4.5rem, 10vw, 8rem);
  font-weight: 800;
  line-height: 0.9;
  letter-spacing: -0.06em;
}

.feature-number span {
  margin-left: 0.35rem;
  font-size: clamp(1rem, 2vw, 1.35rem);
  letter-spacing: 0;
}

.feature-points {
  list-style: none;
  margin: 2rem 0 0;
  padding: 0;
  border-top: 1px solid var(--border);
}

.feature-points li {
  position: relative;
  padding: 0.9rem 0 0.9rem 1.25rem;
  border-bottom: 1px solid var(--border);
  font-size: 1rem;
  font-weight: 700;
}

.feature-points li::before {
  content: "+";
  position: absolute;
  left: 0;
  color: var(--accent);
  font-weight: 800;
}

.people-grid {
  gap: clamp(2rem, 5vw, 4rem);
}

.person {
  padding: 1.25rem;
  border: 1px solid var(--border);
  background: #141414;
}

.person__bio {
  font-size: 0.95rem;
  line-height: 1.8;
}

.plan__price,
.flow-steps span,
.news-feature__meta,
.news-list__meta {
  font-family: var(--font-body);
  font-variant-numeric: tabular-nums;
}

/* ホーム：短い概要 */
.home-overview {
  padding: clamp(4.5rem, 9vw, 7rem) 0;
  border-top: 1px solid var(--border);
}

.home-overview__title {
  margin-bottom: 0.9rem;
  font-size: clamp(1.8rem, 3.7vw, 3.1rem);
  letter-spacing: -0.035em;
}

@media (min-width: 900px) {
  .home-overview__title {
    white-space: nowrap;
  }
}

.home-overview__lead {
  max-width: 46rem;
  margin-bottom: 2.5rem;
  font-size: 1.05rem;
}

.home-overview__grid {
  display: grid;
  gap: 1rem;
}

@media (min-width: 760px) {
  .home-overview__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
  }
}

.home-overview__card {
  padding: 1.25rem 1.25rem 1.75rem;
  border: 1px solid var(--border);
  background:
    linear-gradient(rgba(0, 255, 0, 0.035) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.035) 1px, transparent 1px) 0 0 / 24px 24px,
    #141414;
  text-align: center;
}


.home-overview__card h3 {
  margin: 0 0 0.45rem;
  font-size: 1.15rem;
  font-weight: 800;
}

.home-overview__card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.6;
}

.home-instagram {
  border-top: 1px solid var(--border);
  background:
    radial-gradient(circle at 85% 40%, rgba(0, 255, 0, 0.08), transparent 28%),
    #0d0f0d;
}

.home-instagram__inner {
  display: grid;
  align-items: center;
  gap: 1.5rem;
}

@media (min-width: 760px) {
  .home-instagram__inner {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

.home-instagram__inner .lead {
  max-width: none;
  margin-top: 0.75rem;
  font-size: 0.9rem;
}

@media (min-width: 760px) {
  .home-instagram__inner .lead {
    white-space: nowrap;
  }
}

.home-instagram__btn {
  flex-shrink: 0;
}

/* ホーム：短く強みを伝える（未使用だが互換のため残置可） */
.home-strength {
  padding: clamp(4.5rem, 9vw, 7rem) 0;
  border-top: 1px solid var(--border);
  background:
    radial-gradient(circle at 15% 30%, rgba(0, 255, 0, 0.08), transparent 30%),
    #0d0f0d;
}

.home-strength__title {
  max-width: 13em;
  margin: 0 0 clamp(2.5rem, 6vw, 4.5rem);
  font-size: clamp(2.1rem, 5vw, 4.2rem);
  line-height: 1.15;
  letter-spacing: -0.045em;
}

.home-strength__grid {
  display: grid;
  border-top: 1px solid var(--border);
}

@media (min-width: 760px) {
  .home-strength__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.home-strength__item {
  padding: 2rem 0;
  border-bottom: 1px solid var(--border);
}

@media (min-width: 760px) {
  .home-strength__item {
    min-height: 220px;
    padding: 2.25rem;
    border-right: 1px solid var(--border);
  }

  .home-strength__item:first-child { padding-left: 0; }
  .home-strength__item:last-child { border-right: 0; }
}

.home-strength__item > strong {
  display: block;
  margin-bottom: 1.4rem;
  color: var(--accent);
  font-size: clamp(2.5rem, 5vw, 4.25rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.05em;
}

.home-strength__item > strong span {
  font-size: 0.45em;
  letter-spacing: 0;
}

.home-strength__item h3 {
  margin: 0 0 0.35rem;
  font-size: 1.25rem;
}

.home-strength__item p {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
}

/* 個人向けアプリ */
.app-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(4rem, 9vw, 8rem) 0;
  border-bottom: 1px solid var(--border);
  background:
    radial-gradient(circle at 78% 35%, rgba(0, 255, 0, 0.15), transparent 28%),
    linear-gradient(135deg, #111711 0%, #0b0d0b 62%, #080908 100%);
}

.app-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(0, 255, 0, 0.04) 1px, transparent 1px) 0 0 / 48px 48px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.04) 1px, transparent 1px) 0 0 / 48px 48px;
  mask-image: linear-gradient(90deg, transparent, #000 55%);
  pointer-events: none;
}

.app-hero__inner {
  position: relative;
  display: grid;
  align-items: center;
  gap: clamp(3rem, 8vw, 7rem);
}

@media (min-width: 820px) {
  .app-hero__inner {
    grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
  }
}

.app-hero__copy h1 {
  max-width: 9em;
  margin: 0 0 1.5rem;
  font-size: clamp(2.1rem, 5vw, 4.2rem);
  line-height: 1.12;
  letter-spacing: -0.045em;
}

.app-hero__copy h1 .headline-line {
  display: block;
  white-space: nowrap;
}

.app-hero__copy .lead {
  max-width: 32rem;
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.8;
}

.app-store-badge {
  width: fit-content;
  min-width: 190px;
  margin-top: 2rem;
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.58rem 1rem;
  border: 1px solid #777;
  border-radius: 10px;
  background: #050505;
  color: #fff;
  line-height: 1.05;
  text-decoration: none;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.app-store-badge:hover {
  border-color: var(--accent);
  color: #fff;
  text-decoration: none;
  transform: translateY(-2px);
}

.app-store-badge svg {
  width: 30px;
  height: 30px;
  fill: currentColor;
}

.app-store-badge span {
  font-size: 1.08rem;
  font-weight: 700;
}

.app-store-badge small {
  display: block;
  margin-bottom: 0.15rem;
  font-size: 0.64rem;
  font-weight: 500;
}

.store-note {
  margin: 0.55rem 0 0;
  color: var(--muted);
  font-size: 0.75rem;
}

.phone-stage {
  position: relative;
  min-height: clamp(430px, 56vw, 650px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.phone-stage__word {
  position: absolute;
  right: 0;
  bottom: 3%;
  margin: 0;
  color: rgba(255, 255, 255, 0.055);
  font-size: clamp(3.5rem, 8vw, 7rem);
  font-weight: 800;
  line-height: 0.84;
  letter-spacing: -0.06em;
  text-align: right;
}

.phone-frame {
  position: relative;
  z-index: 1;
  width: min(280px, 65vw);
  aspect-ratio: 9 / 18.5;
  padding: 10px;
  border: 2px solid #474747;
  border-radius: 42px;
  background: #050505;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55), 0 0 60px rgba(0, 255, 0, 0.1);
  transform: rotate(4deg);
}

.phone-frame::before {
  content: "";
  position: absolute;
  z-index: 2;
  width: 34%;
  height: 22px;
  top: 14px;
  left: 33%;
  border-radius: 99px;
  background: #050505;
}

.phone-frame__screen {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.5rem;
  border-radius: 32px;
  background:
    linear-gradient(rgba(0, 255, 0, 0.08) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.08) 1px, transparent 1px) 0 0 / 24px 24px,
    radial-gradient(circle at 50% 30%, rgba(0, 255, 0, 0.17), transparent 30%),
    #101310;
}

.phone-frame__screen span {
  margin-bottom: 0.35rem;
  color: var(--accent);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.phone-frame__screen strong { font-size: 1.35rem; }
.phone-frame__screen small { margin-top: 0.3rem; color: var(--muted); }

.app-proof {
  border-bottom: 1px solid var(--border);
  background: #0b0c0b;
}

.app-proof__grid {
  display: grid;
}

@media (min-width: 700px) {
  .app-proof__grid { grid-template-columns: repeat(3, 1fr); }
}

.app-proof__grid div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 145px;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--border);
}

@media (min-width: 700px) {
  .app-proof__grid div {
    padding: 1.5rem 2rem;
    border-right: 1px solid var(--border);
    border-bottom: 0;
  }

  .app-proof__grid div:first-child { padding-left: 0; }
  .app-proof__grid div:last-child { border-right: 0; }
}

.app-proof strong {
  color: var(--accent);
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1;
  letter-spacing: -0.04em;
}

.app-proof span {
  margin-top: 0.65rem;
  color: var(--muted);
  font-size: 0.9rem;
}

.app-feature {
  padding: clamp(5rem, 10vw, 9rem) 0;
  border-bottom: 1px solid var(--border);
}

.app-feature--dark {
  background:
    linear-gradient(rgba(0, 255, 0, 0.03) 1px, transparent 1px) 0 0 / 48px 48px,
    #0d0f0d;
}

.app-expertise {
  padding: clamp(5rem, 10vw, 8rem) 0;
  background:
    radial-gradient(circle at 15% 50%, rgba(0, 255, 0, 0.1), transparent 30%),
    #0b0d0b;
}

.app-expertise__inner {
  max-width: 900px;
}

.app-expertise h2 {
  margin: 0 0 1.5rem;
  font-size: clamp(1.7rem, 3.6vw, 3rem);
  line-height: 1.25;
  letter-spacing: -0.03em;
}

.app-expertise h2 .headline-line {
  display: block;
  white-space: nowrap;
}

.app-expertise p:last-child {
  max-width: 42rem;
  margin: 0;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.8;
}

/* 個人向けアプリ：再構築 */
.app-page {
  --app-bg: #090b09;
  --app-panel: #111411;
  --app-panel-2: #171a17;
  --app-line: rgba(255, 255, 255, 0.1);
  background: var(--app-bg);
}

.app-page .app-hero {
  min-height: calc(100svh - 66px);
  padding: clamp(4rem, 8vw, 7rem) 0;
}

.app-page .app-hero__inner {
  min-height: min(720px, calc(100svh - 11rem));
}

.app-page .app-hero__copy {
  min-width: 0;
}

.app-page .app-hero__copy h1 {
  max-width: 11.5em;
  font-size: clamp(2rem, 4.1vw, 3.85rem);
  line-height: 1.1;
}

.app-page .app-hero__copy .lead {
  max-width: none;
  color: #a7afa7;
}

.app-page .app-hero__note {
  margin: 0.85rem 0 0;
  max-width: 28rem;
  color: #7f877f;
  font-size: 0.92rem;
  line-height: 1.75;
}

.app-page .heading-line {
  display: block;
  white-space: normal;
}

.app-section {
  padding: clamp(5rem, 10vw, 9rem) 0;
  border-bottom: 1px solid var(--app-line);
}

.app-page .app-problems {
  background: #090b09;
}

.app-page .app-problems__inner {
  display: grid;
  gap: clamp(2.5rem, 7vw, 6rem);
}

.app-page .app-problems h2,
.app-page .app-capabilities h2 {
  margin: 0;
  font-size: clamp(1.75rem, 2.8vw, 2.35rem);
  line-height: 1.22;
  letter-spacing: -0.04em;
}

.app-page .app-capabilities {
  background: linear-gradient(120deg, rgba(0, 255, 0, 0.045), transparent 50%), #0c0e0c;
}

.app-page .problem-lines,
.app-page .capability-strip {
  border-color: var(--app-line);
}

.app-page .problem-lines li,
.app-page .capability-strip li {
  border-color: var(--app-line);
}

.app-page .app-feature__copy {
  min-width: 0;
}

.app-page .app-more h2,
.app-page .app-final-cta h2 {
  margin: 0;
  font-size: clamp(1.85rem, 3.2vw, 2.75rem);
  line-height: 1.18;
  letter-spacing: -0.045em;
}

.app-page .app-feature__copy h2 {
  font-size: clamp(1.7rem, 2.9vw, 2.45rem);
  line-height: 1.18;
  letter-spacing: -0.045em;
}

.app-page .app-feature__copy h2.heading--compact {
  font-size: clamp(1.45rem, 2.35vw, 2rem);
  line-height: 1.24;
}

.app-page .app-faq__head h2 {
  margin: 0;
  font-size: clamp(1.75rem, 2.8vw, 2.35rem);
  line-height: 1.22;
  letter-spacing: -0.04em;
}

.app-page .app-faq__head h2 .heading-line {
  display: block;
  white-space: normal;
}

@media (min-width: 680px) {
  .app-page .capability-strip li {
    border-right-color: var(--app-line);
  }
}

@media (min-width: 860px) {
  .app-page .app-problems__inner {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    align-items: start;
  }

  .app-page .capability-strip li {
    border-bottom-color: var(--app-line);
    border-right-color: var(--app-line);
  }

  .app-page .capability-strip li:nth-child(2n) {
    border-right-color: var(--app-line);
  }
}

@media (min-width: 820px) {
  .app-page .app-hero__inner {
    grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.92fr);
    gap: clamp(2rem, 4vw, 4rem);
  }
}

.app-home-ui {
  position: relative;
  justify-content: flex-start;
  gap: 0;
  padding: 2.65rem 1rem 0.85rem;
  overflow: hidden;
  background:
    radial-gradient(circle at 76% 18%, rgba(0, 255, 0, 0.12), transparent 30%),
    #242423;
}

.app-home-ui__top {
  display: grid;
  grid-template-columns: 1.7rem 1fr auto;
  align-items: center;
  gap: 0.5rem;
}

.app-home-ui__top img {
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 0.42rem;
}

.app-home-ui__top span {
  margin: 0;
  color: #9da49d;
  font-size: 0.54rem;
  font-weight: 600;
  letter-spacing: 0;
}

.app-home-ui__top button {
  padding: 0;
  border: 0;
  background: none;
  color: #8f968f;
  font-size: 0.7rem;
}

.app-home-ui__score {
  display: grid;
  grid-template-columns: 5.8rem 1fr;
  align-items: center;
  gap: 0.9rem;
  margin-top: 1.25rem;
  padding: 0.9rem;
  border: 1px solid var(--app-line);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.025);
}

.app-home-ui__ring {
  aspect-ratio: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background:
    radial-gradient(circle, #171a17 58%, transparent 60%),
    conic-gradient(#00ff00 0 82%, #343934 82% 100%);
}

.app-home-ui__ring span,
.app-home-ui__ring small,
.app-home-ui__score > div:last-child span,
.app-home-ui__score > div:last-child small {
  margin: 0;
  color: #8d958d;
  font-size: 0.45rem;
  letter-spacing: 0;
}

.app-home-ui__ring strong {
  margin: 0.12rem 0;
  font-size: 1.6rem;
  line-height: 1;
}

.app-home-ui__ring small {
  color: var(--accent);
  font-size: 0.42rem;
  font-weight: 800;
}

.app-home-ui__score > div:last-child {
  display: flex;
  flex-direction: column;
}

.app-home-ui__score > div:last-child span { color: var(--accent); }

.app-home-ui__score > div:last-child strong {
  margin: 0.22rem 0 0.45rem;
  font-size: 0.78rem;
  line-height: 1.35;
}

.app-home-ui__score > div:last-child small { line-height: 1.5; }

.app-home-ui__prompt {
  position: relative;
  display: flex;
  flex-direction: column;
  margin-top: 0.7rem;
  padding: 0.7rem 2rem 0.7rem 0.75rem;
  border: 1px solid rgba(0, 255, 0, 0.28);
  border-radius: 0.65rem;
  background: rgba(0, 255, 0, 0.055);
}

.app-home-ui__prompt span,
.app-home-ui__prompt strong {
  margin: 0;
  letter-spacing: 0;
}

.app-home-ui__prompt span { font-size: 0.45rem; }
.app-home-ui__prompt strong { margin-top: 0.15rem; font-size: 0.65rem; }
.app-home-ui__prompt i { position: absolute; right: 0.75rem; top: 50%; color: var(--accent); transform: translateY(-50%); }

.app-home-ui__section-head {
  display: flex;
  justify-content: space-between;
  margin-top: 1.25rem;
}

.app-home-ui__section-head strong { font-size: 0.68rem; }
.app-home-ui__section-head span { margin: 0; font-size: 0.44rem; letter-spacing: 0; }

.app-home-ui__training {
  display: grid;
  grid-template-columns: 5.2rem 1fr;
  gap: 0.7rem;
  align-items: center;
  margin-top: 0.55rem;
  padding: 0.45rem;
  border: 1px solid var(--app-line);
  border-radius: 0.7rem;
  background: #2d2d2c;
}

.app-home-ui__thumb {
  position: relative;
  aspect-ratio: 16 / 10;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 0.5rem;
  background:
    linear-gradient(135deg, transparent 42%, rgba(0, 255, 0, 0.23) 43% 56%, transparent 57%),
    linear-gradient(25deg, #171b17, #303a30);
}

.app-home-ui__thumb i {
  width: 1.55rem;
  height: 1.55rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.74);
  color: var(--accent);
  font-size: 0.5rem;
}

.app-home-ui__thumb small {
  position: absolute;
  right: 0.28rem;
  bottom: 0.25rem;
  margin: 0;
  color: #fff;
  font-size: 0.4rem;
}

.app-home-ui__training > div:last-child {
  display: flex;
  flex-direction: column;
}

.app-home-ui__training strong { font-size: 0.57rem; line-height: 1.4; }
.app-home-ui__training span { margin: 0.28rem 0 0; color: #8d958d; font-size: 0.43rem; letter-spacing: 0; }

.app-home-ui__nav {
  position: absolute;
  inset: auto 0.7rem 0.55rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding: 0.55rem 0.2rem 0.15rem;
  border-top: 1px solid var(--app-line);
  background: linear-gradient(transparent, #242423 30%);
}

.app-home-ui__nav b {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.22rem;
}

.app-home-ui__nav i {
  width: 0.85rem;
  height: 0.7rem;
  border: 1px solid #747b74;
  border-radius: 0.18rem;
}

.app-home-ui__nav b:first-child i { border-color: var(--accent); background: rgba(0, 255, 0, 0.12); }
.app-home-ui__nav span { margin: 0; color: #737a73; font-size: 0.35rem; letter-spacing: 0; }
.app-home-ui__nav b:first-child span { color: var(--accent); }

.app-page .app-proof {
  border-color: var(--app-line);
}

.app-page .app-proof__grid div { min-height: 126px; }
.app-page .app-proof strong {
  font-size: clamp(1.35rem, 2.8vw, 2.15rem);
  letter-spacing: -0.03em;
}
.app-page .app-proof span { color: #d7dcd7; font-size: 0.95rem; font-weight: 700; }

.app-page .app-feature {
  padding: clamp(6rem, 11vw, 10rem) 0;
  border-bottom: 1px solid var(--app-line);
  background: #0c0e0c;
}

.app-page .app-feature--record {
  background:
    linear-gradient(rgba(0, 255, 0, 0.025) 1px, transparent 1px) 0 0 / 54px 54px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.025) 1px, transparent 1px) 0 0 / 54px 54px,
    #090b09;
}

.app-page .app-feature--score {
  background:
    radial-gradient(circle at 75% 50%, rgba(0, 255, 0, 0.06), transparent 28%),
    #0d100d;
}

.app-feature__inner {
  display: grid;
  align-items: center;
  gap: clamp(3rem, 8vw, 7rem);
}

.app-page .app-feature__inner {
  gap: clamp(3.5rem, 6vw, 5.5rem);
}

.app-feature__copy h2 {
  margin: 0;
}

.app-feature__copy h2 span,
.app-feature__copy h2 .heading-line {
  display: block;
  white-space: normal;
}

.app-feature__copy > p:not(.eyebrow) {
  max-width: 36rem;
  margin: 1.7rem 0 0;
  color: #9ba39b;
  font-size: clamp(0.96rem, 1.6vw, 1.06rem);
  line-height: 1.95;
}

.app-feature__points {
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--app-line);
}

.app-feature__points li {
  position: relative;
  padding: 0.9rem 0 0.9rem 1.5rem;
  border-bottom: 1px solid var(--app-line);
  color: #d6dbd6;
  font-size: 0.9rem;
}

.app-feature__points li::before {
  content: "＋";
  position: absolute;
  left: 0;
  color: var(--accent);
  font-weight: 800;
}

.app-ui-stage {
  position: relative;
  min-height: clamp(380px, 48vw, 560px);
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(0, 255, 0, 0.14);
  background:
    linear-gradient(rgba(0, 255, 0, 0.035) 1px, transparent 1px) 0 0 / 36px 36px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.035) 1px, transparent 1px) 0 0 / 36px 36px,
    #0a0d0a;
}

.app-ui-stage::before {
  content: "";
  position: absolute;
  width: 70%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(0, 255, 0, 0.08);
  filter: blur(70px);
}

.app-ui-card,
.app-record-ui,
.app-score-ui {
  position: relative;
  z-index: 1;
  width: min(88%, 560px);
  border: 1px solid var(--app-line);
  border-radius: 1.25rem;
  background: #242423;
  box-shadow: 0 35px 80px rgba(0, 0, 0, 0.48);
}

.app-ui-bar {
  height: 3.1rem;
  display: grid;
  grid-template-columns: 1.6rem 1fr 1rem;
  align-items: center;
  gap: 0.6rem;
  padding: 0 1rem;
  border-bottom: 1px solid var(--app-line);
}

.app-ui-bar img { width: 1.6rem; height: 1.6rem; border-radius: 0.35rem; }
.app-ui-bar strong { font-size: 0.78rem; }
.app-ui-bar i { width: 0.95rem; height: 0.95rem; border: 1px solid #6f776f; border-radius: 50%; }

.app-video-ui { padding-bottom: 1rem; overflow: hidden; }

.app-video-ui__search {
  display: flex;
  justify-content: space-between;
  margin: 0.9rem 1rem 0;
  padding: 0.7rem 0.8rem;
  border: 1px solid #444944;
  border-radius: 0.55rem;
  color: #7f877f;
  font-size: 0.65rem;
}

.app-video-ui__search span { color: var(--accent); font-size: 0.9rem; }

.app-video-ui__chips {
  display: flex;
  gap: 0.4rem;
  padding: 0.7rem 1rem 0.85rem;
  overflow: hidden;
}

.app-video-ui__chips span {
  flex: none;
  padding: 0.35rem 0.55rem;
  border: 1px solid #3b413b;
  border-radius: 999px;
  color: #a5ada5;
  font-size: 0.52rem;
}

.app-video-ui__chips span:first-child { border-color: var(--accent); background: rgba(0, 255, 0, 0.08); color: var(--accent); }

.app-video-ui__hero {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 0.8rem;
  margin: 0 1rem;
  padding: 0.65rem;
  border-radius: 0.75rem;
  background: #30302f;
}

.app-video-ui__image {
  position: relative;
  min-height: 7.5rem;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 0.55rem;
  background:
    radial-gradient(circle at 63% 32%, rgba(0, 255, 0, 0.26), transparent 15%),
    linear-gradient(145deg, transparent 35%, rgba(0, 255, 0, 0.18) 36% 48%, transparent 49%),
    #151915;
}

.app-video-ui__image::after {
  content: "";
  width: 30%;
  height: 74%;
  border: 3px solid rgba(255, 255, 255, 0.3);
  border-width: 3px 0;
  transform: skew(-12deg);
}

.app-video-ui__play {
  position: absolute;
  z-index: 1;
  width: 2.35rem;
  height: 2.35rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.78);
  color: var(--accent);
  font-size: 0.7rem;
}

.app-video-ui__image small {
  position: absolute;
  right: 0.45rem;
  bottom: 0.4rem;
  font-size: 0.48rem;
}

.app-video-ui__hero > div:last-child {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.app-video-ui__hero > div:last-child small { color: var(--accent); font-size: 0.5rem; }
.app-video-ui__hero > div:last-child strong { margin-top: 0.35rem; font-size: 0.8rem; line-height: 1.5; }
.app-video-ui__hero > div:last-child span { margin-top: 0.5rem; color: #8e968e; font-size: 0.52rem; }

.app-video-ui__list { margin: 0.75rem 1rem 0; }

.app-video-ui__list > div {
  display: grid;
  grid-template-columns: 4.5rem 1fr auto;
  align-items: center;
  gap: 0.7rem;
  padding: 0.55rem 0;
  border-top: 1px solid var(--app-line);
}

.app-video-ui__mini {
  height: 2.6rem;
  border-radius: 0.4rem;
  background: linear-gradient(135deg, #1b211b, #394239);
}

.app-video-ui__mini--jump { background: linear-gradient(45deg, #171917 45%, rgba(255, 145, 0, 0.28), #303530); }
.app-video-ui__list span { display: flex; flex-direction: column; }
.app-video-ui__list strong { font-size: 0.64rem; }
.app-video-ui__list small { margin-top: 0.18rem; color: #858d85; font-size: 0.48rem; }
.app-video-ui__list b { color: #858d85; font-size: 0.5rem; }

.app-record-ui { padding: 1.15rem; }

.app-record-ui__head {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
}

.app-record-ui__head span { color: var(--accent); font-size: 0.65rem; font-weight: 800; }
.app-record-ui__head strong { font-size: 0.8rem; }
.app-record-ui__head i { justify-self: end; color: #7d857d; font-size: 0.7rem; }

.app-record-ui__calendar {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.28rem;
  margin-top: 1.1rem;
}

.app-record-ui__calendar small,
.app-record-ui__calendar b {
  display: grid;
  place-items: center;
  aspect-ratio: 1.35;
  color: #7f877f;
  font-size: 0.48rem;
}

.app-record-ui__calendar b { color: #cfd4cf; font-size: 0.58rem; }
.app-record-ui__calendar b.is-active { border-radius: 50%; background: var(--accent); color: #071007; }

.app-record-ui__metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  margin-top: 1rem;
}

.app-record-ui__metrics > div {
  padding: 0.7rem;
  border: 1px solid var(--app-line);
  border-radius: 0.65rem;
  background: #2d2d2c;
}

.app-record-ui__metrics span,
.app-record-ui__metrics small { display: block; color: #878f87; font-size: 0.48rem; }
.app-record-ui__metrics strong { display: block; margin: 0.28rem 0; font-size: 1rem; }
.app-record-ui__metrics small { color: var(--accent); }

.app-record-ui__chart {
  margin-top: 0.65rem;
  padding: 0.75rem;
  border: 1px solid var(--app-line);
  border-radius: 0.65rem;
  background:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px) 0 0 / 100% 25%,
    #191c19;
}

.app-record-ui__chart > div { display: flex; justify-content: space-between; }
.app-record-ui__chart span { font-size: 0.55rem; font-weight: 700; }
.app-record-ui__chart b { color: var(--accent); font-size: 0.52rem; }
.app-record-ui__chart svg { display: block; width: 100%; height: 9rem; }

.app-score-ui {
  display: grid;
  grid-template-columns: 0.72fr 1.2fr;
  gap: 0.8rem;
  padding: 1.15rem;
}

.app-score-ui__summary {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1rem;
  border-radius: 0.8rem;
  background: linear-gradient(150deg, rgba(0,255,0,.12), transparent 65%), #2d2d2c;
}

.app-score-ui__summary span { color: var(--accent); font-size: 0.55rem; font-weight: 800; }
.app-score-ui__summary strong { margin: 0.35rem 0 0.15rem; font-size: 2.8rem; line-height: 1; }
.app-score-ui__summary small { color: #8c948c; font-size: 0.5rem; }
.app-score-ui__radar { display: grid; place-items: center; }
.app-score-ui__radar svg { width: 100%; max-height: 15rem; }

.app-score-ui__ranking {
  grid-column: 1 / -1;
  padding: 0.8rem;
  border-top: 1px solid var(--app-line);
}

.app-score-ui__ranking > span { display: block; margin-bottom: 0.45rem; color: #8f978f; font-size: 0.55rem; }
.app-score-ui__ranking > div { display: grid; grid-template-columns: 1.5rem 1.7rem 1fr auto; align-items: center; gap: 0.5rem; padding: 0.45rem 0; border-top: 1px solid rgba(255,255,255,.06); }
.app-score-ui__ranking b { color: var(--accent); font-size: 0.6rem; }
.app-score-ui__ranking i { aspect-ratio: 1; border-radius: 50%; background: linear-gradient(135deg, #4c554c, #202420); }
.app-score-ui__ranking strong { font-size: 0.58rem; }
.app-score-ui__ranking small { color: #8b938b; font-size: 0.5rem; }

.app-more {
  padding: clamp(6rem, 11vw, 9rem) 0;
  border-bottom: 1px solid var(--app-line);
  background: #090b09;
}

.app-more__head { max-width: 800px; }

.app-more__grid {
  display: grid;
  gap: 1px;
  margin-top: clamp(3rem, 6vw, 5rem);
  border: 1px solid var(--app-line);
  background: var(--app-line);
}

.app-more__grid article {
  min-height: 260px;
  padding: clamp(1.5rem, 3vw, 2.3rem);
  background: #111411;
}

.app-more__grid span { color: var(--accent); font-size: 0.65rem; font-weight: 800; }
.app-more__grid h3 { margin: 3.7rem 0 0.8rem; font-size: clamp(1.2rem, 2vw, 1.55rem); }
.app-more__grid p { margin: 0; color: #8f978f; font-size: 0.9rem; line-height: 1.8; }

.app-plan {
  padding: clamp(6rem, 11vw, 9rem) 0;
  border-bottom: 1px solid var(--app-line);
  background:
    radial-gradient(circle at 16% 30%, rgba(0, 255, 0, 0.08), transparent 25%),
    #0d100d;
}

.app-plan__copy {
  max-width: 700px;
}

.app-plan__copy > p:last-child {
  max-width: 38rem;
  margin: 1.5rem 0 0;
  color: #9aa29a;
  line-height: 1.9;
}

.app-plan__cards {
  display: grid;
  gap: 1rem;
  margin-top: clamp(3rem, 6vw, 5rem);
}

.app-plan__cards article {
  padding: clamp(1.7rem, 4vw, 2.8rem);
  border: 1px solid var(--app-line);
  background: #151815;
}

.app-plan__cards article > span { display: block; color: #b9c0b9; font-size: 0.85rem; font-weight: 700; }
.app-plan__cards article > strong { display: block; margin: 1rem 0 0.2rem; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1; }
.app-plan__cards article > strong small { font-size: 0.9rem; }
.app-plan__cards article > small { color: #858d85; font-size: 0.75rem; }
.app-plan__cards ul { margin: 1.8rem 0 0; padding: 1.2rem 0 0; border-top: 1px solid var(--app-line); list-style: none; }
.app-plan__cards li { padding: 0.35rem 0; color: #aab1aa; font-size: 0.88rem; }
.app-plan__cards li::before { content: "＋"; margin-right: 0.55rem; color: var(--accent); }
.app-plan__card--premium { border-color: rgba(0, 255, 0, 0.35) !important; background: linear-gradient(135deg, rgba(0,255,0,.07), transparent 45%), #151815 !important; }
.app-plan__card--premium > span { color: var(--accent) !important; }
.app-plan__note { margin: 1rem 0 0; color: #707770; font-size: 0.75rem; }

.app-faq {
  padding: clamp(6rem, 11vw, 9rem) 0;
  border-bottom: 1px solid var(--app-line);
  background: #0b0d0b;
}

.app-faq__inner {
  display: grid;
  gap: clamp(3rem, 7vw, 6rem);
}

.app-faq__head h2 {
  margin: 0;
}

.app-faq__list {
  border-top: 1px solid var(--app-line);
}

.app-faq__list details {
  border-bottom: 1px solid var(--app-line);
}

.app-faq__list summary {
  position: relative;
  padding: 1.35rem 3rem 1.35rem 0;
  color: #e8ece8;
  font-size: clamp(0.95rem, 1.5vw, 1.05rem);
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

.app-faq__list summary::-webkit-details-marker { display: none; }

.app-faq__list summary::after {
  content: "＋";
  position: absolute;
  right: 0.2rem;
  top: 50%;
  color: var(--accent);
  font-size: 1.25rem;
  transform: translateY(-50%);
}

.app-faq__list details[open] summary::after { content: "−"; }

.app-faq__list details p {
  max-width: 46rem;
  margin: -0.2rem 0 1.5rem;
  color: #929a92;
  font-size: 0.9rem;
  line-height: 1.85;
}

.app-final-cta {
  padding: clamp(5.5rem, 11vw, 9rem) 0;
  background:
    linear-gradient(rgba(0, 255, 0, 0.03) 1px, transparent 1px) 0 0 / 50px 50px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.03) 1px, transparent 1px) 0 0 / 50px 50px,
    #090b09;
}

.app-final-cta__inner {
  display: grid;
  align-items: center;
  gap: 2rem;
}

.app-final-cta__inner > img {
  width: clamp(80px, 12vw, 130px);
  height: auto;
  border-radius: 24%;
  box-shadow: 0 20px 55px rgba(0, 0, 0, 0.45);
}

.app-final-cta__inner > div > p:not(.eyebrow) {
  margin: 1.3rem 0 0;
  color: #929a92;
}

@media (min-width: 780px) {
  .app-feature__inner {
    grid-template-columns: minmax(0, 0.83fr) minmax(400px, 1.17fr);
  }

  .app-feature__inner--reverse {
    grid-template-columns: minmax(400px, 1.17fr) minmax(0, 0.83fr);
  }

  .app-feature__inner--reverse .app-feature__copy { grid-column: 2; grid-row: 1; }
  .app-feature__inner--reverse .app-ui-stage { grid-column: 1; grid-row: 1; }
  .app-more__grid { grid-template-columns: repeat(3, 1fr); }
  .app-plan__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-faq__inner { grid-template-columns: minmax(250px, 0.7fr) minmax(0, 1.3fr); }
  .app-final-cta__inner { grid-template-columns: auto 1fr; gap: 3rem; }

  .app-page .app-problems h2 .heading-line,
  .app-page .app-capabilities h2 .heading-line,
  .app-page .app-faq__head h2 .heading-line {
    white-space: nowrap;
  }
}

@media (max-width: 819px) {
  .app-page .app-hero__inner { min-height: auto; }
  .app-page .app-hero__copy h1 .headline-line { white-space: normal; }
  .app-page .app-hero__copy h1 { max-width: none; }
  .app-page .phone-stage { min-height: 560px; }
}

@media (max-width: 679px) {
  .app-page .app-hero { min-height: auto; padding-top: 4rem; }
  .app-page .app-hero__copy h1 { font-size: clamp(1.95rem, 8.2vw, 2.75rem); }
  .app-page .phone-frame { width: min(270px, 76vw); }
  .app-page .app-problems h2 .heading-line,
  .app-page .app-capabilities h2 .heading-line,
  .app-page .app-feature__copy h2 .heading-line,
  .app-page .app-more h2 .heading-line,
  .app-page .app-final-cta h2 .heading-line,
  .app-page .app-faq__head h2 .heading-line,
  .app-page .heading-line { white-space: normal; }
  .app-home-ui__score { grid-template-columns: 5rem 1fr; padding: 0.7rem; }
  .app-ui-stage { min-height: 400px; margin-inline: -0.5rem; }
  .app-ui-card, .app-record-ui, .app-score-ui { width: 92%; }
  .app-video-ui__hero { grid-template-columns: 1fr; }
  .app-video-ui__image { min-height: 7rem; }
  .app-video-ui__list { display: none; }
  .app-record-ui__metrics > div { padding: 0.5rem; }
  .app-record-ui__chart svg { height: 7rem; }
  .app-score-ui { grid-template-columns: 0.8fr 1.2fr; padding: 0.8rem; }
  .app-score-ui__summary { padding: 0.65rem; }
  .app-score-ui__summary strong { font-size: 2.2rem; }
  .app-more__grid article { min-height: 220px; }
  .app-final-cta__inner > img { width: 84px; }
}

/* ── チーム向けリニューアル ── */
.team-page {
  --team-panel: #111411;
  --team-panel-2: #171a17;
  --team-line: rgba(255, 255, 255, 0.1);
  overflow: hidden;
  background: #0b0d0b;
}

.team-page h1,
.team-page h2,
.team-page h3,
.team-page strong {
  font-family: var(--font-display);
}

.team-page h2 {
  margin: 0 0 1rem;
  font-size: clamp(1.85rem, 4vw, 3.4rem);
  line-height: 1.18;
  letter-spacing: -0.04em;
}

.team-page .heading-line {
  display: block;
  white-space: nowrap;
}

.team-definition,
.section-definition {
  margin: 0;
  max-width: 46rem;
  color: #b9beb9;
  font-size: clamp(0.98rem, 1.6vw, 1.1rem);
  line-height: 1.9;
}

.team-hero {
  position: relative;
  padding: clamp(4.5rem, 9vw, 8rem) 0 clamp(4rem, 8vw, 7rem);
  border-bottom: 1px solid var(--border);
  background:
    radial-gradient(circle at 78% 23%, rgba(0, 255, 0, 0.12), transparent 27%),
    linear-gradient(130deg, #151b15 0%, #0d100d 58%, #080908 100%);
}

.team-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(0, 255, 0, 0.035) 1px, transparent 1px) 0 0 / 42px 42px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.035) 1px, transparent 1px) 0 0 / 42px 42px;
  mask-image: linear-gradient(90deg, transparent 10%, #000 70%);
  pointer-events: none;
}

.team-hero__inner {
  position: relative;
  display: grid;
  align-items: center;
  gap: clamp(3rem, 7vw, 6rem);
}

.team-hero__copy { min-width: 0; }

.team-hero h1 {
  margin: 0 0 1.5rem;
  font-size: clamp(2.45rem, 4.3vw, 3.8rem);
  line-height: 1.08;
  letter-spacing: -0.055em;
}

.team-hero h1 .headline-line {
  display: block;
  white-space: nowrap;
}
.team-hero__note {
  margin: 0.8rem 0 0;
  color: #7f877f;
  font-size: 0.9rem;
}

.team-section {
  padding: clamp(5rem, 10vw, 9rem) 0;
  border-bottom: 1px solid var(--border);
}

.team-section--grid,
.training-section,
.onboarding-section {
  background:
    linear-gradient(rgba(0, 255, 0, 0.025) 1px, transparent 1px) 0 0 / 46px 46px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.025) 1px, transparent 1px) 0 0 / 46px 46px,
    #0d0f0d;
}

.section-heading { margin-bottom: clamp(2.5rem, 6vw, 5rem); }
.section-heading--wide .section-definition { max-width: 52rem; }

/* 共通UIモック */
.ui-window {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(0, 255, 0, 0.22);
  border-radius: 13px;
  background: #0b0d0b;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4);
}

.ui-window__bar {
  height: 34px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 12px;
  border-bottom: 1px solid var(--team-line);
  background: #191c19;
}

.ui-window__bar > span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #454945;
}

.ui-window__bar > span:first-child { background: var(--accent); }
.ui-window__bar small {
  margin-left: auto;
  color: #7d847d;
  font-size: 0.58rem;
  letter-spacing: 0.06em;
}

.ui-dashboard { aspect-ratio: 1.34 / 1; }
.ui-dashboard__body {
  height: calc(100% - 34px);
  display: grid;
  grid-template-columns: 22% 1fr;
}

.ui-sidebar {
  display: flex;
  flex-direction: column;
  gap: clamp(0.35rem, 1vw, 0.7rem);
  padding: 1rem 0.7rem;
  border-right: 1px solid var(--team-line);
  background: #111411;
}

.ui-sidebar strong {
  margin-bottom: 0.5rem;
  font-size: clamp(0.6rem, 1.2vw, 0.78rem);
}
.ui-sidebar strong i { color: var(--accent); font-style: normal; }
.ui-sidebar > span {
  padding: 0.42rem 0.5rem;
  border-radius: 5px;
  color: #777e77;
  font-size: clamp(0.48rem, 1vw, 0.64rem);
  white-space: nowrap;
}
.ui-sidebar > span.is-active { background: rgba(0, 255, 0, 0.1); color: #e8eee8; }

.ui-dashboard__main { min-width: 0; padding: clamp(0.65rem, 1.7vw, 1.1rem); }
.ui-dashboard__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}
.ui-dashboard__heading div { display: flex; flex-direction: column; }
.ui-dashboard__heading small { color: #686e68; font-size: clamp(0.4rem, 0.8vw, 0.54rem); }
.ui-dashboard__heading strong { font-size: clamp(0.65rem, 1.4vw, 0.92rem); }
.ui-dashboard__heading > span {
  padding: 0.2rem 0.45rem;
  border: 1px solid #343934;
  border-radius: 99px;
  color: #99a099;
  font-size: clamp(0.42rem, 0.8vw, 0.55rem);
}

.ui-stat-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.3rem, 1vw, 0.55rem);
}
.ui-stat-row > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: clamp(0.42rem, 1.2vw, 0.7rem);
  border: 1px solid var(--team-line);
  border-radius: 7px;
  background: #151815;
}
.ui-stat-row small,
.ui-stat-row em { color: #747b74; font-size: clamp(0.38rem, 0.8vw, 0.52rem); font-style: normal; }
.ui-stat-row strong { margin: 0.2rem 0; font-size: clamp(0.68rem, 1.5vw, 1rem); }
.ui-meter { display: block; height: 3px; margin-top: 0.22rem; overflow: hidden; border-radius: 99px; background: #2c302c; }
.ui-meter b { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.ui-meter__fill--82 { width: 82%; }
.ui-meter__fill--68 { width: 68%; }

.ui-dashboard__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: clamp(0.3rem, 1vw, 0.55rem);
  margin-top: clamp(0.3rem, 1vw, 0.55rem);
}
.ui-panel {
  min-width: 0;
  padding: clamp(0.45rem, 1.2vw, 0.7rem);
  border: 1px solid var(--team-line);
  border-radius: 7px;
  background: #131613;
}
.ui-panel__title { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.ui-panel__title strong { font-size: clamp(0.5rem, 1vw, 0.68rem); }
.ui-panel__title small { color: #737a73; font-size: clamp(0.38rem, 0.8vw, 0.52rem); }
.ui-panel--trend svg { display: block; width: 100%; height: auto; margin-top: 0.2rem; }
.ui-panel--activity p {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.35rem;
  margin: 0.45rem 0 0;
  padding-top: 0.45rem;
  border-top: 1px solid var(--team-line);
  font-size: clamp(0.38rem, 0.8vw, 0.52rem);
}
.ui-panel--activity p span { display: flex; min-width: 0; flex-direction: column; }
.ui-panel--activity p small,
.ui-panel--activity time { color: #686f68; font-size: 0.86em; }
.ui-avatar {
  width: clamp(16px, 3vw, 22px);
  aspect-ratio: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(0, 255, 0, 0.12);
  color: var(--accent);
  font-size: 0.75em;
  font-style: normal;
}
.ui-panel--menu { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.6rem; }
.ui-panel--menu > small { color: var(--accent); font-size: clamp(0.38rem, 0.8vw, 0.5rem); }
.ui-panel--menu > strong { font-size: clamp(0.48rem, 1vw, 0.68rem); }
.ui-panel--menu > span { color: #777; font-size: clamp(0.38rem, 0.8vw, 0.5rem); }
.ui-panel--menu .ui-meter { grid-column: 1 / -1; width: 100%; }

/* 課題・概要 */
.team-problems { background: #090a09; }
.team-problems__inner { display: grid; gap: clamp(2.5rem, 7vw, 6rem); }
.team-problems h2 { font-size: clamp(1.7rem, 2.8vw, 2.25rem); }
.problem-lines { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--team-line); }
.problem-lines li {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 1rem;
  padding: 1.35rem 0;
  border-bottom: 1px solid var(--team-line);
}
.problem-lines li > span { color: var(--accent); font-size: 0.72rem; font-weight: 800; }
.problem-lines p { margin: 0; color: #929992; font-size: 0.98rem; line-height: 1.75; }
.problem-lines strong { display: block; margin-bottom: 0.3rem; color: var(--text); font-size: 1.15rem; }

.team-capabilities { background: linear-gradient(120deg, rgba(0, 255, 0, 0.045), transparent 50%), #111311; }
.capability-strip { list-style: none; margin: 3rem 0 0; padding: 0; display: grid; border-top: 1px solid var(--team-line); }
.capability-strip li { display: flex; flex-direction: column; min-height: 150px; padding: 1.35rem 0; border-bottom: 1px solid var(--team-line); }
.capability-strip span { color: var(--accent); font-size: 0.8rem; font-weight: 800; }
.capability-strip strong { margin-top: auto; font-size: clamp(1.15rem, 2vw, 1.45rem); }
.capability-strip small { margin-top: 0.45rem; color: #8e958e; font-size: 0.86rem; line-height: 1.65; }

/* コンディション */
.condition-layout { position: relative; display: grid; align-items: end; gap: 1.5rem; }
.mock-phone {
  position: relative;
  overflow: hidden;
  width: min(260px, 78vw);
  aspect-ratio: 9 / 18.5;
  padding: 8px;
  border: 2px solid #3d433d;
  border-radius: 34px;
  background: #050605;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.5);
}
.mock-phone__speaker {
  position: absolute;
  z-index: 2;
  top: 14px;
  left: 35%;
  width: 30%;
  height: 16px;
  border-radius: 99px;
  background: #050605;
}
.mock-phone__screen {
  height: 100%;
  padding: 2.2rem 1rem 1rem;
  overflow: hidden;
  border-radius: 26px;
  background: linear-gradient(160deg, rgba(0, 255, 0, 0.09), transparent 35%), #111411;
}
.mock-phone__screen > small { color: #777f77; font-size: 0.58rem; }
.mock-phone__screen > strong { display: block; margin-top: 0.2rem; font-size: 1rem; }
.mock-phone__screen > p { margin: 1rem 0 0.65rem; color: #a6ada6; font-size: 0.66rem; }
.wellness-field { margin-bottom: 0.55rem; padding: 0.62rem; border: 1px solid var(--team-line); border-radius: 7px; background: rgba(255,255,255,.025); }
.wellness-field > span { display: block; margin-bottom: 0.35rem; font-size: 0.6rem; font-weight: 700; }
.wellness-field b { display: flex; gap: 0.28rem; }
.wellness-field i { width: 20%; height: 5px; border-radius: 99px; background: var(--accent); }
.wellness-field i.is-off { background: #303530; }
.wellness-note { display: flex; flex-direction: column; margin-top: 0.6rem; padding: 0.6rem; border: 1px solid var(--team-line); border-radius: 7px; }
.wellness-note small { color: #737a73; font-size: 0.5rem; }
.wellness-note span { font-size: 0.6rem; }
.mock-phone button { width: 100%; margin-top: 0.8rem; padding: 0.58rem; border: 0; border-radius: 7px; background: var(--accent); color: #071007; font-size: 0.62rem; font-weight: 800; }

.condition-desktop { min-width: 0; }
.condition-desktop__top { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.6rem; padding: 1rem; }
.condition-desktop__top > div { display: flex; flex-direction: column; padding: 0.8rem; border: 1px solid var(--team-line); border-radius: 7px; background: #141714; }
.condition-desktop__top small { color: #737a73; font-size: clamp(0.52rem, 1vw, 0.65rem); }
.condition-desktop__top strong { margin-top: 0.25rem; font-size: clamp(0.9rem, 2vw, 1.3rem); }
.condition-desktop__top strong i { color: #777; font-size: 0.55em; font-style: normal; }
.condition-desktop__top strong.is-warn { color: #ffb34f; }
.condition-chart { margin: 0 1rem; padding: 1rem; border: 1px solid var(--team-line); border-radius: 7px; background: #121512; }
.condition-chart svg { display: block; width: 100%; height: auto; margin-top: 0.8rem; }
.condition-legend { display: flex; align-items: center; gap: 0.35rem; }
.condition-legend i { width: 0.8rem; height: 2px; display: inline-block; margin-left: 0.35rem; }
.condition-legend i.is-fatigue { background: var(--accent-cta); }
.condition-legend i.is-sleep { background: var(--accent); }
.missing-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.65rem; padding: 1rem; color: #c5cac5; font-size: 0.62rem; }
.missing-row span { display: flex; align-items: center; gap: 0.3rem; }
.missing-row small { color: #777; }

/* 動画・ブラウズ・メニュー */
.training-section { background-color: #090b09; }
.training-composition { display: grid; gap: 1.25rem; align-items: end; }
.video-library { min-width: 0; }
.video-library__head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.1rem 1.1rem 0.65rem; }
.video-library__head div { display: flex; flex-direction: column; }
.video-library__head strong { font-size: clamp(0.78rem, 1.7vw, 1.05rem); }
.video-library__head small { color: var(--accent); font-size: 0.58rem; }
.mock-search { min-width: 35%; padding: 0.42rem 0.7rem; border: 1px solid var(--team-line); border-radius: 6px; color: #707770; font-size: clamp(0.48rem, 1vw, 0.62rem); }
.mock-tags { display: flex; gap: 0.35rem; padding: 0 1.1rem 0.8rem; overflow: hidden; }
.mock-tags b { padding: 0.3rem 0.55rem; border: 1px solid var(--team-line); border-radius: 99px; color: #777e77; font-size: clamp(0.42rem, 0.9vw, 0.56rem); white-space: nowrap; }
.mock-tags b.is-active { border-color: rgba(0, 255, 0, 0.35); background: rgba(0, 255, 0, 0.09); color: var(--accent); }
.mock-video-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; padding: 0 1.1rem 1.1rem; }
.mock-video-grid article { min-width: 0; }
.mock-video-grid article > strong { display: block; overflow: hidden; margin-top: 0.3rem; font-size: clamp(0.52rem, 1vw, 0.68rem); text-overflow: ellipsis; white-space: nowrap; }
.mock-video-grid article > span { color: #727972; font-size: clamp(0.42rem, 0.8vw, 0.52rem); }
.mock-thumb { position: relative; aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; overflow: hidden; border: 1px solid var(--team-line); background: #202420; }
.mock-thumb--sprint { background: linear-gradient(135deg, #243326, #111811); }
.mock-thumb--jump { background: linear-gradient(135deg, #32291d, #15120e); }
.mock-thumb--strength { background: linear-gradient(135deg, #252636, #111219); }
.mock-thumb--care { background: linear-gradient(135deg, #1d3030, #0e1717); }
.mock-thumb__brand { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); color: #f2f2f2; font-size: clamp(0.52rem, 1.2vw, 0.75rem); font-weight: 800; white-space: nowrap; }
.mock-thumb__brand b { color: var(--accent); }
.mock-thumb i { position: absolute; z-index: 1; left: 50%; top: 50%; width: clamp(20px, 3vw, 30px); aspect-ratio: 1; display: flex; align-items: center; justify-content: center; transform: translate(-50%, -50%); border: 1px solid rgba(255,255,255,.14); border-radius: 50%; background: rgba(0,0,0,.46); color: var(--accent); box-shadow: 0 4px 14px rgba(0,0,0,.28); backdrop-filter: blur(2px); font-size: 0.55em; font-style: normal; }
.mock-thumb > small { position: absolute; right: 0.3rem; bottom: 0.25rem; padding: 0.1rem 0.22rem; border-radius: 2px; background: rgba(0,0,0,.75); font-size: 0.42rem; }
.mock-phone--browse { width: min(210px, 68vw); justify-self: center; }
.browse-tile { display: flex; align-items: center; gap: 0.6rem; margin-top: 0.6rem; padding: 0.65rem; border: 1px solid var(--team-line); border-radius: 7px; background: rgba(255,255,255,.025); }
.browse-tile > i { width: 1.55rem; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(0,255,0,.1); color: var(--accent); font-size: 0.7rem; font-style: normal; }
.browse-tile span { display: flex; flex-direction: column; min-width: 0; }
.browse-tile b { font-size: 0.62rem; }
.browse-tile small { color: #737a73; font-size: 0.48rem; }
.menu-offline { min-width: 0; padding: 1.25rem; border: 1px solid rgba(0,255,0,.22); border-radius: 13px; background: linear-gradient(150deg, rgba(0,255,0,.05), transparent 45%), #111411; }
.menu-offline > strong { display: block; font-size: clamp(0.95rem, 2vw, 1.2rem); }
.menu-offline > small { color: #737a73; font-size: 0.65rem; }
.menu-offline ol { list-style: none; margin: 1rem 0; padding: 0; border-top: 1px solid var(--team-line); }
.menu-offline li { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.65rem; padding: 0.65rem 0; border-bottom: 1px solid var(--team-line); }
.menu-offline li > i { color: var(--accent); font-size: 0.58rem; font-style: normal; }
.menu-offline li > span { display: flex; min-width: 0; flex-direction: column; font-size: 0.67rem; font-weight: 700; }
.menu-offline li small { color: #737a73; font-size: 0.78em; }
.menu-offline li > b { color: var(--accent); font-size: 0.5rem; }
.offline-status { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.65rem; padding: 0.8rem; border-radius: 7px; background: rgba(0,255,0,.07); }
.offline-status > span { width: 1.6rem; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(0,255,0,.35); border-radius: 50%; color: var(--accent); }
.offline-status p { display: flex; min-width: 0; flex-direction: column; margin: 0; }
.offline-status p strong { font-size: 0.65rem; }
.offline-status p small { color: #737a73; font-size: 0.5rem; }
.offline-status > b { color: var(--accent); font-size: 0.5rem; white-space: nowrap; }

/* フィジカル */
.physical-layout { display: grid; gap: clamp(2.5rem, 7vw, 6rem); align-items: center; }
.physical-axis-list { list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1.5rem 0 0; padding: 0; }
.physical-axis-list li { padding: 0.32rem 0.55rem; border: 1px solid var(--team-line); border-radius: 99px; color: #929992; font-size: 0.7rem; }
.physical-layout .section-heading h2 { font-size: clamp(1.75rem, 3.2vw, 2.45rem); }
.radar-system { min-width: 0; overflow: hidden; border: 1px solid rgba(0,255,0,.22); border-radius: 13px; background: #0a0c0a; }
.radar-panel { min-width: 0; padding: clamp(0.8rem, 2vw, 1.2rem); }
.radar-svg-wrap { width: 100%; aspect-ratio: 1.28 / 1; margin-top: 0.5rem; }
.radar-svg-wrap svg { display: block; width: 100%; height: 100%; }
.recommend-panel { padding: 1rem; border-top: 1px solid var(--team-line); background: #121512; }
.recommend-list { display: grid; gap: 0.6rem; margin-top: 0.7rem; }
.recommend-list article { min-width: 0; display: grid; grid-template-columns: 34% 1fr; gap: 0.6rem; align-items: center; }
.recommend-list p { display: flex; min-width: 0; flex-direction: column; margin: 0; }
.recommend-list p span { color: var(--accent); font-size: 0.5rem; }
.recommend-list p strong { overflow: hidden; font-size: clamp(0.58rem, 1.2vw, 0.72rem); text-overflow: ellipsis; white-space: nowrap; }
.recommend-list p small { color: #737a73; font-size: 0.5rem; }

/* カスタマイズと信頼 */
.customization-section { background: linear-gradient(135deg, #111711, #090b09 70%); }
.custom-layout { display: grid; gap: clamp(2rem, 6vw, 4.5rem); align-items: center; }
.settings-mock__body { display: grid; }
.settings-list { padding: clamp(0.8rem, 2vw, 1.2rem); }
.settings-list p { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0.8rem; margin: 0; padding: 0.75rem 0; border-bottom: 1px solid var(--team-line); }
.settings-list p > span { display: flex; min-width: 0; flex-direction: column; }
.settings-list p strong { font-size: clamp(0.62rem, 1.2vw, 0.78rem); }
.settings-list p small { color: #737a73; font-size: clamp(0.45rem, 0.9vw, 0.57rem); }
.mock-switch { min-width: 3rem; padding: 0.25rem 0.45rem; border-radius: 99px; background: #282d28; color: #777e77; font-size: 0.48rem; text-align: center; }
.mock-switch.is-on { background: rgba(0,255,0,.13); color: var(--accent); }
.settings-preview { display: flex; flex-direction: column; justify-content: center; padding: 1.2rem; border-top: 1px solid var(--team-line); background: radial-gradient(circle at 50% 40%, rgba(0,255,0,.1), transparent 45%), #101310; }
.settings-preview > small { color: var(--accent); font-size: 0.52rem; letter-spacing: .1em; }
.settings-preview > strong { margin-top: 0.25rem; font-size: 0.85rem; }
.settings-preview > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.4rem; margin-top: 1rem; }
.settings-preview > div span { display: flex; flex-direction: column; align-items: center; gap: 0.2rem; padding: 0.7rem 0.2rem; border: 1px solid var(--team-line); border-radius: 6px; color: var(--accent); }
.settings-preview > div small { color: #959c95; font-size: 0.48rem; }
.settings-preview > p { margin: 1rem 0 0; color: #777e77; font-size: 0.6rem; }
.trust-points { list-style: none; margin: 0; padding: 0; }
.trust-points li { display: grid; grid-template-columns: 1.8rem 1fr; gap: 0.8rem; padding: 1.25rem 0; border-top: 1px solid var(--team-line); }
.trust-points li:last-child { border-bottom: 1px solid var(--team-line); }
.trust-points li > span { color: var(--accent); font-size: 1.25rem; }
.trust-points p { margin: 0; color: #8a918a; font-size: 0.9rem; }
.trust-points strong { display: block; margin-bottom: 0.2rem; color: var(--text); font-size: 1rem; }

/* 専門職・実績・FAQ・CTA */
.experts-section { background: #0b0c0b; }
.experts-section .section-definition { margin-bottom: 2rem; }
.result-section { background: radial-gradient(circle at 80% 45%, rgba(0,255,0,.08), transparent 28%), #111311; }
.result-layout { display: grid; gap: clamp(2.5rem, 6vw, 5rem); align-items: center; }
.result-card { display: grid; gap: 1.25rem; padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid var(--team-line); background: #0d0f0d; color: inherit; text-decoration: none; transition: border-color .2s ease, transform .2s ease; }
.result-card:hover { border-color: var(--accent); text-decoration: none; transform: translateY(-2px); }
.result-card img { width: 120px; aspect-ratio: 1; object-fit: contain; border-radius: 8px; background: #fff; }
.result-card__body { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.result-card small { color: var(--accent); font-size: 0.65rem; letter-spacing: .08em; }
.result-card strong { margin-top: 0.3rem; font-size: clamp(1rem, 2vw, 1.3rem); }
.result-card p { margin: 0.45rem 0; color: #8a918a; font-size: 0.85rem; }
.result-card b { color: var(--accent); font-size: 0.78rem; }

.brand-experience-section {
  background:
    radial-gradient(circle at 80% 45%, rgba(0, 255, 0, 0.1), transparent 32%),
    #101310;
}
.brand-experience-layout {
  display: grid;
  gap: clamp(3rem, 6vw, 5rem);
  align-items: center;
}
.brand-experience-layout h2 { font-size: clamp(1.75rem, 2.8vw, 2.3rem); }
.branding-mock {
  --brand-accent: #00ff00;
  --brand-rgb: 0, 255, 0;
  --brand-controls: #0a140a;
  --brand-surface: #081208;
  --brand-panel: #101b10;
  --brand-text: #f4fff4;
  --brand-muted: #839483;
  --brand-line: rgba(207, 255, 207, 0.12);
  --brand-on-accent: #061006;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
.branding-mock[data-brand-theme="blue"] {
  --brand-accent: #2878e8;
  --brand-rgb: 40, 120, 232;
  --brand-controls: #dceaff;
  --brand-surface: #eaf3ff;
  --brand-panel: #f8fbff;
  --brand-text: #13243f;
  --brand-muted: #60718a;
  --brand-line: rgba(19, 36, 63, 0.13);
  --brand-on-accent: #ffffff;
}
.branding-mock[data-brand-theme="orange"] {
  --brand-accent: #ee6230;
  --brand-rgb: 238, 98, 48;
  --brand-controls: #ffe3d4;
  --brand-surface: #fff0e7;
  --brand-panel: #fffaf6;
  --brand-text: #3d1e15;
  --brand-muted: #865f52;
  --brand-line: rgba(61, 30, 21, 0.13);
  --brand-on-accent: #ffffff;
}
.branding-mock[data-brand-theme="purple"] {
  --brand-accent: #8c4ee8;
  --brand-rgb: 140, 78, 232;
  --brand-controls: #fff0bd;
  --brand-surface: #dff6e8;
  --brand-panel: #fffdf5;
  --brand-text: #19372d;
  --brand-muted: #607970;
  --brand-line: rgba(25, 55, 45, 0.15);
  --brand-on-accent: #ffffff;
}
.branding-mock__body {
  display: grid;
  min-height: 330px;
  color: var(--brand-text);
  transition: color 180ms ease;
}
.branding-controls {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(1.2rem, 3vw, 2rem);
  background: var(--brand-controls);
  transition: background 180ms ease;
}
.branding-controls > small {
  color: var(--brand-accent);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.branding-logo {
  width: 3.6rem;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  margin: 1.1rem 0 0.7rem;
  border-radius: 50%;
  background: var(--brand-accent);
  color: var(--brand-on-accent);
  font-size: 1.05rem;
  font-weight: 800;
  transition: background 180ms ease;
}
.branding-controls > strong { color: var(--brand-text); font-size: 1rem; }
.branding-controls > p { margin: 1.25rem 0 0.45rem; color: var(--brand-muted); font-size: 0.68rem; }
.branding-controls > span { margin-top: 1rem; color: var(--brand-muted); font-size: 0.7rem; }
.branding-colors { display: flex; gap: 0.55rem; }
.branding-color {
  width: 1.35rem;
  aspect-ratio: 1;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 50%;
  cursor: pointer;
  transition: transform 160ms ease, outline-color 160ms ease;
}
.branding-color:hover { transform: scale(1.12); }
.branding-color--green { background: #00ff00; }
.branding-color--blue { background: #3f8cff; }
.branding-color--orange { background: #ff6b35; }
.branding-color--purple { background: #a36cff; }
.branding-color.is-selected { outline: 2px solid #fff; outline-offset: 3px; }
.branding-preview {
  min-width: 0;
  padding: clamp(1rem, 2.5vw, 1.5rem);
  border-top: 1px solid var(--brand-line);
  background:
    radial-gradient(circle at 70% 10%, rgba(var(--brand-rgb), 0.2), transparent 42%),
    var(--brand-surface);
  transition: background 180ms ease, color 180ms ease;
}
.branding-preview__head { display: flex; align-items: center; gap: 0.7rem; }
.branding-preview__head > i {
  width: 2rem;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--brand-accent);
  color: var(--brand-on-accent);
  font-size: 0.58rem;
  font-style: normal;
  font-weight: 800;
  transition: background 180ms ease;
}
.branding-preview__head > span { display: flex; flex-direction: column; }
.branding-preview__head small { color: var(--brand-accent); font-size: 0.48rem; letter-spacing: 0.1em; }
.branding-preview__head strong { color: var(--brand-text); font-size: 0.75rem; }
.branding-preview__hero {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid rgba(var(--brand-rgb), 0.32);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(var(--brand-rgb), 0.2), var(--brand-panel));
  transition: border-color 180ms ease, background 180ms ease;
}
.branding-preview__hero small { color: var(--brand-accent); font-size: 0.5rem; font-weight: 800; }
.branding-preview__hero strong { margin-top: 0.25rem; color: var(--brand-text); font-size: 0.8rem; }
.branding-preview__hero button {
  margin-top: 0.8rem;
  padding: 0.45rem 0.7rem;
  border: 0;
  border-radius: 6px;
  background: var(--brand-accent);
  color: var(--brand-on-accent);
  font-size: 0.58rem;
  font-weight: 800;
  transition: background 180ms ease;
}
.branding-preview__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.45rem; margin-top: 0.55rem; }
.branding-preview__cards span { display: flex; flex-direction: column; padding: 0.55rem; border: 1px solid var(--brand-line); border-radius: 6px; background: var(--brand-panel); }
.branding-preview__cards b { color: var(--brand-accent); font-size: 0.8rem; }
.branding-preview__cards small { color: var(--brand-muted); font-size: 0.45rem; }
.branding-preview__nav { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 0.7rem; padding-top: 0.65rem; border-top: 1px solid var(--brand-line); }
.branding-preview__nav span { color: var(--brand-muted); font-size: 0.48rem; text-align: center; }

.onboarding-section .flow-guide__step { background: rgba(17,20,17,.88); }
.faq-section { background: #090a09; }
.faq-layout { display: grid; gap: clamp(2.5rem, 7vw, 6rem); }
.faq-layout .faq { max-width: none; margin-top: 0; }
.faq-layout .faq details { padding: 1.1rem 0; border: 0; border-top: 1px solid var(--team-line); background: transparent; }
.faq-layout .faq details:last-child { border-bottom: 1px solid var(--team-line); }
.faq-layout .faq summary { position: relative; padding-right: 2rem; font-size: 1rem; list-style: none; }
.faq-layout .faq summary::-webkit-details-marker { display: none; }
.faq-layout .faq summary::after { content: "+"; position: absolute; right: 0; color: var(--accent); font-size: 1.3rem; }
.faq-layout .faq details[open] summary::after { content: "−"; }
.faq-layout .faq details p { max-width: 42rem; font-size: 0.9rem; line-height: 1.8; }

.team-final-cta {
  position: relative;
  padding: clamp(5.5rem, 11vw, 9rem) 0;
  background:
    linear-gradient(rgba(0,255,0,.05) 1px, transparent 1px) 0 0 / 36px 36px,
    linear-gradient(90deg, rgba(0,255,0,.05) 1px, transparent 1px) 0 0 / 36px 36px,
    radial-gradient(circle at 50% 0%, rgba(0,255,0,.15), transparent 45%),
    #0d110d;
}
.team-final-cta__inner { text-align: center; }
.team-final-cta h2 { font-size: clamp(2rem, 5vw, 4.1rem); }
.team-final-cta p:not(.eyebrow) { max-width: 37rem; margin: 0 auto; color: #9ca39c; }
.team-final-cta .btn-primary { margin-top: 2rem; padding: 1rem 1.6rem; }

@media (min-width: 680px) {
  .capability-strip { grid-template-columns: repeat(2, 1fr); }
  .capability-strip li { padding: 1.5rem; border-right: 1px solid var(--team-line); }
  .capability-strip li:nth-child(2n) { border-right: 0; }
  .condition-layout { grid-template-columns: minmax(150px, 0.35fr) minmax(0, 1fr); }
  .mock-phone--wellness { margin-right: -3.5rem; z-index: 2; }
  .condition-desktop { padding-left: 2.3rem; }
  .training-composition { grid-template-columns: minmax(0, 1.35fr) minmax(150px, .45fr); }
  .video-library { grid-row: span 2; align-self: stretch; }
  .mock-phone--browse { align-self: start; }
  .settings-mock__body { grid-template-columns: minmax(0, 1.15fr) minmax(160px, .85fr); }
  .settings-preview { border-top: 0; border-left: 1px solid var(--team-line); }
  .result-card { grid-template-columns: 130px 1fr; align-items: center; }
  .branding-mock__body { grid-template-columns: minmax(180px, 0.75fr) minmax(0, 1.25fr); }
  .branding-preview { border-top: 0; border-left: 1px solid var(--brand-line); }
}

@media (min-width: 860px) {
  .team-hero__inner { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); }
  .team-problems__inner { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; }
  .capability-strip { grid-template-columns: repeat(4, 1fr); }
  .capability-strip li { min-height: 190px; border-bottom: 1px solid var(--team-line); border-right: 1px solid var(--team-line); }
  .capability-strip li:nth-child(2n) { border-right: 1px solid var(--team-line); }
  .capability-strip li:last-child { border-right: 0; }
  .training-composition { grid-template-columns: minmax(0, 1.45fr) 185px minmax(250px, .75fr); align-items: center; }
  .video-library { grid-row: auto; align-self: center; }
  .mock-phone--browse { align-self: center; }
  .menu-offline { align-self: center; }
  .physical-layout { grid-template-columns: minmax(0, .72fr) minmax(520px, 1.28fr); }
  .radar-system { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(190px, .75fr); }
  .recommend-panel { display: flex; flex-direction: column; justify-content: center; border-top: 0; border-left: 1px solid var(--team-line); }
  .custom-layout { grid-template-columns: minmax(0, 1.28fr) minmax(280px, .72fr); }
  .result-layout { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); }
  .brand-experience-layout { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
  .faq-layout { grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); align-items: start; }
}

@media (max-width: 679px) {
  .site-header__inner {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .nav {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 1rem;
    padding-bottom: 0.15rem;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .nav::-webkit-scrollbar { display: none; }
  .nav a { flex: 0 0 auto; }
  .team-hero { padding-top: 3.5rem; }
  .team-hero h1 { font-size: clamp(2.15rem, 11vw, 3.2rem); }
  .ui-dashboard { aspect-ratio: 1.12 / 1; }
  .ui-sidebar { padding: 0.65rem 0.35rem; }
  .ui-sidebar > span { padding-inline: 0.25rem; }
  .ui-panel--activity { display: none; }
  .ui-dashboard__grid { grid-template-columns: 1fr; }
  .condition-layout { justify-items: center; }
  .condition-desktop { width: 100%; }
  .condition-desktop__top { padding: 0.65rem; gap: 0.35rem; }
  .condition-desktop__top > div { padding: 0.55rem; }
  .condition-chart { margin: 0 0.65rem; padding: 0.65rem; }
  .missing-row { padding: 0.65rem; }
  .mock-video-grid { gap: 0.45rem; }
  .menu-offline { width: 100%; }
  .radar-svg-wrap { aspect-ratio: 1 / 1; }
  .radar-svg-wrap svg { transform: scale(.98); }
  .people-grid .person { grid-template-columns: 100px 1fr; padding: 1rem; }
  .person__frame { max-width: 100px; }
  .person__bio { grid-column: 1 / -1; margin-top: 0.8rem; }
  .result-card img { width: 100px; }
}

@media (prefers-reduced-motion: reduce) {
  .result-card,
  .team-page .btn-primary { transition: none; }
}

/* ── ホーム：会社の顔と二本柱 ── */
.home-page {
  --home-line: rgba(255, 255, 255, 0.09);
  background: #090b09;
}

.home-hero {
  position: relative;
  min-height: clamp(620px, 82svh, 860px);
  display: flex;
  overflow: hidden;
  border-bottom: 1px solid var(--home-line);
  background:
    linear-gradient(rgba(0, 255, 0, 0.045) 1px, transparent 1px) 0 0 / 64px 64px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.045) 1px, transparent 1px) 0 0 / 64px 64px,
    radial-gradient(circle at 72% 38%, rgba(0, 255, 0, 0.11), transparent 33%),
    linear-gradient(135deg, #111611, #080a08 67%);
}

.home-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  opacity: 0.5;
}

.home-hero__backdrop {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.home-hero__mark {
  position: absolute;
  right: -0.06em;
  top: 48%;
  transform: translateY(-50%);
  color: transparent;
  font-family: "Syne", var(--font-display);
  font-size: clamp(15rem, 38vw, 34rem);
  font-weight: 800;
  line-height: 0.7;
  letter-spacing: -0.16em;
  -webkit-text-stroke: 1px rgba(0, 255, 0, 0.11);
  opacity: 0.8;
}

.home-hero__backdrop i {
  position: absolute;
  width: clamp(12rem, 28vw, 24rem);
  aspect-ratio: 1;
  border: 1px solid rgba(0, 255, 0, 0.08);
  transform: rotate(45deg);
}
.home-hero__backdrop i:nth-of-type(1) { right: 8%; top: 16%; }
.home-hero__backdrop i:nth-of-type(2) { right: 20%; top: 38%; }
.home-hero__backdrop i:nth-of-type(3) { right: -6%; bottom: -24%; }

.home-hero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  padding-top: clamp(4.5rem, 10vw, 8.5rem);
  padding-bottom: clamp(3rem, 6vw, 5rem);
}

.home-hero__copy {
  max-width: 760px;
}

.home-hero__brand {
  margin: 0 0 clamp(2rem, 5vw, 3.8rem);
  font-family: var(--font-display);
  font-size: clamp(3rem, 7.5vw, 6.5rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.01em;
}
.home-hero__brand span { color: var(--accent); }

.home-hero h1 {
  margin: 0;
  font-size: clamp(2.5rem, 6vw, 5.2rem);
  line-height: 1.08;
  letter-spacing: -0.055em;
}
.home-hero h1 span { display: block; white-space: nowrap; }

.home-hero__lead {
  max-width: 650px;
  margin: 1.7rem 0 0;
  color: #a7aea7;
  font-size: clamp(0.98rem, 1.7vw, 1.12rem);
  line-height: 1.9;
}

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.2rem 1.8rem;
  margin-top: 2.2rem;
}

.home-text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 700;
  text-decoration: none;
}
.home-text-link span { color: var(--accent); transition: transform 160ms ease; }
.home-text-link:hover { color: var(--accent); text-decoration: none; }
.home-text-link:hover span { transform: translateX(0.25rem); }

/* ホーム：お知らせ */
.home-page .news-feature {
  padding: clamp(2.5rem, 5vw, 4rem) 0;
  border-bottom: 1px solid var(--home-line);
  background: #0c0f0c;
}
.home-page .news-feature__head { margin-bottom: 1.5rem; }
.home-page .news-feature__head .section-title {
  font-size: clamp(1.35rem, 2.5vw, 1.8rem);
}
.home-page .news-feature__card {
  min-height: 180px;
  padding: clamp(1.2rem, 2.5vw, 1.8rem);
  border-color: var(--home-line);
  background:
    linear-gradient(90deg, rgba(0, 255, 0, 0.055), transparent 40%),
    #121512;
}
.home-page .news-feature__img {
  width: 120px;
  height: 120px;
}
.home-page .news-feature__sum { color: #8d958d; }

/* ホーム：会社の一言 */
.home-mission {
  padding: clamp(5.5rem, 11vw, 9.5rem) 0;
  border-bottom: 1px solid var(--home-line);
  background:
    radial-gradient(circle at 12% 40%, rgba(0, 255, 0, 0.075), transparent 28%),
    #090b09;
}
.home-mission__wrap {
  display: grid;
  gap: clamp(1rem, 2.5vw, 1.5rem);
}
.home-mission__eyebrow { margin: 0; }
.home-mission__inner {
  display: grid;
  gap: clamp(2rem, 5vw, 3.5rem);
  align-items: start;
}
.home-mission__lead {
  min-width: 0;
}
.home-mission h2 {
  margin: 0;
  font-size: clamp(1.85rem, 3.5vw, 3rem);
  line-height: 1.22;
  letter-spacing: -0.035em;
}
.home-mission h2 span {
  display: block;
  white-space: nowrap;
}
.home-mission__body {
  min-width: 0;
}
.home-mission__body > p {
  margin: 0 0 1.2rem;
  color: #9ba39b;
  font-size: clamp(0.95rem, 1.5vw, 1.05rem);
  line-height: 1.9;
}
.home-mission__body > p:last-of-type { margin-bottom: 2rem; }

.home-mission__photo {
  position: relative;
  margin: clamp(1.5rem, 4vw, 2.25rem) 0 0;
  overflow: hidden;
  border: 1px solid var(--home-line);
  aspect-ratio: 4 / 3;
  background:
    linear-gradient(rgba(0, 255, 0, 0.04) 1px, transparent 1px) 0 0 / 28px 28px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.04) 1px, transparent 1px) 0 0 / 28px 28px,
    #121512;
}

.home-mission__photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 40% center;
}

.home-mission__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(9, 11, 9, 0.45));
  pointer-events: none;
}

/* ホーム：二本柱 */
.home-paths {
  padding: clamp(5.5rem, 10vw, 9rem) 0;
  background:
    linear-gradient(rgba(0, 255, 0, 0.03) 1px, transparent 1px) 0 0 / 52px 52px,
    linear-gradient(90deg, rgba(0, 255, 0, 0.03) 1px, transparent 1px) 0 0 / 52px 52px,
    #0c0e0c;
}
.home-paths__head { margin-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.home-paths__head h2 {
  margin: 0;
  font-size: clamp(2.3rem, 5vw, 4.4rem);
  line-height: 1.15;
  letter-spacing: -0.05em;
}
.home-paths__head > p:not(.eyebrow) {
  max-width: 42rem;
  margin: 1rem 0 0;
  color: #929a92;
}
.home-paths__grid { display: grid; gap: 1.25rem; }

.home-path {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--home-line);
  background: #111411;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}
.home-path:hover,
.home-path:focus-visible {
  border-color: rgba(0, 255, 0, 0.4);
  text-decoration: none;
  transform: translateY(-3px);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.25);
  outline: none;
}
.home-path__visual {
  position: relative;
  flex: 0 0 auto;
  height: clamp(220px, 26vw, 272px);
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 2.55rem 1rem 0.85rem;
  border-bottom: 1px solid var(--home-line);
}
.home-path__number {
  position: absolute;
  left: clamp(1.2rem, 3vw, 2rem);
  top: clamp(1rem, 2.5vw, 1.6rem);
  z-index: 2;
  color: var(--accent);
  font-size: 0.68rem;
  font-weight: 800;
}
.home-path__visual > b {
  position: absolute;
  right: 1.5rem;
  bottom: 0.7rem;
  color: transparent;
  font-family: "Syne", var(--font-display);
  font-size: clamp(4rem, 10vw, 8rem);
  line-height: 0.8;
  -webkit-text-stroke: 1px rgba(255, 255, 255, 0.1);
}
.home-path__visual--team {
  background:
    radial-gradient(circle at 70% 50%, rgba(0, 255, 0, 0.14), transparent 34%),
    #0a0e0a;
}

.home-team-ui {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(0, 255, 0, 0.19);
  background: #0d110d;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35);
}
.home-team-ui__bar {
  height: 28px;
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  border-bottom: 1px solid var(--home-line);
}
.home-team-ui__bar > i {
  width: 5px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #394039;
}
.home-team-ui__bar > i:first-child { background: var(--accent); }
.home-team-ui__bar > small { margin-left: auto; color: #687068; font-size: 0.48rem; }
.home-team-ui__body {
  flex: 1;
  display: grid;
  grid-template-columns: 52px 1fr;
  min-height: 0;
}
.home-team-ui__side {
  padding: 1rem 0.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  border-right: 1px solid var(--home-line);
}
.home-team-ui__side b { color: var(--accent); font-size: 0.62rem; }
.home-team-ui__side span { display: block; height: 7px; background: #222822; }
.home-team-ui__main { padding: 0.65rem; display: flex; flex-direction: column; min-height: 0; }
.home-team-ui__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.4rem; }
.home-team-ui__stats span {
  padding: 0.5rem;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--home-line);
  background: #111611;
}
.home-team-ui__stats small { color: #778077; font-size: 0.45rem; }
.home-team-ui__stats b { font-size: clamp(0.65rem, 1.5vw, 0.9rem); }
.home-team-ui__chart {
  flex: 1;
  margin-top: 0.4rem;
  padding: 0.5rem;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--home-line);
  background:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 100% 25%,
    #101410;
  min-height: 0;
}
.home-team-ui__chart > small { color: #8c958c; font-size: 0.5rem; }
.home-team-ui__chart svg { display: block; width: 100%; height: auto; flex: 1; min-height: 0; margin-top: 0; }

.home-path__visual--app {
  align-items: center;
  justify-content: center;
  padding: 2.55rem 1rem 0.85rem;
  background:
    radial-gradient(circle at 68% 42%, rgba(255, 145, 0, 0.11), transparent 38%),
    #0d0d0b;
}

.home-path-phone {
  flex: 1;
  min-height: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.home-path-phone__frame {
  height: 100%;
  width: auto;
  max-width: 46%;
  aspect-ratio: 9 / 18.5;
  transform: none;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.42), 0 0 32px rgba(0, 255, 0, 0.07);
}

.home-path-phone__frame .phone-frame__screen.app-home-ui {
  justify-content: flex-start;
  padding: 1.85rem 0.55rem 0.5rem;
  background:
    radial-gradient(circle at 76% 18%, rgba(0, 255, 0, 0.12), transparent 30%),
    #242423;
}

.home-path__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: clamp(1.35rem, 3vw, 2rem);
}
.home-path__content h3 {
  margin: 0 0 0.75rem;
  font-size: clamp(1.75rem, 3.2vw, 2.6rem);
  line-height: 1.12;
  letter-spacing: -0.04em;
}
.home-path__content > strong {
  display: block;
  font-size: clamp(0.88rem, 1.35vw, 1rem);
  line-height: 1.55;
}
.home-path__content > p:not(.eyebrow) {
  flex: 1;
  max-width: none;
  margin: 0.75rem 0 1.4rem;
  color: #8e968e;
  font-size: 0.9rem;
  line-height: 1.7;
}
.home-path__cta {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 0.55rem;
  min-height: 2.65rem;
  padding: 0 1rem;
  border: 1px solid rgba(0,255,0,.24);
  border-radius: 999px;
  background: rgba(0,255,0,.055);
  color: var(--text);
  font-weight: 800;
  text-decoration: none;
}
.home-path__cta b { color: var(--accent); }
.home-path:hover .home-path__cta,
.home-path:focus-visible .home-path__cta {
  border-color: var(--accent);
  background: var(--accent);
  color: #071007;
}
.home-path:hover .home-path__cta b,
.home-path:focus-visible .home-path__cta b { color: #071007; }

@media (min-width: 760px) {
  .home-mission__inner {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(1.75rem, 3.5vw, 3rem);
  }
  .home-paths__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }
  .home-path { height: 100%; }
}

@media (max-width: 679px) {
  .home-hero { min-height: 720px; }
  .home-hero__inner { padding-top: 3.5rem; }
  .home-hero__brand { margin-bottom: 2.4rem; }
  .home-hero h1 { font-size: clamp(2.35rem, 11vw, 3.25rem); }
  .home-hero h1 span { white-space: normal; }
  .home-hero__lead { line-height: 1.8; }
  .home-hero__mark { right: -0.2em; opacity: 0.45; }
  .home-mission h2 span { white-space: normal; }
  .home-mission,
  .home-paths { padding: 4.5rem 0; }
  .home-page .news-feature__card { grid-template-columns: 88px 1fr; align-items: center; }
  .home-page .news-feature__img { width: 88px; height: 88px; }
  .home-page .news-feature__sum { display: none; }
  .home-paths__head { margin-bottom: 2rem; }
  .home-paths__grid { gap: 1rem; }
  .home-path__visual { height: 210px; padding: 2.2rem 0.85rem 0.75rem; }
  .home-path-phone__frame { max-width: 38%; }
  .home-path__content { padding: 1.2rem; }
  .home-path__content h3 { margin-bottom: 0.5rem; font-size: 1.7rem; }
  .home-path__content > p:not(.eyebrow) { margin: 0.6rem 0 1rem; font-size: 0.86rem; }
  .home-path__cta { min-height: 2.5rem; font-size: 0.86rem; }
  .home-team-ui__body { grid-template-columns: 42px 1fr; }
  .home-team-ui__main { padding: 0.55rem; }
  .home-team-ui__stats span { padding: 0.35rem; }
  .home-team-ui__chart { padding: 0.35rem; }
}

@media (prefers-reduced-motion: reduce) {
  .home-text-link span,
  .home-path { transition: none; }
}
