/* Scoped to .udcap-page only. Nothing here styles the active theme globally. */
.udcap-page{
  --udcap-ink:#090a0a;
  --udcap-paper:#f4f3ee;
  --udcap-soft:#9b9d97;
  --udcap-lime:#d6ff52;
  --udcap-line:rgba(9,10,10,.16);
  --udcap-gutter:clamp(20px,4vw,72px);
  --udcap-snap-offset:0px;
  width:100%;
  max-width:100%;
  overflow:hidden;
  background:var(--udcap-paper);
  color:var(--udcap-ink);
  font-family:inherit;
}
.udcap-page *{box-sizing:border-box}
.udcap-page h1,.udcap-page h2,.udcap-page h3,.udcap-page p{margin-top:0}
.udcap-display{margin:0;font-weight:500;line-height:.9;letter-spacing:-.06em}
.udcap-reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .8s cubic-bezier(.2,.75,.25,1)}
.udcap-reveal.is-in{opacity:1;transform:none}

/* Slides 1–3 */
.udcap-slide{
  min-height:100svh;
  height:100svh;
  padding:clamp(90px,12vh,160px) var(--udcap-gutter);
  display:flex;
  align-items:center;
  width:100%;
  scroll-margin-top:var(--udcap-snap-offset);
}
.udcap-slide-1,.udcap-slide-3{background:var(--udcap-paper);color:var(--udcap-ink)}
.udcap-slide-2{background:var(--udcap-ink);color:#f5f5f0}
.udcap-slide-3{background:var(--udcap-lime);color:var(--udcap-ink)}
.udcap-statement{
  width:100%;
  max-width:1030px;
  font-size:clamp(3.5rem,7vw,7.4rem);
  font-weight:500;
  line-height:.9;
  letter-spacing:-.06em;
}

/* Slide 2: desktop/tablet uses the normal editable statement. */
.udcap-slide2-mobile{display:none}


/* Four disciplines */
.udcap-disciplines{
  min-height:100svh;
  padding:clamp(70px,8vw,120px) var(--udcap-gutter) clamp(130px,13vw,190px);
  background:var(--udcap-ink);
  color:var(--udcap-paper);
  scroll-margin-top:var(--udcap-snap-offset);
}
.udcap-disciplines-head{text-align:right}
.udcap-disciplines h2{
  margin:0 0 0 auto;
  max-width:1040px;
  font-size:clamp(3.5rem,7vw,7.4rem);
  line-height:.9;
  letter-spacing:-.06em;
  font-weight:500;
}
.udcap-discipline-stage{
  position:relative;
  min-height:620px;
  margin-top:clamp(70px,8vw,120px);
  border-top:1px solid rgba(255,255,255,.13);
  border-bottom:1px solid rgba(255,255,255,.13);
}
.udcap-discipline{
  position:absolute;
  width:min(31vw,430px);
  padding:22px 0 20px;
  border-bottom:1px solid rgba(255,255,255,.13);
}
.udcap-discipline h3{
  margin:0 0 10px;
  font-size:clamp(1.55rem,2.3vw,2.7rem);
  line-height:.98;
  letter-spacing:-.05em;
  font-weight:500;
}
.udcap-discipline p{
  margin:0;
  max-width:360px;
  color:#8f928d;
  font-size:.82rem;
  line-height:1.5;
}
.udcap-discipline.is-left{text-align:left}
.udcap-discipline.is-left p{margin-left:0;margin-right:auto}
.udcap-discipline.is-right{text-align:right}
.udcap-discipline.is-right p{margin-left:auto;margin-right:0}
.udcap-pos-a{left:0;top:11%}
.udcap-pos-b{right:0;top:11%}
.udcap-pos-c{left:0;bottom:11%}
.udcap-pos-d{right:0;bottom:11%}
.udcap-pos-extra{position:relative;width:100%;left:auto;right:auto;top:auto;bottom:auto}
.udcap-core{
  position:absolute;
  left:50%;
  top:50%;
  width:clamp(230px,24vw,350px);
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  text-align:center;
}
.udcap-core::before,.udcap-core::after{content:"";position:absolute;border-radius:50%}
.udcap-core::before{inset:0;border:1px solid rgba(214,255,82,.7)}
.udcap-core::after{inset:-28px;border:1px solid rgba(214,255,82,.14)}
.udcap-core-ring-outer{position:absolute;inset:-58px;border:1px solid rgba(214,255,82,.09);border-radius:50%}
.udcap-core-orbit{position:absolute;inset:-2px;border-radius:50%;animation:udcap-spin 14s linear infinite}
.udcap-core-orbit::before{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--udcap-lime);left:50%;top:-4px;transform:translateX(-50%);box-shadow:0 0 0 6px rgba(214,255,82,.12)}
@keyframes udcap-spin{to{transform:rotate(360deg)}}
.udcap-core strong{display:block;font-size:clamp(1.85rem,3.1vw,3.35rem);line-height:.95;letter-spacing:-.055em;font-weight:500}
.udcap-core small{display:block;margin-top:14px;color:var(--udcap-lime);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600}

