/* Customised dashboard section. Isolated from existing animated scenes and forms.
   Use the original supplied dashboard screenshot, preserving its aspect ratio. */
html body main.page > #dashboard.dashboard-feature.surface {
  isolation: isolate;
  position: relative;
  display: grid;
  grid-template-columns: minmax(250px,.68fr) minmax(0,1.42fr);
  align-items: center;
  gap: clamp(30px,4.8vw,78px);
  width: min(1440px,calc(100% - clamp(24px,5vw,96px)));
  max-width: none;
  margin: 0 auto clamp(24px,4vw,60px);
  padding: clamp(38px,5vw,78px) clamp(28px,4.8vw,72px);
  border: 1px solid #dbe8f5;
  border-radius: 28px;
  background: radial-gradient(ellipse at 84% 23%,#e0efff 0%,transparent 53%),linear-gradient(120deg,#fff 0%,#f4f9ff 100%);
  box-shadow: none;
  overflow: hidden;
}
#dashboard .dashboard-feature-copy {
  position: relative;
  z-index: 1;
  align-self: center;
  min-width: 0;
}
#dashboard .dashboard-feature-copy h2 {
  max-width: 12ch;
  margin: 0 0 clamp(19px,2.1vw,30px);
  color: #173554;
  font-weight: 735;
  font-size: clamp(42px,4.8vw,69px);
  line-height: 1.055;
  letter-spacing: -.052em;
  text-wrap: balance;
}
#dashboard .dashboard-feature-copy p {
  max-width: 30ch;
  margin: 0;
  font-size: clamp(17px,1.6vw,22px);
  line-height: 1.5;
  color: #506b87;
  text-wrap: pretty;
}
#dashboard .dashboard-feature-visual {
  position: relative;
  min-width: 0;
  width: 100%;
  padding: clamp(7px,1vw,13px);
  border: 1px solid #c6d9ed;
  border-radius: clamp(14px,1.5vw,20px);
  background: #fff;
  box-shadow: 0 12px 36px rgba(31,73,117,.12);
  transform: none;
}
#dashboard .dashboard-feature-visual::before { display:none; }
#dashboard .dashboard-feature-visual img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2048 / 1542;
  object-fit: contain;
  border-radius: clamp(8px,1vw,13px);
  background: #e0edfa;
}
@media(max-width:1050px) {
  html body main.page > #dashboard.dashboard-feature.surface {
    grid-template-columns: minmax(0,1fr);
    gap: 26px;
  }
  #dashboard .dashboard-feature-copy h2 { max-width:none; font-size:clamp(38px,5.6vw,62px); }
  #dashboard .dashboard-feature-copy p { max-width: 48ch; }
  #dashboard .dashboard-feature-visual { width: min(100%,900px); margin-inline:auto; transform:none; }
  #dashboard .dashboard-feature-visual::before { transform:none; }
}
@media(max-width:600px) {
  html body main.page > #dashboard.dashboard-feature.surface {
    width: calc(100% - 22px);
    padding: 35px 18px 28px;
    gap: 24px;
    border-radius: 21px;
  }
  #dashboard .dashboard-feature-copy h2 {
    font-size: clamp(35px,9.5vw,48px);
    line-height: 1.09;
    margin-bottom: 13px;
  }
  #dashboard .dashboard-feature-copy p { font-size: 16px; line-height:1.48; }
  #dashboard .dashboard-feature-visual { padding:5px; border-radius:12px; }
  #dashboard .dashboard-feature-visual img { border-radius:8px; }
  #dashboard .dashboard-feature-visual::before { inset:-7px -7px 7px 8px; border-radius:14px; }
}
@media(prefers-reduced-motion:reduce) {
  #dashboard .dashboard-feature-visual { transform:none; }
  #dashboard .dashboard-feature-visual::before { transform:none; }
}
@media(forced-colors:active) {
  html body main.page > #dashboard.dashboard-feature.surface,
  #dashboard .dashboard-feature-visual { border:1px solid CanvasText; background:Canvas; }
  #dashboard .dashboard-feature-copy :is(h2,p) { color:CanvasText; }
  #dashboard .dashboard-feature-visual::before { display:none; }
}

/* Participate in the main site's mandatory single-scene scroll system.
   A non-snapping section here causes the viewport to escape to the nearest
   neighbouring snap point. Keep tall content independently scrollable. */
html body main.page > #dashboard.dashboard-feature.surface {
  box-sizing: border-box!important;
  width: 100%!important;
  max-width: none!important;
  height: var(--ralph-stage-height)!important;
  min-height: var(--ralph-stage-height)!important;
  max-height: var(--ralph-stage-height)!important;
  margin: 0!important;
  border-radius: 0!important;
  overflow-x: clip!important;
  overflow-y: auto!important;
  overscroll-behavior-y: auto!important;
  scroll-snap-align: start!important;
  scroll-margin-top: 0!important;
  align-content: safe center!important;
}
