/* Bounded v32 refinement: existing copy and mobile document heights are retained. */
.tools-transformation{column-gap:64px}
.tools-before{position:relative;min-width:0}
.tools-bridge{position:absolute;right:-64px;top:43px;bottom:0;width:64px;pointer-events:none}
.tools-bridge svg{width:100%;height:100%;overflow:visible;fill:none;stroke-width:1.6;vector-effect:non-scaling-stroke}
.tools-bridge .bridge-base{stroke:#c3ceba}.tools-bridge .bridge-trace{stroke:#728460}.tools-bridge circle{fill:#ffda36;stroke:#455b35;stroke-width:1.3}
.tools-link-small{display:none}
.contact-rail{min-width:0;display:flex;flex-direction:column;gap:30px}
.contact-rail .contact-aside{order:-1;width:100%}
.contact-rail .contact-people{padding-top:0}
.contact-rail .contact-people h2{margin-top:0}
.h-process article{position:relative}
.h-process article:before{content:"";position:absolute;top:-1px;left:0;width:100%;height:2px;background:#93a67f;transform-origin:left}
.storytelling-page .timeline{position:relative}
.storytelling-page .timeline:after{content:"";position:absolute;left:-2px;top:0;bottom:0;width:2px;background:#879a73;transform-origin:top;pointer-events:none}
.custom-development-page .step:not(:last-child):before{transform-origin:top}
@media(prefers-reduced-motion:no-preference){
 .h-process.progress-entered article:before{animation:progress-horizontal .8s ease-out 1 both}
 .h-process.progress-entered article:nth-child(2):before{animation-delay:.1s}.h-process.progress-entered article:nth-child(3):before{animation-delay:.2s}
 .steps.progress-entered .step:not(:last-child):before{animation:progress-vertical .8s ease-out 1 both}
 .steps.progress-entered .step:nth-child(2):before{animation-delay:.08s}.steps.progress-entered .step:nth-child(3):before{animation-delay:.16s}.steps.progress-entered .step:nth-child(4):before{animation-delay:.24s}.steps.progress-entered .step:nth-child(5):before{animation-delay:.32s}
 .timeline.progress-entered:after{animation:progress-vertical 1s ease-out 1 both}
 .tools-transformation.progress-entered .bridge-trace{animation:progress-connection .9s ease-out 1 both}
 @keyframes progress-horizontal{from{transform:scaleX(0)}to{transform:scaleX(1)}}
 @keyframes progress-vertical{from{transform:scaleY(0)}to{transform:scaleY(1)}}
 @keyframes progress-connection{from{stroke-dasharray:1;stroke-dashoffset:1}to{stroke-dasharray:1;stroke-dashoffset:0}}
}
@media(max-width:900px){.tools-transformation{column-gap:0}.tools-bridge{top:auto;right:0;bottom:-36px;width:100%;height:36px}.tools-link-wide{display:none}.tools-link-small{display:block}}
@media(max-width:700px){.contact-rail{gap:34px}.contact-rail .contact-aside{order:0}.contact-rail .contact-people{padding-top:15px}.contact-rail .contact-people h2{margin-top:16px}}
@media(max-width:600px){.tools-link-small .bridge-base,.tools-link-small .bridge-trace{d:path("M150 0V36")}.tools-link-small circle{display:none}}
/* Moving the rail must not add a second inter-column gap to the mobile stack. */
@media(max-width:700px){.interior-page .contact-layout{row-gap:0}}

/* Compact sources read as one group, with a shared outlet to the application. */
@media(max-width:600px){
 .source-papers{position:relative;gap:0;padding:0 30px 0 14px;background:#fcfbf6;border:1px solid #d4dacb;border-radius:7px}
 .source-paper{position:relative;grid-template-columns:32px minmax(0,1fr);gap:3px 12px;padding:12px 0;background:none;border:0;border-radius:0}
 .source-paper+.source-paper{border-top:1px solid #e0e5d9}
 .source-paper .story-glyph{width:32px;height:32px}
 .source-paper strong{font-size:16px;line-height:1.35}
 .source-paper span{font-size:12px;line-height:1.5}
 .source-paper:after{content:"";position:absolute;right:-16px;top:50%;width:12px;height:1px;background:#a0b28f}
 .source-papers:after{content:"";position:absolute;right:14px;top:28px;bottom:0;width:calc(50% - 14px);border-right:1px solid #a0b28f;border-bottom:1px solid #a0b28f;pointer-events:none}
}
