/* Broad, feathered colour fields overlap the real neighbouring background.
   The curved masks end before content; no duplicated horizontal edge bands. */
:root{--sweep:320px;--overlap:150px;--flow-head:190px;--flow-tail:150px}
body{overflow-x:clip}
main{overflow:visible;background:#2639bf}
.hero{
  background:radial-gradient(ellipse 90% 85% at 80% 0,#5376ff 0,#3657ec 34%,#2d44d900 100%),#2639bf;
}
.hero::before{mask-image:linear-gradient(to bottom,#000 45%,#000b 65%,#0003 85%,transparent 100%)}
.promise-strip{background:#2639bf;color:var(--paper);border-bottom:0;padding-bottom:var(--flow-tail)}
.promise-strip i{color:var(--yellow)}
.transformation,.portfolio,.rebuild-value,.process,.request-wrap,.faq-section,.closing,.site-footer{
  position:relative;isolation:isolate;overflow:visible;background:none;
  --flow-origin:8%;
}
.transformation,.portfolio,.rebuild-value,.process,.faq-section,.closing{
  padding-top:var(--flow-head);padding-bottom:var(--flow-tail);
}
.transformation::before,.portfolio::before,.rebuild-value::before,.process::before,
.request-wrap::before,.faq-section::before,.closing::before,.site-footer::before{
  content:'';position:absolute;inset:calc(-1 * var(--overlap)) 0 calc(-1 * var(--flow-head));z-index:-1;pointer-events:none;
  background:var(--section-field);
  mask-image:
    linear-gradient(to bottom,transparent 0,#0000 calc(var(--sweep) * .04),#0000000a calc(var(--sweep) * .1),#0000002b calc(var(--sweep) * .17),#00000080 calc(var(--sweep) * .27),#000000c9 calc(var(--sweep) * .38),#000000ef calc(var(--sweep) * .5),#000 calc(var(--sweep) * .62)),
    radial-gradient(ellipse 90% var(--sweep) at var(--flow-origin) 0,transparent 16%,#00000008 28%,#00000021 40%,#00000054 54%,#0000009e 68%,#000000d9 81%,#000000f5 92%,#000 100%);
  mask-composite:intersect;
}
.transformation{
  --flow-origin:-5%;
  --section-field:radial-gradient(ellipse at 100% 15%,#fff7d9,transparent 55%),var(--paper);
}
.portfolio{
  overflow-x:clip;
  --flow-origin:105%;
  --section-field:radial-gradient(ellipse at 0 25%,#33394f,transparent 65%),#161a27;
}
.rebuild-value{
  --flow-origin:0%;
  --section-field:radial-gradient(ellipse at 0 70%,#dee5ff,transparent 60%),radial-gradient(ellipse at 100% 15%,#fff2d6,transparent 45%),var(--paper);
}
.process{
  --flow-origin:100%;
  --section-field:radial-gradient(ellipse at 85% 15%,#f5ffb1,transparent 66%),var(--yellow);
}
.request-wrap{
  --flow-origin:-8%;
  --section-field:radial-gradient(ellipse at 2% 40%,#4461e4,transparent 55%),linear-gradient(135deg,#2947d7,#1d38cd 65%,#1730a9);
}
.request-section{padding-top:var(--flow-head);padding-bottom:var(--flow-tail)}
.faq-section{
  --flow-origin:108%;
  --section-field:radial-gradient(ellipse at 80% 30%,#e8edff,transparent 60%),var(--paper);
}
.closing{
  --flow-origin:-5%;
  --section-field:radial-gradient(ellipse at 5% 30%,#ffb496,transparent 70%),#ff896e;
}
.closing>a em{color:#652938}
.closing::before{bottom:-90px}
.site-footer{
  --flow-origin:90%;--sweep:180px;--overlap:95px;
  --section-field:#16171b;padding-top:110px;
}
.site-footer::before{bottom:0}
@media(max-width:900px){:root{--sweep:220px;--overlap:102px;--flow-head:137px;--flow-tail:102px}.site-footer{--sweep:160px;--overlap:82px;padding-top:100px}}
@media(max-width:600px){
  :root{--sweep:168px;--overlap:76px;--flow-head:111px;--flow-tail:76px}
  .site-footer{--sweep:128px;--overlap:68px;padding-top:80px}
  .closing>a{font-size:clamp(38px,11vw,60px)}.closing>a em{white-space:nowrap}
}
@supports not (mask-composite:intersect){
  .transformation::before,.portfolio::before,.rebuild-value::before,.process::before,
  .request-wrap::before,.faq-section::before,.closing::before,.site-footer::before{
    mask-image:linear-gradient(to bottom,transparent 0,#0001 calc(var(--sweep) * .2),#0008 calc(var(--sweep) * .5),#000e calc(var(--sweep) * .8),#000 var(--sweep));
    mask-composite:add;
  }
}


