/* V31 pending review: section grid, shared case titles, two compact flows. */
.work-section>.wrap{
  max-width:1360px;padding-left:var(--space);padding-right:var(--space);
}
/* The section grid and the existing 1208px case body remain distinct. */
.work-section .project-slide .project-copy>h3{
  font-family:inherit;font-size:30px;font-weight:800;
  line-height:1.4;letter-spacing:-.045em;
}
.story-singapore .story-flow{padding:18px 22px 14px}
.story-singapore .story-flow>header{margin-bottom:10px}
.story-singapore .story-stage{
  grid-template-columns:22px 34px minmax(0,1fr);gap:6px 12px;
  min-height:0;padding:7px 0;
}
.story-singapore .story-stage-number{grid-row:1 / span 2;font-size:12px;padding-top:2px}
.story-singapore .story-stage-number:after{top:30px;bottom:-14px;left:6px}
.story-singapore .story-stage-number:before{top:30px;left:4px}
.story-singapore .story-stage .story-icon{width:34px;height:34px;margin:0}
.story-singapore .story-stage .story-icon svg{width:23px;height:23px}
.story-singapore .story-stage-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 12px}
.story-singapore .story-stage-main h4{font-size:17px;line-height:1.45;margin:0}
.story-singapore .story-flow .story-stage-main p{font-size:13px;line-height:1.6;margin:0}
.story-singapore .story-stage-children{
  grid-column:2 / 4;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 16px!important;border-left:0;padding:0!important;margin:0!important;
}
.story-singapore .story-subnode{grid-template-columns:20px minmax(0,1fr);gap:7px}
.story-singapore .story-subnode>span{font-size:11px;line-height:1.7}
.story-singapore .story-subnode h5{font-size:14px;line-height:1.5;margin:0 0 2px}
.story-singapore .story-subnode p{font-size:13px!important;line-height:1.6!important}
.story-singapore .story-stage:last-child{padding-bottom:0}
.story-cctv .story-flow{padding-top:20px}
.story-cctv .story-flow>header{margin-bottom:18px}
.story-cctv .story-flow>ol{gap:9px}
.story-cctv .story-flow>ol:before{left:22px;top:40px;bottom:40px}
.story-cctv .story-flow>ol:after{left:63px}
.story-cctv .story-node{
  grid-template-columns:44px minmax(0,1fr);column-gap:36px;min-height:0;
}
.story-cctv .story-icon{width:44px;height:44px}
.story-cctv .story-icon svg{width:24px;height:24px}
.story-cctv .story-marker{left:59px}
.story-cctv .story-node-copy{min-height:0;padding:15px 0 15px 12px}
.story-cctv .story-node h4{font-size:17px;line-height:1.45;padding-right:85px;margin-bottom:4px}
.story-cctv .story-node p{font-size:13px;line-height:1.7}
.story-cctv .story-step-label{top:18px;right:0;font-size:10px;gap:8px;letter-spacing:.5px}
.story-cctv .story-step-label:before{width:18px}
@media(max-width:700px){
  .work-section .project-slide .project-copy>h3{font-size:26px}
  .story-singapore .story-flow{padding:18px 12px 15px}
  .story-singapore .story-stage{grid-template-columns:18px 34px minmax(0,1fr);gap:8px 9px;padding:12px 0}
  .story-singapore .story-stage .story-icon{width:34px;height:34px}
  .story-singapore .story-stage .story-icon svg{width:21px;height:21px}
  .story-singapore .story-stage-main{display:block}
  .story-singapore .story-stage-main h4{font-size:16px!important;line-height:1.5}
  .story-singapore .story-stage-children{grid-column:2 / 4;gap:10px 12px!important}
  .story-singapore .story-subnode{grid-template-columns:18px minmax(0,1fr);gap:5px}
  .story-singapore .story-subnode h5{font-size:14px}
  .story-cctv .story-flow>header{margin-bottom:14px}
  .story-cctv .story-flow>ol{gap:9px}
  .story-cctv .story-flow>ol:before{left:17px;top:42px;bottom:42px}
  .story-cctv .story-flow>ol:after{left:44px}
  .story-cctv .story-node{grid-template-columns:34px minmax(0,1fr);column-gap:23px;min-height:0}
  .story-cctv .story-icon{width:34px;height:34px}
  .story-cctv .story-icon svg{width:21px;height:21px}
  .story-cctv .story-marker{left:41px;width:6px;height:6px;top:calc(50% - 3px)}
  .story-cctv .story-node-copy{min-height:0;padding:13px 0 13px 8px}
  .story-cctv .story-node h4{font-size:16px;padding-right:0;margin-bottom:4px}
  .story-cctv .story-step-label{top:15px;right:0;font-size:10px;line-height:1.5}
  /* Reserve a readable small label row; titles and STEP never overlap. */
  .story-cctv .story-node-copy{padding-top:35px}
}
@media(max-width:360px){
  .story-singapore .story-stage-children{grid-template-columns:1fr;gap:8px!important}
  /* Existing six-quote controls must not widen the 320px page viewport. */
  .perspectives .carousel-controls{flex-wrap:wrap}
}
