diff --git a/src/components/LabGuide.astro b/src/components/LabGuide.astro
index 51bc453..e33cf3f 100644
--- a/src/components/LabGuide.astro
+++ b/src/components/LabGuide.astro
@@ -168,6 +168,7 @@ const tech: { name: string; sub: string; p: string; fig?: boolean; links: Link[]
   .lg-zone-gpu .lg-items dt { color: #fff; }
   .lg-zone-gpu .lg-items dd { color: #c8c8c2; }
   .lg-flow { display: grid; align-content: start; gap: 28px; padding: 72px 8px 0; }
+  .lg-flow-go { min-height: 76px; align-content: start; }
   .lg-flow span { display: grid; justify-items: center; gap: 4px; text-align: center; font: 500 12px/18px var(--sans); color: var(--ink-2); word-break: auto-phrase; }
   .lg-flow .ms { font-size: 28px; color: var(--ink); }
   .lg-flow-back .ms { color: var(--ink-3); }
@@ -175,13 +176,14 @@ const tech: { name: string; sub: string; p: string; fig?: boolean; links: Link[]
 
   /* 2 実験のループ */
   .lg-loop { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
-  .lg-step { display: flex; flex-direction: column; padding: 20px; border-radius: 8px; border-top: 4px solid var(--dark); background: var(--bg); }
+  /* 5枚の見出し・数字・文・リンクの高さを、subgrid で行ごとにそろえる（段々にしない） */
+  .lg-step { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; align-content: start; padding: 20px; border-radius: 8px; background: var(--bg); }
   .lg-step-no { font: 700 13px/20px var(--sans); color: var(--ink-3); font-variant-numeric: tabular-nums; }
-  .lg-step-h { margin: 4px 0 12px; font: 700 16px/24px var(--sans); color: var(--ink); word-break: auto-phrase; }
-  .lg-num { margin: 0 0 12px; font: 700 40px/1 var(--sans); color: var(--ink); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
+  .lg-step-h { align-self: start; margin: 4px 0 12px; font: 700 16px/24px var(--sans); color: var(--ink); word-break: auto-phrase; }
+  .lg-num { align-self: start; white-space: nowrap; margin: 0 0 12px; font: 700 clamp(32px, 2.8vw, 40px)/1 var(--sans); color: var(--ink); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
   .lg-num small { margin-left: 4px; font: 600 14px/1 var(--sans); color: var(--ink-2); letter-spacing: 0; }
   .lg-step .lg-p { font-size: 14px; line-height: 24px; }
-  .lg-step .lg-links { margin-top: auto; padding-top: 16px; gap: 6px; }
+  .lg-step .lg-links { margin: 0; padding-top: 16px; gap: 6px; align-self: start; }
   .lg-step .lg-links a { gap: 4px; padding: 5px 8px 5px 10px; }
   .lg-step .lg-links a { background: #fff; }
   .lg-step .lg-links a:hover { background: #e6e6e6; }
@@ -219,7 +221,7 @@ const tech: { name: string; sub: string; p: string; fig?: boolean; links: Link[]
     .lg-map { grid-template-columns: minmax(0, 1fr); }
     .lg-flow { grid-auto-flow: column; justify-content: center; gap: 32px; padding: 12px 0; }
     .lg-zone { align-self: stretch; }
-    .lg-flow span { display: flex; align-items: center; gap: 6px; }
+    .lg-flow span { display: flex; align-items: center; gap: 6px; min-height: 0; }
     .lg-flow .ms { font-size: 22px; transform: rotate(90deg); }
     .lg-loop { grid-template-columns: repeat(2, minmax(0, 1fr)); }
     .lg-tech-row { grid-template-columns: minmax(0, 1fr); gap: 8px; }
