.recognition{padding:80px var(--gutter);background:#f5f0e7}.recognition h2{font:bold clamp(36px,5vw,72px)/1.05 var(--sans);letter-spacing:-.045em}.award-list{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;margin:32px 0 0}.award-list>div{padding:24px 0;border-top:1px solid #23292b44}.award-list dt{font-size:20px;font-weight:600;line-height:1.3}.award-list dd{margin:12px 0 0;font-size:16px;color:#456e7b;line-height:1.4}.award-list>div:nth-child(-n+2) dt{font-size:28px}.academic-honors{margin-top:45px;display:grid;grid-template-columns:1fr 2fr;gap:30px}.academic-honors h3{font-size:24px;margin:0}.academic-honors ul{list-style:none;padding:0;margin:0}.academic-honors li{font-size:16px;line-height:1.4;margin-bottom:18px}.academic-honors li span{display:block;font-size:14px;color:#526166;margin-top:5px}.editorial-project:nth-of-type(5):after{background:var(--coral)}.editorial-project:nth-of-type(7):after{background:var(--mint)}.editorial-project:nth-of-type(5),.editorial-project:nth-of-type(7){color:var(--ink)}.editorial-project:nth-of-type(5) .project-ordinal{background:var(--sand)}.case-source-links{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin:36px 0}.case-source-links a{line-height:1.4}.case-panel{padding:18px 0;border-top:1px solid #23292b22}@media(max-width:760px){.recognition{padding:60px var(--gutter)}.award-list{grid-template-columns:1fr;gap:0}.award-list dt,.award-list>div:nth-child(-n+2) dt{font-size:22px}.academic-honors{grid-template-columns:1fr;gap:20px}}
.panorama-note{display:block;margin:10px 0 12px;line-height:1.5}.panorama-source-link,.case-official-links a{display:inline-flex;align-items:center;max-width:100%;padding:11px 16px;border:1px solid #456e7b;text-decoration:none;font-weight:600;line-height:1.4;color:#234d59;background:#edf3f1;border-radius:3px}.panorama-source-link:hover,.case-official-links a:hover{background:#dbe9e5}.case-official-links{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 30px}.case-official-links a{font-size:15px}

.case-introduction{max-width:850px;margin:28px 0 34px}.case-introduction p{font-size:17px;line-height:1.75;color:#465256;margin:0 0 16px}.case-introduction .project-context-note{font-size:14px;line-height:1.6;color:#526166;padding-top:12px;border-top:1px solid #c9dce0}
.panorama-notice{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;background:#18383d;color:#fff;border-left:5px solid #da6d66}.panorama-notice strong{display:block;font-size:20px;line-height:1.25}.panorama-notice p{margin:7px 0 0;color:#fff;font-size:15px;line-height:1.5}.panorama-open{display:inline-flex;flex-shrink:0;justify-content:center;align-items:center;min-height:44px;padding:12px 16px;background:#fff;color:#18383d;font-size:15px;font-weight:700;line-height:1.4;border-radius:3px}.panorama-open:hover{background:#f8cd9a}.panorama-open:focus-visible{outline:3px solid #f8cd9a;outline-offset:4px}@media(max-width:760px){.panorama-notice{flex-direction:column;align-items:stretch;padding:18px}.panorama-open{width:100%}.case-introduction p{font-size:16px}.case-introduction .project-context-note{font-size:14px}}

/* Source audit fixes: thumbnail crop, readable coral cards and visible keyboard focus. */
.additional-image .visual-crop img{position:absolute;max-width:none;max-height:none;object-fit:fill;aspect-ratio:auto}
.editorial-project:nth-of-type(5),.additional-card:nth-child(3n+2)>span,.additional-card:nth-child(3n+2):hover h3{color:#161d20}
.project-story a:focus-visible{outline-color:currentColor}

.panorama-notice .panorama-sequence{font-weight:700;margin-top:10px}

.case-gallery-stacked{grid-template-columns:minmax(0,1fr);gap:30px}.diagram-image{display:block}.diagram-open{display:inline-block;margin:8px 0 0 12px;text-decoration:underline;text-underline-offset:3px;font-weight:600}@media(max-width:760px){.diagram-open{display:block;margin-left:0}}
.case-gallery-stacked .case-figure img{aspect-ratio:auto;max-height:none}

/* Shared columns and reading rhythm for the homepage introduction. */
.fish-intro{--intro-column-gap:clamp(32px,5vw,80px)}
.fish-intro .opening-line,.fish-intro .opening-title,.fish-intro .practice-intro{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--intro-column-gap);align-items:start}
.fish-intro .opening-line{margin-top:36px}
.fish-intro .opening-line>p:last-child{text-align:left}
.fish-intro .opening-title{margin:32px 0 0}
.fish-intro .opening-title h1{min-width:0;font-size:clamp(36px,5.2vw,82px);line-height:1.08}
.fish-intro .opening-title>p,.fish-intro .practice-intro>p:last-child{min-width:0;max-width:52ch;margin:0;font-family:var(--sans);font-size:18px;font-weight:400;line-height:1.65}
.fish-intro .practice-intro{margin:0;padding-top:48px}
.fish-intro .practice-intro>.eyebrow{margin:0;line-height:1.65}
@media(max-width:900px){.fish-intro .opening-line,.fish-intro .opening-title,.fish-intro .practice-intro{grid-template-columns:minmax(0,1fr)}.fish-intro .opening-line{margin-top:28px;row-gap:6px}.fish-intro .opening-title{margin-top:28px;row-gap:24px}.fish-intro .opening-title h1{font-size:clamp(36px,8vw,60px)}.fish-intro .practice-intro{padding-top:36px;row-gap:14px}.fish-intro .opening-title>p,.fish-intro .practice-intro>p:last-child{font-size:17px}}
/* Append after public-v38.css. Shared by all 15 case pages. */
.case-page {
  --case-copy-width: 42rem;
  font-family: var(--sans);
}
.case-page .case-top {
  padding-top: 40px;
  padding-bottom: 32px;
}
.case-page .back-link { margin-bottom: 28px; }
.case-page .case-kicker {
  margin-bottom: 14px;
  line-height: 1.5;
  letter-spacing: .075em;
}
.case-page .case-top h1 {
  max-width: 1000px;
  font-size: clamp(36px, 4.6vw, 64px);
  line-height: 1.1;
  letter-spacing: -.035em;
  overflow-wrap: normal;
}
.case-page .case-deck {
  max-width: var(--case-copy-width);
  margin-top: 20px;
  font-size: 18px;
  line-height: 1.6;
}
.case-page .case-meta {
  margin-top: 28px;
  padding-top: 18px;
  gap: 24px;
}
.case-page .case-meta dd { line-height: 1.55; }
.case-page .case-official-links { margin: 20px 0 24px; }
.case-page .case-introduction {
  max-width: var(--case-copy-width);
  margin: 20px 0 24px;
}
.case-page .case-introduction p {
  font-size: 17px;
  line-height: 1.65;
  margin-bottom: 14px;
}
.case-page .case-introduction .project-context-note {
  font-size: 14px;
  line-height: 1.55;
}
.case-page .case-hero {
  width: calc(100% - 2 * var(--gutter));
  max-width: calc(1600px - 2 * var(--gutter));
  margin-inline: auto;
}
.case-page .case-hero figcaption {
  padding: 10px 0;
  line-height: 1.5;
}
.case-page .case-layout {
  padding-top: 48px;
  padding-bottom: 64px;
}
.case-page .case-toc a { padding-block: 7px; }
.case-page .case-section { margin-bottom: 48px; }
.case-page .case-section:last-child { margin-bottom: 0; }
.case-page .case-section h2 {
  max-width: var(--case-copy-width);
  margin: 0 0 14px;
  font-size: clamp(24px, 2.3vw, 30px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -.018em;
}
.case-page .case-section > p,
.case-page .case-section > ul {
  max-width: var(--case-copy-width);
  margin: 0 0 14px;
  font-size: 17px;
  line-height: 1.65;
}
.case-page .case-section > ul { padding-left: 1.25em; }
.case-page .case-section li { margin: 6px 0; line-height: 1.65; }
.case-page .case-section > :last-child { margin-bottom: 0; }
.case-page .case-figure { margin: 24px 0; }
.case-page .case-figure figcaption {
  max-width: var(--case-copy-width);
  padding: 10px 0 0;
  font-size: 13px;
  line-height: 1.5;
}
.case-page .case-gallery { margin-top: 24px; gap: 24px; }
.case-page .case-gallery .case-figure { margin: 0; }
.case-page .case-panel { margin: 24px 0; }
.case-page .case-panel h3 {
  font-size: 22px;
  line-height: 1.3;
  letter-spacing: -.015em;
}
.case-page .case-panel p { margin: 12px 0 0; line-height: 1.65; }
.case-page .case-source-links { margin: 24px 0; gap: 10px; }
.case-page .case-next a {
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.25;
  letter-spacing: -.02em;
}
@media (max-width: 760px) {
  .case-page .case-top { padding-top: 28px; padding-bottom: 28px; }
  .case-page .back-link { margin-bottom: 24px; }
  .case-page .case-top h1 { font-size: clamp(34px, 8vw, 44px); }
  .case-page .case-deck { font-size: 17px; }
  .case-page .case-meta { gap: 16px; margin-top: 24px; }
  .case-page .case-layout { padding-top: 32px; padding-bottom: 48px; gap: 28px; }
  .case-page .case-toc { padding-bottom: 20px; }
  .case-page .case-toc a { padding-block: 3px; }
  .case-page .case-section { margin-bottom: 36px; }
  .case-page .case-section h2 { font-size: 24px; margin-bottom: 12px; }
  .case-page .case-section > p,
  .case-page .case-section > ul,
  .case-page .case-introduction p { font-size: 16px; line-height: 1.65; }
  .case-page .case-introduction .project-context-note { font-size: 14px; }
  .case-page .case-figure { margin: 20px 0; }
  .case-page .case-gallery { margin-top: 20px; gap: 20px; }
}
/* Keep the narrow source-board model crop within its genuine pixel width. */
.case-page #research-and-design-reasoning .case-figure:has(img[src="assets/lorrylaugh-prototype-hq.png"]){max-width:760px}
/* Give the final cabin control detail a complete row. */
.case-page #passenger-space-details .case-gallery>.case-figure:last-child:nth-child(3){grid-column:1 / -1}