/* Continuous delivery */
.udcap-delivery{
  min-height:78svh;
  padding:clamp(95px,11vw,160px) var(--udcap-gutter);
  display:flex;
  align-items:center;
  background:var(--udcap-paper);
  color:var(--udcap-ink);
  border-top:1px solid var(--udcap-line);
}
.udcap-delivery-inner{width:100%}
.udcap-delivery h2{font-size:clamp(3.5rem,7vw,7.4rem);max-width:1030px}
.udcap-delivery-list{width:100%;margin-top:110px}
.udcap-delivery-row{display:grid;grid-template-columns:90px minmax(280px,.8fr) minmax(320px,1.2fr);gap:28px;padding:23px 0;border-top:1px solid currentColor;align-items:baseline}
.udcap-delivery-row:last-child{border-bottom:1px solid currentColor}
.udcap-delivery-number{font-size:.58rem;letter-spacing:.14em;opacity:.5}
.udcap-delivery-row strong{font-size:clamp(1.45rem,2.4vw,2.5rem);font-weight:500;letter-spacing:-.04em}
.udcap-delivery-description{font-size:.84rem;line-height:1.5;opacity:.62}

/* Engagement */
.udcap-engagement{background:var(--udcap-ink);color:var(--udcap-paper);padding:clamp(96px,10vw,136px) var(--udcap-gutter)}
.udcap-engagement h2{margin:0;max-width:980px;font-size:clamp(3.8rem,8.1vw,7.9rem);line-height:.9;letter-spacing:-.065em;font-weight:500}
.udcap-engagement-grid{margin-top:clamp(56px,6vw,74px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.1);border-left:1px solid rgba(255,255,255,.1)}
.udcap-engagement-card{min-height:360px;padding:22px 24px 24px;border-right:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;justify-content:space-between;background:transparent}
.udcap-engagement-card small{display:block;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;opacity:.56}
.udcap-engagement-copy{display:grid;gap:18px}
.udcap-engagement-card strong{display:block;font-size:clamp(2rem,3.2vw,3.1rem);line-height:.93;letter-spacing:-.055em;font-weight:500}
.udcap-engagement-card p{margin:0;max-width:320px;color:#a8aba4;font-size:.86rem;line-height:1.52}
.udcap-engagement-card.is-highlight{background:var(--udcap-lime);color:var(--udcap-ink)}
.udcap-engagement-card.is-highlight p{color:rgba(9,10,10,.72)}

/* Final */
.udcap-final{min-height:88svh;padding:clamp(120px,15vw,210px) var(--udcap-gutter) 40px;display:flex;align-items:center;background:var(--udcap-paper);color:var(--udcap-ink)}
.udcap-final h2{width:100%;max-width:none;margin:0;font-size:clamp(4rem,8.8vw,9.4rem);font-weight:500;line-height:.9;letter-spacing:-.06em;white-space:normal}
.udcap-final-line{display:block;white-space:nowrap}
.udcap-final-soft{color:#9fa19b}

/* Contact */
.udcap-contact{background:var(--udcap-paper);color:var(--udcap-ink);padding:72px var(--udcap-gutter) 42px;border-top:1px solid var(--udcap-line)}
.udcap-contact-inner{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.udcap-contact h2{margin:0;font-size:clamp(2.4rem,4.8vw,5.4rem);line-height:.95;letter-spacing:-.05em;font-weight:500}
.udcap-contact-link{display:inline-flex;align-items:center;gap:14px;color:inherit;text-decoration:none;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;max-width:100%}
.udcap-contact-link-text{display:block;min-width:0}
.udcap-contact-arrow{position:relative;flex:0 0 34px;width:34px;height:34px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;transition:.25s ease}
.udcap-contact-arrow svg{width:15px;height:15px;display:block;overflow:visible}
.udcap-contact-arrow path{fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.udcap-contact-link:hover .udcap-contact-arrow{background:var(--udcap-lime);border-color:var(--udcap-lime)}

/* Tablet */
@media(max-width:1100px){
  .udcap-engagement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .udcap-engagement-card{min-height:330px}
}
@media(max-width:900px){
  .udcap-slide{padding:clamp(70px,9vh,105px) var(--udcap-gutter)}
  .udcap-statement{font-size:clamp(3.4rem,8.5vw,5.8rem)}
  .udcap-disciplines{min-height:auto;padding:clamp(74px,9vw,105px) var(--udcap-gutter) clamp(90px,10vw,125px)}
  .udcap-disciplines-head{text-align:left}
  .udcap-disciplines h2{margin-left:0;margin-right:0;max-width:100%;font-size:clamp(3.4rem,8vw,5.7rem)}
  .udcap-discipline-stage{min-height:740px;margin-top:clamp(70px,9vw,100px)}
  .udcap-discipline{width:35%;text-align:left!important}
  .udcap-discipline p{margin-left:0!important;margin-right:0!important;max-width:100%}
  .udcap-core{width:clamp(210px,26vw,270px)}
  .udcap-delivery-list{margin-top:84px}
  .udcap-delivery-row{grid-template-columns:58px minmax(220px,.8fr) minmax(240px,1fr);gap:20px}
  .udcap-final{min-height:72svh;padding:100px var(--udcap-gutter)}
  .udcap-final h2{font-size:clamp(3.5rem,8.5vw,6rem)}
}

/* Mobile */
@media(max-width:700px){
  .udcap-page{--udcap-gutter:clamp(20px,5.8vw,28px)}
  .udcap-slide{padding:72px var(--udcap-gutter) 58px}
  .udcap-statement{max-width:none;font-size:clamp(3rem,13vw,4.75rem);line-height:.91;letter-spacing:-.058em}
  /* Slide 2 mobile: preserve the exact normal statement typography.
     Only control the line breaks: 3 lines. */
  .udcap-slide-2 .udcap-slide2-desktop{display:none}
  .udcap-slide-2 .udcap-slide2-mobile{
    display:block;
    max-width:none;
    font-size:clamp(3rem,13vw,4.75rem);
    font-weight:500;
    line-height:.91;
    letter-spacing:-.058em;
  }
  .udcap-slide-2 .udcap-mobile-line{
    display:block;
    white-space:nowrap;
  }
  .udcap-disciplines{padding:70px var(--udcap-gutter) 84px}
  .udcap-disciplines h2{font-size:clamp(3rem,12vw,4.5rem);line-height:.91}
  .udcap-discipline-stage{min-height:auto;margin-top:64px;padding:52px 0 0;display:flex;flex-direction:column}

  /* Mobile only: move the stage divider from above the circle to below it. */
  .udcap-discipline-stage{
    border-top:0;
  }
  .udcap-discipline-stage > .udcap-discipline:first-of-type{
    border-top:1px solid rgba(255,255,255,.13);
  }
  .udcap-core{position:relative;left:auto;top:auto;transform:none;order:-1;width:min(66vw,250px);margin:10px auto 72px;flex:0 0 auto;text-align:center;justify-items:center}
  .udcap-core-ring-outer{inset:-34px}
  .udcap-core::after{inset:-18px}
  .udcap-core strong{font-size:clamp(1.55rem,7vw,2.2rem)}
  .udcap-discipline,.udcap-pos-a,.udcap-pos-b,.udcap-pos-c,.udcap-pos-d,.udcap-pos-extra{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:100%;padding:26px 0 24px;text-align:left!important}
  .udcap-discipline h3{font-size:clamp(1.55rem,7vw,2.15rem)}
  .udcap-discipline p{max-width:100%;margin-left:0!important;margin-right:0!important;font-size:.86rem}
  .udcap-delivery{min-height:auto;padding:82px var(--udcap-gutter) 92px}
  .udcap-delivery h2{font-size:clamp(3rem,12vw,4.5rem);line-height:.92}
  .udcap-delivery-list{margin-top:76px}
  .udcap-delivery-row{grid-template-columns:38px 1fr;gap:8px 14px;padding:24px 0;align-items:start}
  .udcap-delivery-number{grid-column:1;grid-row:1 / span 2;padding-top:4px}
  .udcap-delivery-row strong{grid-column:2;font-size:clamp(1.35rem,6vw,1.9rem);line-height:1.05}
  .udcap-delivery-description{grid-column:2;font-size:.88rem;padding-top:5px}
  .udcap-engagement{padding:82px var(--udcap-gutter) 88px}
  .udcap-engagement h2{max-width:none;font-size:clamp(3rem,12vw,4.9rem);line-height:.92}
  .udcap-engagement-grid{margin-top:50px;grid-template-columns:1fr}
  .udcap-engagement-card{min-height:auto;padding:22px 20px 24px;gap:38px}
  .udcap-engagement-card strong{font-size:clamp(1.85rem,8vw,2.7rem)}
  .udcap-engagement-card p{max-width:none;font-size:.88rem}
  .udcap-final{min-height:72svh;padding:90px var(--udcap-gutter)}
  .udcap-final h2{font-size:clamp(2.15rem,9.2vw,4.4rem);line-height:.92}
  .udcap-contact{padding:58px var(--udcap-gutter) 38px}
  .udcap-contact-inner{display:grid;gap:34px;align-items:start}
  .udcap-contact h2{font-size:clamp(2.4rem,10vw,3.6rem)}
  .udcap-contact-link{justify-self:start}
}

/* Ultra-wide */
@media(min-width:1800px){
  .udcap-page{--udcap-gutter:clamp(72px,5vw,120px)}
  .udcap-statement{max-width:1400px;font-size:clamp(6rem,6.7vw,9.2rem)}
  .udcap-disciplines h2,.udcap-delivery h2{max-width:1350px}
  .udcap-final h2{font-size:clamp(7rem,7.5vw,10.5rem)}
  .udcap-discipline{width:min(29vw,520px)}
}

@media(max-height:560px) and (orientation:landscape){
  .udcap-slide{padding-top:34px;padding-bottom:30px}
  .udcap-statement{font-size:clamp(2.45rem,7.5vw,4.1rem)}
}
@media(hover:none){.udcap-contact-link .udcap-contact-arrow{background:transparent}}
@media(prefers-reduced-motion:reduce){
  .udcap-page{scroll-behavior:auto}
  .udcap-reveal{opacity:1;transform:none;transition:none}
  .udcap-core-orbit{animation:none}
}

/* v1.0.3 mobile contact CTA icon */
@media(max-width:700px){
  .udcap-contact-link{gap:12px;white-space:nowrap;width:max-content;max-width:100%;font-size:.68rem;letter-spacing:.12em}
  .udcap-contact-arrow{flex-basis:36px;width:36px;height:36px}
  .udcap-contact-arrow svg{width:15px;height:15px}
}


/* v1.0.7 — mobile Four Disciplines spacing only.
   Keep the circle at the existing size.
   Equalise the space above/below the outer circle and keep it perfectly centred. */
@media(max-width:700px){
  .udcap-discipline-stage{
    margin-top:64px;
    padding-top:0;
    padding-left:0;
    padding-right:0;
  }

  .udcap-core{
    width:min(66vw,250px);
    margin:0 auto 64px;
    align-self:center;
  }
}


/* v1.0.8 — mobile Four Disciplines spacing correction only.
   Circle size is unchanged.
   - Centre the circle against the full mobile viewport for equal left/right space.
   - Increase the visual gap above and below the outer circle equally.
   - Keep discipline text aligned to the original page gutter. */
@media(max-width:700px){
  .udcap-discipline-stage{
    width:calc(100% + (2 * var(--udcap-gutter)));
    margin-left:calc(-1 * var(--udcap-gutter));
    margin-right:calc(-1 * var(--udcap-gutter));
    margin-top:clamp(88px,24vw,104px);
    padding-left:0;
    padding-right:0;
  }

  .udcap-core{
    width:min(66vw,250px); /* unchanged */
    margin:0 auto clamp(88px,24vw,104px);
    align-self:center;
  }

  .udcap-discipline{
    width:calc(100% - (2 * var(--udcap-gutter))) !important;
    margin-left:var(--udcap-gutter);
    margin-right:var(--udcap-gutter);
  }
}
