/*
  DentalDoor — homepage styles
  Homepage-only visual systems: hero sequence,narrative sections,Practice Pulse™,Trust,FAQ and footer.
  Kept separate from shared style.css so additional pages do not download homepage-only styling.
*/

/* ===== homepage-inline-style-2 ===== */
:where(.dd-site),:where(.dd-site) *{box-sizing:border-box}
html.dd-site-host,body.dd-site{margin:0;width:100%;max-width:100%;overflow-x:hidden}
@supports (overflow:clip){html.dd-site-host,body.dd-site{overflow-x:clip}}
:where(.dd-site) img{max-width:100%}

/* Prevent FAQ row FOUC before the scroll controller initializes. */
body:not(.dd-faq-ready) .dd-faq__item{ opacity:0 !important; visibility:hidden !important; }
body.dd-faq-ready .dd-faq__item{ visibility:visible; }

  /* Trust is the newest foreground layer; its chrome tone wins over historical
     section state classes that remain true after earlier sticky sections pass. */
  body.dd-on-trust-light:not(.dd-menu-open) .dd-site-logo img{ filter:none !important; }
  body.dd-on-trust-light:not(.dd-menu-open) .dd-site-nav__link{
    color:#173744 !important;
    background:rgba(244,250,251,.74) !important;
    border-color:rgba(26,78,95,.10) !important;
  }
  body.dd-on-trust-light:not(.dd-menu-open) .dd-site-nav__link--contact{
    color:#eefbff !important;
    background:#123746 !important;
    border-color:#123746 !important;
  }
  

/* ===== dd-footer-reference-structure-v2 ===== */
/* Footer structural correction: closely follows the supplied reference geometry. */
.dd-footer{ --dd-footer-scroll: 110; }
.dd-footer__surface{
  background:#03161d;
  box-shadow:0 -30px 90px rgba(0,12,18,.30);
}
.dd-footer__surface::after{ opacity:.12; }
.dd-footer__inner{
  padding:0;
  display:grid;
  grid-template-rows:25.5svh 23.5svh minmax(0,1fr);
  min-height:100svh;
  height:100svh;
}
.dd-footer__top{
  grid-row:1;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  padding:clamp(32px,5.2vh,58px) clamp(26px,2.8vw,54px) 0;
  gap:0;
}
.dd-footer__statement{ display:none !important; }
.dd-footer__cta{
  margin:0;
  padding:13px 22px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid rgba(229,247,250,.78);
  background:#f3f9fa;
  color:#061e27;
  font-size:11px;
  font-weight:760;
  letter-spacing:.015em;
  text-transform:none;
  box-shadow:none;
}
.dd-footer__cta:hover,
.dd-footer__cta:focus-visible{
  transform:none;
  background:#dff5f9;
  border-color:#dff5f9;
}
.dd-footer__nav{
  grid-row:2;
  align-self:stretch;
  width:100%;
  margin:0;
  border-top:1px solid rgba(220,242,247,.16);
  border-bottom:1px solid rgba(220,242,247,.16);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.dd-footer__link{
  min-height:0;
  height:100%;
  padding:0 clamp(26px,2.8vw,54px);
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  border-right:1px solid rgba(220,242,247,.16);
}
.dd-footer__link:last-child{ border-right:0; }
.dd-footer__link::before{
  transform:scaleX(.008);
  background:#f4f8f9;
}
.dd-footer__link-meta{ display:none !important; }
.dd-footer__link-main{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  font-family:var(--dd-sans);
  font-size:clamp(28px,2.2vw,38px);
  line-height:1.05;
  letter-spacing:-.035em;
  font-weight:560;
}
.dd-footer__arrow{
  flex:0 0 auto;
  font-size:31px;
  color:#67cce6;
  font-weight:400;
}
.dd-footer__brand{
  grid-row:3;
  position:relative;
  margin:0;
  padding:clamp(34px,5.2vh,58px) 0 clamp(36px,4.6vh,52px);
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
}
.dd-footer__brand img{
  display:block;
  width:108vw;
  max-width:none;
  height:auto;
  margin-left:-4vw;
  margin-right:-4vw;
  opacity:1;
}
.dd-footer__bottom{
  position:absolute;
  z-index:3;
  left:clamp(26px,2.8vw,54px);
  right:clamp(26px,2.8vw,54px);
  bottom:max(18px,env(safe-area-inset-bottom));
  padding:0;
  align-items:flex-end;
  color:#79939c;
  font-size:9px;
  letter-spacing:.025em;
  pointer-events:auto;
}
.dd-footer__legal{ gap:22px; }

@media (max-width:900px){
  .dd-footer__inner{ grid-template-rows:24svh 25svh minmax(0,1fr); }
  .dd-footer__link{ padding:0 26px; }
  .dd-footer__link-main{ font-size:clamp(25px,3.3vw,32px); }
  .dd-footer__brand img{ width:118vw; margin-left:-9vw; margin-right:-9vw; }
}
@media (max-width:600px){
  .dd-footer{ --dd-footer-scroll:100; }
  .dd-footer__inner{
    padding:0;
    display:grid;
    grid-template-rows:20svh auto minmax(0,1fr);
    height:100svh;
    min-height:100svh;
  }
  .dd-footer__top{
    padding:max(78px,calc(env(safe-area-inset-top) + 58px)) 18px 0;
  }
  .dd-footer__cta{ min-height:40px; padding:10px 16px; font-size:8px; }
  .dd-footer__nav{
    grid-template-columns:1fr;
    grid-template-rows:repeat(3,74px);
    margin:0;
  }
  .dd-footer__link{
    min-height:0;
    height:74px;
    padding:0 18px;
    border-right:0;
    border-bottom:1px solid rgba(220,242,247,.16);
  }
  .dd-footer__link:last-child{ border-bottom:0; }
  .dd-footer__link-main{ font-size:24px; }
  .dd-footer__arrow{ font-size:25px; }
  .dd-footer__brand{
    padding:34px 0 42px;
    align-items:flex-end;
  }
  .dd-footer__brand img{
    width:148vw;
    margin-left:-24vw;
    margin-right:-24vw;
  }
  .dd-footer__bottom{
    left:18px;
    right:18px;
    bottom:max(13px,env(safe-area-inset-bottom));
    font-size:7.5px;
  }
  .dd-footer__legal{ gap:11px; }
}

/* ===== dd-hamburger-minimalist-patch ===== */
/* Premium minimalist hamburger: keep the hit area,remove the visible box. */






/* ===== dd-hamburger-hover-microinteraction-patch ===== */
/* Refined stroke-only hover interaction. Keeps the button visually unboxed. */



/* ===== dd-menu-link-hover-polish-v1 ===== */
/* Premium menu-link hover: restrained cyan lift/glow,no heavy decoration. */



/* Utility actions keep their existing fills; add only a restrained depth cue. */






/* ===== dd-practice-pulse-market-spider-patch ===== */
/* Competitive / Market position — benchmark vs practice spider chart */
.dd-practice-pulse .pp-market-card{
  display:grid;
  grid-template-rows:auto 1fr auto;
  min-height:0;
}
.dd-practice-pulse .pp-market-radar{
  min-height:280px;
  display:grid;
  place-items:center;
  padding:4px 8px 0;
}
.dd-practice-pulse .pp-market-radar svg{
  width:min(100%,430px);
  height:auto;
  overflow:visible;
}
.dd-practice-pulse .pp-radar-grid polygon,
.dd-practice-pulse .pp-radar-grid line{
  fill:none;
  stroke:rgba(116,205,230,.095);
  stroke-width:1;
}
.dd-practice-pulse .pp-radar-grid polygon:first-child{
  stroke:rgba(116,205,230,.14);
}
.dd-practice-pulse .pp-radar-benchmark{
  fill:rgba(169,194,202,.045);
  stroke:rgba(186,214,222,.42);
  stroke-width:1.35;
  stroke-dasharray:5 5;
}
.dd-practice-pulse .pp-radar-practice{
  fill:rgba(106,207,234,.16);
  stroke:#79d5ee;
  stroke-width:2;
  vector-effect:non-scaling-stroke;
  transform-box:view-box;
  transform-origin:180px 160px;
  transform:scale(.06);
  opacity:0;
  filter:drop-shadow(0 0 9px rgba(121,213,238,.14));
}
.dd-practice-pulse .pp-radar-points{
  transform-box:view-box;
  transform-origin:180px 160px;
  transform:scale(.06);
  opacity:0;
}
.dd-practice-pulse .pp-radar-points circle{
  fill:#b9edf9;
  stroke:#0b2d39;
  stroke-width:2;
}
.dd-practice-pulse .pp-radar-labels text{
  fill:var(--pp-legend-text, #b2d5e2);
  font-family:var(--dd-sans);
  font-size:11px;
  font-weight:600;
  letter-spacing:.035em;
}
.dd-practice-pulse .pp-card-label--single{justify-content:flex-end;}
.dd-practice-pulse .pp-market-legend{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:22px;
  color:var(--pp-legend-text, #b2d5e2);
  font-size:12px;
  font-weight:600;
  letter-spacing:.085em;
  text-transform:uppercase;
}
.dd-practice-pulse .pp-market-legend span{display:inline-flex;align-items:center;gap:7px;}
.dd-practice-pulse .pp-market-legend i{display:inline-block;width:22px;height:2px;border-radius:999px;}
.dd-practice-pulse .pp-market-legend__benchmark{
  background:repeating-linear-gradient(90deg,rgba(194,220,227,.58) 0 5px,transparent 5px 9px);
}
.dd-practice-pulse .pp-market-legend__practice{
  background:#79d5ee;
  box-shadow:0 0 10px rgba(121,213,238,.16);
}
.dd-practice-pulse.pp-in-view .pp-scene--competitive.dd-is-active .pp-radar-practice{
  animation:ppRadarPractice 5.2s cubic-bezier(.22,.8,.2,1) infinite;
}
.dd-practice-pulse.pp-in-view .pp-scene--competitive.dd-is-active .pp-radar-points{
  animation:ppRadarPoints 5.2s cubic-bezier(.22,.8,.2,1) infinite;
}
@keyframes ppRadarPractice{
  0%,8%{transform:scale(.06);opacity:0;}
  34%,82%{transform:scale(1);opacity:1;}
  100%{transform:scale(.06);opacity:0;}
}
@keyframes ppRadarPoints{
  0%,18%{transform:scale(.06);opacity:0;}
  38%,82%{transform:scale(1);opacity:1;}
  100%{transform:scale(.06);opacity:0;}
}
@media (max-width:1050px){
  .dd-practice-pulse .pp-market-radar{min-height:235px;}
  .dd-practice-pulse .pp-market-radar svg{width:min(100%,390px);}
}
@media (max-width:600px){
  .dd-practice-pulse .pp-market-radar{min-height:230px;padding-top:0;}
  .dd-practice-pulse .pp-market-radar svg{width:min(100%,330px);}
  .dd-practice-pulse .pp-radar-labels text{font-size:10px;}
  .dd-practice-pulse .pp-market-legend{gap:14px;font-size:11px;}
}
@media (prefers-reduced-motion:reduce){
  .dd-practice-pulse .pp-radar-practice,
  .dd-practice-pulse .pp-radar-points{
    animation:none !important;
    transform:scale(1) !important;
    opacity:1 !important;
  }
}
/* ===== dd-hero-lede-single-line-and-brand-trademark-v1 ===== */
/* Hero support line is intentionally one unbroken sentence at every viewport width. */
.dd-hero__lede{
  max-width:none !important;
  white-space:nowrap !important;
  text-wrap:nowrap !important;
  overflow:visible;
}
@media (max-width:767px){
  .dd-hero__lede{
    font-size:clamp(7.5px,2.35vw,14px) !important;
    line-height:1.3;
    letter-spacing:-.01em;
    max-width:none !important;
    white-space:nowrap !important;
  }
}
@media (max-width:390px){
  .dd-hero__lede{font-size:clamp(7px,2.25vw,9px) !important;}
}

/* ===== dd-trust-reference-and-mobile-hero-v1 ===== */
/* Hero: editorial single line on desktop/tablet,readable wrapping on phones. */
@media (max-width:600px){
  .dd-hero__lede{
    max-width:min(90vw,36ch) !important;
    white-space:normal !important;
    text-wrap:balance !important;
    overflow:visible !important;
    font-size:clamp(11.5px,3.45vw,14px) !important;
    line-height:1.35 !important;
  }
}

/* Built for Trust: reference-led proof layer. */
.dd-trust__badges{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:18px;
  margin:clamp(30px,4vh,42px) 0 0;
  opacity:0;
  transform:translateY(10px);
  filter:blur(4px);
  will-change:opacity,transform,filter;
}
.dd-trust__badge{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:48px;
  padding:7px 11px 7px 8px;
  border:1px solid rgba(41,119,143,.10);
  border-radius:13px;
  background:rgba(255,255,255,.42);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82);
}
.dd-trust__badge-icon{
  width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;
  border-radius:10px;background:rgba(226,244,248,.72);
}
.dd-trust__badge-icon svg{width:25px;height:25px;fill:none;stroke:#329cba;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
.dd-trust__badge--ssl .dd-trust__badge-icon{background:rgba(231,247,238,.78);}
.dd-trust__badge--ssl .dd-trust__badge-icon svg{stroke:#55a574;}
.dd-trust__badge-copy{display:grid;gap:1px;line-height:1;}
.dd-trust__badge-copy strong{color:#456b78;font-size:12px;font-weight:780;letter-spacing:.015em;text-transform:uppercase;}
.dd-trust__badge-copy small{color:#78919a;font-size:7px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;}
.dd-trust__compliance-line{
  display:flex;
  align-items:center;
  gap:10px;
  margin:17px 0 0 !important;
  max-width:none !important;
  color:#8a9da4 !important;
  font-family:var(--dd-sans) !important;
  font-size:clamp(12px,1vw,15px) !important;
  line-height:1.2 !important;
  letter-spacing:0 !important;
}
.dd-trust__compliance-line span{color:inherit !important;}
.dd-trust__compliance-lock{position:relative;width:15px;height:12px;border:1.5px solid #9bb0b7;border-radius:2px;flex:0 0 15px;}
.dd-trust__compliance-lock::before{content:'';position:absolute;left:3px;right:3px;top:-8px;height:8px;border:1.5px solid #9bb0b7;border-bottom:0;border-radius:7px 7px 0 0;}

.dd-trust__row{
  grid-template-columns:58px minmax(0,1fr) 94px;
  gap:22px;
  padding:23px 0;
}
.dd-trust__row-icon{
  width:86px;height:86px;
  display:grid !important;
  place-items:center;
  padding:8px;
  border-radius:12px;
  background:linear-gradient(145deg,rgba(231,244,247,.80),rgba(246,250,251,.46));
  border:1px solid rgba(51,133,157,.055);
  overflow:hidden;
}
.dd-trust__row-icon img{
  display:block;
  width:100%;height:100%;
  object-fit:contain;
  filter:saturate(.90) contrast(.96);
}
.dd-trust__row-copy strong{font-size:clamp(22px,1.85vw,29px);}
.dd-trust__row-copy span{max-width:44ch;}

@media (max-width:1050px){
  .dd-trust__badges{margin-top:24px;gap:12px;}
  .dd-trust__row{grid-template-columns:52px minmax(0,1fr) 78px;gap:15px;}
  .dd-trust__row-icon{width:72px;height:72px;}
}
@media (max-width:600px){
  .dd-trust__badges{gap:8px;margin-top:20px;}
  .dd-trust__badge{min-height:42px;padding:6px 9px 6px 6px;gap:7px;}
  .dd-trust__badge-icon{width:31px;height:31px;flex-basis:31px;border-radius:8px;}
  .dd-trust__badge-icon svg{width:20px;height:20px;}
  .dd-trust__badge-copy strong{font-size:10px;}
  .dd-trust__badge-copy small{font-size:6px;}
  .dd-trust__compliance-line{font-size:11px !important;margin-top:13px !important;}
  .dd-trust__row{grid-template-columns:40px minmax(0,1fr) 62px !important;gap:10px !important;padding:16px 0 !important;}
  .dd-trust__row-icon{display:grid !important;width:58px;height:58px;padding:5px;border-radius:10px;}
  .dd-trust__row-copy strong{font-size:19px !important;}
}

/* ===== dd-trust-compliance-logo-replacement-v1 ===== */
.dd-trust__badges{
  display:block;
  max-width:437px;
}
.dd-trust__compliance-logos{
  display:block;
  width:min(100%,437px);
  height:auto;
  object-fit:contain;
}
@media(max-width:600px){
  .dd-trust__badges{max-width:330px;}
  .dd-trust__compliance-logos{width:min(100%,330px);}
}

/* ===== homepage-inline-style-11 ===== */
:root{
    --dd-ice:     #eef6fb;
    --dd-teal:    #369dbf;
    --dd-violet:  #6d3bd1;
    --dd-sans: var(--dd-sans);

    --dd-seq-len: 620;      /* vh of scroll for the frame sequence itself */
    --dd-pause-len: 100;    /* vh of scroll per annotation pause */
    --dd-cover-len: 100;    /* final-frame hold while Recognition rises over the hero */
    --dd-reframe-cover-len: 100; /* Recognition hold while the dark Reframe layer rises above it */
    --dd-future-cover-len: 100; /* Reframe hold while the light Future Possibility layer rises above it */
    --dd-support-cover-len: 100; /* Future Possibility hold while Support Model rises above it */
    --dd-trust-cover-len: 100; /* Support Model hold while Trust Reinforcement rises above it */
    --dd-demo-cover-len: 100; /* Trust hold while the final Demonstration Invitation rises above it */
    --dd-faq-cover-len: 100; /* Demonstration Invitation hold while the light FAQ rises above it */
    --dd-footer-cover-len: 100; /* FAQ hold while the footer rises above it */
    --dd-settle-len: 30;    /* fully-resolved content hold before the next foreground layer begins */
    --dd-hero-settle-len: 28; /* final hero frame breathes before Recognition starts covering it */

    --scroll-cue-bg: rgba(255, 255, 255, 0.76);
    --scroll-cue-border: rgba(18, 55, 68, 0.12);
    --scroll-cue-text: #375362;
    --scroll-cue-mouse-border: rgba(18, 55, 68, 0.35);
    --scroll-cue-wheel-bg: var(--dd-teal, #369dbf);
    --scroll-cue-shadow: 0 4px 18px rgba(18, 55, 68, 0.08);

    --ann-card-bg: #071922;
    --ann-card-border: rgba(54, 157, 191, 0.28);
    --ann-card-accent: #369dbf;
    --ann-card-text-title: #ffffff;
    --ann-card-text-body: #d8e7ed;
    --ann-card-shadow: 0 16px 40px -8px rgba(0, 10, 16, 0.6);

    --pp-tab-title: #f0f9fc;
    --pp-tab-title-active: #ffffff;
    --pp-tab-note: #9bc3d3;
    --pp-tab-note-active: #bfe4f3;
    --pp-stage-head-text: #8cb8c9;
    --pp-stage-live-dot: #72d5ee;
    --pp-scene-sub-text: #b4d8e6;
    --pp-legend-text: #b2d5e2;
  }

  @media (max-width: 767px){
    :root{ --dd-seq-len: 460; --dd-settle-len: 24; --dd-hero-settle-len: 22; }
  }

  body.dd-site{
    margin: 0;
    background: var(--dd-ice);
    font-family: var(--dd-sans);
    -webkit-font-smoothing: antialiased;
  }

  /* ---------- Persistent site chrome ---------- */

  .dd-site-logo{
    position: fixed;
    z-index: 170;
    display: block;
    width: 126px;
    left: 24px;
    top: 22px;
    will-change: transform;
    transform: translateZ(0);
  }
  .dd-site-logo img{
    display:block;
    width:100%;
    height:auto;
    transition: filter .34s ease, opacity .28s ease;
  }

  .dd-site-nav{
    position: fixed;
    top: max(18px, env(safe-area-inset-top));
    right: max(22px, env(safe-area-inset-right));
    z-index: 180;
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--dd-sans);
    pointer-events: none;
  }
  .dd-site-nav__links{
    display:flex;
    align-items:center;
    gap:10px;
    position:relative;
    z-index:0;
    opacity:0;
    transform:translateX(68px);
    filter:blur(9px);
    pointer-events:none;
    will-change:opacity,transform,filter;
  }
  .dd-site-nav__link{
    text-decoration: none;
    color: #11303f;
    font-size: 13px;
    line-height: 1;
    font-weight: 650;
    padding: 11px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.76);
    border: 1px solid rgba(16,48,63,.10);
    -webkit-backdrop-filter: blur(12px) saturate(120%);
    backdrop-filter: blur(12px) saturate(120%);
    box-shadow: 0 8px 24px -18px rgba(10,39,53,.5);
    white-space:nowrap;
  }
  .dd-site-nav__link--contact{
    color: #fff;
    background: #123544;
    border-color: #123544;
  }

  /* The menu button is always visible. Its geometry stays quiet and compact,
     while the three strokes morph into a precise close icon. */
  
  
  
  
  
  
  
  
  
  
  

  /* Reference-inspired menu: a full-screen radial reveal grows from the
     hamburger itself. No side drawer and no rectangular slide-in panel. */
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  
  

  .dd-hero__brand-anchor{ visibility:hidden; pointer-events:none; }

  @media (max-width:700px){
    /* Mobile chrome has its own calm on-load entrance. Unlike desktop, the
       brand lives in its final top-left chrome position from the first frame;
       it does not begin in the hero-copy position. */
    .dd-site-logo{
      left:15px !important;
      top:max(14px, env(safe-area-inset-top)) !important;
      width:108px !important;
      opacity:0;
      filter:blur(10px);
      transform:translate3d(0,-26px,0) scale(.985);
      transition:
        opacity .62s cubic-bezier(.22,.8,.2,1),
        transform .82s cubic-bezier(.22,.8,.2,1),
        filter .72s cubic-bezier(.22,.8,.2,1);
      pointer-events:none;
    }
    body.dd-mobile-chrome-ready .dd-site-logo{
      opacity:1;
      filter:blur(0);
      transform:translate3d(0,0,0) scale(1);
      pointer-events:auto;
    }

    .dd-site-nav{
      top:max(12px, env(safe-area-inset-top));
      right:max(12px, env(safe-area-inset-right));
      gap:0;
    }
    .dd-site-nav__links{ display:none; }
    
    
    
    
    
    
    
    
    
    
  }

  

  /* ---------- Section ---------- */

  .dd-hero{ position: relative; z-index: 1; }

  .dd-hero__stage{
    position: sticky;
    top: 0;
    height: 100vh;
    height: 100svh;
    overflow: hidden;
    background: #dbeaf4;
  }

  .dd-hero__canvas{
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
    image-rendering: -webkit-optimize-contrast;
  }

  .dd-hero__dim{
    position:absolute; inset:0; z-index:8;
    background: rgba(5,22,31,.58);
    opacity:0; pointer-events:none;
    will-change: opacity;
  }

  /* Mobile uses the same full-screen composition as desktop.
     The 16:9 frames cover the portrait viewport and crop symmetrically
     at the sides, keeping the patient/portal centred while preserving
     the sky area for the hero copy. */
  @media (max-width: 767px){
    .dd-hero__stage{
      height: 100vh;
      height: 100svh;
      min-height: 620px;
      background: #dbeaf4;
    }
    .dd-hero__canvas{
      inset: 0;
      width: 100%;
      height: 100%;
      max-width: none;
      aspect-ratio: auto;
      transform: none;
    }
  }

  /* ---------- Hero copy ---------- */

  /* Kept inside the open sky above the glass portal and the clinics. */
  .dd-hero__copy{
    position: absolute;
    left: 0;
    right: 0;
    top: clamp(20px, 3.4vh, 46px);
    display: flex;
    justify-content: center;
    padding-inline: 20px;
    pointer-events: none;
  }

  .dd-hero__inner{
    width: min(100%, 660px);
    text-align: center;
    pointer-events: auto;
    transform-origin: 50% 50%;
    will-change: transform, opacity;
    backface-visibility: hidden;
  }

  .dd-hero__brand{
    display: block;
    width: clamp(138px, 11vw, 172px);
    height: auto;
    margin: 0 auto 10px;
    user-select: none;
    -webkit-user-drag: none;
  }
  .dd-hero__title{
    font-family: var(--dd-serif);
    font-weight: 400;
    font-size: clamp(26px, 3.4vw, 46px);
    line-height: 1.04;
    letter-spacing: -.02em;
    text-wrap: balance;
    margin: 0 0 10px;
    color: #10303f;
  }
  .dd-hero__lede{
    font-size: clamp(13px, 1.1vw, 15px);
    line-height: 1.5;
    color: #2b5063;
    text-wrap: pretty;
    margin: 0 auto;
    max-width: 52ch;
  }
  .dd-hero__cta{
    display: inline-block;
    margin-top: 18px;
    font: inherit;
    font-size: clamp(13px, 1vw, 14px);
    font-weight: 600;
    color: #fff;
    background: var(--dd-teal);
    border: 0;
    border-radius: 999px;
    padding: 11px 26px;
    cursor: pointer;
    box-shadow: 0 10px 26px -12px rgba(54,157,191,.95);
  }
  .dd-hero__cta:focus-visible{ outline: 2px solid var(--dd-violet); outline-offset: 3px; }

  @media (max-width: 767px){
    .dd-hero__copy{
      top: max(18px, env(safe-area-inset-top));
      padding-inline: 18px;
      z-index: 2;
    }
    .dd-hero__inner{
      width: min(100%, 430px);
    }
    .dd-hero__brand{
      width: clamp(124px, 34vw, 154px);
      margin-bottom: 9px;
    }
    .dd-hero__title{
      font-size: clamp(28px, 7.4vw, 36px);
      line-height: 1.02;
      margin-bottom: 9px;
    }
    .dd-hero__lede{
      font-size: clamp(14px, 3.9vw, 16px);
      line-height: 1.38;
      max-width: 34ch;
    }
    .dd-hero__cta{
      margin-top: 16px;
      font-size: 15px;
      padding: 12px 25px;
      min-height: 46px;
    }
  }

  @media (max-width: 390px){
    .dd-hero__copy{ top: max(14px, env(safe-area-inset-top)); }
    .dd-hero__brand{ width: 118px; margin-bottom: 7px; }
    .dd-hero__title{ font-size: 27px; }
    .dd-hero__lede{ font-size: 14px; }
    .dd-hero__cta{ margin-top: 13px; padding: 11px 22px; }
  }

  /* ---------- Annotations ---------- */

  .dd-ann{
    position: absolute;
    left: clamp(20px, 5vw, 76px);
    bottom: clamp(28px, 8vh, 88px);
    width: min(370px, calc(100% - 40px));
    opacity: 0;
    pointer-events: none;
    will-change: transform, opacity;
    backface-visibility: hidden;

    background: var(--ann-card-bg, #071922);
    border: 1px solid var(--ann-card-border, rgba(54, 157, 191, 0.28));
    border-top: 3px solid var(--ann-card-accent, #369dbf);
    border-radius: var(--radius-md, 8px);
    box-shadow: var(--ann-card-shadow, 0 16px 40px -8px rgba(0, 10, 16, 0.6));
    padding: 20px 24px 22px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  /* Safari and Firefox fallback */
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
    .dd-ann{ background: #071922; }
  }

  .dd-ann__title{
    font-family: var(--dd-sans, inherit);
    font-weight: 650;
    font-size: 19px;
    line-height: 1.28;
    letter-spacing: -.02em;
    color: var(--ann-card-text-title, #ffffff);
    margin: 0 0 8px;
    text-wrap: balance;
    will-change: transform, opacity;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  .dd-ann__body{
    font-size: 14.5px;
    line-height: 1.5;
    font-weight: 400;
    color: var(--ann-card-text-body, #d8e7ed);
    margin: 0;
    text-wrap: pretty;
    will-change: transform, opacity;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  .dd-ann--right{
    left: auto;
    right: clamp(20px, 5vw, 76px);
  }

  /* Final moment: a plain,very round call to action centred in the viewport. */
  .dd-ann--cta{
    left: 50%;
    right: auto;
    top: 67.5%;
    bottom: auto;
    width: min(430px, calc(100% - 48px));
    padding: 0;
    background: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
  }
  .dd-cta-button{
    display: inline-block;
    font: inherit;
    font-size: clamp(17px, 1.5vw, 21px);
    font-weight: 600;
    letter-spacing: -.01em;
    color: #ffffff;
    background: #0a0f12;
    border: 0;
    border-radius: 999px;
    padding: clamp(18px, 1.9vw, 24px) clamp(34px, 3.6vw, 54px);
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 22px 50px -18px rgba(4, 12, 17, .7);
    transition: background-color .18s ease, box-shadow .18s ease;
  }
  .dd-cta-button:hover{ background: #18232a; box-shadow: 0 26px 56px -18px rgba(4, 12, 17, .8); }
  .dd-cta-button:focus-visible{ outline: 3px solid #ffffff; outline-offset: 3px; }

  @media (max-width: 767px){
    .dd-ann{
      left: 16px;
      right: 16px;
      width: auto;
      max-width: 380px;
      bottom: calc(18px + env(safe-area-inset-bottom));
      padding: 16px 18px 18px;
      border-radius: var(--radius-md, 8px);
    }
    .dd-ann--right{ left: 16px; right: 16px; }
    .dd-ann--cta{
      left: 50%;
      right: auto;
      top: 67.5%;
      bottom: auto;
      width: min(430px, calc(100% - 32px));
      max-width: none;
      padding: 0;
    }
    .dd-cta-button{ font-size: 16px; padding: 16px 30px; }
    .dd-ann__title{ font-size: 20px; margin-bottom: 7px; }
    .dd-ann__body{ font-size: 15px; line-height: 1.45; }
  }

  /* ---------- Preloader ---------- */

  .dd-hero__loader{
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    background: #dbeaf4;
    transition: opacity .45s ease;
    z-index: 3;
  }
  .dd-hero__loader[data-done="1"]{ opacity: 0; pointer-events: none; }
  .dd-hero__bar{
    width: 170px; height: 2px;
    background: rgba(16,48,63,.14);
    border-radius: 2px;
    overflow: hidden;
  }
  .dd-hero__bar span{
    display: block; height: 100%; width: 0%;
    background: var(--dd-teal);
    transition: width .2s linear;
  }

  /* ---------- Scroll to explore cue ---------- */
  .dd-scroll-cue{
    position: absolute;
    left: 50%;
    bottom: max(24px, env(safe-area-inset-bottom, 24px));
    transform: translate(-50%, 0);
    z-index: 9;
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2, 8px);
    padding: 8px 18px 8px 14px;
    background: var(--scroll-cue-bg);
    border: 1px solid var(--scroll-cue-border);
    border-radius: var(--radius-full, 9999px);
    box-shadow: var(--scroll-cue-shadow);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: var(--scroll-cue-text);
    font-family: var(--dd-sans, inherit);
    font-size: 12px;
    font-weight: 560;
    letter-spacing: .02em;
    pointer-events: none;
    user-select: none;
    opacity: 0;
    transition: opacity 360ms cubic-bezier(.16,1,.3,1), transform 360ms cubic-bezier(.16,1,.3,1);
    will-change: opacity, transform;
  }

  body.dd-scroll-cue-ready .dd-scroll-cue{
    opacity: 1;
  }

  body.dd-scrolled .dd-scroll-cue{
    opacity: 0 !important;
    transform: translate(-50%, 10px) !important;
    pointer-events: none !important;
  }

  .dd-scroll-cue__mouse{
    width: 14px;
    height: 22px;
    border: 1.5px solid var(--scroll-cue-mouse-border);
    border-radius: var(--radius-full, 9999px);
    display: flex;
    justify-content: center;
    padding-top: 3px;
    box-sizing: border-box;
    flex-shrink: 0;
  }

  .dd-scroll-cue__wheel{
    width: 2.5px;
    height: 5px;
    background: var(--scroll-cue-wheel-bg);
    border-radius: var(--radius-full, 9999px);
    animation: ddScrollWheel 1.8s ease-in-out infinite;
  }

  @keyframes ddScrollWheel{
    0%{ transform: translateY(0); opacity: 1; }
    50%{ transform: translateY(4px); opacity: .25; }
    100%{ transform: translateY(0); opacity: 1; }
  }

  @media (prefers-reduced-motion: reduce){
    .dd-scroll-cue{
      transition: opacity 200ms ease;
    }
    .dd-scroll-cue__wheel{
      animation: none !important;
    }
  }

  @media (max-width: 767px){
    .dd-scroll-cue{
      bottom: max(16px, env(safe-area-inset-bottom, 14px));
      padding: 6px 14px 6px 11px;
      font-size: 11px;
      gap: var(--spacing-1, 6px);
    }
    .dd-scroll-cue__mouse{
      width: 12px;
      height: 18px;
      padding-top: 2px;
    }
    .dd-scroll-cue__wheel{
      width: 2px;
      height: 4px;
    }
  }



  /* ---------- Recognition section: uncertainty after the handoff ---------- */

  /* Timing rule across all narrative sections:
     reveal content fully -> hold it cleanly -> only then allow the next layer to cover. */

  .dd-next{
    --dd-next-scroll: 285;
    position: relative;
    z-index: 5;
    /* Keep the final hero frame pinned while this section rises above it. */
    margin-top: calc(var(--dd-cover-len) * -1vh);
    height: calc((var(--dd-next-scroll) + var(--dd-settle-len) + var(--dd-reframe-cover-len)) * 1vh + 100vh);
    background: transparent;
    color: #0f1f28;
  }

  .dd-next__stage{
    position: sticky;
    top: 0;
    height: 100vh;
    height: 100svh;
    overflow: visible;
    display: flex;
    align-items: center;
    background: transparent;
    isolation: isolate;
  }

  .dd-next__surface{
    position:absolute; inset:0; z-index:0;
    background:
      radial-gradient(circle at 78% 30%, rgba(54,157,191,.055), transparent 31%),
      linear-gradient(180deg,#fff 0%,#fbfdfe 100%);
    border-top: 1px solid rgba(16,48,63,.055);
    box-shadow: 0 -22px 58px rgba(8,33,45,.10);
    transform: translateZ(0);
  }
  .dd-next__surface::before{
    content:'';
    position:absolute;
    left:-2px; right:-2px; top:-18vh;
    height:25vh;
    background:#fff;
    transform: skewY(-7.5deg);
    transform-origin: 100% 100%;
    box-shadow: 0 -18px 44px rgba(8,33,45,.055);
  }

  .dd-next__inner{
    position:relative; z-index:1;
    width:min(1440px,100%);
    margin:0 auto;
    padding:clamp(72px,10vh,118px) clamp(28px,6vw,96px) clamp(48px,7vh,82px);
    display:grid;
    grid-template-columns:minmax(0,.86fr) minmax(520px,1.14fr);
    gap:clamp(58px,7vw,112px);
    align-items:center;
  }

  .dd-recognition__intro{ max-width:620px; }

  .dd-next__eyebrow{
    margin:0 0 16px;
    color:var(--dd-teal);
    font-size:11px;
    line-height:1.2;
    font-weight:750;
    letter-spacing:.24em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }

  .dd-next__title{
    max-width:760px;
    margin:0;
    color:#102a38;
    font-family:var(--dd-serif);
    font-size:clamp(48px,5vw,78px);
    line-height:.96;
    font-weight:400;
    letter-spacing:-.047em;
    text-wrap:balance;
    opacity:0;
    transform:translateY(22px) scale(1.08);
    transform-origin:0 50%;
    filter:blur(7px);
    will-change:opacity,transform,filter;
  }

  .dd-recognition__lede{
    max-width:49ch;
    margin:clamp(24px,3.2vh,34px) 0 0;
    color:#607580;
    font-size:clamp(15px,1.2vw,18px);
    line-height:1.62;
    letter-spacing:-.01em;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }

  .dd-recognition__journey{
    --dd-journey-progress:0;
    position:relative;
    min-height:370px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-top:1px solid rgba(17,48,63,.10);
    border-bottom:1px solid rgba(17,48,63,.10);
    padding:42px 2px 36px;
  }

  .dd-recognition__caption{
    margin:0 0 64px;
    color:#8797a0;
    font-size:11px;
    font-weight:650;
    letter-spacing:.13em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(12px);
    filter:blur(5px);
    will-change:opacity,transform,filter;
  }

  .dd-recognition__track{
    position:relative;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0;
    min-height:122px;
  }

  .dd-recognition__rail,
  .dd-recognition__fill{
    position:absolute;
    top:17px;
    left:3%;
    right:3%;
    height:1px;
    transform-origin:0 50%;
    pointer-events:none;
  }
  .dd-recognition__rail{ background:#dfe7eb; }
  .dd-recognition__fill{
    background:linear-gradient(90deg,#369dbf,#79bdd3);
    transform:scaleX(var(--dd-journey-progress));
    box-shadow:0 0 14px rgba(54,157,191,.16);
    will-change:transform;
  }

  .dd-recognition__node{
    position:relative;
    z-index:1;
    padding-right:18px;
    opacity:.05;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-recognition__node:last-child{ padding-right:0; }

  .dd-recognition__dot{
    width:35px;
    height:35px;
    display:grid;
    place-items:center;
    margin:0 0 23px;
    border-radius:50%;
    border:1px solid #cbd8de;
    background:rgba(255,255,255,.94);
    color:#83949d;
    font-size:12px;
    font-weight:750;
    box-shadow:0 3px 14px rgba(21,56,72,.035);
    transition:border-color .25s ease,color .25s ease,background .25s ease,box-shadow .25s ease;
  }
  .dd-recognition__node:first-child .dd-recognition__dot{
    border-color:rgba(54,157,191,.48);
    color:#1e7897;
    background:#f5fbfd;
  }

  .dd-recognition__node-label{
    display:block;
    margin:0 0 7px;
    color:#17303c;
    font-size:clamp(14px,1.05vw,16px);
    line-height:1.25;
    font-weight:680;
    letter-spacing:-.018em;
  }
  .dd-recognition__node-note{
    display:block;
    max-width:17ch;
    color:#82929a;
    font-size:11px;
    line-height:1.45;
  }

  .dd-recognition__thought{
    margin:46px 0 0;
    padding-left:20px;
    border-left:2px solid rgba(54,157,191,.36);
    color:#24404d;
    font-family:var(--dd-serif);
    font-size:clamp(22px,2vw,31px);
    line-height:1.18;
    letter-spacing:-.026em;
    max-width:720px;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }

  @media (max-width: 1050px){
    .dd-next{ --dd-next-scroll:305; }
    .dd-next__inner{
      grid-template-columns:1fr;
      gap:clamp(40px,5vh,62px);
      padding:max(70px,env(safe-area-inset-top)) 34px 42px;
    }
    .dd-recognition__intro{ max-width:760px; }
    .dd-next__title{ max-width:900px; font-size:clamp(43px,6.7vw,68px); }
    .dd-recognition__journey{ min-height:330px; padding-top:34px; }
    .dd-recognition__caption{ margin-bottom:48px; }
  }

  @media (max-width: 600px){
    .dd-next{
      --dd-next-scroll:350;
      height:calc((var(--dd-next-scroll) + var(--dd-settle-len) + var(--dd-reframe-cover-len)) * 1vh + 100svh);
    }
    .dd-next__stage{ align-items:flex-start; }
    .dd-next__inner{
      gap:34px;
      padding:max(78px,calc(env(safe-area-inset-top) + 54px)) 20px 30px;
    }
    .dd-next__eyebrow{ font-size:9.5px; margin-bottom:12px; }
    .dd-next__title{
      font-size:clamp(38px,11.8vw,52px);
      line-height:.98;
      max-width:9.5em;
    }
    .dd-recognition__lede{ margin-top:20px; font-size:14px; line-height:1.55; max-width:36ch; }
    .dd-recognition__journey{
      min-height:420px;
      padding:25px 0 18px;
      border-bottom:0;
    }
    .dd-recognition__caption{ margin-bottom:26px; font-size:9.5px; }
    .dd-recognition__track{
      grid-template-columns:1fr;
      gap:0;
      min-height:292px;
      padding-left:3px;
    }
    .dd-recognition__rail,
    .dd-recognition__fill{
      top:15px;
      bottom:18px;
      left:17px;
      right:auto;
      width:1px;
      height:auto;
      transform-origin:50% 0;
    }
    .dd-recognition__fill{ transform:scaleY(var(--dd-journey-progress)); }
    .dd-recognition__node{
      min-height:72px;
      padding:0 0 13px 54px;
      display:block;
    }
    .dd-recognition__dot{
      position:absolute;
      left:0;
      top:0;
      width:34px;
      height:34px;
      margin:0;
    }
    .dd-recognition__node-label{ padding-top:2px; font-size:14px; }
    .dd-recognition__node-note{ max-width:30ch; font-size:10.5px; }
    .dd-recognition__thought{
      margin-top:20px;
      padding-left:15px;
      font-size:clamp(21px,6vw,27px);
      max-width:12em;
    }
  }

  @media (prefers-reduced-motion: reduce){
    .dd-next{ height:auto; margin-top:0; }
    .dd-next__stage{ position:relative; height:auto; overflow:visible; }
    .dd-next__eyebrow,
    .dd-next__title,
    .dd-recognition__lede,
    .dd-recognition__caption,
    .dd-recognition__node,
    .dd-recognition__thought{
      opacity:1 !important;
      transform:none !important;
      filter:none !important;
    }
    .dd-recognition__journey{ --dd-journey-progress:1 !important; }
  }



  /* ---------- Recognition -> Reframe foreground transition ---------- */

  .dd-next__dim{
    position:absolute;
    inset:0;
    z-index:4;
    background:rgba(3,14,20,.56);
    opacity:0;
    pointer-events:none;
    will-change:opacity;
  }

  /* Reframe is deliberately a new visual world: the light Recognition page
     stays pinned while this dark foreground sheet rises over it. */
  .dd-reframe{
    --dd-reframe-scroll:260;
    position:relative;
    z-index:8;
    margin-top:calc(var(--dd-reframe-cover-len) * -1vh);
    height:calc((var(--dd-reframe-scroll) + var(--dd-settle-len) + var(--dd-future-cover-len)) * 1vh + 100vh);
    color:#eef8fb;
    background:transparent;
  }
  .dd-reframe__stage{
    position:sticky;
    top:0;
    height:100vh;
    height:100svh;
    overflow:visible;
    display:flex;
    align-items:center;
    isolation:isolate;
    background:transparent;
  }
  .dd-reframe__surface{
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
    background:
      radial-gradient(circle at 78% 22%,rgba(54,157,191,.18),transparent 30%),
      radial-gradient(circle at 20% 88%,rgba(109,59,209,.10),transparent 38%),
      linear-gradient(150deg,#071821 0%,#0a2530 54%,#0b303c 100%);
    border-top:1px solid rgba(210,241,250,.08);
    box-shadow:0 -26px 70px rgba(0,0,0,.28);
    transform:translateZ(0);
  }
  .dd-reframe__surface::before{
    content:'';
    position:absolute;
    left:-2px;
    right:-2px;
    top:-19vh;
    height:26vh;
    background:#071821;
    transform:skewY(7.5deg);
    transform-origin:0 100%;
    box-shadow:0 -22px 54px rgba(0,0,0,.16);
  }
  .dd-reframe__surface::after{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(115deg,transparent 0 44%,rgba(255,255,255,.025) 50%,transparent 56% 100%);
    opacity:.55;
  }
  .dd-reframe__inner{
    position:relative;
    z-index:1;
    width:min(1440px,100%);
    margin:0 auto;
    padding:clamp(78px,10vh,118px) clamp(28px,6vw,96px) clamp(52px,7vh,82px);
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(540px,1.1fr);
    gap:clamp(64px,7.5vw,122px);
    align-items:center;
  }
  .dd-reframe__copy{ max-width:690px; }
  .dd-reframe__eyebrow{
    margin:0 0 17px;
    color:#72c5df;
    font-size:11px;
    line-height:1.2;
    font-weight:750;
    letter-spacing:.24em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-reframe__title{
    max-width:760px;
    margin:0;
    color:#f3fbfd;
    font-family:var(--dd-serif);
    font-size:clamp(50px,5.2vw,82px);
    line-height:.95;
    font-weight:400;
    letter-spacing:-.05em;
    text-wrap:balance;
    opacity:0;
    transform:translateY(24px) scale(1.08);
    transform-origin:0 50%;
    filter:blur(8px);
    will-change:opacity,transform,filter;
  }
  .dd-reframe__lede{
    max-width:50ch;
    margin:clamp(24px,3.2vh,36px) 0 0;
    color:#9fb5bf;
    font-size:clamp(15px,1.2vw,18px);
    line-height:1.62;
    letter-spacing:-.01em;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }

  .dd-reframe__visual{
    --dd-reframe-path:0;
    position:relative;
    min-height:390px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:46px 0 40px;
    border-top:1px solid rgba(219,242,248,.10);
    border-bottom:1px solid rgba(219,242,248,.10);
  }
  .dd-reframe__caption{
    margin:0 0 70px;
    color:#708a96;
    font-size:11px;
    line-height:1.2;
    font-weight:650;
    letter-spacing:.14em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(12px);
    filter:blur(5px);
    will-change:opacity,transform,filter;
  }
  .dd-reframe__path{
    position:relative;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    min-height:136px;
  }
  .dd-reframe__rail,
  .dd-reframe__fill{
    position:absolute;
    top:19px;
    left:4%;
    right:4%;
    height:1px;
    transform-origin:0 50%;
    pointer-events:none;
  }
  .dd-reframe__rail{ background:rgba(207,235,243,.16); }
  .dd-reframe__fill{
    background:linear-gradient(90deg,#4fb4d3,#99e2f1);
    transform:scaleX(var(--dd-reframe-path));
    box-shadow:0 0 20px rgba(79,180,211,.32);
    will-change:transform;
  }
  .dd-reframe__pulse{
    position:absolute;
    z-index:3;
    top:13px;
    left:4%;
    width:13px;
    height:13px;
    margin:-.5px 0 0 -6px;
    border-radius:50%;
    background:#d8f7ff;
    box-shadow:0 0 0 5px rgba(79,180,211,.12),0 0 28px rgba(130,226,247,.62);
    transform:translateX(calc(var(--dd-reframe-path) * 92%));
    opacity:calc(.15 + var(--dd-reframe-path) * .85);
    will-change:transform,opacity;
  }
  .dd-reframe__node{
    position:relative;
    z-index:2;
    padding-right:18px;
    opacity:.04;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-reframe__node:last-child{ padding-right:0; }
  .dd-reframe__dot{
    width:39px;
    height:39px;
    display:grid;
    place-items:center;
    margin:0 0 24px;
    border-radius:50%;
    border:1px solid rgba(205,236,244,.21);
    background:#0a2530;
    color:#8bb6c5;
    font-size:11px;
    font-weight:750;
    letter-spacing:.02em;
    box-shadow:0 6px 22px rgba(0,0,0,.12);
  }
  .dd-reframe__node-label{
    display:block;
    margin:0 0 7px;
    color:#edf8fb;
    font-size:clamp(14px,1.05vw,16px);
    line-height:1.25;
    font-weight:680;
    letter-spacing:-.018em;
  }
  .dd-reframe__node-note{
    display:block;
    max-width:18ch;
    color:#78919c;
    font-size:11px;
    line-height:1.48;
  }
  .dd-reframe__conclusion{
    margin:48px 0 0;
    color:#cde5ec;
    font-family:var(--dd-serif);
    font-size:clamp(23px,2vw,32px);
    line-height:1.17;
    letter-spacing:-.027em;
    max-width:650px;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-reframe__conclusion span{ color:#72c5df; }


  .dd-reframe__dim{
    position:absolute;
    inset:0;
    z-index:3;
    background:rgba(0,7,11,.54);
    opacity:0;
    pointer-events:none;
    will-change:opacity;
  }

  /* ---------- Reframe -> Future Possibility foreground transition ---------- */

  .dd-future{
    --dd-future-scroll:275;
    position:relative;
    z-index:12;
    margin-top:calc(var(--dd-future-cover-len) * -1vh);
    height:calc((var(--dd-future-scroll) + var(--dd-settle-len) + var(--dd-support-cover-len)) * 1vh + 100vh);
    color:#123544;
    background:transparent;
  }
  .dd-future__stage{
    position:sticky;
    top:0;
    height:100vh;
    height:100svh;
    overflow:visible;
    display:flex;
    align-items:center;
    isolation:isolate;
    background:transparent;
  }
  .dd-future__surface{
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
    background:
      radial-gradient(circle at 78% 18%,rgba(108,196,224,.28),transparent 31%),
      radial-gradient(circle at 18% 82%,rgba(179,221,237,.36),transparent 36%),
      linear-gradient(145deg,#f7fbfd 0%,#eef7fb 48%,#e8f4f9 100%);
    border-top:1px solid rgba(19,66,86,.07);
    box-shadow:0 -28px 74px rgba(0,18,26,.28);
    transform:translateZ(0);
  }
  .dd-future__surface::before{
    content:'';
    position:absolute;
    left:-2px;
    right:-2px;
    top:-19vh;
    height:27vh;
    background:#f4fafc;
    transform:skewY(-7deg);
    transform-origin:100% 100%;
    box-shadow:0 -24px 60px rgba(0,17,24,.18);
  }
  .dd-future__surface::after{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
      linear-gradient(112deg,transparent 0 42%,rgba(255,255,255,.64) 49%,transparent 57% 100%),
      radial-gradient(circle at 72% 46%,rgba(255,255,255,.62),transparent 24%);
    opacity:.55;
  }
  .dd-future__inner{
    position:relative;
    z-index:1;
    width:min(1440px,100%);
    margin:0 auto;
    padding:clamp(78px,10vh,118px) clamp(28px,6vw,96px) clamp(52px,7vh,82px);
    display:grid;
    grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);
    gap:clamp(58px,7vw,112px);
    align-items:center;
  }
  .dd-future__copy{ max-width:700px; }
  .dd-future__eyebrow{
    margin:0 0 17px;
    color:#2997b9;
    font-size:11px;
    line-height:1.2;
    font-weight:750;
    letter-spacing:.24em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-future__title{
    max-width:780px;
    margin:0;
    color:#113342;
    font-family:var(--dd-serif);
    font-size:clamp(50px,5.1vw,80px);
    line-height:.96;
    font-weight:400;
    letter-spacing:-.05em;
    text-wrap:balance;
    opacity:0;
    transform:translateY(24px) scale(1.08);
    transform-origin:0 50%;
    filter:blur(8px);
    will-change:opacity,transform,filter;
  }
  .dd-future__lede{
    max-width:52ch;
    margin:clamp(24px,3.2vh,36px) 0 0;
    color:#5f7d8b;
    font-size:clamp(15px,1.2vw,18px);
    line-height:1.62;
    letter-spacing:-.01em;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-future__visual{
    --dd-future-path:0;
    --dd-future-bloom:0;
    position:relative;
    min-height:430px;
    border-top:1px solid rgba(17,70,91,.10);
    border-bottom:1px solid rgba(17,70,91,.10);
    padding:42px 0 34px;
  }
  .dd-future__caption{
    margin:0 0 14px;
    color:#7693a0;
    font-size:11px;
    line-height:1.2;
    font-weight:650;
    letter-spacing:.14em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(12px);
    filter:blur(5px);
    will-change:opacity,transform,filter;
  }
  .dd-future__network{
    position:relative;
    height:310px;
    max-width:650px;
    margin:0 auto;
  }
  .dd-future__svg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    overflow:visible;
  }
  .dd-future__stroke{
    fill:none;
    stroke:#65b8d1;
    stroke-width:1.5;
    vector-effect:non-scaling-stroke;
    pathLength:1;
    stroke-dasharray:1;
    stroke-dashoffset:calc(1 - var(--dd-future-path));
    opacity:.72;
    filter:drop-shadow(0 0 7px rgba(54,157,191,.18));
    will-change:stroke-dashoffset;
  }
  .dd-future__halo{
    position:absolute;
    left:50%;
    top:53%;
    width:156px;
    height:156px;
    margin:-78px 0 0 -78px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(89,190,220,.20),rgba(89,190,220,.065) 48%,transparent 72%);
    transform:scale(calc(.56 + var(--dd-future-bloom) * .44));
    opacity:var(--dd-future-bloom);
    will-change:transform,opacity;
  }
  .dd-future__center{
    position:absolute;
    left:50%;
    top:53%;
    width:116px;
    height:116px;
    margin:-58px 0 0 -58px;
    border-radius:50%;
    display:grid;
    place-items:center;
    text-align:center;
    padding:16px;
    background:rgba(255,255,255,.78);
    border:1px solid rgba(32,121,151,.18);
    box-shadow:0 18px 45px -28px rgba(25,101,128,.52),0 0 0 10px rgba(255,255,255,.24);
    color:#1c5f77;
    font-family:var(--dd-serif);
    font-size:18px;
    line-height:1.05;
    letter-spacing:-.025em;
    opacity:0;
    transform:translateY(16px) scale(.92);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-future__node{
    position:absolute;
    min-width:150px;
    max-width:180px;
    padding:14px 16px;
    border-radius:18px;
    background:rgba(255,255,255,.66);
    border:1px solid rgba(29,91,115,.10);
    -webkit-backdrop-filter:blur(14px) saturate(120%);
    backdrop-filter:blur(14px) saturate(120%);
    box-shadow:0 20px 45px -36px rgba(16,68,88,.6);
    opacity:.04;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-future__node--office{ left:0; top:51%; transform:translateY(-50%); }
  .dd-future__node--patient{ left:50%; top:5%; transform:translateX(-50%); }
  .dd-future__node--specialist{ right:0; top:51%; transform:translateY(-50%); }
  .dd-future__node-label{
    display:block;
    color:#173e4e;
    font-size:14px;
    line-height:1.2;
    font-weight:700;
    letter-spacing:-.018em;
  }
  .dd-future__node-note{
    display:block;
    margin-top:5px;
    color:#78909b;
    font-size:10.5px;
    line-height:1.42;
  }
  .dd-future__conclusion{
    margin:28px 0 0;
    max-width:620px;
    color:#315f72;
    font-family:var(--dd-serif);
    font-size:clamp(23px,2vw,31px);
    line-height:1.18;
    letter-spacing:-.028em;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-future__conclusion span{ color:#2997b9; }

  /* Once the light Future Possibility layer reaches the top,restore the
     persistent chrome to its light-page treatment even though Reframe remains
     underneath it in the document. */
  body.dd-on-future-light:not(.dd-menu-open) .dd-site-logo img{ filter:none; }
  body.dd-on-future-light:not(.dd-menu-open) .dd-site-nav__link{
    color:#11303f;
    background:rgba(255,255,255,.76);
    border-color:rgba(16,48,63,.10);
  }
  body.dd-on-future-light:not(.dd-menu-open) .dd-site-nav__link--contact{
    color:#fff;
    background:#123544;
    border-color:#123544;
  }
  

  @media (max-width:1050px){
    .dd-future{ --dd-future-scroll:300; }
    .dd-future__inner{
      grid-template-columns:1fr;
      gap:clamp(34px,5vh,56px);
      padding:max(72px,env(safe-area-inset-top)) 34px 42px;
    }
    .dd-future__copy{ max-width:850px; }
    .dd-future__title{ max-width:900px; font-size:clamp(44px,6.8vw,70px); }
    .dd-future__visual{ min-height:360px; padding-top:28px; }
  }

  @media (max-width:600px){
    .dd-future{
      --dd-future-scroll:350;
      height:calc((var(--dd-future-scroll) + var(--dd-settle-len) + var(--dd-support-cover-len)) * 1vh + 100svh);
    }
    .dd-future__stage{ align-items:flex-start; }
    .dd-future__inner{
      gap:28px;
      padding:max(80px,calc(env(safe-area-inset-top) + 56px)) 20px 28px;
    }
    .dd-future__eyebrow{ font-size:9.5px; margin-bottom:12px; }
    .dd-future__title{
      font-size:clamp(39px,11.7vw,53px);
      line-height:.97;
      max-width:9em;
    }
    .dd-future__lede{ margin-top:20px; font-size:14px; line-height:1.55; max-width:36ch; }
    .dd-future__visual{ min-height:455px; padding:24px 0 14px; border-bottom:0; }
    .dd-future__caption{ font-size:9.5px; }
    .dd-future__network{ height:350px; max-width:340px; }
    .dd-future__svg{ opacity:.9; }
    .dd-future__halo{ top:53%; width:132px; height:132px; margin:-66px 0 0 -66px; }
    .dd-future__center{ top:53%; width:100px; height:100px; margin:-50px 0 0 -50px; font-size:16px; }
    .dd-future__node{ min-width:124px; max-width:145px; padding:11px 12px; border-radius:15px; }
    .dd-future__node--office{ left:0; top:55%; }
    .dd-future__node--patient{ top:2%; }
    .dd-future__node--specialist{ right:0; top:55%; }
    .dd-future__node-label{ font-size:12.5px; }
    .dd-future__node-note{ font-size:9.5px; }
    .dd-future__conclusion{ margin-top:18px; font-size:clamp(21px,6vw,27px); max-width:13em; }
  }

  @media (prefers-reduced-motion:reduce){
    .dd-future{ height:auto; margin-top:0; }
    .dd-future__stage{ position:relative; height:auto; overflow:visible; }
    .dd-future__eyebrow,
    .dd-future__title,
    .dd-future__lede,
    .dd-future__caption,
    .dd-future__node,
    .dd-future__center,
    .dd-future__conclusion{
      opacity:1 !important;
      transform:none !important;
      filter:none !important;
    }
    .dd-future__visual{ --dd-future-path:1 !important; --dd-future-bloom:1 !important; }
  }


  /* ---------- Future Possibility -> Support Model foreground transition ---------- */

  .dd-future__dim{
    position:absolute;
    inset:0;
    z-index:4;
    background:rgba(2,20,29,.62);
    opacity:0;
    pointer-events:none;
    will-change:opacity;
  }

  .dd-support{
    --dd-support-scroll:315;
    position:relative;
    z-index:14;
    margin-top:calc(var(--dd-support-cover-len) * -1vh);
    height:calc((var(--dd-support-scroll) + var(--dd-settle-len) + var(--dd-trust-cover-len)) * 1vh + 100vh);
    color:#effbff;
    background:transparent;
  }
  .dd-support__stage{
    position:sticky;
    top:0;
    height:100vh;
    height:100svh;
    overflow:visible;
    display:flex;
    align-items:center;
    isolation:isolate;
    background:transparent;
  }
  .dd-support__surface{
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
    background:
      radial-gradient(circle at 78% 20%,rgba(38,141,177,.16),transparent 30%),
      radial-gradient(circle at 18% 86%,rgba(76,190,215,.08),transparent 34%),
      linear-gradient(145deg,#071923 0%,#09222e 49%,#07161f 100%);
    border-top:1px solid rgba(184,235,248,.08);
    box-shadow:0 -34px 90px rgba(0,8,13,.48);
    transform:translateZ(0);
  }
  .dd-support__surface::before{
    content:'';
    position:absolute;
    left:-2px;
    right:-2px;
    top:-19vh;
    height:28vh;
    background:#081c27;
    transform:skewY(7deg);
    transform-origin:0 100%;
    box-shadow:0 -26px 64px rgba(0,8,13,.34);
  }
  .dd-support__surface::after{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.55;
    background:
      linear-gradient(112deg,transparent 0 42%,rgba(87,188,218,.055) 50%,transparent 58% 100%),
      radial-gradient(circle at 70% 48%,rgba(70,178,208,.08),transparent 24%);
  }
  .dd-support__inner{
    position:relative;
    z-index:1;
    width:min(1440px,100%);
    margin:0 auto;
    padding:clamp(78px,10vh,116px) clamp(28px,6vw,96px) clamp(48px,7vh,80px);
    display:grid;
    grid-template-columns:minmax(0,.78fr) minmax(560px,1.22fr);
    gap:clamp(52px,7vw,108px);
    align-items:center;
  }
  .dd-support__copy{ max-width:610px; }
  .dd-support__eyebrow{
    margin:0 0 17px;
    color:#72cce3;
    font-size:11px;
    line-height:1.2;
    font-weight:750;
    letter-spacing:.24em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-support__title{
    max-width:720px;
    margin:0;
    color:#f1fbfd;
    font-family:var(--dd-serif);
    font-size:clamp(49px,5vw,78px);
    line-height:.97;
    font-weight:400;
    letter-spacing:-.05em;
    text-wrap:balance;
    opacity:0;
    transform:translateY(26px) scale(1.09);
    transform-origin:0 50%;
    filter:blur(9px);
    will-change:opacity,transform,filter;
  }
  .dd-support__lede{
    max-width:51ch;
    margin:clamp(24px,3.2vh,36px) 0 0;
    color:#9bb8c3;
    font-size:clamp(15px,1.2vw,18px);
    line-height:1.62;
    letter-spacing:-.01em;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-support__principle{
    margin:clamp(34px,4.2vh,48px) 0 0;
    padding-top:20px;
    border-top:1px solid rgba(193,235,245,.12);
    color:#6e909d;
    font-size:11px;
    line-height:1.55;
    letter-spacing:.08em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(14px);
    filter:blur(5px);
    will-change:opacity,transform,filter;
  }

  .dd-support__experience{
    position:relative;
    min-height:520px;
    display:grid;
    grid-template-columns:210px minmax(0,1fr);
    gap:28px;
    align-items:stretch;
    padding:26px;
    border:1px solid rgba(189,231,243,.11);
    border-radius:30px;
    background:rgba(7,28,39,.54);
    -webkit-backdrop-filter:blur(22px) saturate(115%);
    backdrop-filter:blur(22px) saturate(115%);
    box-shadow:0 36px 90px -50px rgba(0,0,0,.86),inset 0 1px 0 rgba(255,255,255,.035);
    overflow:hidden;
  }
  .dd-support__experience::before{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(135deg,rgba(104,210,235,.05),transparent 38%,rgba(255,255,255,.015));
  }
  .dd-support__chapters{
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:7px;
  }
  .dd-support__chapter{
    position:relative;
    padding:18px 16px 18px 18px;
    border-radius:17px;
    border:1px solid transparent;
    opacity:.27;
    transform:translateX(10px);
    filter:blur(1.8px);
    transition:border-color .2s linear,background .2s linear;
    will-change:opacity,transform,filter;
  }
  .dd-support__chapter::before{
    content:'';
    position:absolute;
    left:0;
    top:18px;
    bottom:18px;
    width:1px;
    background:rgba(102,199,226,.16);
  }
  .dd-support__chapter.dd-is-active{
    background:rgba(96,190,216,.07);
    border-color:rgba(127,213,235,.10);
  }
  .dd-support__chapter.dd-is-active::before{
    width:2px;
    background:#70cce5;
    box-shadow:0 0 12px rgba(112,204,229,.28);
  }
  .dd-support__chapter-kicker{
    display:block;
    color:#6b95a4;
    font-size:9px;
    line-height:1.2;
    font-weight:750;
    letter-spacing:.16em;
    text-transform:uppercase;
  }
  .dd-support__chapter-title{
    display:block;
    margin-top:6px;
    color:#e8f8fb;
    font-size:15px;
    line-height:1.2;
    font-weight:700;
    letter-spacing:-.018em;
  }
  .dd-support__chapter-note{
    display:block;
    margin-top:6px;
    color:#7697a4;
    font-size:10.5px;
    line-height:1.45;
  }

  .dd-support__evidence{
    position:relative;
    z-index:1;
    min-height:466px;
    border-radius:22px;
    overflow:hidden;
    border:1px solid rgba(184,230,242,.09);
    background:linear-gradient(155deg,rgba(11,39,52,.86),rgba(7,24,33,.94));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
  }
  .dd-support__evidence-head{
    position:absolute;
    z-index:5;
    left:20px;
    right:20px;
    top:17px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    color:#7097a5;
    font-size:9.5px;
    letter-spacing:.13em;
    text-transform:uppercase;
  }
  .dd-support__evidence-live{
    display:inline-flex;
    align-items:center;
    gap:7px;
  }
  .dd-support__evidence-live::before{
    content:'';
    width:6px;
    height:6px;
    border-radius:50%;
    background:#65cae4;
    box-shadow:0 0 0 4px rgba(101,202,228,.08),0 0 14px rgba(101,202,228,.28);
  }
  .dd-support__scene{
    position:absolute;
    inset:56px 20px 20px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    opacity:0;
    transform:translateY(20px) scale(.985);
    filter:blur(7px);
    pointer-events:none;
    will-change:opacity,transform,filter;
  }
  .dd-support__scene-title{
    margin:0 0 8px;
    color:#dff6fb;
    font-family:var(--dd-serif);
    font-size:clamp(24px,2vw,31px);
    font-weight:400;
    letter-spacing:-.03em;
  }
  .dd-support__scene-sub{
    margin:0 0 28px;
    max-width:44ch;
    color:#7699a6;
    font-size:11px;
    line-height:1.5;
  }

  .dd-support__status-flow{ display:grid; gap:12px; }
  .dd-support__status{
    display:grid;
    grid-template-columns:18px minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    padding:13px 14px;
    border-radius:14px;
    border:1px solid rgba(175,225,238,.08);
    background:rgba(255,255,255,.025);
  }
  .dd-support__status-dot{
    width:9px;
    height:9px;
    border-radius:50%;
    background:#66cbe4;
    box-shadow:0 0 0 5px rgba(102,203,228,.07);
  }
  .dd-support__status-label{ color:#ccebf2; font-size:12px; font-weight:650; }
  .dd-support__status-meta{ color:#648b9a; font-size:9.5px; }

  .dd-support__continuity{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .dd-support__continuity-card{
    min-height:120px;
    padding:16px;
    border-radius:16px;
    border:1px solid rgba(183,228,240,.08);
    background:rgba(255,255,255,.025);
  }
  .dd-support__continuity-card--wide{ grid-column:1/-1; min-height:100px; }
  .dd-support__mini-label{ color:#648d9b; font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
  .dd-support__mini-value{ margin-top:10px; color:#e5f8fc; font-family:var(--dd-serif); font-size:22px; letter-spacing:-.025em; }
  .dd-support__mini-note{ margin-top:7px; color:#7194a2; font-size:8px; line-height:1.45; }
  .dd-support__context-line{ margin-top:15px; height:1px; background:linear-gradient(90deg,#66cbe4,rgba(102,203,228,.06)); }

  .dd-support__analytics{
    display:grid;
    grid-template-columns:minmax(0,1.3fr) minmax(150px,.7fr);
    gap:16px;
    align-items:stretch;
  }
  .dd-support__chart,
  .dd-support__metric-stack{
    border-radius:16px;
    border:1px solid rgba(183,228,240,.08);
    background:rgba(255,255,255,.025);
  }
  .dd-support__chart{ padding:17px 16px 14px; min-height:220px; }
  .dd-support__bars{ height:140px; display:flex; align-items:flex-end; gap:10px; padding-top:22px; }
  .dd-support__bar{
    flex:1;
    min-width:8px;
    border-radius:7px 7px 2px 2px;
    background:linear-gradient(180deg,#6ccde5,rgba(74,159,184,.22));
    transform-origin:50% 100%;
    box-shadow:0 0 18px rgba(84,185,211,.05);
  }
  .dd-support__metric-stack{ display:grid; grid-template-rows:1fr 1fr; overflow:hidden; }
  .dd-support__metric{ padding:17px; }
  .dd-support__metric + .dd-support__metric{ border-top:1px solid rgba(183,228,240,.07); }
  .dd-support__metric strong{ display:block; color:#def5fa; font-family:var(--dd-serif); font-size:28px; font-weight:400; }
  .dd-support__metric span{ display:block; margin-top:5px; color:#658d9c; font-size:9.5px; line-height:1.4; }

  .dd-support__conclusion{
    margin:28px 0 0;
    max-width:600px;
    color:#9fc3ce;
    font-family:var(--dd-serif);
    font-size:clamp(23px,2vw,31px);
    line-height:1.18;
    letter-spacing:-.028em;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-support__conclusion span{ color:#70cce5; }

  body.dd-on-support-dark:not(.dd-menu-open) .dd-site-logo img{ filter:brightness(0) invert(1); }
  body.dd-on-support-dark:not(.dd-menu-open) .dd-site-nav__link{
    color:#eef8fb;
    background:rgba(8,29,39,.56);
    border-color:rgba(220,244,250,.14);
  }
  body.dd-on-support-dark:not(.dd-menu-open) .dd-site-nav__link--contact{
    color:#061820;
    background:#8bd8ec;
    border-color:#8bd8ec;
  }
  

  @media (max-width:1050px){
    .dd-support{ --dd-support-scroll:350; }
    .dd-support__inner{
      grid-template-columns:1fr;
      gap:34px;
      padding:max(76px,env(safe-area-inset-top)) 34px 40px;
    }
    .dd-support__copy{ max-width:850px; }
    .dd-support__title{ max-width:920px; font-size:clamp(44px,6.7vw,70px); }
    .dd-support__experience{ min-height:440px; grid-template-columns:190px minmax(0,1fr); }
    .dd-support__evidence{ min-height:385px; }
  }

  @media (max-width:600px){
    .dd-support{
      --dd-support-scroll:430;
      height:calc((var(--dd-support-scroll) + var(--dd-settle-len) + var(--dd-trust-cover-len)) * 1vh + 100svh);
    }
    .dd-support__stage{ align-items:flex-start; }
    .dd-support__inner{
      gap:26px;
      padding:max(82px,calc(env(safe-area-inset-top) + 58px)) 18px 28px;
    }
    .dd-support__eyebrow{ font-size:9.5px; margin-bottom:12px; }
    .dd-support__title{ font-size:clamp(38px,11.5vw,52px); line-height:.98; max-width:9em; }
    .dd-support__lede{ margin-top:19px; font-size:14px; line-height:1.55; max-width:36ch; }
    .dd-support__principle{ display:none; }
    .dd-support__experience{
      min-height:545px;
      grid-template-columns:1fr;
      grid-template-rows:auto minmax(0,1fr);
      gap:14px;
      padding:14px;
      border-radius:23px;
    }
    .dd-support__chapters{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:5px;
    }
    .dd-support__chapter{ padding:10px 8px; min-width:0; transform:none; }
    .dd-support__chapter::before{ left:8px; right:8px; top:auto; bottom:0; width:auto; height:1px; }
    .dd-support__chapter.dd-is-active::before{ width:auto; height:2px; }
    .dd-support__chapter-kicker{ font-size:7.5px; letter-spacing:.12em; }
    .dd-support__chapter-title{ margin-top:4px; font-size:10.5px; line-height:1.15; }
    .dd-support__chapter-note{ display:none; }
    .dd-support__evidence{ min-height:380px; border-radius:17px; }
    .dd-support__evidence-head{ left:14px; right:14px; top:13px; font-size:8px; }
    .dd-support__scene{ inset:46px 14px 14px; }
    .dd-support__scene-title{ font-size:24px; }
    .dd-support__scene-sub{ margin-bottom:18px; font-size:9.5px; }
    .dd-support__status{ grid-template-columns:16px minmax(0,1fr); padding:11px 12px; }
    .dd-support__status-meta{ display:none; }
    .dd-support__continuity{ grid-template-columns:1fr 1fr; gap:8px; }
    .dd-support__continuity-card{ min-height:104px; padding:12px; }
    .dd-support__mini-value{ font-size:18px; }
    .dd-support__mini-note{ font-size:8.8px; }
    .dd-support__analytics{ grid-template-columns:1fr; gap:8px; }
    .dd-support__chart{ min-height:178px; padding:13px; }
    .dd-support__bars{ height:105px; gap:6px; }
    .dd-support__metric-stack{ grid-template-columns:1fr 1fr; grid-template-rows:auto; }
    .dd-support__metric + .dd-support__metric{ border-top:0; border-left:1px solid rgba(183,228,240,.07); }
    .dd-support__metric{ padding:12px; }
    .dd-support__metric strong{ font-size:22px; }
    .dd-support__conclusion{ margin-top:16px; font-size:clamp(21px,6vw,27px); max-width:13em; }
  }

  @media (prefers-reduced-motion:reduce){
    .dd-support{ height:auto; margin-top:0; }
    .dd-support__stage{ position:relative; height:auto; overflow:visible; }
    .dd-support__eyebrow,
    .dd-support__title,
    .dd-support__lede,
    .dd-support__principle,
    .dd-support__chapter,
    .dd-support__scene,
    .dd-support__conclusion{
      opacity:1 !important;
      transform:none !important;
      filter:none !important;
    }
    .dd-support__scene{ position:relative; inset:auto; display:none; }
    .dd-support__scene:first-of-type{ display:flex; }
  }


  /* ---------- Support Model -> Trust Reinforcement foreground transition ---------- */

  .dd-support__dim{
    position:absolute;
    inset:0;
    z-index:4;
    background:rgba(0,8,13,.68);
    opacity:0;
    pointer-events:none;
    will-change:opacity;
  }

  .dd-trust{
    --dd-trust-scroll:235;
    position:relative;
    z-index:16;
    margin-top:calc(var(--dd-trust-cover-len) * -1vh);
    height:calc((var(--dd-trust-scroll) + var(--dd-settle-len) + var(--dd-demo-cover-len)) * 1vh + 100vh);
    color:#102d3a;
    background:transparent;
  }
  .dd-trust__stage{
    position:sticky;
    top:0;
    height:100vh;
    height:100svh;
    overflow:visible;
    display:flex;
    align-items:center;
    isolation:isolate;
    background:transparent;
  }
  .dd-trust__surface{
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
    background:
      radial-gradient(circle at 76% 16%,rgba(143,210,228,.18),transparent 31%),
      radial-gradient(circle at 18% 82%,rgba(177,220,229,.18),transparent 34%),
      linear-gradient(145deg,#f5fafb 0%,#eef6f8 56%,#f8fbfc 100%);
    border-top:1px solid rgba(18,68,84,.06);
    box-shadow:0 -34px 90px rgba(1,16,23,.22);
  }
  .dd-trust__surface::before{
    content:'';
    position:absolute;
    left:-2px;
    right:-2px;
    top:-18vh;
    height:27vh;
    background:#f3f9fa;
    transform:skewY(-6.5deg);
    transform-origin:100% 100%;
    box-shadow:0 -24px 60px rgba(2,23,31,.12);
  }
  .dd-trust__surface::after{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.55;
    background:linear-gradient(112deg,transparent 0 40%,rgba(42,135,163,.045) 49%,transparent 58% 100%);
  }
  .dd-trust__inner{
    position:relative;
    z-index:1;
    width:min(1360px,100%);
    margin:0 auto;
    padding:clamp(80px,10vh,116px) clamp(30px,7vw,104px) clamp(54px,7vh,84px);
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(500px,1.1fr);
    gap:clamp(70px,9vw,136px);
    align-items:center;
  }
  .dd-trust__copy{ max-width:650px; }
  .dd-trust__eyebrow{
    margin:0 0 17px;
    color:#2d99b9;
    font-size:11px;
    line-height:1.2;
    font-weight:750;
    letter-spacing:.24em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-trust__title{
    margin:0;
    max-width:760px;
    color:#113340;
    font-family:var(--dd-serif);
    font-size:clamp(50px,5vw,80px);
    line-height:.98;
    font-weight:400;
    letter-spacing:-.05em;
    text-wrap:balance;
    opacity:0;
    transform:translateY(28px) scale(1.12);
    transform-origin:0 50%;
    filter:blur(10px);
    will-change:opacity,transform,filter;
  }
  .dd-trust__lede{
    margin:clamp(24px,3.2vh,36px) 0 0;
    max-width:52ch;
    color:#5f7d88;
    font-size:clamp(15px,1.2vw,18px);
    line-height:1.65;
    letter-spacing:-.01em;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-trust__evidence{
    position:relative;
    padding:clamp(28px,4vw,46px);
    border-radius:32px;
    border:1px solid rgba(33,104,126,.11);
    background:rgba(255,255,255,.62);
    -webkit-backdrop-filter:blur(22px) saturate(118%);
    backdrop-filter:blur(22px) saturate(118%);
    box-shadow:0 34px 90px -54px rgba(12,51,65,.32),inset 0 1px 0 rgba(255,255,255,.9);
    overflow:hidden;
  }
  .dd-trust__evidence::before{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(145deg,rgba(70,163,191,.055),transparent 34%,rgba(255,255,255,.18));
  }
  .dd-trust__evidence-head{
    position:relative;
    z-index:1;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    padding-bottom:20px;
    border-bottom:1px solid rgba(31,92,111,.10);
    color:#77929b;
    font-size:9.5px;
    letter-spacing:.14em;
    text-transform:uppercase;
  }
  .dd-trust__mark{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:#2c879f;
  }
  .dd-trust__mark::before{
    content:'';
    width:7px;
    height:7px;
    border-radius:50%;
    background:#49abc6;
    box-shadow:0 0 0 5px rgba(73,171,198,.09);
  }
  .dd-trust__rows{ position:relative; z-index:1; }
  .dd-trust__row{
    display:grid;
    grid-template-columns:58px minmax(0,1fr) auto;
    gap:18px;
    align-items:center;
    padding:25px 0;
    border-bottom:1px solid rgba(31,92,111,.085);
    opacity:.20;
    transform:translateY(16px);
    filter:blur(4px);
    will-change:opacity,transform,filter;
  }
  .dd-trust__row:last-child{ border-bottom:0; }
  .dd-trust__row-index{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:50%;
    border:1px solid rgba(43,128,153,.14);
    color:#3b91aa;
    background:rgba(255,255,255,.58);
    font-size:8px;
    font-weight:760;
    letter-spacing:.08em;
  }
  .dd-trust__row-copy strong{
    display:block;
    color:#173a47;
    font-family:var(--dd-serif);
    font-size:clamp(22px,2vw,30px);
    font-weight:400;
    letter-spacing:-.03em;
  }
  .dd-trust__row-copy span{
    display:block;
    margin-top:5px;
    max-width:48ch;
    color:#738b94;
    font-size:10.5px;
    line-height:1.5;
  }
  .dd-trust__row-state{
    color:#5b8a98;
    font-size:9px;
    font-weight:760;
    letter-spacing:.12em;
    text-transform:uppercase;
    white-space:nowrap;
  }
  .dd-trust__note{
    position:relative;
    z-index:1;
    margin:22px 0 0;
    color:#82979e;
    font-size:9px;
    line-height:1.5;
    letter-spacing:.02em;
    opacity:0;
    transform:translateY(10px);
    filter:blur(4px);
    will-change:opacity,transform,filter;
  }
  .dd-trust__conclusion{
    margin:clamp(32px,4vh,46px) 0 0;
    max-width:640px;
    color:#3f6f7d;
    font-family:var(--dd-serif);
    font-size:clamp(24px,2.1vw,33px);
    line-height:1.17;
    letter-spacing:-.03em;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-trust__conclusion span{ color:#278dac; }

  body.dd-on-trust-light:not(.dd-menu-open) .dd-site-logo img{ filter:none; }
  body.dd-on-trust-light:not(.dd-menu-open) .dd-site-nav__link{
    color:#173744;
    background:rgba(244,250,251,.74);
    border-color:rgba(26,78,95,.10);
  }
  body.dd-on-trust-light:not(.dd-menu-open) .dd-site-nav__link--contact{
    color:#eefbff;
    background:#123746;
    border-color:#123746;
  }
  

  @media (max-width:1050px){
    .dd-trust{ --dd-trust-scroll:260; }
    .dd-trust__inner{
      grid-template-columns:1fr;
      gap:36px;
      padding:max(78px,env(safe-area-inset-top)) 34px 42px;
    }
    .dd-trust__copy{ max-width:850px; }
    .dd-trust__title{ max-width:920px; font-size:clamp(44px,6.8vw,70px); }
    .dd-trust__evidence{ max-width:920px; }
  }

  @media (max-width:600px){
    .dd-trust{
      --dd-trust-scroll:315;
      height:calc((var(--dd-trust-scroll) + var(--dd-settle-len) + var(--dd-demo-cover-len)) * 1vh + 100svh);
    }
    .dd-trust__stage{ align-items:flex-start; }
    .dd-trust__inner{
      gap:26px;
      padding:max(82px,calc(env(safe-area-inset-top) + 58px)) 18px 30px;
    }
    .dd-trust__eyebrow{ font-size:9.5px; margin-bottom:12px; }
    .dd-trust__title{ font-size:clamp(39px,11.4vw,52px); max-width:9.4em; line-height:.98; }
    .dd-trust__lede{ margin-top:19px; font-size:14px; line-height:1.55; max-width:36ch; }
    .dd-trust__evidence{ padding:18px 16px; border-radius:23px; }
    .dd-trust__evidence-head{ font-size:8px; padding-bottom:14px; }
    .dd-trust__row{ grid-template-columns:44px minmax(0,1fr); gap:12px; padding:18px 0; }
    .dd-trust__row-index{ width:34px; height:34px; }
    .dd-trust__row-copy strong{ font-size:22px; }
    .dd-trust__row-copy span{ font-size:9px; }
    .dd-trust__row-state{ display:none; }
    .dd-trust__note{ margin-top:16px; font-size:8px; }
    .dd-trust__conclusion{ margin-top:18px; font-size:clamp(21px,6vw,28px); max-width:13em; }
  }

  @media (prefers-reduced-motion:reduce){
    .dd-trust{ height:auto; margin-top:0; }
    .dd-trust__stage{ position:relative; height:auto; overflow:visible; }
    .dd-trust__eyebrow,
    .dd-trust__title,
    .dd-trust__lede,
    .dd-trust__row,
    .dd-trust__note,
    .dd-trust__conclusion{
      opacity:1 !important;
      transform:none !important;
      filter:none !important;
    }
  }

  /* Persistent chrome changes tone only when the dark page has essentially
     reached the top edge,avoiding a premature white logo over the light page. */


  /* ---------- Trust Reinforcement -> Demonstration Invitation foreground transition ---------- */
  .dd-trust__dim{
    position:absolute;
    inset:0;
    z-index:4;
    background:rgba(8,26,34,.58);
    opacity:0;
    pointer-events:none;
    will-change:opacity;
  }

  .dd-demo{
    --dd-demo-scroll:175;
    position:relative;
    z-index:20;
    margin-top:calc(var(--dd-demo-cover-len) * -1vh);
    height:calc((var(--dd-demo-scroll) + var(--dd-settle-len) + var(--dd-faq-cover-len)) * 1vh + 100vh);
    color:#effbff;
    background:transparent;
  }
  .dd-demo__stage{
    position:sticky;
    top:0;
    height:100vh;
    height:100svh;
    overflow:visible;
    display:grid;
    place-items:center;
    isolation:isolate;
    background:transparent;
  }
  .dd-demo__surface{
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
    background:
      radial-gradient(circle at 50% 34%,rgba(73,171,198,.19),transparent 30%),
      radial-gradient(circle at 82% 76%,rgba(29,115,142,.14),transparent 35%),
      linear-gradient(155deg,#071c25 0%,#0b2e3a 55%,#061820 100%);
    box-shadow:0 -38px 100px rgba(3,17,23,.32);
  }
  .dd-demo__surface::before{
    content:'';
    position:absolute;
    left:-2px;
    right:-2px;
    top:-18vh;
    height:27vh;
    background:#0a2934;
    transform:skewY(-6.5deg);
    transform-origin:100% 100%;
    box-shadow:0 -22px 70px rgba(3,18,25,.22);
  }
  .dd-demo__surface::after{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
      linear-gradient(110deg,transparent 0 44%,rgba(135,218,239,.045) 51%,transparent 59% 100%),
      radial-gradient(circle at 50% 50%,transparent 0 32%,rgba(0,7,10,.18) 100%);
  }
  .dd-demo__inner{
    position:relative;
    z-index:1;
    width:min(1040px,calc(100% - 48px));
    margin:0 auto;
    padding:clamp(90px,12vh,128px) 0 clamp(58px,8vh,82px);
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  .dd-demo__eyebrow{
    margin:0 0 20px;
    color:#76cce3;
    font-size:10.5px;
    line-height:1.2;
    font-weight:750;
    letter-spacing:.24em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-demo__title{
    margin:0;
    max-width:920px;
    color:#f1fbfd;
    font-family:var(--dd-serif);
    font-size:clamp(58px,6.3vw,100px);
    line-height:.94;
    font-weight:400;
    letter-spacing:-.055em;
    text-wrap:balance;
    opacity:.02;
    transform:translateY(36px) scale(1.14);
    filter:blur(11px);
    will-change:opacity,transform,filter;
  }
  .dd-demo__lede{
    margin:clamp(26px,3.6vh,38px) auto 0;
    max-width:54ch;
    color:#a9c4cd;
    font-size:clamp(15px,1.25vw,18px);
    line-height:1.68;
    letter-spacing:-.01em;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-demo__cta{
    position:relative;
    margin-top:clamp(32px,4.4vh,48px);
    min-width:230px;
    padding:17px 28px;
    border-radius:999px;
    border:1px solid rgba(176,229,242,.34);
    background:#7ed4e9;
    color:#06202a;
    font-size:14px;
    font-weight:760;
    letter-spacing:-.01em;
    text-decoration:none;
    box-shadow:0 18px 45px -24px rgba(111,216,239,.66),inset 0 1px 0 rgba(255,255,255,.45);
    opacity:0;
    transform:translateY(18px) scale(.96);
    filter:blur(6px);
    will-change:opacity,transform,filter;
    transition:background .25s ease,transform .25s ease,box-shadow .25s ease;
  }
  .dd-demo__cta:hover{
    background:#98e0ef;
    transform:translateY(-2px) scale(1.01) !important;
    box-shadow:0 22px 54px -24px rgba(111,216,239,.75),inset 0 1px 0 rgba(255,255,255,.5);
  }
  .dd-demo__microcopy{
    margin:17px 0 0;
    color:#7097a3;
    font-size:9px;
    line-height:1.5;
    letter-spacing:.06em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(10px);
    filter:blur(4px);
    will-change:opacity,transform,filter;
  }
  .dd-demo__rule{
    width:1px;
    height:clamp(42px,7vh,72px);
    margin-top:clamp(34px,5vh,58px);
    background:linear-gradient(to bottom,rgba(125,207,227,.5),transparent);
    transform-origin:top;
    transform:scaleY(0);
    opacity:0;
    will-change:opacity,transform;
  }

  body.dd-on-demo-dark:not(.dd-menu-open) .dd-site-logo img{ filter:brightness(0) invert(1); }
  body.dd-on-demo-dark:not(.dd-menu-open) .dd-site-nav__link{
    color:#e9f7fa;
    background:rgba(5,27,36,.52);
    border-color:rgba(217,242,248,.14);
  }
  body.dd-on-demo-dark:not(.dd-menu-open) .dd-site-nav__link--contact{
    color:#06202a;
    background:#87d8eb;
    border-color:#87d8eb;
  }
  

  @media (max-width:600px){
    .dd-demo{
      --dd-demo-scroll:205;
      height:calc((var(--dd-demo-scroll) + var(--dd-settle-len) + var(--dd-faq-cover-len)) * 1vh + 100svh);
    }
    .dd-demo__inner{
      width:calc(100% - 36px);
      padding:max(92px,calc(env(safe-area-inset-top) + 66px)) 0 38px;
    }
    .dd-demo__eyebrow{ font-size:9px; margin-bottom:14px; }
    .dd-demo__title{ font-size:clamp(45px,13vw,62px); max-width:8.8em; }
    .dd-demo__lede{ margin-top:22px; font-size:14px; line-height:1.58; max-width:34ch; }
    .dd-demo__cta{ width:min(100%,330px); min-width:0; margin-top:32px; padding:16px 22px; }
    .dd-demo__microcopy{ font-size:8px; }
  }

  @media (prefers-reduced-motion:reduce){
    .dd-demo{ height:auto; margin-top:0; }
    .dd-demo__stage{ position:relative; min-height:100svh; height:auto; }
    .dd-demo__eyebrow,
    .dd-demo__title,
    .dd-demo__lede,
    .dd-demo__cta,
    .dd-demo__microcopy{ opacity:1 !important; transform:none !important; filter:none !important; }
    .dd-demo__rule{ opacity:1 !important; transform:scaleY(1) !important; }
  }

  body.dd-on-dark:not(.dd-menu-open) .dd-site-logo img{ filter:brightness(0) invert(1); }
  body.dd-on-dark:not(.dd-menu-open) .dd-site-nav__link{
    color:#eef8fb;
    background:rgba(8,29,39,.56);
    border-color:rgba(220,244,250,.14);
    box-shadow:0 10px 28px -20px rgba(0,0,0,.85);
  }
  body.dd-on-dark:not(.dd-menu-open) .dd-site-nav__link--contact{
    color:#061820;
    background:#8bd8ec;
    border-color:#8bd8ec;
  }
  

  @media (max-width:1050px){
    .dd-reframe{ --dd-reframe-scroll:285; }
    .dd-reframe__inner{
      grid-template-columns:1fr;
      gap:clamp(40px,5vh,62px);
      padding:max(72px,env(safe-area-inset-top)) 34px 42px;
    }
    .dd-reframe__copy{ max-width:820px; }
    .dd-reframe__title{ max-width:900px; font-size:clamp(44px,6.8vw,70px); }
    .dd-reframe__visual{ min-height:330px; padding-top:34px; }
    .dd-reframe__caption{ margin-bottom:48px; }
  }

  @media (max-width:600px){
    .dd-reframe{
      --dd-reframe-scroll:330;
      height:calc((var(--dd-reframe-scroll) + var(--dd-settle-len) + var(--dd-future-cover-len)) * 1vh + 100svh);
    }
    .dd-reframe__stage{ align-items:flex-start; }
    .dd-reframe__inner{
      gap:34px;
      padding:max(80px,calc(env(safe-area-inset-top) + 56px)) 20px 30px;
    }
    .dd-reframe__eyebrow{ font-size:9.5px; margin-bottom:12px; }
    .dd-reframe__title{
      font-size:clamp(39px,11.7vw,53px);
      line-height:.97;
      max-width:9.2em;
    }
    .dd-reframe__lede{ margin-top:20px; font-size:14px; line-height:1.55; max-width:36ch; }
    .dd-reframe__visual{
      min-height:410px;
      padding:26px 0 18px;
      border-bottom:0;
    }
    .dd-reframe__caption{ margin-bottom:26px; font-size:9.5px; }
    .dd-reframe__path{
      grid-template-columns:1fr;
      min-height:285px;
      padding-left:3px;
    }
    .dd-reframe__rail,
    .dd-reframe__fill{
      top:17px;
      bottom:18px;
      left:19px;
      right:auto;
      width:1px;
      height:auto;
      transform-origin:50% 0;
    }
    .dd-reframe__fill{ transform:scaleY(var(--dd-reframe-path)); }
    .dd-reframe__pulse{
      top:17px;
      left:13px;
      margin:0;
      transform:translateY(calc(var(--dd-reframe-path) * 250px));
    }
    .dd-reframe__node{
      min-height:70px;
      padding:0 0 12px 58px;
    }
    .dd-reframe__dot{
      position:absolute;
      left:0;
      top:0;
      width:38px;
      height:38px;
      margin:0;
    }
    .dd-reframe__node-label{ padding-top:2px; font-size:14px; }
    .dd-reframe__node-note{ max-width:30ch; font-size:10.5px; }
    .dd-reframe__conclusion{
      margin-top:22px;
      font-size:clamp(21px,6vw,28px);
      max-width:13em;
    }
  }

  @media (prefers-reduced-motion:reduce){
    .dd-reframe{ height:auto; margin-top:0; }
    .dd-reframe__stage{ position:relative; height:auto; overflow:visible; }
    .dd-reframe__eyebrow,
    .dd-reframe__title,
    .dd-reframe__lede,
    .dd-reframe__caption,
    .dd-reframe__node,
    .dd-reframe__conclusion{
      opacity:1 !important;
      transform:none !important;
      filter:none !important;
    }
    .dd-reframe__visual{ --dd-reframe-path:1 !important; }
  }


  /* ---------- Demonstration Invitation -> FAQ foreground transition ---------- */
  .dd-demo__dim{
    position:absolute;
    inset:0;
    z-index:4;
    background:rgba(3,16,22,.60);
    opacity:0;
    pointer-events:none;
    will-change:opacity;
  }

  .dd-faq{
    --dd-faq-scroll:185;
    position:relative;
    z-index:30;
    margin-top:calc(var(--dd-faq-cover-len) * -1vh);
    height:calc((var(--dd-faq-scroll) + var(--dd-settle-len) + var(--dd-footer-cover-len)) * 1vh + 100vh);
    color:#0b1d26;
    background:transparent;
  }
  .dd-faq__stage{
    position:sticky;
    top:0;
    height:100vh;
    height:100svh;
    overflow:hidden;
    isolation:isolate;
    background:transparent;
  }
  .dd-faq__surface{
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
    background:#f7fafb;
    border-top:1px solid rgba(19,55,68,.07);
    box-shadow:0 -38px 90px rgba(1,16,23,.18);
  }
  .dd-faq__surface::before{
    content:'';
    position:absolute;
    left:-1px;
    right:-1px;
    top:-14vh;
    height:22vh;
    background:#f7fafb;
    transform:skewY(-5deg);
    transform-origin:100% 100%;
    box-shadow:0 -22px 56px rgba(2,23,31,.10);
  }
  .dd-faq__surface::after{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(112deg,transparent 0 46%,rgba(53,157,191,.025) 53%,transparent 61% 100%);
  }
  .dd-faq__dim{
    position:absolute;
    inset:0;
    z-index:4;
    background:rgba(4,20,27,.48);
    opacity:0;
    pointer-events:none;
    will-change:opacity;
  }
  .dd-faq__inner{
    position:relative;
    z-index:1;
    width:100%;
    height:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    padding-top:max(82px,env(safe-area-inset-top));
  }
  .dd-faq__intro{
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    padding:clamp(64px,9vh,112px) clamp(42px,7vw,112px) 56px;
    border-right:1px solid rgba(17,52,65,.09);
  }
  .dd-faq__eyebrow{
    margin:0 0 20px;
    color:#3197b7;
    font-size:8px;
    font-weight:750;
    letter-spacing:.22em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-faq__title{
    margin:0;
    max-width:760px;
    color:#173744;
    font-family:var(--dd-serif);
    font-size:clamp(50px,4.8vw,78px);
    line-height:.98;
    font-weight:400;
    letter-spacing:-.042em;
    text-wrap:balance;
    opacity:.02;
    transform:translateY(34px) scale(1.07);
    transform-origin:0 0;
    filter:blur(10px);
    will-change:opacity,transform,filter;
  }
  .dd-faq__intro-note{
    margin:auto 0 0;
    max-width:44ch;
    color:#71848c;
    font-size:11px;
    line-height:1.55;
    opacity:0;
    transform:translateY(12px);
    filter:blur(4px);
  }
  .dd-faq__accordion{
    align-self:start;
    padding:clamp(62px,8.5vh,106px) clamp(42px,6vw,92px) 50px clamp(42px,5vw,78px);
  }
  .dd-faq__item{
    border-bottom:1px solid rgba(18,54,67,.105);
    opacity:0;
    transform:translateY(18px);
    filter:blur(5px);
    will-change:opacity,transform,filter;
  }
  .dd-faq__item:first-child{ border-top:1px solid rgba(18,54,67,.105); }
  .dd-faq__question{
    width:100%;
    min-height:104px;
    padding:25px 0;
    border:0;
    background:none;
    color:#0a1c25;
    font:inherit;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    text-align:left;
    cursor:pointer;
  }
  .dd-faq__question-text{
    font-family:var(--dd-sans);
    font-size:clamp(19px,1.45vw,25px);
    line-height:1.26;
    font-weight:560;
    letter-spacing:-.025em;
  }
  .dd-faq__toggle{
    flex:0 0 42px;
    width:42px;
    height:30px;
    border-radius:7px;
    display:grid;
    place-items:center;
    color:#eef9fc;
    background:#0b2631;
    box-shadow:0 8px 22px -16px rgba(2,18,24,.65);
    transition:transform .3s cubic-bezier(.22,.8,.22,1),background .25s ease;
  }
  .dd-faq__toggle svg{
    width:14px;
    height:14px;
    display:block;
    transition:transform .45s cubic-bezier(.22,.8,.22,1);
  }
  .dd-faq__item.dd-is-open .dd-faq__toggle svg{ transform:rotate(180deg); }
  .dd-faq__question:hover .dd-faq__toggle{ transform:translateY(-1px); background:#123746; }
  .dd-faq__answer{
    display:grid;
    grid-template-rows:0fr;
    transition:grid-template-rows .52s cubic-bezier(.22,.8,.22,1);
  }
  .dd-faq__answer-inner{ overflow:hidden; }
  .dd-faq__answer-copy{
    margin:0;
    padding:0 72px 28px 0;
    max-width:58ch;
    color:#647781;
    font-family:var(--dd-sans);
    font-size:clamp(13.5px,1vw,16px);
    line-height:1.58;
    letter-spacing:-.008em;
    opacity:0;
    transform:translateY(-6px);
    filter:blur(3px);
    transition:opacity .38s ease .04s,transform .45s cubic-bezier(.22,.8,.22,1) .04s,filter .42s ease .04s;
  }
  .dd-faq__item.dd-is-open .dd-faq__answer{ grid-template-rows:1fr; }
  .dd-faq__item.dd-is-open .dd-faq__answer-copy{ opacity:1; transform:none; filter:none; }

  body.dd-on-faq-light:not(.dd-menu-open) .dd-site-logo img{ filter:none !important; }
  body.dd-on-faq-light:not(.dd-menu-open) .dd-site-nav__link{
    color:#173744 !important;
    background:rgba(247,250,251,.78) !important;
    border-color:rgba(26,78,95,.10) !important;
  }
  body.dd-on-faq-light:not(.dd-menu-open) .dd-site-nav__link--contact{
    color:#eefbff !important;
    background:#123746 !important;
    border-color:#123746 !important;
  }
  

  /* ---------- FAQ -> Footer foreground transition ---------- */
  .dd-footer{
    --dd-footer-scroll:125;
    position:relative;
    z-index:40;
    margin-top:calc(var(--dd-footer-cover-len) * -1vh);
    height:calc(var(--dd-footer-scroll) * 1vh + 100vh);
    color:#effbfe;
    background:transparent;
  }
  .dd-footer__stage{
    position:sticky;
    top:0;
    height:100vh;
    height:100svh;
    overflow:hidden;
    isolation:isolate;
    background:transparent;
  }
  .dd-footer__surface{
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
    background:
      radial-gradient(circle at 78% 18%,rgba(59,157,188,.10),transparent 28%),
      linear-gradient(150deg,#03131a 0%,#061d26 56%,#021015 100%);
    box-shadow:0 -38px 100px rgba(2,14,20,.32);
  }
  .dd-footer__surface::before{
    content:'';
    position:absolute;
    left:-1px;
    right:-1px;
    top:-13vh;
    height:21vh;
    background:#041820;
    transform:skewY(-4.6deg);
    transform-origin:100% 100%;
    box-shadow:0 -20px 58px rgba(1,11,16,.25);
  }
  .dd-footer__surface::after{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.38;
    background:linear-gradient(112deg,transparent 0 46%,rgba(126,212,233,.05) 54%,transparent 62% 100%);
  }
  .dd-footer__inner{
    position:relative;
    z-index:1;
    width:100%;
    height:100%;
    display:flex;
    flex-direction:column;
    padding:max(86px,calc(env(safe-area-inset-top) + 62px)) clamp(24px,4vw,62px) max(22px,env(safe-area-inset-bottom));
  }
  .dd-footer__top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:34px;
    opacity:0;
    transform:translateY(24px);
    filter:blur(7px);
    will-change:opacity,transform,filter;
  }
  .dd-footer__statement{
    margin:0;
    max-width:660px;
    color:#effbfe;
    font-family:var(--dd-serif);
    font-size:clamp(36px,4vw,65px);
    line-height:.98;
    font-weight:400;
    letter-spacing:-.048em;
    text-wrap:balance;
  }
  .dd-footer__cta{
    flex:0 0 auto;
    margin-top:5px;
    padding:11px 16px;
    border-radius:999px;
    border:1px solid rgba(149,220,237,.24);
    color:#dff7fc;
    background:rgba(15,58,72,.42);
    font-size:11px;
    font-weight:720;
    text-decoration:none;
    transition:background .25s ease,transform .25s ease,border-color .25s ease;
  }
  .dd-footer__cta:hover{ transform:translateY(-2px); background:rgba(37,115,137,.44); border-color:rgba(149,220,237,.38); }
  .dd-footer__nav{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    margin-top:clamp(40px,6vh,68px);
    border-top:1px solid rgba(217,243,248,.13);
    border-bottom:1px solid rgba(217,243,248,.13);
    opacity:0;
    transform:translateY(22px);
    filter:blur(6px);
    will-change:opacity,transform,filter;
  }
  .dd-footer__link{
    position:relative;
    min-height:128px;
    padding:26px 28px 24px;
    color:#e9f8fb;
    text-decoration:none;
    overflow:hidden;
    isolation:isolate;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:22px;
    border-right:1px solid rgba(217,243,248,.13);
    transition:color .34s ease;
  }
  .dd-footer__link:last-child{ border-right:0; }
  .dd-footer__link::before{
    content:'';
    position:absolute;
    inset:0;
    z-index:-1;
    background:#eef7f9;
    transform:scaleX(.018);
    transform-origin:0 50%;
    transition:transform .58s cubic-bezier(.2,.75,.22,1);
  }
  .dd-footer__link:hover,
  .dd-footer__link:focus-visible{ color:#08212a; }
  .dd-footer__link:hover::before,
  .dd-footer__link:focus-visible::before{ transform:scaleX(1); }
  .dd-footer__link-meta{
    font-size:9px;
    font-weight:760;
    letter-spacing:.18em;
    text-transform:uppercase;
    opacity:.62;
  }
  .dd-footer__link-main{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    font-family:var(--dd-serif);
    font-size:clamp(25px,2.4vw,37px);
    line-height:1;
    letter-spacing:-.04em;
  }
  .dd-footer__arrow{
    color:#74cde3;
    font-family:var(--dd-sans);
    font-size:24px;
    line-height:1;
    transform:translateX(0);
    transition:transform .35s cubic-bezier(.22,.8,.22,1),color .3s ease;
  }
  .dd-footer__link:hover .dd-footer__arrow,
  .dd-footer__link:focus-visible .dd-footer__arrow{ transform:translateX(8px); color:#1787a9; }
  .dd-footer__brand{
    margin-top:auto;
    padding-top:clamp(26px,4.5vh,50px);
    overflow:hidden;
    opacity:0;
    transform:translateY(28px);
    filter:blur(7px);
    will-change:opacity,transform,filter;
  }
  .dd-footer__brand img{
    display:block;
    width:min(96vw,1600px);
    max-width:none;
    height:auto;
    opacity:.96;
  }
  .dd-footer__bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding-top:16px;
    color:#76939d;
    font-size:9px;
    letter-spacing:.04em;
    opacity:0;
    transform:translateY(10px);
    filter:blur(3px);
    will-change:opacity,transform,filter;
  }
  .dd-footer__legal{ display:flex; gap:18px; flex-wrap:wrap; }
  .dd-footer__legal a{ color:inherit; text-decoration:none; }
  .dd-footer__legal a:hover{ color:#c7e9f1; }

  body.dd-on-footer-dark:not(.dd-menu-open) .dd-site-logo img{ filter:brightness(0) invert(1) !important; }
  body.dd-on-footer-dark:not(.dd-menu-open) .dd-site-nav__link{
    color:#eaf9fc !important;
    background:rgba(4,27,35,.56) !important;
    border-color:rgba(216,242,247,.14) !important;
  }
  body.dd-on-footer-dark:not(.dd-menu-open) .dd-site-nav__link--contact{
    color:#06202a !important;
    background:#82d5e8 !important;
    border-color:#82d5e8 !important;
  }
  

  @media (max-width:900px){
    .dd-faq__inner{ grid-template-columns:1fr; padding-top:max(78px,env(safe-area-inset-top)); }
    .dd-faq__intro{ padding:42px 28px 28px; border-right:0; border-bottom:1px solid rgba(17,52,65,.09); }
    .dd-faq__title{ max-width:760px; font-size:clamp(40px,6.5vw,58px); line-height:1; }
    .dd-faq__intro-note{ display:none; }
    .dd-faq__accordion{ padding:18px 28px 34px; }
    .dd-faq__question{ min-height:82px; }
    .dd-footer__link{ min-height:112px; padding:22px 20px; }
  }

  @media (max-width:600px){
    .dd-demo{ height:calc((var(--dd-demo-scroll) + var(--dd-settle-len) + var(--dd-faq-cover-len)) * 1vh + 100svh); }
    .dd-faq{
      --dd-faq-scroll:250;
      height:calc((var(--dd-faq-scroll) + var(--dd-settle-len) + var(--dd-footer-cover-len)) * 1vh + 100svh);
    }
    .dd-faq__stage{ align-items:flex-start; }
    .dd-faq__inner{
      display:block;
      overflow:hidden;
      padding-top:max(74px,calc(env(safe-area-inset-top) + 54px));
    }
    .dd-faq__intro{ padding:28px 18px 24px; }
    .dd-faq__eyebrow{ font-size:9px; margin-bottom:12px; }
    .dd-faq__title{ font-size:clamp(36px,10.4vw,48px); line-height:1; max-width:9.6em; }
    .dd-faq__accordion{ padding:4px 18px 32px; }
    .dd-faq__question{ min-height:76px; padding:19px 0; gap:15px; }
    .dd-faq__question-text{ font-size:18px; font-weight:560; }
    .dd-faq__toggle{ flex-basis:38px; width:38px; height:29px; }
    .dd-faq__answer-copy{ padding:0 12px 22px 0; font-size:13px; line-height:1.58; }

    .dd-footer{ --dd-footer-scroll:115; height:calc(var(--dd-footer-scroll) * 1vh + 100svh); }
    .dd-footer__inner{ padding:max(78px,calc(env(safe-area-inset-top) + 56px)) 16px max(16px,env(safe-area-inset-bottom)); }
    .dd-footer__top{ display:block; }
    .dd-footer__statement{ max-width:9.4em; font-size:clamp(36px,10.8vw,50px); }
    .dd-footer__cta{ display:inline-flex; margin-top:22px; }
    .dd-footer__nav{ grid-template-columns:1fr; margin-top:30px; }
    .dd-footer__link{ min-height:72px; padding:15px 16px; border-right:0; border-bottom:1px solid rgba(217,243,248,.13); gap:8px; }
    .dd-footer__link:last-child{ border-bottom:0; }
    .dd-footer__link-main{ font-size:25px; }
    .dd-footer__link-meta{ font-size:7.5px; }
    .dd-footer__brand{ padding-top:22px; }
    .dd-footer__brand img{ width:100%; transform:scale(1.16); transform-origin:0 100%; }
    .dd-footer__bottom{ padding-top:12px; align-items:flex-end; font-size:7.5px; }
    .dd-footer__legal{ justify-content:flex-end; gap:11px; }
  }

  @media (prefers-reduced-motion:reduce){
    .dd-faq,.dd-footer{ height:auto; margin-top:0; }
    .dd-faq__stage,.dd-footer__stage{ position:relative; height:auto; min-height:100svh; }
    .dd-faq__eyebrow,.dd-faq__title,.dd-faq__intro-note,.dd-faq__item,
    .dd-footer__top,.dd-footer__nav,.dd-footer__brand,.dd-footer__bottom{
      opacity:1 !important;
      transform:none !important;
      filter:none !important;
    }
    .dd-footer__link::before{ transition:none; }
  }

  /* ---------- Reduced motion ---------- */

  @media (prefers-reduced-motion: reduce){
    .dd-hero__stage{ position: relative; height: auto; aspect-ratio: 16 / 9; }
    .dd-hero__annotations{
      display: grid;
      gap: 14px;
      max-width: 760px;
      margin: 0 auto;
      padding: 28px 16px 40px;
    }
    .dd-ann{
      position: static;
      opacity: 1;
      width: auto;
      max-width: none;
      transform: none !important;
      filter: none !important;
      background: rgba(10, 30, 41, .94);
    }
    .dd-ann__title, .dd-ann__body{ opacity: 1 !important; transform: none !important; }
    .dd-ann--cta{ background: none; text-align: center; }
  }

/* ===== dd-footer-final-structure-v3 ===== */
/* Final footer geometry: reference-led and intentionally placed after all base CSS. */
.dd-footer{ --dd-footer-scroll:110; }
.dd-footer__inner{
  padding:0 !important;
  display:grid !important;
  grid-template-rows:25.5svh 23.5svh minmax(0,1fr) !important;
  min-height:100svh !important;
  height:100svh !important;
}
.dd-footer__top{
  grid-row:1;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  padding:clamp(32px,5.2vh,58px) clamp(26px,2.8vw,54px) 0 !important;
  gap:0 !important;
}
.dd-footer__statement{ display:none !important; }
.dd-footer__cta{
  flex:0 0 auto;
  margin:0 !important;
  min-height:44px;
  padding:13px 22px !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(229,247,250,.78) !important;
  border-radius:999px;
  background:#f3f9fa !important;
  color:#061e27 !important;
  box-shadow:none !important;
  transform:none;
}
.dd-footer__cta:hover,.dd-footer__cta:focus-visible{
  transform:none !important;
  background:#dff5f9 !important;
  border-color:#dff5f9 !important;
}
.dd-footer__nav{
  grid-row:2;
  align-self:stretch;
  width:100%;
  margin:0 !important;
  border-top:1px solid rgba(220,242,247,.16) !important;
  border-bottom:1px solid rgba(220,242,247,.16) !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}
.dd-footer__link{
  min-height:0 !important;
  height:100%;
  padding:0 clamp(26px,2.8vw,54px) !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:28px !important;
  border-right:1px solid rgba(220,242,247,.16) !important;
}
.dd-footer__link:last-child{ border-right:0 !important; }
/* No idle white slab. The only resting dividers are the same 1px as top/bottom. */
.dd-footer__link::before{
  transform:scaleX(0) !important;
  transform-origin:0 50% !important;
  background:#f4f8f9 !important;
}
.dd-footer__link:hover::before,.dd-footer__link:focus-visible::before{ transform:scaleX(1) !important; }
.dd-footer__link-meta{ display:none !important; }
.dd-footer__link-main{
  width:100%;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
  font-family:var(--dd-sans) !important;
  font-size:clamp(28px,2.2vw,38px) !important;
  line-height:1.05 !important;
  letter-spacing:-.035em !important;
  font-weight:620 !important;
}
.dd-footer__arrow{ flex:0 0 auto; font-size:31px !important; color:#67cce6; font-weight:400; }
.dd-footer__brand{
  grid-row:3;
  position:relative;
  margin:0 !important;
  padding:clamp(34px,5.2vh,58px) 0 clamp(36px,4.6vh,52px) !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:center !important;
  overflow:hidden;
}
.dd-footer__brand img{
  display:block;
  width:108vw !important;
  max-width:none !important;
  height:auto;
  margin-left:-4vw;
  margin-right:-4vw;
  opacity:1;
}
.dd-footer__bottom{
  position:absolute !important;
  z-index:3;
  left:clamp(26px,2.8vw,54px);
  right:clamp(26px,2.8vw,54px);
  bottom:max(18px,env(safe-area-inset-bottom));
  padding:0 !important;
  align-items:flex-end !important;
  color:#79939c;
  font-size:9px;
  letter-spacing:.025em;
  pointer-events:auto;
}
.dd-footer__legal{ gap:22px !important; }
@media (max-width:900px){
  .dd-footer__inner{ grid-template-rows:24svh 25svh minmax(0,1fr) !important; }
  .dd-footer__link{ padding:0 26px !important; }
  .dd-footer__link-main{ font-size:clamp(25px,3.3vw,32px) !important; }
  .dd-footer__brand img{ width:118vw !important; margin-left:-9vw; margin-right:-9vw; }
}
@media (max-width:600px){
  .dd-footer{ --dd-footer-scroll:100; }
  .dd-footer__inner{
    grid-template-rows:20svh auto minmax(0,1fr) !important;
    height:100svh !important;
    min-height:100svh !important;
  }
  .dd-footer__top{ padding:max(78px,calc(env(safe-area-inset-top) + 58px)) 18px 0 !important; }
  .dd-footer__cta{ min-height:40px; padding:10px 16px !important; font-size:8px; }
  .dd-footer__nav{ grid-template-columns:1fr !important; grid-template-rows:repeat(3,74px); margin:0 !important; }
  .dd-footer__link{
    min-height:0 !important;
    height:74px;
    padding:0 18px !important;
    border-right:0 !important;
    border-bottom:1px solid rgba(220,242,247,.16) !important;
  }
  .dd-footer__link:last-child{ border-bottom:0 !important; }
  .dd-footer__link-main{ font-size:24px !important; }
  .dd-footer__arrow{ font-size:25px !important; }
  .dd-footer__brand{ padding:34px 0 42px !important; align-items:flex-end !important; }
  .dd-footer__brand img{ width:148vw !important; margin-left:-24vw; margin-right:-24vw; }
  .dd-footer__bottom{ left:18px; right:18px; bottom:max(13px,env(safe-area-inset-bottom)); font-size:7.5px; }
  .dd-footer__legal{ gap:11px !important; }
}

/* ===== dd-footer-character-reveal-v1 ===== */
.dd-footer__brand .dd-footer__wordmark{display:block;width:118vw;height:auto;max-width:none;margin-left:-9vw;margin-right:-9vw;overflow:hidden}
.dd-footer-char{opacity:0;transform:translateY(22px);transform-box:fill-box;transform-origin:center bottom;filter:blur(5px);clip-path:inset(100% 0 0 0);will-change:transform,opacity,filter,clip-path}
@media(max-width:720px){.dd-footer__brand .dd-footer__wordmark{width:148vw;margin-left:-24vw;margin-right:-24vw}}
@media(prefers-reduced-motion:reduce){.dd-footer-char{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important}}

/* ===== dd-reframe-premium-redesign ===== */
/* ===== DentalDoor Reframe: premium three-zone storytelling composition ===== */
.dd-reframe__inner{
  width:min(1640px,100%);
  padding:clamp(76px,9vh,108px) clamp(28px,5vw,82px) clamp(44px,5.5vh,66px);
  display:grid;
  grid-template-columns:minmax(300px,32fr) minmax(0,68fr);
  grid-template-rows:1fr;
  gap:clamp(28px,3vw,54px);
  align-items:center;
  min-width:0;
}
.dd-reframe__copy{
  grid-column:1;
  grid-row:1;
  align-self:center;
  max-width:500px;
  padding-bottom:clamp(92px,12vh,120px);
  min-width:0;
}
.dd-reframe__eyebrow{
  margin-bottom:20px;
  color:#7bd7f1;
  font-size:clamp(10px,.72vw,12px);
  font-weight:760;
  letter-spacing:.31em;
}
.dd-reframe__title{
  max-width:540px;
  font-size:clamp(44px,3.9vw,66px);
  line-height:.98;
  letter-spacing:-.047em;
  text-wrap:initial;
}
.dd-reframe__title > span{display:block;}
.dd-reframe__title-accent{
  color:#79d9f4;
  text-shadow:0 0 30px rgba(92,207,239,.13);
}
.dd-reframe__lede{
  max-width:38ch;
  margin-top:clamp(20px,2.4vh,28px);
  color:#9fb6bf;
  font-size:clamp(13px,.92vw,15.5px);
  line-height:1.5;
}
.dd-reframe__conclusion{
  grid-column:1;
  grid-row:1;
  align-self:end;
  position:relative;
  margin:0 0 clamp(42px,6.5vh,68px);
  padding:0 0 22px 32px;
  max-width:440px;
  border-top:0;
  border-bottom:1px solid rgba(183,224,236,.13);
  color:#e8f3f7;
  font-size:clamp(18px,1.45vw,25px);
  line-height:1.02;
  letter-spacing:-.03em;
}
.dd-reframe__conclusion::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  bottom:22px;
  width:2px;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(133,228,248,.92),rgba(133,228,248,.42));
}
.dd-reframe__conclusion span{display:block;margin-top:2px;color:#74d5f0;}

.dd-reframe__visual{
  --dd-reframe-path:0;
  grid-column:2;
  grid-row:1;
  position:relative;
  min-height:min(70vh,690px);
  padding:0;
  border:0;
  display:grid;
  grid-template-columns:minmax(0,58fr) minmax(290px,42fr);
  gap:clamp(10px,1.1vw,20px);
  align-items:center;
  justify-content:stretch;
  overflow:visible;
  min-width:0;
}
.dd-reframe__visual::before{
  content:'';
  position:absolute;
  inset:7% 1% 5% 8%;
  pointer-events:none;
  background:
    radial-gradient(circle at 44% 58%,rgba(76,205,239,.14),transparent 31%),
    radial-gradient(circle at 74% 44%,rgba(46,141,173,.09),transparent 34%);
  filter:blur(10px);
  opacity:.9;
}

/* Centre storytelling visual */
.dd-reframe__scene{
  position:relative;
  z-index:3;
  align-self:center;
  justify-self:center;
  width:min(100%,650px);
  aspect-ratio:1/1;
  min-width:0;
  display:grid;
  place-items:center;
  pointer-events:none;
}
.dd-reframe__scene-image{
  position:relative;
  z-index:3;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 24px 34px rgba(0,0,0,.25)) drop-shadow(0 0 22px rgba(72,204,241,.10));
}
.dd-reframe__scene-reflection{
  position:absolute;
  z-index:1;
  left:10%;
  width:80%;
  height:58%;
  bottom:-26%;
  object-fit:contain;
  object-position:center bottom;
  transform:scaleY(-.43);
  transform-origin:50% 0;
  opacity:.14;
  filter:blur(8px) saturate(.82);
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.78),transparent 74%);
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.78),transparent 74%);
}
.dd-reframe__scene-glow{
  position:absolute;
  z-index:0;
  left:10%;
  right:10%;
  bottom:7%;
  height:18%;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(86,216,249,.34) 0%,rgba(32,142,177,.13) 42%,transparent 72%);
  filter:blur(14px);
  transform:scaleX(1.14);
}

/* Right journey stack */
.dd-reframe__journey{
  position:relative;
  z-index:4;
  min-width:0;
  align-self:center;
  padding:8px 0 2px;
}
.dd-reframe__caption{
  display:none;
}
.dd-reframe__path{
  position:relative;
  display:block;
  min-height:0;
  padding:0;
}
.dd-reframe__journey-stack{
  position:relative;
  z-index:4;
  display:grid;
  gap:clamp(6px,.9vh,12px);
}
.dd-reframe__node{
  position:relative;
  z-index:4;
  min-width:0;
  min-height:clamp(104px,13.5vh,132px);
  padding:0;
  display:grid;
  grid-template-columns:clamp(86px,7vw,116px) minmax(0,1fr);
  align-items:center;
  gap:clamp(12px,1.35vw,22px);
  opacity:.04;
  transform:translateY(18px);
  filter:blur(6px);
  will-change:opacity,transform,filter;
}
.dd-reframe__node-image{
  width:100%;
  height:auto;
  max-height:116px;
  aspect-ratio:1/1;
  object-fit:contain;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.17)) drop-shadow(0 0 11px rgba(65,203,244,.16));
}
.dd-reframe__node-copy{
  display:grid;
  align-content:center;
  min-width:0;
  padding-right:4px;
}
.dd-reframe__node-step{
  margin:0 0 5px;
  color:#8ce2f8;
  font-size:clamp(10px,.82vw,12px);
  line-height:1;
  font-weight:780;
  letter-spacing:.06em;
}
.dd-reframe__node-label{
  margin:0 0 6px;
  color:#f0f9fb;
  font-size:clamp(14px,1.08vw,17px);
  line-height:1.18;
  font-weight:720;
}
.dd-reframe__node-note{
  max-width:22ch;
  color:#8ea9b4;
  font-size:clamp(10.5px,.78vw,12px);
  line-height:1.42;
}

/* Curved scroll-driven connector system */
.dd-reframe__connector{
  position:absolute;
  z-index:2;
  top:0;
  bottom:0;
  right:0;
  width:calc(100% + min(34vw,570px));
  height:100%;
  transform:translateX(0);
  overflow:visible;
  pointer-events:none;
}
.dd-reframe__connector-ghost,
.dd-reframe__connector-progress{
  fill:none;
  vector-effect:non-scaling-stroke;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.dd-reframe__connector-ghost{
  stroke:rgba(150,227,247,.20);
  stroke-width:1.15;
}
.dd-reframe__connector-progress{
  stroke:#8ce8ff;
  stroke-width:1.7;
  stroke-dasharray:1;
  stroke-dashoffset:calc(1 - var(--dd-reframe-path));
  filter:url(#ddReframeGlow);
  opacity:.9;
  will-change:stroke-dashoffset;
}
.dd-reframe__junction{
  fill:#d9f9ff;
  opacity:calc(.14 + var(--dd-reframe-path) * .86);
  filter:url(#ddReframeGlow);
}

/* Refine dark world without changing the existing transition geometry. */
.dd-reframe__surface{
  background:
    radial-gradient(circle at 62% 53%,rgba(23,133,168,.17),transparent 31%),
    radial-gradient(circle at 86% 24%,rgba(57,186,219,.09),transparent 28%),
    radial-gradient(circle at 18% 88%,rgba(48,89,146,.08),transparent 38%),
    linear-gradient(145deg,#06171f 0%,#08232d 53%,#082a35 100%);
}
.dd-reframe__surface::after{
  background:
    linear-gradient(115deg,transparent 0 45%,rgba(255,255,255,.018) 50%,transparent 56% 100%),
    radial-gradient(ellipse at 61% 82%,rgba(70,209,244,.06),transparent 31%);
  opacity:.75;
}

@media (max-width:1050px){
  .dd-reframe__inner{
    width:min(940px,100%);
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto auto auto;
    gap:clamp(14px,2.5vh,24px);
    align-content:center;
    padding:clamp(76px,8.5vh,96px) clamp(24px,5vw,54px) clamp(32px,4vh,46px);
  }
  .dd-reframe__copy{
    grid-column:1;
    grid-row:1;
    max-width:760px;
    padding-bottom:0;
  }
  .dd-reframe__title{font-size:clamp(42px,6.2vw,58px);max-width:620px;}
  .dd-reframe__lede{max-width:40ch;margin-top:16px;font-size:14px;line-height:1.5;}
  .dd-reframe__visual{
    grid-column:1;
    grid-row:2;
    width:100%;
    min-height:0;
    grid-template-columns:minmax(300px,48fr) minmax(0,52fr);
    gap:20px;
  }
  .dd-reframe__scene{width:min(100%,470px);}
  .dd-reframe__journey-stack{
    grid-template-columns:1fr;
    gap:6px;
  }
  .dd-reframe__node{
    min-height:88px;
    grid-template-columns:72px minmax(0,1fr);
    gap:10px;
  }
  .dd-reframe__node-note{font-size:8px;max-width:24ch;}
  .dd-reframe__connector{
    width:calc(100% + 330px);
    opacity:.72;
  }
  .dd-reframe__conclusion{
    grid-column:1;
    grid-row:3;
    align-self:auto;
    margin:0 0 12px;
    max-width:520px;
    padding:0 0 18px 26px;
  }
}

@media (max-width:600px){
  .dd-reframe__stage{align-items:flex-start;}
  .dd-reframe__inner{
    width:100%;
    min-height:100svh;
    padding:max(64px,calc(env(safe-area-inset-top) + 52px)) 20px 20px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
  }
  .dd-reframe__copy{width:100%;max-width:none;}
  .dd-reframe__eyebrow{margin-bottom:12px;font-size:9.5px;letter-spacing:.25em;}
  .dd-reframe__title{
    max-width:11.4em;
    font-size:clamp(35px,10vw,46px);
    line-height:.96;
  }
  .dd-reframe__lede{
    max-width:30em;
    margin-top:12px;
    font-size:11px;
    line-height:1.38;
  }
  .dd-reframe__visual{
    width:100%;
    margin-top:14px;
    display:flex;
    flex-direction:column;
    gap:0;
    min-height:0;
    overflow:visible;
  }
  .dd-reframe__visual::before{inset:10% -12% 26%;}
  .dd-reframe__scene{
    width:min(52vw,220px);
    margin:0 auto -2px;
    order:1;
  }
  .dd-reframe__scene-reflection{bottom:-23%;opacity:.10;filter:blur(9px);}
  .dd-reframe__journey{order:2;padding:0;margin-top:0;}
  .dd-reframe__caption{margin:0 0 12px;font-size:9px;}
  .dd-reframe__path{padding:0 0 0 0;}
  .dd-reframe__connector{display:none;}
  .dd-reframe__journey-stack{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
    padding-left:18px;
  }
  .dd-reframe__journey-stack::before,
  .dd-reframe__journey-stack::after{
    content:'';
    position:absolute;
    left:6px;
    top:18px;
    bottom:18px;
    width:1px;
    transform-origin:50% 0;
  }
  .dd-reframe__journey-stack::before{
    background:rgba(143,224,245,.18);
  }
  .dd-reframe__journey-stack::after{
    background:linear-gradient(#84e5fb,#59b8d7);
    transform:scaleY(var(--dd-reframe-path));
    box-shadow:0 0 12px rgba(92,207,239,.32);
  }
  .dd-reframe__node{
    min-height:54px;
    grid-template-columns:46px minmax(0,1fr);
    gap:10px;
    padding:0;
  }
  .dd-reframe__node::before{
    content:'';
    position:absolute;
    left:-16px;
    top:50%;
    width:7px;
    height:7px;
    margin-top:-3.5px;
    border-radius:50%;
    background:#d7f8ff;
    box-shadow:0 0 14px rgba(102,221,249,.6);
  }
  .dd-reframe__node-image{width:46px;height:auto;max-height:46px;}
  .dd-reframe__node-step{font-size:9.5px;}
  .dd-reframe__node-label{font-size:12.5px;margin-bottom:2px;}
  .dd-reframe__node-note{font-size:9px;line-height:1.32;max-width:34ch;}
  .dd-reframe__conclusion{
    width:100%;
    margin:16px 0 0;
    padding:0 0 14px 18px;
    font-size:clamp(17px,5.1vw,22px);
    max-width:14em;
    order:3;
  }
}

@media (prefers-reduced-motion:reduce){
  .dd-reframe__scene-reflection{filter:blur(8px);}
  .dd-reframe__connector-progress{stroke-dashoffset:0 !important;}
  .dd-reframe__journey-stack::after{transform:scaleY(1) !important;}
}

/* ===== dd-reframe-depth-fix-v2 ===== */
/* Global depth order: atmospheric background -> connector -> handoff/reflection -> glossy cards/text. */
.dd-reframe__visual{isolation:isolate;}
.dd-reframe__connector{
  position:absolute;
  z-index:1;
  inset:0;
  width:100%;
  height:100%;
  transform:none;
  overflow:visible;
  pointer-events:none;
}
.dd-reframe__scene{z-index:3;overflow:visible;}
.dd-reframe__journey{z-index:3;}
.dd-reframe__journey-stack{position:relative;z-index:3;}
.dd-reframe__node{z-index:3;}
.dd-reframe__node-image{position:relative;z-index:3;}
.dd-reframe__node-copy{position:relative;z-index:4;}
.dd-reframe__scene-image{position:relative;z-index:4;}
/* A real floor reflection: the same transparent PNG,mirrored from the platform baseline. */
.dd-reframe__scene-reflection{
  position:absolute;
  z-index:2;
  left:7%;
  width:86%;
  height:auto;
  bottom:6.5%;
  transform:scaleY(-.28);
  transform-origin:50% 100%;
  opacity:.16;
  filter:blur(5px) saturate(.76) brightness(.92);
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.10) 38%,rgba(0,0,0,.52) 72%,rgba(0,0,0,.92) 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.10) 38%,rgba(0,0,0,.52) 72%,rgba(0,0,0,.92) 100%);
  pointer-events:none;
}
.dd-reframe__scene-glow{
  z-index:0;
  left:2%;
  right:2%;
  bottom:6%;
  height:14%;
  opacity:.88;
  background:radial-gradient(ellipse at center,rgba(89,220,250,.33) 0%,rgba(35,144,180,.13) 42%,transparent 73%);
  filter:blur(16px);
  transform:scaleX(1.2);
}
.dd-reframe__connector-ghost{stroke:rgba(151,230,249,.18);stroke-width:.95;}
.dd-reframe__connector-progress{stroke-width:1.35;opacity:.82;}
.dd-reframe__junction{opacity:calc(.18 + var(--dd-reframe-path) * .82);}
@media (max-width:1050px){
  .dd-reframe__connector{inset:0;width:100%;height:100%;}
  .dd-reframe__scene-reflection{bottom:5.8%;opacity:.14;transform:scaleY(-.26);filter:blur(6px) saturate(.8);}
}
@media (max-width:600px){
  .dd-reframe__connector{display:none;}
  .dd-reframe__scene-reflection{bottom:4.5%;opacity:.12;transform:scaleY(-.22);filter:blur(6px);}
}
@media (prefers-reduced-motion:reduce){
  .dd-reframe__connector-progress{stroke-dashoffset:0 !important;}
}

/* ===== dd-chrome-theme-system-fix ===== */
/* ----- Unified persistent chrome theme system -----
   Use one deterministic theme source so the logo / nav cannot inherit the
   wrong treatment when multiple section-state classes overlap. */
body.dd-site{
  --dd-chrome-logo-filter:none;
  --dd-chrome-link-color:#10303f;
  --dd-chrome-link-bg:rgba(255,255,255,.84);
  --dd-chrome-link-border:rgba(16,48,63,.10);
  --dd-chrome-link-shadow:0 8px 24px -18px rgba(10,39,53,.45);
  --dd-chrome-accent-color:#113544;
  --dd-chrome-accent-bg:#9fe5fb;
  --dd-chrome-accent-border:rgba(82,181,208,.42);
  --dd-chrome-menu-bg:rgba(255,255,255,.84);
  --dd-chrome-menu-border:rgba(16,48,63,.12);
  --dd-chrome-menu-color:#123544;
}
body.dd-site[data-dd-chrome-theme="dark"]{
  --dd-chrome-logo-filter:brightness(0) invert(1);
  --dd-chrome-link-color:#edf8fc;
  --dd-chrome-link-bg:rgba(7,30,40,.18);
  --dd-chrome-link-border:rgba(223,244,252,.16);
  --dd-chrome-link-shadow:0 12px 30px -20px rgba(0,0,0,.55);
  --dd-chrome-accent-color:#103444;
  --dd-chrome-accent-bg:#9fe5fb;
  --dd-chrome-accent-border:rgba(109,218,247,.26);
  --dd-chrome-menu-bg:rgba(255,255,255,.10);
  --dd-chrome-menu-border:rgba(225,245,252,.18);
  --dd-chrome-menu-color:#f3fbff;
}
body.dd-site[data-dd-chrome-theme="light"]{
  --dd-chrome-logo-filter:none;
}
body:not(.dd-menu-open) .dd-site-logo img{
  filter:var(--dd-chrome-logo-filter) !important;
  opacity:1 !important;
}
body:not(.dd-menu-open) .dd-site-nav__link{
  color:var(--dd-chrome-link-color) !important;
  background:var(--dd-chrome-link-bg) !important;
  border-color:var(--dd-chrome-link-border) !important;
  box-shadow:var(--dd-chrome-link-shadow) !important;
}
body:not(.dd-menu-open) .dd-site-nav__link--contact{
  color:var(--dd-chrome-accent-color) !important;
  background:var(--dd-chrome-accent-bg) !important;
  border-color:var(--dd-chrome-accent-border) !important;
  box-shadow:0 12px 28px -18px rgba(61,156,184,.40) !important;
}


/* ----- Future Possibility / connected referral illustration polish ----- */
.dd-future__network{
  height:350px;
  max-width:690px;
  padding:6px 10px 0;
}
.dd-future__network::before{
  content:'';
  position:absolute;
  inset:8% 8% 14%;
  border-radius:50%;
  background:radial-gradient(circle at center, rgba(112,203,228,.16) 0%, rgba(112,203,228,.06) 36%, transparent 72%);
  filter:blur(18px);
  pointer-events:none;
}
.dd-future__svg{
  inset:0;
  width:100%;
  height:100%;
}
.dd-future__stroke{
  stroke:#86cee4;
  stroke-width:1.7;
  opacity:.84;
  filter:drop-shadow(0 0 10px rgba(72,173,203,.18));
}
.dd-future__dot{
  fill:#bceefe;
  opacity:calc(.16 + var(--dd-future-path) * .84);
  filter:drop-shadow(0 0 8px rgba(96,198,226,.55));
}
.dd-future__halo{
  top:57%;
  width:188px;
  height:188px;
  margin:-94px 0 0 -94px;
  background:radial-gradient(circle,rgba(89,190,220,.24),rgba(89,190,220,.085) 48%,transparent 72%);
}
.dd-future__center{
  top:57%;
  width:136px;
  height:136px;
  margin:-68px 0 0 -68px;
  padding:18px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(47,135,164,.18);
  box-shadow:0 20px 48px -28px rgba(25,101,128,.36),0 0 0 11px rgba(255,255,255,.22);
  color:#1c6177;
  font-size:20px;
}
.dd-future__node{
  min-width:166px;
  max-width:188px;
  padding:15px 16px;
  border-radius:18px;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(30,99,124,.11);
  box-shadow:0 22px 50px -34px rgba(16,68,88,.42);
}
.dd-future__node--office{ left:8px; top:63%; }
.dd-future__node--patient{ left:50%; top:3%; }
.dd-future__node--specialist{ right:8px; top:63%; }
.dd-future__node-label{ color:#173e4e; font-size:14px; }
.dd-future__node-note{ margin-top:6px; color:#6f8692; font-size:10.75px; line-height:1.46; }
.dd-future__conclusion{ max-width:19em; }

@media (max-width:1050px){
  .dd-future__network{height:368px;max-width:610px;padding:4px 8px 0;}
  .dd-future__halo{top:56%;width:166px;height:166px;margin:-83px 0 0 -83px;}
  .dd-future__center{top:56%;width:122px;height:122px;margin:-61px 0 0 -61px;font-size:18px;}
  .dd-future__node{min-width:146px;max-width:168px;padding:13px 14px;}
  .dd-future__node--office{left:4px;top:62%;}
  .dd-future__node--specialist{right:4px;top:62%;}
}
@media (max-width:600px){
  .dd-future__visual{padding:24px 0 18px;}
  .dd-future__network{height:392px;max-width:340px;padding:0;}
  .dd-future__svg{inset:2px 0 0;}
  .dd-future__halo{top:54%;width:144px;height:144px;margin:-72px 0 0 -72px;}
  .dd-future__center{top:54%;width:104px;height:104px;margin:-52px 0 0 -52px;font-size:16px;padding:14px;}
  .dd-future__node{min-width:130px;max-width:148px;padding:11px 12px;border-radius:16px;}
  .dd-future__node--office{left:0;top:63%;}
  .dd-future__node--patient{top:2%;}
  .dd-future__node--specialist{right:0;top:63%;}
  .dd-future__node-label{font-size:12.5px;}
  .dd-future__node-note{font-size:9.7px;}
}

/* ===== dd-reframe-conclusion-restyle-patch ===== */
/* Reframe conclusion refinement: lighter,support-inspired editorial treatment */
.dd-reframe__copy{
  padding-bottom:clamp(82px,11vh,108px);
}
.dd-reframe__conclusion{
  position:relative;
  display:block;
  align-self:end;
  margin:0 0 clamp(34px,5.8vh,56px);
  padding:0 0 18px 26px;
  max-width:430px;
  border-top:0 !important;
  color:#edf6f8;
  font-family:var(--dd-serif);
  font-size:clamp(19px,1.45vw,24px);
  line-height:1.04;
  letter-spacing:-.03em;
  text-wrap:balance;
}
.dd-reframe__conclusion::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  width:2px;
  height:calc(100% - 18px);
  border-radius:999px;
  background:linear-gradient(180deg, rgba(166,236,251,.9), rgba(97,202,232,.44));
  box-shadow:0 0 10px rgba(104,207,236,.08);
}
.dd-reframe__conclusion::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg, rgba(205,232,238,.16) 0%, rgba(205,232,238,.22) 42%, rgba(205,232,238,.08) 100%);
}
.dd-reframe__conclusion span{
  display:block;
  margin-top:.06em;
  color:#7bd7f1;
}
@media (max-width:1050px){
  .dd-reframe__copy{padding-bottom:56px;}
  .dd-reframe__conclusion{
    margin:8px 0 16px;
    max-width:500px;
    padding:0 0 16px 22px;
    font-size:clamp(18px,2.2vw,22px);
  }
  .dd-reframe__conclusion::before{width:2px;height:calc(100% - 16px);}
}
@media (max-width:600px){
  .dd-reframe__copy{padding-bottom:0;}
  .dd-reframe__conclusion{
    order:3;
    width:100%;
    max-width:14em;
    margin:16px 0 0;
    padding:0 0 14px 18px;
    font-size:clamp(17px,5.1vw,22px);
    line-height:1.08;
  }
  .dd-reframe__conclusion::before{
    width:2px;
    height:calc(100% - 14px);
  }
}

/* ===== dd-reframe-connector-readability-patch ===== */
/* Keep the connector behind the icons while protecting a dedicated readability lane for copy. */
.dd-reframe__journey-stack{gap:clamp(10px,1.2vh,14px);}
.dd-reframe__node{grid-template-columns:clamp(90px,7.2vw,118px) minmax(0,1fr);gap:clamp(16px,1.65vw,28px);}
.dd-reframe__node-copy{position:relative;z-index:4;padding:10px 10px 10px 4px;isolation:isolate;}
.dd-reframe__node-copy::before{
  content:'';
  position:absolute;
  inset:-10px -12px -10px -16px;
  z-index:-1;
  border-radius:20px;
  background:linear-gradient(90deg,rgba(4,25,33,.78) 0%,rgba(4,25,33,.52) 44%,rgba(4,25,33,.18) 72%,rgba(4,25,33,0) 100%);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
  opacity:.88;
}
.dd-reframe__node-step{letter-spacing:.08em;margin-bottom:4px;}
.dd-reframe__node-note{max-width:24ch;line-height:1.46;}
@media (max-width:1050px){
  .dd-reframe__node{gap:14px;}
  .dd-reframe__node-copy{padding:8px 8px 8px 2px;}
  .dd-reframe__node-copy::before{inset:-8px -10px -8px -12px;opacity:.82;}
}
@media (max-width:600px){
  .dd-reframe__node-copy{padding:0;isolation:auto;}
  .dd-reframe__node-copy::before{display:none;}
}

/* ===== dd-header-approved-two-state-system ===== */
/* ================================================================
   LOCKED DentalDoor persistent-header colour system
   Approved states only: LIGHT and DARK.
   Individual sections are no longer allowed to invent header colours.
   ================================================================ */
:root{
  --dd-header-transition:.30s cubic-bezier(.22,.8,.2,1);

  /* Approved LIGHT surface */
  --dd-header-light-login-bg:rgba(255,255,255,.82);
  --dd-header-light-login-border:rgba(19,53,68,.11);
  --dd-header-light-login-text:#153746;
  --dd-header-light-demo-bg:#123544;
  --dd-header-light-demo-border:#123544;
  --dd-header-light-demo-text:#ffffff;
  --dd-header-light-menu-bg:rgba(255,255,255,.84);
  --dd-header-light-menu-border:rgba(19,53,68,.12);
  --dd-header-light-menu-text:#123544;

  /* Approved DARK surface */
  --dd-header-dark-login-bg:rgba(5,28,38,.20);
  --dd-header-dark-login-border:rgba(224,244,250,.17);
  --dd-header-dark-login-text:#f5fbfd;
  --dd-header-dark-demo-bg:#9fe5fb;
  --dd-header-dark-demo-border:#9fe5fb;
  --dd-header-dark-demo-text:#123544;
  --dd-header-dark-menu-bg:rgba(255,255,255,.10);
  --dd-header-dark-menu-border:rgba(225,245,252,.18);
  --dd-header-dark-menu-text:#f5fbfd;
}

/* Smoothly switch the full chrome as one atomic component. */


/* ---------- LIGHT background: approved reference ---------- */
html body[data-dd-chrome-theme="light"]:not(.dd-menu-open) .dd-site-logo img{
  filter:none !important;
  opacity:1 !important;
}
html body[data-dd-chrome-theme="light"]:not(.dd-menu-open) .dd-site-nav__link:not(.dd-site-nav__link--contact){
  color:var(--dd-header-light-login-text) !important;
  background:var(--dd-header-light-login-bg) !important;
  border-color:var(--dd-header-light-login-border) !important;
  box-shadow:0 8px 24px -18px rgba(10,39,53,.32) !important;
}
html body[data-dd-chrome-theme="light"]:not(.dd-menu-open) .dd-site-nav__link--contact{
  color:var(--dd-header-light-demo-text) !important;
  background:var(--dd-header-light-demo-bg) !important;
  border-color:var(--dd-header-light-demo-border) !important;
  box-shadow:0 10px 26px -18px rgba(10,39,53,.40) !important;
}


/* ---------- DARK background: approved reference ---------- */
html body[data-dd-chrome-theme="dark"]:not(.dd-menu-open) .dd-site-logo img{
  content:url('/assets/dd-for-dark-bg.svg');
  filter:none !important;
  opacity:1 !important;
}
html body[data-dd-chrome-theme="dark"]:not(.dd-menu-open) .dd-site-nav__link:not(.dd-site-nav__link--contact){
  color:var(--dd-header-dark-login-text) !important;
  background:var(--dd-header-dark-login-bg) !important;
  border-color:var(--dd-header-dark-login-border) !important;
  box-shadow:0 10px 26px -20px rgba(0,0,0,.42) !important;
}
html body[data-dd-chrome-theme="dark"]:not(.dd-menu-open) .dd-site-nav__link--contact{
  color:var(--dd-header-dark-demo-text) !important;
  background:var(--dd-header-dark-demo-bg) !important;
  border-color:var(--dd-header-dark-demo-border) !important;
  box-shadow:0 12px 28px -18px rgba(80,193,224,.28) !important;
}


/* Preserve the deliberate white menu-overlay treatment while open. */


/* ===== dd-executive-copy-system ===== */
/* Public-facing copy discipline: three-line section headlines and concise supporting text. */
.dd-title-line{display:block;}
.dd-hero__title .dd-title-line,
.dd-next__title .dd-title-line,
.dd-reframe__title .dd-title-line,
.dd-future__title .dd-title-line,
.dd-support__title .dd-title-line,
.dd-trust__title .dd-title-line,
.dd-demo__title .dd-title-line,
.dd-faq__title .dd-title-line{white-space:nowrap;}
.dd-hero__lede,
.dd-recognition__lede,
.dd-reframe__lede,
.dd-future__lede,
.dd-support__lede,
.dd-trust__lede,
.dd-demo__lede{max-width:46ch;}
@media(max-width:600px){
  .dd-hero__title .dd-title-line,
  .dd-next__title .dd-title-line,
  .dd-reframe__title .dd-title-line,
  .dd-future__title .dd-title-line,
  .dd-support__title .dd-title-line,
  .dd-trust__title .dd-title-line,
  .dd-demo__title .dd-title-line,
  .dd-faq__title .dd-title-line{white-space:nowrap;}
}

/* ===== dd-menu-cleanup-v1 ===== */
/* Deliberately compact public-facing menu: core navigation first,utilities second. */









/* One coherent reveal order after reducing the menu. */









/* ===== dd-support-layout-protection-v1 ===== */
/* Protect the executive three-line Support headline from colliding with the product visual. */
@media (min-width:1181px){
  .dd-support__inner{
    grid-template-columns:minmax(430px,.92fr) minmax(520px,1.08fr);
    gap:clamp(42px,4vw,64px);
  }
  .dd-support__copy{
    width:100%;
    min-width:0;
    max-width:560px;
  }
  .dd-support__title{
    width:100%;
    max-width:none;
    font-size:clamp(44px,3.3vw,58px);
    line-height:.99;
    letter-spacing:-.045em;
  }
  .dd-support__lede{
    max-width:40ch;
    margin-top:clamp(20px,2.7vh,30px);
    font-size:clamp(14px,1vw,16px);
    line-height:1.52;
  }
}
@media (min-width:1051px) and (max-width:1180px){
  .dd-support__inner{
    grid-template-columns:1fr;
    gap:30px;
    padding:max(76px,env(safe-area-inset-top)) 34px 40px;
  }
  .dd-support__copy{max-width:760px;}
  .dd-support__title{max-width:720px;font-size:clamp(42px,5.1vw,56px);}
  .dd-support__experience{min-height:430px;grid-template-columns:190px minmax(0,1fr);}
}

/* ===== dd-footer-wordmark-fit-lock ===== */
/* Footer wordmark safe-area lock: oversized,but never cropped at the viewport edges. */
.dd-footer__brand{
  overflow:visible !important;
  padding-left:clamp(20px,2.4vw,42px) !important;
  padding-right:clamp(20px,2.4vw,42px) !important;
  box-sizing:border-box;
}
.dd-footer__brand .dd-footer__wordmark{
  display:block;
  width:min(95vw,1800px) !important;
  max-width:calc(100vw - clamp(40px,4.8vw,84px)) !important;
  height:auto;
  margin-left:auto !important;
  margin-right:auto !important;
  overflow:visible !important;
  flex:0 0 auto;
}
@media (max-width:900px){
  .dd-footer__brand{
    padding-left:clamp(18px,3vw,28px) !important;
    padding-right:clamp(18px,3vw,28px) !important;
  }
  .dd-footer__brand .dd-footer__wordmark{
    width:94vw !important;
    max-width:calc(100vw - 36px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}
@media (max-width:600px){
  .dd-footer__brand{
    padding-left:14px !important;
    padding-right:14px !important;
  }
  .dd-footer__brand .dd-footer__wordmark{
    width:92vw !important;
    max-width:calc(100vw - 28px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}

/* ===== dd-support-four-line-hero-two-line-lock ===== */
/* Preserve site-wide editorial scale while allowing Support to use its approved four-line exception. */
@media (min-width:1181px){
  .dd-support__inner{
    grid-template-columns:minmax(500px,.96fr) minmax(520px,1.04fr);
    gap:clamp(48px,4.5vw,76px);
  }
  .dd-support__copy{
    max-width:620px;
  }
  .dd-support__title{
    max-width:620px;
    font-size:clamp(49px,4.25vw,72px);
    line-height:.97;
    letter-spacing:-.05em;
  }
}
@media (min-width:1051px) and (max-width:1180px){
  .dd-support__title{
    max-width:700px;
    font-size:clamp(46px,5.5vw,62px);
    line-height:.98;
  }
}

/* Hero is intentionally two lines on all breakpoints. */
.dd-hero__title{max-width:760px;margin-left:auto;margin-right:auto;}
@media (max-width:767px){
  .dd-hero__title{
    font-size:clamp(22px,5.9vw,29px);
    line-height:1.04;
    letter-spacing:-.025em;
  }
  .dd-hero__lede{
    max-width:36ch;
  }
}

/* ===== dd-hamburger-shell-removal-final-fix ===== */
/* FINAL CASCADE OVERRIDE — deliberately placed last.
   The hamburger keeps its full 44/42px hit area but has no visible CTA shell. */


/* Theme only the strokes; never the button shell. */



/* Retain the invisible 44px interaction target. */



/* Premium microinteraction: movement lives only in the strokes. */


/* Keyboard accessibility without recreating a permanent box. */







/* ===== dd-typography-consistency-lock-v1 ===== */
/* Final typography hierarchy lock: editorial serif for narrative; restrained sans for navigation/UI. */


.dd-next__eyebrow,
.dd-reframe__eyebrow,
.dd-future__eyebrow,
.dd-support__eyebrow,
.dd-trust__eyebrow,
.dd-demo__eyebrow,
.dd-faq__eyebrow{
  font-family:var(--dd-sans) !important;
  font-weight:750 !important;
}
.dd-hero__title,
.dd-next__title,
.dd-reframe__title,
.dd-future__title,
.dd-support__title,
.dd-trust__title,
.dd-demo__title,
.dd-faq__title{
  font-family:var(--dd-serif) !important;
  font-weight:400 !important;
}
.dd-faq__question-text,
.dd-footer__link-main{
  font-family:var(--dd-sans) !important;
  font-weight:560 !important;
}

/* ===== dd-support-interactive-tabs-graph-fix-v1 ===== */
/* Interactive support tabs: preserve the cinematic scroll narrative,add direct exploration. */
.dd-support__chapter{
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  margin:0;
  font:inherit;
  color:inherit;
  text-align:left;
  cursor:pointer;
  outline:none;
}
.dd-support__chapter:hover:not(.dd-is-active),
.dd-support__chapter:focus-visible:not(.dd-is-active){
  opacity:.72 !important;
  transform:translateX(4px) !important;
  filter:blur(0) !important;
  background:rgba(96,190,216,.045);
  border-color:rgba(127,213,235,.09);
}
.dd-support__chapter:focus-visible{
  box-shadow:inset 0 0 0 1px rgba(112,204,229,.34);
}
.dd-support__chapter.dd-is-active{
  cursor:default;
}

/* Graph containment: eight fixed tracks,never allowed to invade Trend / Pattern. */
.dd-support__analytics{
  grid-template-columns:minmax(0,1.28fr) minmax(132px,.72fr);
  min-width:0;
}
.dd-support__chart,
.dd-support__metric-stack{
  min-width:0;
}
.dd-support__chart{
  position:relative;
  overflow:hidden;
}
.dd-support__bars{
  position:relative;
  display:grid !important;
  grid-template-columns:repeat(8,minmax(0,1fr));
  align-items:end;
  gap:clamp(5px,.55vw,8px);
  width:100%;
  min-width:0;
  overflow:hidden;
  padding:22px 0 0;
  background:
    linear-gradient(to bottom, transparent 32%, rgba(183,228,240,.055) 32%, rgba(183,228,240,.055) calc(32% + 1px), transparent calc(32% + 1px)),
    linear-gradient(to bottom, transparent 64%, rgba(183,228,240,.045) 64%, rgba(183,228,240,.045) calc(64% + 1px), transparent calc(64% + 1px));
}
.dd-support__bar{
  display:block;
  width:100%;
  min-width:0 !important;
  max-width:100%;
  align-self:end;
}

@media(max-width:1050px){
  .dd-support__analytics{grid-template-columns:minmax(0,1.2fr) minmax(120px,.8fr);}
  .dd-support__bars{gap:6px;}
}
@media(max-width:600px){
  .dd-support__chapter{cursor:pointer;}
  .dd-support__chapter:hover:not(.dd-is-active){transform:none !important;}
  .dd-support__analytics{grid-template-columns:1fr;}
  .dd-support__bars{gap:5px;}
}
@media(prefers-reduced-motion:reduce){
  .dd-support__chapter{transition:none !important;}
}

/* ===== dd-practice-pulse-six-view-v1 ===== */
/* ================================================================
   PRACTICE PULSE — six-view product intelligence experience
   ================================================================ */
.dd-practice-pulse{--dd-support-scroll:620;}
.dd-practice-pulse .dd-support__inner{
  grid-template-columns:minmax(350px,.70fr) minmax(670px,1.30fr);
  gap:clamp(44px,5.2vw,82px);
  width:min(1500px,100%);
}
.dd-practice-pulse .dd-support__copy{max-width:590px;align-self:center;}
.dd-practice-pulse .dd-support__eyebrow{color:#7bd7f1;letter-spacing:.22em;}
.dd-practice-pulse .dd-support__title{
  max-width:8.9em;
  font-size:clamp(48px,4.65vw,72px);
  line-height:.96;
  letter-spacing:-.052em;
}
.dd-practice-pulse .dd-support__title .dd-title-line{display:block;}
.dd-practice-pulse .dd-support__lede{max-width:46ch;color:#91afba;font-size:clamp(14px,1.08vw,17px);line-height:1.6;}

.dd-practice-pulse .pp-shell{
  min-height:clamp(520px,67vh,612px);
  grid-template-columns:184px minmax(0,1fr);
  gap:18px;
  padding:20px;
  border-radius:28px;
  background:linear-gradient(145deg,rgba(7,30,41,.72),rgba(5,24,34,.58));
  border-color:rgba(183,232,244,.12);
  box-shadow:0 42px 110px -58px rgba(0,0,0,.92),inset 0 1px 0 rgba(255,255,255,.035);
}
.dd-practice-pulse .pp-tabs{justify-content:space-between;gap:3px;padding:4px 0;}
.dd-practice-pulse .pp-tab{
  min-height:72px;
  width:100%;
  padding:10px 12px 10px 14px;
  border:1px solid transparent;
  border-radius:14px;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
  opacity:.75;
  filter:none;
  transform:none;
  transition:opacity .25s ease,background .25s ease,border-color .25s ease,transform .25s cubic-bezier(.22,.8,.2,1),box-shadow .25s ease;
}
.dd-practice-pulse .pp-tab::before{left:0;top:12px;bottom:12px;}
.dd-practice-pulse .pp-tab:hover:not(.dd-is-active),
.dd-practice-pulse .pp-tab:focus-visible:not(.dd-is-active){
  opacity:.95 !important;
  transform:translateX(3px) !important;
  background:rgba(112,204,229,.06);
}
.dd-practice-pulse .pp-tab:focus-visible{outline:1px solid rgba(123,215,241,.72);outline-offset:2px;}
.dd-practice-pulse .pp-tab.dd-is-active{
  opacity:1 !important;
  background:linear-gradient(90deg,rgba(112,204,229,.14),rgba(112,204,229,.035));
  border-color:rgba(130,218,240,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.dd-practice-pulse .dd-support__chapter-kicker{font-size:9.5px;color:#7eb9cb;letter-spacing:.15em;}
.dd-practice-pulse .dd-support__chapter-title{margin-top:3px;font-size:14.5px;font-weight:600;letter-spacing:-.012em;color:var(--pp-tab-title, #f0f9fc);}
.dd-practice-pulse .pp-tab.dd-is-active .dd-support__chapter-title{color:var(--pp-tab-title-active, #ffffff);}
.dd-practice-pulse .dd-support__chapter-note{margin-top:4px;font-size:12px;line-height:1.35;color:var(--pp-tab-note, #9bc3d3);}
.dd-practice-pulse .pp-tab.dd-is-active .dd-support__chapter-note{color:var(--pp-tab-note-active, #bfe4f3);}

.dd-practice-pulse .pp-stage{
  min-height:clamp(480px,62vh,572px);
  border-radius:20px;
  background:
    radial-gradient(circle at 84% 18%,rgba(70,184,215,.085),transparent 26%),
    linear-gradient(155deg,rgba(10,39,52,.93),rgba(5,22,31,.97));
  border-color:rgba(187,231,243,.095);
  overflow:hidden;
}
.dd-practice-pulse .pp-stage::after{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:.42;
  background:linear-gradient(105deg,transparent 0 46%,rgba(122,218,242,.028) 50%,transparent 54% 100%);
}
.dd-practice-pulse .pp-stage__head{left:18px;right:18px;top:15px;font-size:11px;font-weight:600;letter-spacing:.12em;color:var(--pp-stage-head-text, #8cb8c9);text-transform:uppercase;}
.dd-practice-pulse .dd-support__evidence-live::before{width:6px;height:6px;}
.dd-practice-pulse .pp-scene{
  inset:49px 18px 16px;
  justify-content:flex-start;
  gap:0;
  overflow:hidden;
}
.dd-practice-pulse .pp-scene__copy{flex:0 0 auto;padding-bottom:13px;}
.dd-practice-pulse .pp-view-eyebrow{
  display:flex;align-items:center;gap:7px;margin:0 0 7px;color:var(--pp-stage-live-dot, #72d5ee);
  font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
}
.dd-practice-pulse .pp-live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#72d5ee;box-shadow:0 0 10px rgba(114,213,238,.48);}
.dd-practice-pulse .dd-support__scene-title{margin:0 0 6px;font-size:clamp(22px,1.6vw,28px);line-height:1.15;letter-spacing:-.03em;}
.dd-practice-pulse .dd-support__scene-sub{margin:0;max-width:54ch;color:var(--pp-scene-sub-text, #b4d8e6);font-size:13.5px;line-height:1.45;}

.dd-practice-pulse .pp-hero-card,
.dd-practice-pulse .pp-mini-card{
  position:relative;
  border:1px solid rgba(185,230,242,.075);
  background:linear-gradient(150deg,rgba(14,49,63,.67),rgba(7,29,40,.74));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 24px 56px -42px rgba(0,0,0,.75);
  overflow:hidden;
}
.dd-practice-pulse .pp-hero-card{border-radius:17px;padding:14px 15px 12px;flex:1;min-height:0;}
.dd-practice-pulse .pp-mini-card{border-radius:15px;padding:14px;}
.dd-practice-pulse .pp-card-label{display:flex;justify-content:space-between;gap:12px;color:#5e8796;font-size:7.7px;letter-spacing:.1em;text-transform:uppercase;}
.dd-practice-pulse .pp-card-label span:last-child{color:#496f7e;}
.dd-practice-pulse .pp-chart-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:8px;border-top:1px solid rgba(188,230,241,.055);color:#5f8998;font-size:8px;}
.dd-practice-pulse .pp-chart-foot strong{color:#c7edf5;font-size:8px;font-weight:650;}
.dd-practice-pulse .pp-mini-label{color:#6b9baa;font-size:7.8px;font-weight:750;letter-spacing:.13em;text-transform:uppercase;}
.dd-practice-pulse .pp-mini-card p{margin:7px 0 0;color:#668a98;font-size:8.8px;line-height:1.38;}

/* Revenue funnel */
.dd-practice-pulse .pp-funnel-card{display:flex;flex-direction:column;}
.dd-practice-pulse .pp-funnel{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:9px 8% 8px;min-height:250px;}
.dd-practice-pulse .pp-funnel__stage{
  position:relative;height:43px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;
  color:#bfeaf4;background:linear-gradient(90deg,rgba(87,190,218,.42),rgba(87,190,218,.16));
  border:1px solid rgba(134,219,240,.13);opacity:.16;transform:scaleX(.70);transform-origin:50% 50%;
  clip-path:polygon(4% 0,96% 0,91% 100%,9% 100%);
}
.dd-practice-pulse .pp-funnel__stage span{font-size:8px;text-transform:uppercase;letter-spacing:.09em;color:#87b5c3;}
.dd-practice-pulse .pp-funnel__stage strong{font-family:var(--dd-serif);font-size:17px;font-weight:400;color:#e7f9fc;}
.dd-practice-pulse .pp-funnel__stage--1{width:100%;}
.dd-practice-pulse .pp-funnel__stage--2{width:84%;}
.dd-practice-pulse .pp-funnel__stage--3{width:67%;}
.dd-practice-pulse .pp-funnel__stage--4{width:51%;}
.dd-practice-pulse .pp-funnel__drip{position:absolute;left:72%;top:49%;width:2px;height:0;background:linear-gradient(#79d7ef,transparent);border-radius:99px;opacity:0;}
.dd-practice-pulse.pp-in-view .pp-scene--revenue.dd-is-active .pp-funnel__stage{animation:ppFunnelFill 4.5s cubic-bezier(.22,.8,.2,1) infinite;}
.dd-practice-pulse.pp-in-view .pp-scene--revenue.dd-is-active .pp-funnel__stage--2{animation-delay:.16s;}
.dd-practice-pulse.pp-in-view .pp-scene--revenue.dd-is-active .pp-funnel__stage--3{animation-delay:.32s;}
.dd-practice-pulse.pp-in-view .pp-scene--revenue.dd-is-active .pp-funnel__stage--4{animation-delay:.48s;}
.dd-practice-pulse.pp-in-view .pp-scene--revenue.dd-is-active .pp-funnel__drip{animation:ppDrip 4.5s ease-in-out .34s infinite;}
@keyframes ppFunnelFill{0%,6%{opacity:.16;transform:scaleX(.70)}24%,78%{opacity:1;transform:scaleX(1)}100%{opacity:.16;transform:scaleX(.70)}}
@keyframes ppDrip{0%,20%{height:0;opacity:0;transform:translateY(0)}30%{height:34px;opacity:.8}42%{height:10px;opacity:.25;transform:translateY(30px)}55%,100%{height:0;opacity:0;transform:translateY(45px)}}

/* Performance */
.dd-practice-pulse .pp-split{flex:1;min-height:0;display:grid;gap:10px;}
.dd-practice-pulse .pp-split--wide{grid-template-columns:minmax(0,1.75fr) minmax(132px,.72fr);}
.dd-practice-pulse .pp-pipeline-card{display:flex;flex-direction:column;}
.dd-practice-pulse .pp-pipeline{position:relative;flex:1;min-height:210px;margin:2px 8px 0;}
.dd-practice-pulse .pp-pipeline__track{position:absolute;left:7%;right:7%;top:48%;height:1px;background:linear-gradient(90deg,rgba(93,190,218,.18),rgba(107,211,238,.62),rgba(93,190,218,.18));}
.dd-practice-pulse .pp-pipeline__traveller{position:absolute;z-index:3;left:7%;top:calc(48% - 4px);width:8px;height:8px;border-radius:50%;background:#92e2f5;box-shadow:0 0 0 5px rgba(107,211,238,.08),0 0 14px rgba(107,211,238,.55);}
.dd-practice-pulse .pp-pipeline__node{position:absolute;top:calc(48% - 8px);transform:translateX(-50%);text-align:center;width:74px;}
.dd-practice-pulse .pp-pipeline__node b{display:block;width:16px;height:16px;margin:0 auto 12px;border-radius:50%;background:#0d3546;border:1px solid rgba(131,216,238,.34);box-shadow:0 0 0 5px rgba(101,202,228,.035);}
.dd-practice-pulse .pp-pipeline__node strong{display:block;color:#dff7fb;font-family:var(--dd-serif);font-size:18px;font-weight:400;}
.dd-practice-pulse .pp-pipeline__node span{display:block;margin-top:2px;color:#628a98;font-size:7.8px;text-transform:uppercase;letter-spacing:.08em;}
.dd-practice-pulse .pp-pipeline__node--1{left:7%;}.dd-practice-pulse .pp-pipeline__node--2{left:36%;}.dd-practice-pulse .pp-pipeline__node--3{left:66%;}.dd-practice-pulse .pp-pipeline__node--4{left:93%;}
.dd-practice-pulse.pp-in-view .pp-scene--performance.dd-is-active .pp-pipeline__traveller{animation:ppPipeline 5.2s cubic-bezier(.35,.02,.18,1) infinite;}
@keyframes ppPipeline{0%,7%{left:7%;opacity:0}12%{opacity:1}30%{left:36%}55%{left:64%}68%{left:67%}82%{left:93%;opacity:1}88%,100%{left:93%;opacity:0}}
.dd-practice-pulse .pp-stall-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.dd-practice-pulse .pp-stall-ring{width:82px;height:82px;margin:14px auto 5px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(240,184,98,.30);box-shadow:inset 0 0 0 8px rgba(240,184,98,.035);}
.dd-practice-pulse .pp-stall-ring strong{font-family:var(--dd-serif);font-size:29px;font-weight:400;color:#f1d9af;}
.dd-practice-pulse.pp-in-view .pp-scene--performance.dd-is-active .pp-stall-ring{animation:ppStallPulse 4.2s ease-in-out infinite;}
@keyframes ppStallPulse{0%,58%,100%{box-shadow:inset 0 0 0 8px rgba(240,184,98,.035),0 0 0 0 rgba(240,184,98,0)}68%{box-shadow:inset 0 0 0 8px rgba(240,184,98,.05),0 0 0 8px rgba(240,184,98,.08)}}

/* Relationships */
.dd-practice-pulse .pp-rel-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.58fr) minmax(142px,.68fr);gap:10px;}
.dd-practice-pulse .pp-ranking-card{display:flex;flex-direction:column;}
.dd-practice-pulse .pp-ranking{flex:1;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:5px 0 2px;}
.dd-practice-pulse .pp-rank-row{display:grid;grid-template-columns:90px minmax(0,1fr) 25px;align-items:center;gap:8px;color:#688f9d;font-size:7.8px;}
.dd-practice-pulse .pp-rank-row i{height:7px;border-radius:999px;transform-origin:left;transform:scaleX(.03);background:linear-gradient(90deg,rgba(105,207,234,.72),rgba(105,207,234,.16));width:calc(var(--dd-rank) * 100%);}
.dd-practice-pulse .pp-rank-row strong{color:#a9d7e3;font-size:8.5px;font-weight:650;text-align:right;}
.dd-practice-pulse.pp-in-view .pp-scene--relationships.dd-is-active .pp-rank-row i{animation:ppRankGrow 4.8s cubic-bezier(.22,.8,.2,1) infinite;}
.dd-practice-pulse.pp-in-view .pp-scene--relationships.dd-is-active .pp-rank-row:nth-child(2) i{animation-delay:.08s}.dd-practice-pulse.pp-in-view .pp-scene--relationships.dd-is-active .pp-rank-row:nth-child(3) i{animation-delay:.16s}.dd-practice-pulse.pp-in-view .pp-scene--relationships.dd-is-active .pp-rank-row:nth-child(4) i{animation-delay:.24s}.dd-practice-pulse.pp-in-view .pp-scene--relationships.dd-is-active .pp-rank-row:nth-child(5) i{animation-delay:.32s}.dd-practice-pulse.pp-in-view .pp-scene--relationships.dd-is-active .pp-rank-row:nth-child(6) i{animation-delay:.40s}
@keyframes ppRankGrow{0%,8%{transform:scaleX(.03);opacity:.24}30%,82%{transform:scaleX(1);opacity:1}100%{transform:scaleX(.03);opacity:.24}}
.dd-practice-pulse .pp-rel-minis{display:grid;grid-template-rows:1fr 1fr;gap:10px;min-height:0;}
.dd-practice-pulse .pp-quiet-card,.dd-practice-pulse .pp-risk-card{display:flex;flex-direction:column;justify-content:center;}
.dd-practice-pulse .pp-quiet-card>strong{margin-top:10px;color:#d6f1f6;font-family:var(--dd-serif);font-size:20px;font-weight:400;}
.dd-practice-pulse .pp-quiet-lines{width:100%;height:36px;margin-top:7px;overflow:visible;}
.dd-practice-pulse .pp-quiet-lines path{fill:none;stroke:#5caac1;stroke-width:1.2;opacity:.55;}
.dd-practice-pulse.pp-in-view .pp-scene--relationships.dd-is-active .pp-quiet-lines path{animation:ppQuiet 4.8s ease-in-out infinite;}
.dd-practice-pulse.pp-in-view .pp-scene--relationships.dd-is-active .pp-quiet-lines path:nth-child(2){animation-delay:.35s;}
@keyframes ppQuiet{0%,38%,100%{opacity:.6}55%,72%{opacity:.12;stroke:#71848b}}
.dd-practice-pulse .pp-risk-ring{position:relative;width:75px;height:75px;margin:8px auto 0;display:grid;place-items:center;}
.dd-practice-pulse .pp-risk-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.dd-practice-pulse .pp-risk-ring circle{fill:none;stroke-width:5;}
.dd-practice-pulse .pp-risk-ring__track{stroke:rgba(102,192,217,.10);}
.dd-practice-pulse .pp-risk-ring__value{stroke:#74cee7;stroke-linecap:round;stroke-dasharray:188.5;stroke-dashoffset:188.5;}
.dd-practice-pulse .pp-risk-ring strong{position:relative;color:#dff7fb;font-family:var(--dd-serif);font-size:18px;font-weight:400;}
.dd-practice-pulse.pp-in-view .pp-scene--relationships.dd-is-active .pp-risk-ring__value{animation:ppRisk 4.8s cubic-bezier(.22,.8,.2,1) infinite;}
@keyframes ppRisk{0%,10%{stroke-dashoffset:188.5}34%,82%{stroke-dashoffset:116.9}100%{stroke-dashoffset:188.5}}

/* Competitive */
.dd-practice-pulse .pp-market-card{display:grid;grid-template-rows:auto 1fr auto;}
.dd-practice-pulse .pp-market-gauge{position:relative;min-height:280px;display:grid;place-items:center;}
.dd-practice-pulse .pp-market-gauge svg{width:min(285px,70%);height:min(285px,70%);transform:rotate(-90deg);overflow:visible;}
.dd-practice-pulse .pp-market-gauge circle{fill:none;stroke-width:10;}
.dd-practice-pulse .pp-market-gauge__track{stroke:rgba(107,201,227,.09);}
.dd-practice-pulse .pp-market-gauge__value{stroke:#74d4ed;stroke-linecap:round;stroke-dasharray:515.2;stroke-dashoffset:515.2;filter:drop-shadow(0 0 8px rgba(116,212,237,.22));}
.dd-practice-pulse .pp-market-gauge__value-label{position:absolute;display:grid;grid-template-columns:auto auto;align-items:start;justify-content:center;}
.dd-practice-pulse .pp-market-gauge__value-label strong{font-family:var(--dd-serif);font-size:58px;line-height:.9;font-weight:400;color:#e9fafd;letter-spacing:-.055em;}
.dd-practice-pulse .pp-market-gauge__value-label>span{margin:4px 0 0 3px;color:#78cfe6;font-size:16px;}
.dd-practice-pulse .pp-market-gauge__value-label small{grid-column:1/-1;margin-top:8px;color:#658d9b;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;text-align:center;}
.dd-practice-pulse .pp-market-foot{display:flex;align-items:center;gap:9px;justify-content:center;color:#5c8492;font-size:7.8px;text-transform:uppercase;letter-spacing:.09em;}
.dd-practice-pulse .pp-market-foot b{width:32px;height:1px;background:linear-gradient(90deg,#72d2eb,rgba(114,210,235,.16));}
.dd-practice-pulse.pp-in-view .pp-scene--competitive.dd-is-active .pp-market-gauge__value{animation:ppMarket 4.8s cubic-bezier(.22,.8,.2,1) infinite;}
@keyframes ppMarket{0%,8%{stroke-dashoffset:515.2}34%,82%{stroke-dashoffset:376.1}100%{stroke-dashoffset:515.2}}

/* Marketing */
.dd-practice-pulse .pp-split--marketing{grid-template-columns:minmax(0,1.45fr) minmax(150px,.72fr);}
.dd-practice-pulse .pp-cost-card{display:flex;flex-direction:column;}
.dd-practice-pulse .pp-cost-bars{flex:1;display:flex;flex-direction:column;justify-content:center;gap:20px;padding:12px 0;}
.dd-practice-pulse .pp-cost-row{display:grid;grid-template-columns:54px minmax(0,1fr) 34px;align-items:center;gap:8px;color:#7296a2;font-size:8px;}
.dd-practice-pulse .pp-cost-row i{height:10px;width:calc(var(--dd-cost) * 100%);transform-origin:left;transform:scaleX(.04);border-radius:999px;background:linear-gradient(90deg,rgba(106,202,228,.65),rgba(106,202,228,.15));}
.dd-practice-pulse .pp-cost-row strong{text-align:right;color:#c8e9f0;font-size:9px;font-weight:650;}
.dd-practice-pulse .pp-cost-row--best i{background:linear-gradient(90deg,#82daf0,rgba(130,218,240,.30));box-shadow:0 0 14px rgba(130,218,240,.08);}
.dd-practice-pulse.pp-in-view .pp-scene--marketing.dd-is-active .pp-cost-row i{animation:ppCost 4.4s cubic-bezier(.22,.8,.2,1) infinite;}
.dd-practice-pulse.pp-in-view .pp-scene--marketing.dd-is-active .pp-cost-row:nth-child(2) i{animation-delay:.13s}.dd-practice-pulse.pp-in-view .pp-scene--marketing.dd-is-active .pp-cost-row:nth-child(3) i{animation-delay:.26s}
@keyframes ppCost{0%,8%{transform:scaleX(.04);opacity:.3}34%,84%{transform:scaleX(1);opacity:1}100%{transform:scaleX(.04);opacity:.3}}
.dd-practice-pulse .pp-source-card{display:flex;flex-direction:column;justify-content:center;}
.dd-practice-pulse .pp-source-donut{position:relative;width:104px;height:104px;margin:12px auto;border-radius:50%;background:conic-gradient(#7ad7ef 0 52%,#4f9db5 52% 81%,#315f70 81% 100%);transform:rotate(-90deg);}
.dd-practice-pulse .pp-source-donut::after{content:'';position:absolute;inset:18px;border-radius:50%;background:#0a2633;box-shadow:inset 0 0 0 1px rgba(185,230,242,.06);}
.dd-practice-pulse .pp-source-donut div{position:absolute;inset:0;border-radius:50%;background:#0a2633;transform-origin:50% 50%;z-index:2;clip-path:polygon(50% 50%,50% 0,100% 0,100% 100%,0 100%,0 0,50% 0);}
.dd-practice-pulse.pp-in-view .pp-scene--marketing.dd-is-active .pp-source-donut div{animation:ppDonutReveal 4.4s cubic-bezier(.22,.8,.2,1) infinite;}
@keyframes ppDonutReveal{0%,8%{transform:rotate(0deg);opacity:1}38%,82%{transform:rotate(360deg);opacity:0}100%{transform:rotate(360deg);opacity:1}}
.dd-practice-pulse .pp-source-legend{display:grid;gap:5px;}
.dd-practice-pulse .pp-source-legend span{display:grid;grid-template-columns:6px 1fr auto;align-items:center;gap:5px;color:#698e9b;font-size:7.4px;}
.dd-practice-pulse .pp-source-legend i{width:5px;height:5px;border-radius:50%;background:#7ad7ef;}.dd-practice-pulse .pp-source-legend span:nth-child(2) i{background:#4f9db5}.dd-practice-pulse .pp-source-legend span:nth-child(3) i{background:#315f70}.dd-practice-pulse .pp-source-legend strong{font-weight:650;color:#a7d0d9;}

/* Forecast */
.dd-practice-pulse .pp-forecast-card{display:flex;flex-direction:column;}
.dd-practice-pulse .pp-forecast{width:100%;flex:1;min-height:255px;margin:4px 0 0;overflow:visible;}
.dd-practice-pulse .pp-forecast__grid path{fill:none;stroke:rgba(161,212,226,.065);stroke-width:1;}
.dd-practice-pulse .pp-forecast__history,.dd-practice-pulse .pp-forecast__projection{fill:none;stroke-width:2.3;vector-effect:non-scaling-stroke;}
.dd-practice-pulse .pp-forecast__history{stroke:#79d7ef;stroke-linecap:round;stroke-dasharray:680;stroke-dashoffset:680;filter:drop-shadow(0 0 5px rgba(121,215,239,.15));}
.dd-practice-pulse .pp-forecast__projection{stroke:#82c8da;stroke-dasharray:6 7;stroke-dashoffset:220;}
.dd-practice-pulse .pp-forecast__cone{fill:rgba(105,199,224,.10);stroke:rgba(105,199,224,.12);stroke-width:1;transform-origin:392px 126px;transform:scaleX(.02);opacity:0;}
.dd-practice-pulse .pp-forecast__handoff{fill:#b0e9f5;opacity:0;filter:drop-shadow(0 0 6px rgba(176,233,245,.55));}
.dd-practice-pulse .pp-forecast-axis{display:flex;justify-content:space-between;color:var(--pp-legend-text, #a4c9d7);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:1px 4px 0;}
.dd-practice-pulse.pp-in-view .pp-scene--forecast.dd-is-active .pp-forecast__history{animation:ppHistory 5s cubic-bezier(.22,.8,.2,1) infinite;}
.dd-practice-pulse.pp-in-view .pp-scene--forecast.dd-is-active .pp-forecast__projection{animation:ppProjection 5s cubic-bezier(.22,.8,.2,1) infinite;}
.dd-practice-pulse.pp-in-view .pp-scene--forecast.dd-is-active .pp-forecast__cone{animation:ppCone 5s ease-in-out infinite;}
.dd-practice-pulse.pp-in-view .pp-scene--forecast.dd-is-active .pp-forecast__handoff{animation:ppHandoff 5s ease-in-out infinite;}
@keyframes ppHistory{0%,8%{stroke-dashoffset:680}38%,84%{stroke-dashoffset:0}100%{stroke-dashoffset:680}}
@keyframes ppProjection{0%,34%{stroke-dashoffset:220;opacity:0}46%{opacity:1}64%,84%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:220;opacity:0}}
@keyframes ppCone{0%,44%{transform:scaleX(.02);opacity:0}62%{transform:scaleX(1.04);opacity:1}72%,84%{transform:scaleX(.94);opacity:.78}100%{transform:scaleX(.02);opacity:0}}
@keyframes ppHandoff{0%,30%{opacity:0}38%,84%{opacity:1}100%{opacity:0}}

@media(max-width:1220px){
  .dd-practice-pulse{--dd-support-scroll:650;}
  .dd-practice-pulse .dd-support__inner{grid-template-columns:minmax(300px,.62fr) minmax(620px,1.38fr);gap:34px;padding-left:34px;padding-right:34px;}
  .dd-practice-pulse .dd-support__title{font-size:clamp(45px,4.5vw,62px);}
  .dd-practice-pulse .pp-shell{grid-template-columns:164px minmax(0,1fr);padding:16px;gap:14px;}
  .dd-practice-pulse .pp-tab{padding-left:12px;min-height:69px;}
  .dd-practice-pulse .dd-support__chapter-title{font-size:13.5px;}
  .dd-practice-pulse .dd-support__chapter-note{font-size:11.5px;}
}
@media(max-width:1050px){
  .dd-practice-pulse{--dd-support-scroll:680;}
  .dd-practice-pulse .dd-support__inner{grid-template-columns:1fr;gap:26px;padding-top:58px;padding-bottom:36px;align-content:center;}
  .dd-practice-pulse .dd-support__copy{max-width:820px;}
  .dd-practice-pulse .dd-support__title{max-width:12em;font-size:clamp(43px,6vw,64px);}
  .dd-practice-pulse .dd-support__lede{margin-top:18px;max-width:60ch;}
  .dd-practice-pulse .pp-shell{min-height:480px;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);}
  .dd-practice-pulse .pp-tabs{display:grid;grid-template-columns:repeat(6,minmax(112px,1fr));gap:5px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;}
  .dd-practice-pulse .pp-tabs::-webkit-scrollbar{display:none;}
  .dd-practice-pulse .pp-tab{min-width:112px;min-height:58px;padding:9px 10px;}
  .dd-practice-pulse .pp-tab::before{left:10px;right:10px;top:auto;bottom:0;width:auto;height:1px;}
  .dd-practice-pulse .pp-tab.dd-is-active::before{width:auto;height:2px;}
  .dd-practice-pulse .dd-support__chapter-note{display:none;}
  .dd-practice-pulse .pp-stage{min-height:375px;}
  .dd-practice-pulse .pp-scene{inset:45px 14px 13px;}
  .dd-practice-pulse .pp-funnel{min-height:190px;}
  .dd-practice-pulse .pp-market-gauge{min-height:220px;}
  .dd-practice-pulse .pp-forecast{min-height:190px;}
}
@media(max-width:700px){
  .dd-practice-pulse{--dd-support-scroll:760;}
  .dd-practice-pulse .dd-support__stage{align-items:flex-start;}
  .dd-practice-pulse .dd-support__inner{padding:82px 14px 28px;gap:22px;}
  .dd-practice-pulse .dd-support__eyebrow{margin-bottom:10px;font-size:8.7px;}
  .dd-practice-pulse .dd-support__title{max-width:9.4em;font-size:clamp(36px,10.3vw,49px);line-height:.98;}
  .dd-practice-pulse .dd-support__lede{margin-top:16px;font-size:12.5px;line-height:1.48;max-width:43ch;}
  .dd-practice-pulse .pp-shell{min-height:510px;padding:10px;border-radius:20px;gap:9px;}
  .dd-practice-pulse .pp-tabs{grid-template-columns:repeat(6,112px);margin:0 -1px;}
  .dd-practice-pulse .pp-tab{min-height:50px;border-radius:11px;padding:7px 9px;}
  .dd-practice-pulse .dd-support__chapter-kicker{font-size:6.7px;}
  .dd-practice-pulse .dd-support__chapter-title{font-size:8px;}
  .dd-practice-pulse .pp-stage{min-height:430px;border-radius:15px;}
  .dd-practice-pulse .pp-stage__head{left:12px;right:12px;top:11px;font-size:7px;}
  .dd-practice-pulse .pp-scene{inset:39px 10px 10px;}
  .dd-practice-pulse .pp-scene__copy{padding-bottom:9px;}
  .dd-practice-pulse .pp-view-eyebrow{font-size:6.5px;margin-bottom:5px;}
  .dd-practice-pulse .dd-support__scene-title{font-size:20px;}
  .dd-practice-pulse .dd-support__scene-sub{font-size:8.2px;line-height:1.35;}
  .dd-practice-pulse .pp-hero-card{padding:10px;border-radius:13px;}
  .dd-practice-pulse .pp-mini-card{padding:10px;border-radius:12px;}
  .dd-practice-pulse .pp-card-label{font-size:6.5px;}
  .dd-practice-pulse .pp-split--wide,.dd-practice-pulse .pp-split--marketing,.dd-practice-pulse .pp-rel-grid{grid-template-columns:minmax(0,1fr) 112px;gap:7px;}
  .dd-practice-pulse .pp-rel-minis{gap:7px;}
  .dd-practice-pulse .pp-pipeline{min-height:165px;margin:0;}
  .dd-practice-pulse .pp-pipeline__node{width:56px;}
  .dd-practice-pulse .pp-pipeline__node strong{font-size:14px;}.dd-practice-pulse .pp-pipeline__node span{font-size:6.2px;}
  .dd-practice-pulse .pp-stall-ring{width:62px;height:62px;margin:8px auto 2px;}.dd-practice-pulse .pp-stall-ring strong{font-size:23px;}
  .dd-practice-pulse .pp-ranking{gap:6px;}.dd-practice-pulse .pp-rank-row{grid-template-columns:68px minmax(0,1fr) 19px;gap:5px;font-size:6.3px;}.dd-practice-pulse .pp-rank-row i{height:5px;}
  .dd-practice-pulse .pp-quiet-card>strong{font-size:15px;margin-top:6px;}.dd-practice-pulse .pp-quiet-lines{height:25px;}
  .dd-practice-pulse .pp-risk-ring{width:57px;height:57px;}.dd-practice-pulse .pp-risk-ring strong{font-size:14px;}
  .dd-practice-pulse .pp-market-gauge{min-height:230px;}.dd-practice-pulse .pp-market-gauge__value-label strong{font-size:48px;}
  .dd-practice-pulse .pp-cost-bars{gap:14px;}.dd-practice-pulse .pp-cost-row{grid-template-columns:42px minmax(0,1fr) 28px;gap:5px;font-size:6.7px;}
  .dd-practice-pulse .pp-source-donut{width:76px;height:76px;margin:8px auto;}.dd-practice-pulse .pp-source-donut::after{inset:14px;}.dd-practice-pulse .pp-source-legend span{font-size:6.1px;}
  .dd-practice-pulse .pp-forecast{min-height:215px;}
}
@media(prefers-reduced-motion:reduce){
  .dd-practice-pulse .pp-funnel__stage{opacity:1;transform:none;}
  .dd-practice-pulse .pp-funnel__drip{display:none;}
  .dd-practice-pulse .pp-pipeline__traveller{left:93%;}
  .dd-practice-pulse .pp-rank-row i,.dd-practice-pulse .pp-cost-row i{transform:none;}
  .dd-practice-pulse .pp-risk-ring__value{stroke-dashoffset:116.9;}
  .dd-practice-pulse .pp-market-gauge__value{stroke-dashoffset:376.1;}
  .dd-practice-pulse .pp-source-donut div{display:none;}
  .dd-practice-pulse .pp-forecast__history{stroke-dashoffset:0;}
  .dd-practice-pulse .pp-forecast__projection{stroke-dashoffset:0;opacity:1;}
  .dd-practice-pulse .pp-forecast__cone{transform:none;opacity:.78;}
  .dd-practice-pulse .pp-forecast__handoff{opacity:1;}
}

/* ===== dd-practice-pulse-cleanup-v2 ===== */
/* Practice Pulse cleanup: stable readability first,motion lives inside the data visualisations. */
.dd-practice-pulse .dd-support__inner{
  grid-template-columns:minmax(430px,.76fr) minmax(720px,1.24fr);
  gap:clamp(50px,4.5vw,72px);
  width:min(1520px,100%);
}
.dd-practice-pulse .dd-support__copy{max-width:640px;}
.dd-practice-pulse .dd-support__title{
  max-width:10.2em;
  font-size:clamp(50px,4.45vw,70px);
  line-height:.965;
  letter-spacing:-.05em;
}
.dd-practice-pulse .dd-support__title .dd-title-line{white-space:nowrap;}

.dd-practice-pulse .pp-shell{
  grid-template-columns:190px minmax(0,1fr);
  gap:16px;
  padding:18px;
}
.dd-practice-pulse .pp-tabs{gap:5px;padding:2px 0;}
.dd-practice-pulse .pp-tab{
  min-height:70px;
  padding:10px 12px 10px 16px;
  opacity:.48;
  border-color:transparent;
  transition:opacity .22s ease,background .22s ease,border-color .22s ease,transform .22s cubic-bezier(.22,.8,.2,1),box-shadow .22s ease;
}
.dd-practice-pulse .pp-tab:hover:not(.dd-is-active),
.dd-practice-pulse .pp-tab:focus-visible:not(.dd-is-active){
  opacity:.82 !important;
  transform:translateX(2px) !important;
}
.dd-practice-pulse .pp-tab.dd-is-active{
  opacity:1 !important;
  background:linear-gradient(90deg,rgba(112,204,229,.14),rgba(112,204,229,.035));
  border-color:rgba(130,218,240,.22);
  box-shadow:none;
}
.dd-practice-pulse .pp-tab.dd-is-active::before{
  box-shadow:0 0 9px rgba(112,204,229,.20);
}
.dd-practice-pulse .dd-support__chapter-note{color:var(--pp-tab-note, #9bc3d3);}

.dd-practice-pulse .pp-stage{
  background:radial-gradient(circle at 82% 14%,rgba(70,184,215,.065),transparent 25%),linear-gradient(155deg,rgba(10,39,52,.96),rgba(5,22,31,.985));
}
.dd-practice-pulse .pp-stage::after{opacity:.24;}
.dd-practice-pulse .pp-scene{
  filter:none !important;
  transition:opacity .24s ease,transform .30s cubic-bezier(.22,.8,.2,1);
  will-change:opacity,transform;
}
.dd-practice-pulse .pp-scene.dd-is-active{
  opacity:1 !important;
  filter:none !important;
  transform:translateY(0) scale(1) !important;
}
.dd-practice-pulse .pp-view-eyebrow{color:var(--pp-stage-live-dot, #72d5ee);font-size:11px;font-weight:700;}
.dd-practice-pulse .dd-support__scene-title{color:#ecf9fc;}
.dd-practice-pulse .dd-support__scene-sub{color:var(--pp-scene-sub-text, #b4d8e6);font-size:13.5px;line-height:1.45;}
.dd-practice-pulse .pp-hero-card,
.dd-practice-pulse .pp-mini-card{
  border-color:rgba(185,230,242,.09);
  background:linear-gradient(150deg,rgba(14,49,63,.72),rgba(7,29,40,.80));
}

@media (max-width:1280px){
  .dd-practice-pulse .dd-support__inner{grid-template-columns:minmax(340px,.68fr) minmax(620px,1.32fr);gap:32px;padding-left:32px;padding-right:32px;}
  .dd-practice-pulse .dd-support__title{font-size:clamp(44px,4.25vw,58px);}
  .dd-practice-pulse .pp-shell{grid-template-columns:166px minmax(0,1fr);padding:15px;gap:13px;}
}
@media (max-width:1050px){
  .dd-practice-pulse .dd-support__inner{grid-template-columns:1fr;gap:24px;}
  .dd-practice-pulse .dd-support__title{max-width:12em;font-size:clamp(43px,6vw,64px);}
  .dd-practice-pulse .pp-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);}
}
@media (max-width:600px){
  .dd-practice-pulse .dd-support__title{max-width:9.4em;font-size:clamp(36px,10.3vw,49px);}
  .dd-practice-pulse .dd-support__title .dd-title-line{white-space:normal;}
  .dd-practice-pulse .pp-tab{opacity:.62;}
}

/* ===== dd-practice-pulse-forecast-columns-v1 ===== */
/* Forecasting refinement: columns embedded beneath the forecast line so both read as one system. */
.dd-practice-pulse .pp-forecast-layout{
  flex:1;
  min-height:0;
  display:block;
}
.dd-practice-pulse .pp-forecast-layout .pp-forecast-card{
  min-width:0;
  position:relative;
  overflow:hidden;
}
.dd-practice-pulse .pp-forecast-card--integrated{padding-bottom:34px;}
.dd-practice-pulse .pp-forecast-card--integrated .pp-forecast{
  position:relative;
  z-index:2;
}
.dd-practice-pulse .pp-forecast-inset{
  position:absolute;
  right:34px;
  bottom:118px;
  width:376px;
  padding:0;
  background:none;
  border:none;
  box-shadow:none;
  border-radius:0;
  backdrop-filter:none;
  z-index:1;
  pointer-events:none;
}
.dd-practice-pulse .pp-static-columns{
  position:relative;
  min-height:116px;
  margin:0;
  padding:0 2px 0;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  align-items:end;
  gap:16px;
  background:none;
}
.dd-practice-pulse .pp-static-columns::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:rgba(174,222,234,.10);
}
.dd-practice-pulse .pp-static-column{
  height:100%;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  min-width:0;
}
.dd-practice-pulse .pp-static-column i{
  display:block;
  width:min(34px,88%);
  height:calc(var(--dd-col) * 100%);
  min-height:18px;
  align-self:end;
  border-radius:10px 10px 2px 2px;
  background:linear-gradient(180deg,rgba(118,214,239,.58),rgba(67,142,166,.12));
  border:1px solid rgba(143,224,244,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
  opacity:.92;
}
.dd-practice-pulse .pp-static-column--current i{
  background:linear-gradient(180deg,rgba(132,224,245,.84),rgba(72,157,181,.20));
  box-shadow:0 0 12px rgba(116,214,239,.08),inset 0 1px 0 rgba(255,255,255,.08);
}
/* Intentionally no keyframes/animation on the column chart: it is a stable comparison layer. */
@media(max-width:1050px){
  .dd-practice-pulse .pp-forecast-inset{right:24px;bottom:112px;width:300px;}
  .dd-practice-pulse .pp-static-columns{min-height:102px;gap:12px;}
  .dd-practice-pulse .pp-static-column i{width:min(28px,86%);}
}
@media(max-width:700px){
  .dd-practice-pulse .pp-forecast-card--integrated{padding-bottom:28px;}
  .dd-practice-pulse .pp-forecast-inset{position:relative;right:auto;bottom:auto;width:auto;margin:10px 0 0;z-index:0;}
  .dd-practice-pulse .pp-static-columns{min-height:92px;padding:0;gap:8px;}
  .dd-practice-pulse .pp-static-column i{width:min(18px,84%);border-radius:5px 5px 2px 2px;}
}

/* ===== dd-practice-pulse-forecast-baseline-and-analytics-palette-v1 ===== */
/*
  Practice Pulse refinement layer
  - Forecast columns lowered so the projected bars originate from the same analytical baseline as the path chart.
  - Video-inspired chart accents applied only to visualisation primitives for easy rollback.
*/
.dd-practice-pulse{
  --pp-chart-mint:#9feeff;
  --pp-chart-lilac:#d8ccff;
  --pp-chart-pink:#f0bfd9;
  --pp-chart-ivory:#fff8ff;
  --pp-chart-ink:#6d8f9b;
}

/* Forecast baseline alignment */
.dd-practice-pulse .pp-forecast-inset{
  right:34px;
  bottom:72px;
  width:392px;
}
.dd-practice-pulse .pp-static-columns{
  min-height:156px;
  gap:15px;
}
.dd-practice-pulse .pp-static-columns::after{
  background:rgba(232,228,255,.14);
}
.dd-practice-pulse .pp-static-column i{
  width:min(36px,90%);
  border-radius:11px 11px 2px 2px;
  background:linear-gradient(180deg,rgba(240,191,217,.84) 0%,rgba(217,204,255,.62) 46%,rgba(133,213,236,.20) 100%);
  border:1px solid rgba(255,240,247,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 10px 26px -22px rgba(240,191,217,.55);
}
.dd-practice-pulse .pp-static-column--current i{
  background:linear-gradient(180deg,rgba(255,246,251,.92) 0%,rgba(229,202,246,.76) 35%,rgba(147,227,244,.28) 100%);
  border-color:rgba(255,245,250,.34);
  box-shadow:0 0 14px rgba(240,191,217,.14),inset 0 1px 0 rgba(255,255,255,.18);
}

/* Forecast chart accents */
.dd-practice-pulse .pp-forecast__grid path{stroke:rgba(199,219,232,.085);}
.dd-practice-pulse .pp-forecast__history{
  stroke:var(--pp-chart-mint);
  filter:drop-shadow(0 0 7px rgba(159,238,255,.18));
}
.dd-practice-pulse .pp-forecast__projection{stroke:var(--pp-chart-lilac);}
.dd-practice-pulse .pp-forecast__cone{
  fill:rgba(240,191,217,.09);
  stroke:rgba(240,191,217,.17);
}
.dd-practice-pulse .pp-forecast__handoff{
  fill:var(--pp-chart-ivory);
  filter:drop-shadow(0 0 8px rgba(255,248,255,.48));
}

/* Radar / market position */
.dd-practice-pulse .pp-radar-grid polygon,
.dd-practice-pulse .pp-radar-grid line{stroke:rgba(196,211,230,.11);}
.dd-practice-pulse .pp-radar-grid polygon:first-child{stroke:rgba(196,211,230,.18);}
.dd-practice-pulse .pp-radar-benchmark{
  fill:rgba(239,244,255,.03);
  stroke:rgba(233,239,255,.52);
}
.dd-practice-pulse .pp-radar-practice{
  fill:rgba(240,191,217,.14);
  stroke:var(--pp-chart-pink);
  filter:drop-shadow(0 0 9px rgba(240,191,217,.14));
}
.dd-practice-pulse .pp-radar-points circle{fill:var(--pp-chart-ivory);stroke:rgba(74,44,82,.66);}
.dd-practice-pulse .pp-market-legend__benchmark{
  background:repeating-linear-gradient(90deg,rgba(232,239,255,.72) 0 5px,transparent 5px 9px);
}
.dd-practice-pulse .pp-market-legend__practice{
  background:var(--pp-chart-pink);
  box-shadow:0 0 10px rgba(240,191,217,.16);
}

/* Revenue / relationships / marketing chart primitives */
.dd-practice-pulse .pp-funnel__stage{
  background:linear-gradient(90deg,rgba(240,191,217,.34),rgba(164,228,244,.12));
  border-color:rgba(255,235,246,.13);
}
.dd-practice-pulse .pp-funnel__drip{background:linear-gradient(var(--pp-chart-pink),transparent);}
.dd-practice-pulse .pp-pipeline__track{
  background:linear-gradient(90deg,rgba(216,204,255,.24),rgba(159,238,255,.62),rgba(240,191,217,.24));
}
.dd-practice-pulse .pp-pipeline__traveller{
  background:var(--pp-chart-ivory);
  box-shadow:0 0 0 5px rgba(216,204,255,.08),0 0 14px rgba(159,238,255,.45);
}
.dd-practice-pulse .pp-pipeline__node b{border-color:rgba(222,213,255,.34);}
.dd-practice-pulse .pp-rank-row i{
  background:linear-gradient(90deg,rgba(240,191,217,.82),rgba(159,238,255,.24));
}
.dd-practice-pulse .pp-quiet-lines path{stroke:rgba(216,204,255,.76);}
.dd-practice-pulse .pp-risk-ring__track{stroke:rgba(219,212,255,.10);}
.dd-practice-pulse .pp-risk-ring__value{stroke:var(--pp-chart-pink);}
.dd-practice-pulse .pp-cost-row i{
  background:linear-gradient(90deg,rgba(216,204,255,.82),rgba(159,238,255,.18));
}
.dd-practice-pulse .pp-cost-row--best i{
  background:linear-gradient(90deg,var(--pp-chart-mint),rgba(159,238,255,.28));
  box-shadow:0 0 14px rgba(159,238,255,.08);
}
.dd-practice-pulse .pp-source-donut{
  background:conic-gradient(var(--pp-chart-pink) 0 52%,var(--pp-chart-lilac) 52% 81%,var(--pp-chart-mint) 81% 100%);
}
.dd-practice-pulse .pp-source-legend i{background:var(--pp-chart-pink);}
.dd-practice-pulse .pp-source-legend span:nth-child(2) i{background:var(--pp-chart-lilac);}
.dd-practice-pulse .pp-source-legend span:nth-child(3) i{background:var(--pp-chart-mint);}

@media(max-width:1050px){
  .dd-practice-pulse .pp-forecast-inset{right:22px;bottom:66px;width:310px;}
  .dd-practice-pulse .pp-static-columns{min-height:136px;gap:11px;}
  .dd-practice-pulse .pp-static-column i{width:min(30px,88%);}
}
@media(max-width:700px){
  .dd-practice-pulse .pp-forecast-inset{position:relative;right:auto;bottom:auto;width:auto;margin:10px 0 0;}
  .dd-practice-pulse .pp-static-columns{min-height:96px;gap:8px;}
  .dd-practice-pulse .pp-static-column i{width:min(18px,82%);border-radius:5px 5px 2px 2px;}
}

/* ===== dd-practice-pulse-forecast-space-utilisation-v1 ===== */
/* Forecasting should use the full available analytics stage instead of leaving a dead lower third. */
.dd-practice-pulse .pp-scene--forecast{
  display:flex;
  flex-direction:column;
}
.dd-practice-pulse .pp-scene--forecast .pp-forecast-layout{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  align-items:stretch;
}
.dd-practice-pulse .pp-scene--forecast .pp-forecast-card{
  flex:1 1 auto;
  height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
}
.dd-practice-pulse .pp-scene--forecast .pp-forecast{
  flex:1 1 auto;
  min-height:0;
  height:100%;
  margin-top:8px;
}
.dd-practice-pulse .pp-scene--forecast .pp-forecast-axis{
  flex:0 0 auto;
  padding-top:8px;
}
/* Keep the integrated columns anchored to the visual plotting region as the card grows. */
.dd-practice-pulse .pp-scene--forecast .pp-forecast-inset{
  bottom:78px;
}
@media(max-width:1050px){
  .dd-practice-pulse .pp-scene--forecast .pp-forecast-inset{bottom:72px;}
}
@media(max-width:700px){
  .dd-practice-pulse .pp-scene--forecast .pp-forecast-card{height:auto;}
  .dd-practice-pulse .pp-scene--forecast .pp-forecast{min-height:215px;height:auto;}
  .dd-practice-pulse .pp-scene--forecast .pp-forecast-inset{bottom:auto;}
}

/* ===== dd-practice-pulse-forecast-svg-and-revenue-cleanup-v1 ===== */
/* Forecast: one coordinate system for bars,line,cone and baseline. */
.dd-practice-pulse .pp-scene--forecast .pp-forecast-card{overflow:hidden;}
.dd-practice-pulse .pp-scene--forecast .pp-forecast{position:relative;z-index:2;}
.dd-practice-pulse .pp-forecast__bars{pointer-events:none;}
.dd-practice-pulse .pp-forecast__bar{
  fill:url(#ppForecastBarGradient);
  stroke:rgba(255,241,250,.22);
  stroke-width:1;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 5px 9px rgba(240,191,217,.045));
}
.dd-practice-pulse .pp-forecast__bar--current{
  fill:url(#ppForecastBarCurrentGradient);
  stroke:rgba(255,248,255,.34);
}
.dd-practice-pulse .pp-forecast__baseline{
  stroke:rgba(225,230,250,.14) !important;
  stroke-width:1.15 !important;
}
/* Kill the obsolete HTML-column layer and its pseudo baseline if any older rule survives. */
.dd-practice-pulse .pp-forecast-inset,
.dd-practice-pulse .pp-static-columns{display:none !important;}
.dd-practice-pulse .pp-static-columns::after{display:none !important;}

/* Revenue funnel: tighter,more deliberate internal typography. */
.dd-practice-pulse .pp-funnel__stage{
  /* The clip-path on this stage takes 4% off the top edge and 9% off the
     bottom, measured on the stage's OWN width - up to 38px at 1280. A
     14-20px clamp left the label and the value inside the clipped area, so
     they rendered as "FERRED" and "$248" with the k sliced off. A percentage
     inset tracks the clip at every stage width. */
  padding-left:11%;
  padding-right:11%;
}
.dd-practice-pulse .pp-funnel__stage span{
  font-size:7px;
  line-height:1;
  letter-spacing:.13em;
  color:#9bc4d0;
  white-space:nowrap;
}
.dd-practice-pulse .pp-funnel__stage strong{
  font-size:15px;
  line-height:1;
  letter-spacing:-.025em;
  color:#f7f1fb;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
@media(max-width:700px){
  .dd-practice-pulse .pp-funnel__stage span{font-size:6px;}
  .dd-practice-pulse .pp-funnel__stage strong{font-size:12.5px;}
}

/* ===== dd-practice-pulse-reference-violet-palette-v1 ===== */
/* ================================================================
   PRACTICE PULSE — REFERENCE VIOLET CHART PALETTE
   Derived from the supplied competitive benchmark reference.
   Only data visualisation primitives are recoloured; product/background
   surfaces remain unchanged. Remove this single block to roll back.
   ================================================================ */
.dd-practice-pulse{
  --pp-violet:#7B54E2;
  --pp-violet-deep:#673FCB;
  --pp-violet-mid:#9174DC;
  --pp-lavender:#C1B7EB;
  --pp-lavender-soft:#D4C9F3;
  --pp-slate:#7B8392;
  --pp-slate-light:#A6B2BE;
  --pp-violet-glow:rgba(123,84,226,.22);
}

/* Revenue */
.dd-practice-pulse .pp-funnel__stage{
  background:linear-gradient(90deg,rgba(123,84,226,.76),rgba(193,183,235,.34));
  border-color:rgba(212,201,243,.24);
}
.dd-practice-pulse .pp-funnel__stage span{color:#c8bdf0;}
.dd-practice-pulse .pp-funnel__stage strong{color:#f4efff;}
.dd-practice-pulse .pp-funnel__drip{
  background:linear-gradient(var(--pp-violet),rgba(123,84,226,0));
  box-shadow:0 0 10px rgba(123,84,226,.16);
}

/* Referral performance */
.dd-practice-pulse .pp-pipeline__track{
  background:linear-gradient(90deg,rgba(103,63,203,.20),rgba(123,84,226,.72),rgba(193,183,235,.22));
}
.dd-practice-pulse .pp-pipeline__traveller{
  background:#f8f5ff;
  box-shadow:0 0 0 5px rgba(123,84,226,.10),0 0 15px rgba(123,84,226,.48);
}
.dd-practice-pulse .pp-pipeline__node b{
  border-color:rgba(193,183,235,.42);
  box-shadow:0 0 0 5px rgba(123,84,226,.035);
}
.dd-practice-pulse .pp-stall-ring{
  border-color:rgba(123,84,226,.42);
  box-shadow:inset 0 0 0 8px rgba(123,84,226,.045);
}
.dd-practice-pulse .pp-stall-ring strong{color:#d8cdf5;}

/* Relationships */
.dd-practice-pulse .pp-rank-row i{
  background:linear-gradient(90deg,var(--pp-violet),rgba(193,183,235,.28));
  box-shadow:0 0 12px rgba(123,84,226,.06);
}
.dd-practice-pulse .pp-quiet-lines path{stroke:var(--pp-lavender);}
.dd-practice-pulse .pp-risk-ring__track{stroke:rgba(166,178,190,.14);}
.dd-practice-pulse .pp-risk-ring__value{
  stroke:var(--pp-violet);
  filter:drop-shadow(0 0 5px rgba(123,84,226,.16));
}

/* Competitive: practice violet,benchmark neutral slate */
.dd-practice-pulse .pp-radar-grid polygon,.dd-practice-pulse .pp-radar-grid line{stroke:rgba(166,178,190,.13);}
.dd-practice-pulse .pp-radar-grid polygon:first-child{stroke:rgba(166,178,190,.22);}
.dd-practice-pulse .pp-radar-benchmark{
  fill:rgba(123,131,146,.10);
  stroke:var(--pp-slate);
  stroke-width:1.45;
}
.dd-practice-pulse .pp-radar-practice{
  fill:rgba(123,84,226,.20);
  stroke:var(--pp-violet);
  stroke-width:2.2;
  filter:drop-shadow(0 0 9px rgba(123,84,226,.15));
}
.dd-practice-pulse .pp-radar-points circle{
  fill:#f8f5ff;
  stroke:var(--pp-violet-deep);
}
.dd-practice-pulse .pp-market-legend__benchmark{
  background:repeating-linear-gradient(90deg,var(--pp-slate-light) 0 5px,transparent 5px 9px);
}
.dd-practice-pulse .pp-market-legend__practice{
  background:var(--pp-violet);
  box-shadow:0 0 10px rgba(123,84,226,.16);
}

/* Marketing */
.dd-practice-pulse .pp-cost-row i{
  background:linear-gradient(90deg,var(--pp-violet),rgba(193,183,235,.22));
}
.dd-practice-pulse .pp-cost-row--best i{
  background:linear-gradient(90deg,#8b61ea,var(--pp-violet-deep));
  box-shadow:0 0 14px rgba(123,84,226,.13);
}
.dd-practice-pulse .pp-source-donut{
  background:conic-gradient(var(--pp-violet) 0 52%,var(--pp-lavender) 52% 81%,var(--pp-slate) 81% 100%);
}
.dd-practice-pulse .pp-source-legend i{background:var(--pp-violet);}
.dd-practice-pulse .pp-source-legend span:nth-child(2) i{background:var(--pp-lavender);}
.dd-practice-pulse .pp-source-legend span:nth-child(3) i{background:var(--pp-slate);}

/* Forecasting — same reference family,with the line still readable over bars */
.dd-practice-pulse .pp-forecast__grid path{stroke:rgba(166,178,190,.10);}
.dd-practice-pulse .pp-forecast__baseline{
  stroke:rgba(193,183,235,.25) !important;
}
.dd-practice-pulse .pp-forecast__bar{
  stroke:rgba(212,201,243,.38);
  filter:drop-shadow(0 5px 9px rgba(103,63,203,.06));
}
.dd-practice-pulse .pp-forecast__bar--current{stroke:rgba(232,224,251,.62);}
.dd-practice-pulse .pp-forecast__history{
  stroke:#bcaaf0;
  filter:drop-shadow(0 0 6px rgba(123,84,226,.18));
}
.dd-practice-pulse .pp-forecast__projection{
  stroke:#8b61ea;
}
.dd-practice-pulse .pp-forecast__cone{
  fill:rgba(123,84,226,.12);
  stroke:rgba(145,116,220,.22);
}
.dd-practice-pulse .pp-forecast__handoff{
  fill:#f8f5ff;
  stroke:rgba(123,84,226,.44);
  stroke-width:1;
  filter:drop-shadow(0 0 8px rgba(123,84,226,.42));
}

/* ===== dd-practice-pulse-surface-nav-cleanup-v1 ===== */
/* ================================================================
   PRACTICE PULSE — LOCKED CARD SURFACE + NUMBERLESS NAV
   This block is intentionally isolated for easy rollback.
   ================================================================ */
.dd-practice-pulse{
  --pp-card-border:rgba(185,230,242,.09);
  --pp-card-bg:linear-gradient(150deg,rgba(14,49,63,.72) 0%,rgba(20,5,22,.84) 100%);
}

/* Apply the approved teal-to-plum treatment consistently to all
   Practice Pulse data cards without altering the section background. */
.dd-practice-pulse .pp-hero-card,
.dd-practice-pulse .pp-mini-card{
  border-color:var(--pp-card-border) !important;
  background:var(--pp-card-bg) !important;
}

/* The tab number is no longer part of the navigation hierarchy. */
.dd-practice-pulse .dd-support__chapter-kicker{display:none !important;}
.dd-practice-pulse .pp-tab{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  min-height:70px;
  padding:12px 14px 12px 16px;
}
.dd-practice-pulse .dd-support__chapter-title{
  margin-top:0 !important;
  line-height:1.12;
}
.dd-practice-pulse .dd-support__chapter-note{
  margin-top:7px !important;
  line-height:1.32;
}

@media(max-width:1050px){
  .dd-practice-pulse .pp-tab{min-height:58px;padding:10px 11px;}
  .dd-practice-pulse .dd-support__chapter-note{margin-top:5px !important;}
}
@media(max-width:700px){
  .dd-practice-pulse .pp-tab{min-height:50px;padding:8px 9px;}
}

/* ===== dd-persistent-logo-stability-fix-v1 ===== */
/* Persistent desktop brand must never leave the top-left chrome.
   These !important guards intentionally override stale inline geometry from
   older hero-logo choreography while preserving the existing mobile entrance. */
@media (min-width:701px){
  html body .dd-site-logo{
    /* Geometry is JS-owned again: the brand flies from the hero anchor
       to this slot (positionLogo in js/home.js). These three were pinned
       !important when the flight was removed, which is why re-enabling it
       alone did nothing - the inline styles were being overridden. The
       opacity / visibility pins below stay: they are the guarantee the
       brand can never disappear, and they do not fight the movement. */
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }
  html body .dd-site-logo img{
    opacity:1 !important;
    visibility:visible !important;
  }
}

/* ===== dd-mobile-polish-v1 =====================================================
   Appended last on purpose. The footer and Practice Pulse rules above are
   layered from several earlier passes (the same selectors are redefined in
   three or four places), so winning by specificity alone is unreliable here.

   Scope: phones. Three findings from the layout audit:
     1. the footer wordmark was stranded under a ~270px void,
     2. the legal links were 7.5px text in a 9px-high hit area,
     3. body copy in several sections had dropped to 8-10px.

   Deliberately NOT touched: the Practice Pulse dashboard mock (.pp-*). Its
   6-8px labels are a simulated product screenshot; enlarging that chrome
   would break the composition rather than improve legibility.
   ----------------------------------------------------------------------- */

@media (max-width: 600px){

  /* --- Footer -------------------------------------------------------------
     The footer panel is a fixed 100svh sticky stage. With rows
     "20svh auto minmax(0,1fr)" the third row absorbed every spare pixel, so
     the brand row was ~450px tall holding a ~105px wordmark aligned to its
     bottom - half a phone screen of nothing. Give the slack to the FIRST row
     instead, where the logo is already flush to the top and space reads as
     intentional, and let the nav and wordmark size to their content. */
  .dd-footer__inner{ grid-template-rows: minmax(20svh, 1fr) auto auto auto !important; }
  .dd-footer__brand{ padding: 30px 0 14px !important; }

  /* The legal row was absolutely positioned over the brand row. Once it was
     readable (11px, and wrapping on a 320px screen) it collided with the
     wordmark. On phones it becomes a normal grid row underneath instead, where
     it cannot overlap anything no matter how it wraps. */
  .dd-footer__bottom{
    position: static !important;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 6px 16px;
    padding: 0 18px max(14px, env(safe-area-inset-bottom)) !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
  }

  /* --- Readable minimum ---------------------------------------------------
     Sentences the reader is meant to actually read. */
  .dd-reframe__node-note,
  .dd-future__node-note,
  .dd-recognition__node-note{ font-size: 11.5px !important; line-height: 1.45 !important; }
  .dd-support__scene-sub{ font-size: 11px !important; line-height: 1.4 !important; }

  /* Tab labels are interactive, so they get the same floor. */
  .dd-support__chapter-title{ font-size: 11px !important; }
  .dd-support__chapter-note{ font-size: 9.5px !important; line-height: 1.3 !important; }

  /* All-caps eyebrows keep their editorial look but come off the floor. */
  .dd-next__eyebrow,
  .dd-reframe__eyebrow,
  .dd-future__eyebrow,
  .dd-trust__eyebrow,
  .dd-demo__eyebrow,
  .dd-faq__eyebrow,
  .dd-support__eyebrow,
  .dd-recognition__caption,
  .dd-future__caption,
  .dd-trust__mark{ font-size: 10.5px !important; }

  /* The chapter strip is a horizontal scroller (six 112px tabs in a ~296px
     box). js/home.js keeps the active tab in view and sets data-edge to say
     which sides have more tabs; the fade then points the right way instead of
     dimming the first tab when the strip is already at its start. */
  .dd-support__chapters{ scroll-behavior: smooth; }
  .dd-support__chapters[data-edge="end"]{
    -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 22px), transparent 100%);
            mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 22px), transparent 100%);
  }
  .dd-support__chapters[data-edge="start"]{
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 100%);
            mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 100%);
  }
  .dd-support__chapters[data-edge="both"]{
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%);
  }
}

/* Legal row: readable,and tappable without moving the baseline.
   Keyed to touch devices rather than a width breakpoint - a phone in
   landscape is 844px wide and would miss every phone breakpoint,while the
   finger doing the tapping is exactly the same size. The 44px target comes
   from a pseudo-element,so the text stays precisely where the design puts it. */
@media (hover: none) and (pointer: coarse){
  .dd-footer__bottom{ font-size: 11px !important; }
  .dd-footer__legal{ gap: 18px !important; flex-wrap: wrap; }
  .dd-footer__legal a{ position: relative; }
  .dd-footer__legal a::after{
    content: "";
    position: absolute;
    left: -8px; right: -8px;
    top: 50%; height: 44px;
    transform: translateY(-50%);
  }

  /* The header wordmark is a 30px-tall link back home. Same treatment: a
     full-height touch target without nudging the mark itself.
     NOTE: do NOT set position:relative here. .dd-site-logo is position:fixed,
     and relative overrode it - which dropped the logo out of the fixed layer
     so it scrolled away with the hero. A fixed element is already a containing
     block for its absolutely positioned children, so ::after anchors correctly. */
  .dd-site-logo::after,
  .dd-page-logo::after{
    content: "";
    position: absolute;
    left: -8px; right: -8px;
    top: 50%; height: 44px;
    transform: translateY(-50%);
  }
}

@media (prefers-reduced-motion: reduce){
  .dd-support__chapters{ scroll-behavior: auto; }
}

/* ===== dd-recognition-timeline-v2 ==============================================
   The Recognition timeline used to introduce its four nodes one at a time as you
   scrolled,and the rail fill was scrubbed by scroll position. It now does two
   distinct things:

     1. ENTRANCE - the whole block (lede,caption,all four nodes,closing line)
        arrives on a single beat,so the section reads as one composed state
        instead of a list assembling itself.
     2. LOOP - once it has arrived,a travelling head runs the rail from node 1
        to node 4,pulsing at each stop,glides on past the last node to the open
        end of the rail,then retracts and repeats. Endless,time-based,and
        independent of scroll.

   Every per-frame value below is written by js/home.js as a custom property.
   That is deliberate: CSS keyframes cannot be retimed,restarted mid-flight,or
   held in sync with a rail whose length is measured at runtime and differs
   between the horizontal (desktop) and vertical (<=600px) layouts.
   --------------------------------------------------------------------------- */

.dd-recognition__dot{
  position: relative;
  transform: scale(var(--dd-dot-pop, 1));
}

/* The pulse ring. Sits outside the dot's edge, expands and fades on arrival. */
.dd-recognition__dot::after{
  content: "";
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  border: 1.5px solid rgba(54, 157, 191, .9);
  opacity: var(--dd-ring-alpha, 0);
  transform: scale(var(--dd-ring-scale, 1));
  pointer-events: none;
  will-change: opacity, transform;
}

/* A node the head has already visited. Rides the dot's existing .25s
   transition, so reaching and resetting are both eased for free. */
.dd-recognition__node.dd-is-reached .dd-recognition__dot{
  border-color: rgba(54, 157, 191, .62);
  color: #1e7897;
  background: #f5fbfd;
  box-shadow: 0 4px 18px rgba(54, 157, 191, .16);
}

/* The travelling head. Positioned at the rail's origin and moved with a
   transform only - never left/top - so the loop never triggers layout. */
.dd-recognition__head{
  position: absolute;
  z-index: 2;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #54b8d8;
  box-shadow: 0 0 0 3px rgba(84, 184, 216, .16), 0 0 18px 4px rgba(84, 184, 216, .5);
  opacity: var(--dd-head-alpha, 0);
  pointer-events: none;
  top: 17px;
  left: 3%;
  transform: translate3d(calc(var(--dd-head-x, 0px) - 50%), -50%, 0);
  will-change: transform, opacity;
}

@media (max-width: 600px){
  /* Vertical rail: same head,other axis. */
  .dd-recognition__head{
    top: 15px;
    left: 17px;
    transform: translate3d(-50%, calc(var(--dd-head-y, 0px) - 50%), 0);
  }
}

@media (prefers-reduced-motion: reduce){
  .dd-recognition__head{ display: none; }
  .dd-recognition__dot::after{ display: none; }
}

/* ===== dd-mobile-polish-v2 =====================================================
   Second mobile pass,from a device review. Appended last for the same reason
   as v1: these selectors are redefined across several earlier layers.
   --------------------------------------------------------------------------- */

@media (max-width: 600px){

  /* --- 1. Menu call-to-action pills ---------------------------------------
     Three pills were being squeezed into one 282px row, so "Contact us" and
     "Request a demo" broke mid-label. They now refuse to break, and the
     primary action takes its own full-width row instead of being crushed. */
  
  
  

  /* --- 2. Practice Pulse: less chrome --------------------------------------
     The card repeated "Practice Pulse(tm)" (already the section eyebrow a few
     hundred pixels above) and carried a per-view kicker, both of which wrapped
     onto two lines at this width. Dropping them removes the clutter and gives
     the chart back the vertical room it was being clipped for. */
  .dd-support__evidence-head > span:first-child{ display: none; }
  .dd-support__evidence-head{ justify-content: flex-start; }
  .dd-practice-pulse .pp-view-eyebrow{ display: none; }

  /* --- 3. Headline scale ---------------------------------------------------
     Roughly 13% off the display sizes. Still a display setting, but it stops
     three-line headlines from owning most of a phone screen - and the height
     it gives back is what was pushing content off the bottom of the panels. */
  .dd-support__title{ font-size: clamp(26px, 7.6vw, 34px) !important; }
  .dd-trust__title{ font-size: clamp(26px, 7.6vw, 34px) !important; }
  .dd-future__title{ font-size: clamp(26px, 7.6vw, 34px) !important; }
  .dd-reframe__title{ font-size: clamp(27px, 8vw, 36px) !important; }
  .dd-next__title{ font-size: clamp(27px, 8vw, 36px) !important; }
  .dd-demo__title{ font-size: clamp(27px, 8vw, 36px) !important; }
  .dd-faq__title{ font-size: clamp(25px, 7.2vw, 32px) !important; }

  /* --- 4. Keep confidence: a column, not a constellation -------------------
     The desktop diagram is a hub with three satellites placed by percentage.
     In a 320px column the satellites are wider than the gaps between them, so
     they sat on top of the hub and clipped the "Shared confidence" label.
     A three-point radial graph does not survive this width, so on phones it
     becomes what it actually means: a shared centre with the three parties
     stacked beneath it on one spine, in the order a referral travels. */
  .dd-future__network{
    position: relative;
    height: auto !important;
    max-width: none !important;
    padding: 4px 0 2px !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 13px;
  }
  .dd-future__network::before{ inset: -4% 6% 40%; }      /* glow follows the hub */
  .dd-future__svg{ display: none; }                       /* geometry no longer matches */

  .dd-future__halo{
    position: absolute;
    top: 62px; left: 50%;
    width: 168px; height: 168px;
    margin: -84px 0 0 -84px;
  }
  .dd-future__center{
    position: relative;
    top: auto; left: auto;
    margin: 0 0 2px;
    width: 124px; height: 124px;
    padding: 14px;
    font-size: 16px;
    flex: 0 0 auto;
  }

  /* The spine. Runs from under the hub to the last card, behind the stack. */
  .dd-future__network::after{
    content: "";
    position: absolute;
    left: 50%;
    top: 126px;
    bottom: 10px;
    width: 1px;
    margin-left: -.5px;
    background: linear-gradient(180deg, rgba(90,178,205,.55), rgba(90,178,205,.12));
    pointer-events: none;
  }

  .dd-future__node{
    position: relative;
    left: auto; right: auto; top: auto;
    transform: none;
    width: 100%;
    min-width: 0;
    max-width: none;
    padding: 13px 15px;
    z-index: 1;
  }
  .dd-future__node-label{ font-size: 14px; }
  .dd-future__node-note{ font-size: 11.5px; line-height: 1.45; }
  .dd-future__conclusion{ max-width: 22em; }
}

/* --- Practice Pulse two-up cards on very narrow screens ----------------------
   The split panels are "content column + 112px sidecar". Below ~360px the
   content column collapses to 83px and the figures ($62 / $118 / $196) run past
   their own card edge. There is no width left to take from the sidecar, so on
   the narrowest phones the pair stacks instead. 375px and up is unchanged. */
@media (max-width: 374px){
  /* Only the marketing split. The other two ("wide" and the relationships
     grid) still fit side by side at this width, and stacking them cost more
     vertical room than the pinned stage has to give. */
  /* At 320 the relationships ranking card also loses its figures, so its grid
     stacks at this width too. */
  .dd-practice-pulse .pp-rel-grid,
  .dd-practice-pulse .pp-split--marketing{
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-rows: auto;
    gap: 8px;
  }
}

/* --- Practice Pulse panel must fit the fold ----------------------------------
   The section is a pinned stage: anything taller than the viewport is simply
   cut,because you cannot scroll inside it. At 320x785 the copy block plus the
   529px panel came to 855px - 70px too tall - so the chart ran off the bottom.
   Reclaimed from the copy block's padding and rhythm rather than the panel,which is the content. */
@media (max-width: 600px) and (max-height: 900px){
  .dd-support__inner{
    gap: 16px !important;
    padding: max(60px, calc(env(safe-area-inset-top) + 42px)) 18px 14px !important;
  }
  .dd-support__eyebrow{ margin-bottom: 8px !important; }
  .dd-support__title{ line-height: .94 !important; }
  .dd-support__lede{ margin-top: 12px !important; }
}

/* The panel's stage reserves a flat 430px. Its scenes are layered (only one is
   visible at a time), so the reserve is what gives the panel its height - it
   cannot simply be removed or the charts collapse. On short phones it instead
   scales with the viewport, which is the difference between the chart fitting
   the fold and being cut off by the pinned stage. */
@media (max-width: 600px) and (max-height: 900px){
  .dd-practice-pulse .pp-stage{ min-height: clamp(300px, 51svh, 430px) !important; }
  .dd-practice-pulse .pp-shell{ min-height: 0 !important; }
}

/* The chart blocks inside the panel carry hard min-heights (radar 230px,forecast 215px,pipeline 165px...). Those stop the cards shrinking with the
   stage,so on short phones the charts overflowed their own cards even after
   the stage scaled. Here they scale too,floored at a size that is still
   readable. */
@media (max-width: 600px) and (max-height: 900px){
  .dd-practice-pulse .pp-market-gauge,
  .dd-practice-pulse .pp-market-radar{ min-height: clamp(150px, 26svh, 230px) !important; }
  .dd-practice-pulse .pp-forecast,
  .dd-practice-pulse .pp-scene--forecast .pp-forecast{ min-height: clamp(126px, 21.5svh, 215px) !important; }
  .dd-practice-pulse .pp-funnel{ min-height: clamp(130px, 23svh, 190px) !important; }
  .dd-practice-pulse .pp-pipeline{ min-height: clamp(115px, 20svh, 165px) !important; }
  .dd-practice-pulse .pp-static-columns{ min-height: clamp(78px, 13svh, 136px) !important; }
}

/* ===== dd-future-respiration-v1 =================================================
   "Keep confidence" as a living system rather than a static diagram.

   One loop,time-based,driven entirely from js/home.js as custom properties:
     inhale  - the hub draws light in along the three connectors and swells
     hold    - a beat at the top of the breath
     exhale  - it settles,and the light travels back out; each party responds
               as its pulse arrives
     rest    - a pause before the next breath

   The connectors only exist in the desktop layout,so on phones the same loop
   drives the hub,the spine and the three cards instead. Nothing here animates
   a layout property.
   --------------------------------------------------------------------------- */

/* Light travelling along a connector. Cloned from the base strokes by JS so the
   static line stays underneath it. */
.dd-future__flow{
  fill: none;
  stroke: #ecfaff;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-dasharray: .13 .87;
  vector-effect: non-scaling-stroke;
  stroke-dashoffset: var(--dd-flow, 1);
  opacity: var(--dd-flow-a, 0);
  filter: drop-shadow(0 0 7px rgba(150, 226, 250, .9));
  pointer-events: none;
}

/* The hub. Scale is owned by the loop once the section has settled. */
.dd-future__halo{
  opacity: var(--dd-halo-a, 1);
  transform: scale(var(--dd-halo-s, 1));
  will-change: opacity, transform;
}

/* Each party lights up as the breath reaches it. */
.dd-future__node::after{
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  border: 1px solid rgba(88, 178, 206, .6);
  box-shadow: 0 10px 30px -16px rgba(64, 160, 196, .75);
  opacity: var(--dd-respond, 0);
  pointer-events: none;
}

/* Mobile has a spine instead of connectors; it brightens with the same wave. */
@media (max-width: 600px){
  .dd-future__network::after{
    opacity: calc(.55 + var(--dd-spine-a, 0) * .45);
    box-shadow: 0 0 calc(var(--dd-spine-a, 0) * 9px) rgba(120, 208, 234, .8);
  }
}

@media (prefers-reduced-motion: reduce){
  .dd-future__flow{ display: none; }
  .dd-future__node::after{ opacity: 0; }
}

/* ===== dd-hero-ambient-video ===================================================
   A short loop that plays over the hero's first frame before the visitor
   scrolls,then hands back to the scroll sequence the moment they do.

   It sits ABOVE the canvas rather than below it. The canvas is the element that
   has to survive - it is what scrubs - so it cannot be the layer that fades. The
   perceived result is the one we want either way: the canvas paints frame 1
   immediately (one 25KB still),and the video dissolves in on top of an
   identical picture,so the swap is invisible.

   Stacking: canvas (auto,earlier in DOM) < video (0) < copy (auto,later
   in DOM) < loader (3) < hero dim (8).
   ----------------------------------------------------------------------------- */
.dd-hero__video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  /* cover matches the canvas's own cover-fit draw, at every breakpoint */
  object-fit: cover;
  object-position: center center;
  /* MUST NOT be positive. .dd-hero__copy is z-index:auto and sits after this
     element in the DOM, so any positive value here paints the video over the
     headline, the lede and the CTA - which is exactly what it did at z-index:2.
     At 0 the video still beats the canvas (also auto, but earlier in the DOM)
     while everything after it - copy, annotations, loader (3), dim (8) - stays
     on top. */
  z-index: 0;
  display: none;                 /* not even laid out until armed */
  opacity: 0;
  pointer-events: none;
  background: transparent;
  will-change: opacity;
  transition: opacity 420ms linear;
}
.dd-hero__video.dd-is-armed{ display: block; }
.dd-hero__video.dd-is-live{ opacity: 1; }

@media (prefers-reduced-motion: reduce){
  .dd-hero__video{ display: none !important; }
}

/* ── dd-hero-actions ─────────────────────────────────────────────────────
   Login moved out of the header nav (where it was invisible until the logo
   settled) and sits beside the demo CTA in the hero. The demo action was a
   <button> with no click handler — a dead primary CTA — so both are now real
   anchors, and the demo one carries .dd-route-link so the Vectr sweep picks
   it up like every other route link on the site. The ghost variant reuses
   the .dd-site-nav__link treatment so the pair reads as one system.        */
.dd-hero__actions{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
}
.dd-hero__actions .dd-hero__cta{
  margin-top: 0;
  text-decoration: none;
  /* the ghost variant carries a 1px border; give the solid one a transparent
     one so both pills box out to exactly the same height */
  border: 1px solid transparent;
}
.dd-hero__cta--ghost{
  color: #11303f;
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(16,48,63,.10);
  -webkit-backdrop-filter: blur(12px) saturate(120%);
  backdrop-filter: blur(12px) saturate(120%);
  box-shadow: 0 8px 24px -18px rgba(10,39,53,.5);
}
.dd-hero__cta--ghost:hover{ background: rgba(255,255,255,.92); }
@media (max-width: 380px){
  .dd-hero__actions{ gap: 8px; }
  .dd-hero__actions .dd-hero__cta{ padding-inline: 20px; }
}

/* ── dd-menu-trust ───────────────────────────────────────────────────────
   Trust reassurance in the menu,set as type rather than badge art. The
   overlay is dark teal (#0b2d3c -> #116d88) and both supplied badges are
   dark-on-transparent,so the HIPAA mark in particular is close to
   illegible against it. A plain claim in the menu's own voice also avoids
   implying a third-party certification,which for HIPAA does not exist.
   Reveals last,after the utility links.                                  */




/* the third utility link had no delay of its own,so it arrived ahead of the
   two above it; this puts it back in sequence */


/* ── dd-practice-pulse-short-phone ───────────────────────────────────────
   The 900px-tall tier above still overran on a 320x568 handset (iPhone SE):
   343px went above the stage,leaving 225px for a stage that reserves 300,so the panel ran 82px past the fold inside a pinned section the reader
   cannot scroll further. This tier reclaims the header space first,then
   scales the stage and its charts to what is actually left.              */
@media (max-width: 600px) and (max-height: 700px){
  .dd-support__inner{
    gap: 10px !important;
    /* must clear the fixed logo, which occupies y14-44 */
    padding: max(52px, calc(env(safe-area-inset-top) + 34px)) 16px 10px !important;
  }
  .dd-support__eyebrow{ margin-bottom: 5px !important; }
  .dd-support__title{ line-height: .92 !important; font-size: clamp(20px, 6.6vw, 26px) !important; }
  .dd-support__lede{ margin-top: 7px !important; font-size: 11.5px !important; line-height: 1.42 !important; }
  .dd-support__chapter-strip{ margin-top: 6px !important; }

  /* the sub-line is hidden at this width, so the stage can take back the
     space it freed rather than leaving it empty under the panel */
  .dd-practice-pulse .pp-stage{ min-height: clamp(226px, 47svh, 320px) !important; }
  .dd-practice-pulse .pp-scene__copy{ gap: 4px !important; }
  .dd-support__scene-title{ font-size: 13px !important; line-height: 1.2 !important; margin-bottom: 3px !important; }
  .dd-support__scene-body{ font-size: 10.5px !important; line-height: 1.38 !important; }

  .dd-practice-pulse .pp-market-gauge,
  .dd-practice-pulse .pp-market-radar{ min-height: clamp(104px, 19svh, 150px) !important; }
  .dd-practice-pulse .pp-forecast,
  .dd-practice-pulse .pp-scene--forecast .pp-forecast{ min-height: clamp(88px, 16svh, 126px) !important; }
  .dd-practice-pulse .pp-funnel{ min-height: clamp(92px, 17svh, 130px) !important; }
  .dd-practice-pulse .pp-pipeline{ min-height: clamp(82px, 15svh, 115px) !important; }
  .dd-practice-pulse .pp-static-columns{ min-height: clamp(58px, 10svh, 78px) !important; }
  .dd-practice-pulse .pp-hero-card{ padding-top: 7px !important; }
}

/* ── dd-support-lede-mobile ──────────────────────────────────────────────
   The Practice Pulse sub-line ("Six views on your referral data…") repeats
   what the six tabs directly beneath it already name,and on a phone it costs
   two to four lines of a pinned stage that has none to spare. Desktop keeps
   it.                                                                     */
@media (max-width: 767px){
  .dd-practice-pulse .dd-support__lede,
  .dd-support__lede{ display: none !important; }
}

/* ── dd-footer-trust ─────────────────────────────────────────────────────
   Compliance sits on the copyright line rather than as a separate block.  */
.dd-footer__copy{
  display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap;
}
.dd-footer__trust{
  display:inline-flex; align-items:center; gap:12px; flex-wrap:wrap;
}
.dd-footer__trust-item{
  display:inline-flex; align-items:center; gap:5px;
  letter-spacing:.09em; text-transform:uppercase; opacity:.62;
}
.dd-footer__trust-mark{
  width:16px; height:12px; flex:0 0 16px;
  background:url(../assets/hipaa-icon-white.svg) center/contain no-repeat;
  opacity:.72;
}
.dd-trust-lock{
  position:relative; width:8px; height:6px;
  border:1px solid currentColor; border-radius:1.5px; flex:0 0 8px;
  margin-top:1px;
}
.dd-trust-lock::before{
  content:''; position:absolute; left:1.5px; right:1.5px; top:-4.5px; height:4.5px;
  border:1px solid currentColor; border-bottom:0; border-radius:4px 4px 0 0;
}
@media (max-width: 700px){
  .dd-footer__copy{ gap:8px; }
  .dd-footer__trust-mark{ width:14px; height:10px; flex-basis:14px; }
}

/* ── dd-trust-badge ──────────────────────────────────────────────────────
   A quiet compliance chip pinned bottom-right through the narrative
   sections. It reads over both light and dark stages by switching its own
   plate and inverting the mark,driven by data-trust-theme,which the
   companion script in home.js samples AT THE BADGE'S OWN POSITION rather
   than reusing data-dd-chrome-theme (that one samples under the header,which
   is a different section mid-transition).                                */
.dd-trust-badge{
  position:fixed;
  right:clamp(13px,2vw,26px);
  bottom:max(13px,env(safe-area-inset-bottom));
  z-index:120;                       /* below the menu overlay (160) */
  display:flex; align-items:center; gap:8px;
  padding:6px 11px;
  border-radius:999px;
  pointer-events:none;
  font-family:var(--dd-sans);
  font-size:8.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  opacity:0;
  transform:translateY(7px);
  transition:opacity .5s ease, transform .5s cubic-bezier(.22,.8,.2,1),
             color .3s ease, background-color .3s ease, border-color .3s ease;
}
body[data-trust-badge="on"] .dd-trust-badge{ opacity:1; transform:translateY(0); }

.dd-trust-badge__item{ display:inline-flex; align-items:center; gap:5px; }
/* The supplied icon,in the matching colourway per section theme. The word is
   set in the site's own type rather than taken from the full lockup,whose
   artwork wordmark is illegible below about 90px. */
.dd-trust-badge__mark{
  width:17px; height:13px; flex:0 0 17px;
  background-position:center; background-size:contain; background-repeat:no-repeat;
}
body[data-trust-theme="light"] .dd-trust-badge__mark{
  background-image:url(../assets/hipaa-icon-dark.svg); opacity:.78;
}
body[data-trust-theme="dark"] .dd-trust-badge__mark{
  background-image:url(../assets/hipaa-icon-white.svg); opacity:.80;
}
.dd-trust-badge__rule{ width:1px; height:15px; background:currentColor; opacity:.28; }

body[data-trust-theme="light"] .dd-trust-badge{
  color:#42606c;
  background:rgba(255,255,255,.60);
  border:1px solid rgba(16,48,63,.09);
  -webkit-backdrop-filter:blur(11px) saturate(120%);
  backdrop-filter:blur(11px) saturate(120%);
}
body[data-trust-theme="dark"] .dd-trust-badge{
  color:rgba(233,248,253,.74);
  background:rgba(8,32,44,.40);
  border:1px solid rgba(233,248,253,.15);
  -webkit-backdrop-filter:blur(11px) saturate(120%);
  backdrop-filter:blur(11px) saturate(120%);
}

/* never over the menu,and never riding along with a page transition */
body.dd-menu-open .dd-trust-badge,body.dd-route-out .dd-trust-badge{ opacity:0 !important; transform:translateY(7px) !important; }

@media (max-width: 700px){
  .dd-trust-badge{ gap:6px; padding:5px 9px; font-size:7.5px; }
  .dd-trust-badge__mark{ width:15px; height:11px; flex-basis:15px; }
  .dd-trust-badge__rule{ height:12px; }
}
@media (prefers-reduced-motion: reduce){
  .dd-trust-badge{ transition:opacity .2s linear; transform:none !important; }
}

/* ── dd-demo-ambient-video ───────────────────────────────────────────────
   Background loop for the "See referrals move with clarity" section.

   z-index:0 is deliberate and load-bearing. .dd-demo__surface sets z-index:0
   so it opens a stacking context. Within one,positioned descendants at
   z-index 0/auto paint in DOM order: ::before,then this child,then ::after.
   So the video sits ABOVE the skewed top wedge (::before) and BELOW the sheen
   (::after).

   It was -1 first,which put it below the wedge as well - and because the
   wedge is an opaque block,the video simply vanished across the whole top
   band of the section. Being translucent,the video does not swallow the
   wedge at 0: it lightens it,so the diagonal edge still reads. A POSITIVE
   z-index would lift it over ::after too and lose the sheen.

   It blends rather than simply sitting at low alpha: screen lets the bright
   scene lift the dark teal from within instead of greying it out,so the
   section keeps its colour and the footage reads as light behind glass.     */
.dd-demo__video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  z-index:0;
  display:none;
  opacity:0;
  pointer-events:none;
  mix-blend-mode:screen;
  will-change:opacity;
  transition:opacity 1100ms ease;
}
.dd-demo__video.dd-is-armed{ display:block; }
/* Measured,not guessed. With no video the section sits at 0.020 luma and the
   headline's local contrast is 15.4:1. screen at .26 washed it to grey and
   7.7:1; .12 still read light at 0.044.

   Darkening the SOURCE beats lowering the opacity. Because screen lifts by
   alpha x source x (1 - base),dimming the clip and pushing its contrast back
   buys darkness without flattening the footage: .18 with brightness .38 and
   contrast 1.4 lands at 0.029 luma - close to the untouched section - while
   holding MORE visible structure than .09 plain (sd 1.97 vs 2.21 at nearly
   a third less light) and lifting contrast to 13.8:1.

   Re-measure if the clip or the surface gradient changes. A centre mask was
   tried to buy presence and dropped: it read as uneven fog,not intent. */
.dd-demo__video.dd-is-live{ opacity:.18; }
.dd-demo__video{ filter:brightness(.30) contrast(1.45); }

@media (prefers-reduced-motion: reduce){
  .dd-demo__video{ display:none !important; }
}

/* ======================================================================
   DEMO SECTION — TWO CTAs
   The copy review asked for "Request a demonstration | Get started" as real
   buttons,with Get started carrying the stronger hierarchy: it is for
   practices that already know DentalDoor and want to sign up,so it should
   not sit behind the demo request. Demo keeps the same shape but drops to a
   ghost treatment.
   The entrance animation (js/home.js) writes inline opacity/transform/filter
   onto #ddDemoActions,so the hidden start-state lives on the ROW,and the
   buttons inside are reset to visible - otherwise the second button never
   gets animated and stays at opacity 0.
   ====================================================================== */
.dd-demo__actions{
  display:flex; flex-wrap:wrap; gap:14px; justify-content:center; align-items:center;
  margin-top:clamp(32px,4.4vh,48px);
  opacity:0; transform:translateY(18px) scale(.96); filter:blur(6px);
  will-change:opacity,transform,filter;
}
.dd-demo__actions .dd-demo__cta{
  margin-top:0; opacity:1; transform:none; filter:none; will-change:auto;
}
.dd-demo__actions .dd-demo__cta:not(.dd-demo__cta--start){
  background:transparent; color:#d6f1fb;
  border-color:rgba(176,229,242,.46); box-shadow:none;
}
.dd-demo__actions .dd-demo__cta:not(.dd-demo__cta--start):hover{
  background:rgba(176,229,242,.12); border-color:rgba(176,229,242,.74);
}
@media (max-width:600px){
  .dd-demo__actions{ flex-direction:column; width:min(100%,330px); margin-inline:auto; }
  .dd-demo__actions .dd-demo__cta{ width:100%; }
}

/* FAQ — the last answer carries the same pair,so nobody has to hunt back up
   the page for a CTA after expanding "How can we experience DentalDoor?" */
.dd-faq__answer-actions{
  display:flex; flex-wrap:wrap; gap:10px; margin:14px 0 0;
}
.dd-faq__action{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:11px 18px; border-radius:999px;
  font-size:13.5px; font-weight:700; text-decoration:none;
  border:1px solid rgba(16,74,97,.28); color:#0d3b50; background:transparent;
  transition:background-color .2s ease,border-color .2s ease;
}
.dd-faq__action:hover{ background:rgba(16,74,97,.07); border-color:rgba(16,74,97,.5); }
.dd-faq__action--start{
  background:#10506b; border-color:#10506b; color:#fff;
}
.dd-faq__action--start:hover{ background:#0c3f55; border-color:#0c3f55; }

/* The line the copy review added beneath the Experience DentalDoor button.
   .dd-ann--cta is positioned by its centre,so the note has to sit inside it
   rather than after it,or it would not travel with the button. */
.dd-ann__cta-note{
  margin:16px auto 0;
  max-width:29ch;
  text-align:center;
  font-family:var(--dd-serif);
  font-size:clamp(17px,1.35vw,21px);
  font-weight:400;
  line-height:1.25;
  letter-spacing:-.025em;
  color:#092a38;
  text-shadow:0 1px 12px rgba(255,255,255,.62);
  text-wrap:balance;
}
@media (max-width:1023px){
  .dd-ann__cta-note{
    margin-top:14px;
    max-width:27ch;
    font-size:clamp(17px,2.25vw,20px);
  }
}
@media (max-width:600px){
  .dd-ann__cta-note{ font-size:17px; max-width:26ch; margin-top:12px; }
}

/* ======================================================================
   PRACTICE PULSE — RELATIONSHIPS (conceptual)
   Replaces the ranked-office list,the "quiet offices" card and the
   dependency-risk ring. The copy review asked for the TYPE of insight to
   read while the methodology stays private: a visitor should see that
   DentalDoor understands the relationships behind referrals,without being
   able to infer how it decides which ones matter.

   So strength is carried by node size and link weight,and change is carried
   by a dimmer,slower link - never by a number,a name,a rank or a score.
   The ticks and rings are chrome: they give the panel the density that makes
   it read as real software,and they encode nothing.
   ====================================================================== */
.dd-practice-pulse .pp-constel-card{display:flex;flex-direction:column;min-height:0;}
.dd-practice-pulse .pp-constel{
  flex:1; min-height:0; display:grid; place-items:center; padding:2px 0 0;
}
.dd-practice-pulse .pp-constel__svg{width:100%;height:100%;overflow:visible;}

.dd-practice-pulse .pp-constel__ring{
  fill:none; stroke:rgba(159,238,255,.10); stroke-width:.8;
}
.dd-practice-pulse .pp-constel__tick{stroke:rgba(159,238,255,.13);stroke-width:.7;}
.dd-practice-pulse .pp-constel__tick--major{stroke:rgba(216,204,255,.30);stroke-width:1;}

.dd-practice-pulse .pp-constel__link{
  fill:none; stroke:var(--pp-chart-mint);
  stroke-width:calc(.5px + var(--dd-w) * 1.5px);
  opacity:calc(.12 + var(--dd-w) * .34);
  stroke-linecap:round;
}
.dd-practice-pulse .pp-constel__link--change{
  stroke:var(--pp-chart-lilac); opacity:calc(.07 + var(--dd-w) * .16);
  stroke-dasharray:2.5 4.5;
}
/* the travelling highlight that makes a connection read as active */
.dd-practice-pulse .pp-constel__flow{
  fill:none; stroke:var(--pp-chart-ivory); stroke-width:1.5; stroke-linecap:round;
  stroke-dasharray:3 150; stroke-dashoffset:0; opacity:0;
}
.dd-practice-pulse .pp-constel__node{
  fill:var(--pp-chart-mint); opacity:.72;
}
.dd-practice-pulse .pp-constel__node--change{fill:var(--pp-chart-lilac);opacity:.34;}
.dd-practice-pulse .pp-constel__halo{opacity:.55;}
.dd-practice-pulse .pp-constel__hub{fill:var(--pp-chart-ivory);}
.dd-practice-pulse .pp-constel__hubring{
  fill:none; stroke:rgba(255,248,255,.46); stroke-width:1;
}

/* motion only once the panel is on screen and this view is the active one,matching every other scene in the set */
.dd-practice-pulse.pp-in-view .pp-scene--relationships.dd-is-active .pp-constel__flow{
  animation:ppConstelFlow 4.8s linear infinite; animation-delay:var(--dd-d,0s);
}
.dd-practice-pulse.pp-in-view .pp-scene--relationships.dd-is-active .pp-constel__node{
  animation:ppConstelBreathe 4.8s ease-in-out infinite; animation-delay:var(--dd-d,0s);
}
.dd-practice-pulse.pp-in-view .pp-scene--relationships.dd-is-active .pp-constel__hubring{
  animation:ppConstelHub 4.8s ease-in-out infinite;
}
@keyframes ppConstelFlow{
  0%{stroke-dashoffset:150;opacity:0}
  12%{opacity:.85}
  60%{stroke-dashoffset:0;opacity:.85}
  72%,100%{stroke-dashoffset:0;opacity:0}
}
@keyframes ppConstelBreathe{
  0%,100%{transform:scale(.88)} 50%{transform:scale(1.12)}
}
.dd-practice-pulse .pp-constel__node{transform-box:fill-box;transform-origin:center;}
@keyframes ppConstelHub{
  0%,100%{r:13.5;opacity:.46} 50%{r:16.5;opacity:.16}
}

.dd-practice-pulse .pp-constel__key{
  display:flex; gap:18px; justify-content:center; margin-top:6px;
  color:var(--pp-legend-text, #b2d5e2); font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
}
.dd-practice-pulse .pp-constel__keyitem{display:inline-flex;align-items:center;gap:7px;}
.dd-practice-pulse .pp-constel__swatch{width:7px;height:7px;border-radius:999px;display:block;}
.dd-practice-pulse .pp-constel__swatch--grow{background:var(--pp-chart-mint, #5be1b5);}
.dd-practice-pulse .pp-constel__swatch--change{background:var(--pp-chart-lilac, #bfa8ea);opacity:.85;}

@media (prefers-reduced-motion: reduce){
  .dd-practice-pulse .pp-constel__flow{opacity:.5;stroke-dashoffset:0;animation:none;}
  .dd-practice-pulse .pp-constel__node,
  .dd-practice-pulse .pp-constel__hubring{animation:none;}
}
@media (max-width:600px){
  .dd-practice-pulse .pp-constel__svg{max-height:200px;}
  .dd-practice-pulse .pp-constel__key{font-size:11px;gap:14px;}
}


/* ============================================================
   PRACTICE PULSE - IN-CHART DETAIL REMOVED
   The review asked that the charts stay but stop carrying their
   own numbers and calculation labels. Those were load-bearing for
   layout: the funnel stage and the pipeline node each sized to a
   big <strong> value with a small caption beneath,the cost row
   reserved a 34px column for its figure,and the pipeline card
   shared its row with a single-number mini card. With the values
   gone,the remaining caption is promoted to the element's only
   content and the freed space is given back to the chart.
   ============================================================ */

/* Funnel: the stage name is now the whole label,so centre it in
   the band instead of pushing it to the left edge of a
   space-between pair,and size it to read at band height. */
.dd-practice-pulse .pp-funnel__stage{justify-content:center;}
.dd-practice-pulse .pp-funnel__stage span{font-size:13px;font-weight:600;letter-spacing:.12em;color:#ede5ff;}
@media(max-width:700px){
  .dd-practice-pulse .pp-funnel__stage span{font-size:11.5px;letter-spacing:.10em;}
}

/* Pipeline: the node caption takes the slot the value held. */
.dd-practice-pulse .pp-pipeline__node b{margin-bottom:12px;}
.dd-practice-pulse .pp-pipeline__node span{margin-top:0;font-size:12.5px;font-weight:600;letter-spacing:.09em;color:#bde4f2;}
@media(max-width:700px){
  .dd-practice-pulse .pp-pipeline__node span{font-size:11px;}
  .dd-practice-pulse .pp-pipeline__node b{margin-bottom:8px;}
}

/* Pipeline card is alone in its row now the stall mini-card is
   gone; --solo overrides the two-column --wide track. */
.dd-practice-pulse .pp-split--wide.pp-split--solo{grid-template-columns:minmax(0,1fr);}
@media(max-width:700px){
  .dd-practice-pulse .pp-split--wide.pp-split--solo{grid-template-columns:minmax(0,1fr);}
}

/* Cost rows: drop the reserved figure column and let the bar run
   into the width it freed. */
.dd-practice-pulse .pp-cost-row{grid-template-columns:64px minmax(0,1fr);font-size:12px;font-weight:600;color:#b8dbe8;}
@media(max-width:700px){
  .dd-practice-pulse .pp-cost-row{grid-template-columns:52px minmax(0,1fr);font-size:11px;}
}

/* The pipeline chart */
.dd-practice-pulse .pp-pipeline::before{
  content:"";position:absolute;left:5%;right:5%;top:calc(48% - 17px);height:34px;
  border-radius:999px;background:linear-gradient(90deg,rgba(93,190,218,.055),rgba(107,211,238,.11),rgba(93,190,218,.045));
  border:1px solid rgba(131,216,238,.07);
}
.dd-practice-pulse .pp-pipeline__node b{width:21px;height:21px;margin-bottom:15px;}
.dd-practice-pulse .pp-pipeline__node{top:calc(48% - 11px);}
.dd-practice-pulse .pp-pipeline__node span{font-size:12.5px;font-weight:600;letter-spacing:.09em;color:#bde4f2;}
.dd-practice-pulse .pp-pipeline__traveller{width:9px;height:9px;top:calc(48% - 4.5px);}
@media(max-width:700px){
  .dd-practice-pulse .pp-pipeline::before{left:3%;right:3%;top:calc(48% - 13px);height:26px;}
  .dd-practice-pulse .pp-pipeline__node b{width:15px;height:15px;margin-bottom:10px;}
  .dd-practice-pulse .pp-pipeline__node{top:calc(48% - 8px);}
  .dd-practice-pulse .pp-pipeline__node span{font-size:11px;}
}
/* Measured: the lane lifted the panel by only ~14/255 on blue - present
   but below the threshold where it reads as a chart element. */
.dd-practice-pulse .pp-pipeline::before{
  background:linear-gradient(90deg,rgba(93,190,218,.10),rgba(107,211,238,.21),rgba(93,190,218,.085));
  border-color:rgba(131,216,238,.16);
}


/* ============================================================
   PRACTICE PULSE - CHARTS REFLOWED TO FILL THEIR CARDS

   Measured after the detail strip: of each card's height,the
   share actually carrying visible marks was

       Performance  12%      Relationships  76%
       Marketing    16%      Competitive    75%
       Revenue      43%      Forecasting    69%

   The three low ones had been sized around content that is now
   gone - the funnel around a value per band,the cost rows
   around a figure column,the pipeline around a number over
   every stop plus a mini-card beside it. What was left kept its
   old small scale and sat in the middle of a 429px card,which
   is the half-empty panel. Shrinking the cards instead would
   make the panel resize on every tab change,so the charts grow
   into the space rather than the space being taken away.
   ============================================================ */

/* --- Revenue: taller bands,spread down the card -------------- */
.dd-practice-pulse .pp-funnel{gap:12px;padding:16px 8% 16px;}
.dd-practice-pulse .pp-funnel__stage{height:68px;}
.dd-practice-pulse .pp-funnel__stage span{font-size:10.5px;}
@media(max-width:700px){
  .dd-practice-pulse .pp-funnel{gap:7px;padding:10px 6% 10px;}
  .dd-practice-pulse .pp-funnel__stage{height:46px;}
  .dd-practice-pulse .pp-funnel__stage span{font-size:8px;}
}

/* --- Performance: the pipeline runs down the card -------------
   A four-stop flow laid out horizontally is one thin band however
   large its parts are drawn - it can never fill a card twice as
   tall as it is wide. Turning it on its side costs nothing: same
   four stages,same single traveller,same reading order,and the
   stops now use the height they were floating in.

   Every row is the same fixed width with the dot in a fixed first
   column,so the dots line up on one axis whatever the labels say.
   The track and the traveller are positioned from those two
   measurements rather than from a guessed percentage. */
.dd-practice-pulse .pp-pipeline{--pp-vrow:170px;--pp-dot:21px;min-height:330px;margin:0;}
.dd-practice-pulse .pp-pipeline{--pp-axis:calc(50% - var(--pp-vrow)/2 + var(--pp-dot)/2);}

.dd-practice-pulse .pp-pipeline::before{          /* the lane, now vertical */
  left:calc(var(--pp-axis) - 17px);right:auto;top:6%;bottom:6%;height:auto;width:34px;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(93,190,218,.10),rgba(107,211,238,.21),rgba(93,190,218,.085));
  border:1px solid rgba(131,216,238,.16);
}
.dd-practice-pulse .pp-pipeline__track{
  left:var(--pp-axis);right:auto;top:9%;bottom:9%;height:auto;width:1px;
  background:linear-gradient(180deg,rgba(93,190,218,.18),rgba(107,211,238,.62),rgba(93,190,218,.18));
}
.dd-practice-pulse .pp-pipeline__traveller{
  left:calc(var(--pp-axis) - 4.5px);top:9%;
}
.dd-practice-pulse .pp-pipeline__node{
  left:50%;transform:translate(-50%,-50%);width:var(--pp-vrow);
  display:grid;grid-template-columns:var(--pp-dot) 1fr;align-items:center;gap:14px;text-align:left;
}
.dd-practice-pulse .pp-pipeline__node b{margin:0;width:var(--pp-dot);height:var(--pp-dot);}
.dd-practice-pulse .pp-pipeline__node span{margin:0;font-size:10px;letter-spacing:.12em;}
.dd-practice-pulse .pp-pipeline__node--1{left:50%;top:9%;}
.dd-practice-pulse .pp-pipeline__node--2{left:50%;top:36%;}
.dd-practice-pulse .pp-pipeline__node--3{left:50%;top:63%;}
.dd-practice-pulse .pp-pipeline__node--4{left:50%;top:90%;}
.dd-practice-pulse.pp-in-view .pp-scene--performance.dd-is-active .pp-pipeline__traveller{
  animation:ppPipelineV 5.2s cubic-bezier(.35,.02,.18,1) infinite;
}
@keyframes ppPipelineV{
  0%,7%{top:9%;opacity:0}12%{opacity:1}30%{top:36%}55%{top:61%}68%{top:63%}
  82%{top:90%;opacity:1}88%,100%{top:90%;opacity:0}
}
@media(max-width:700px){
  .dd-practice-pulse .pp-pipeline{--pp-vrow:132px;--pp-dot:15px;min-height:230px;}
  .dd-practice-pulse .pp-pipeline::before{left:calc(var(--pp-axis) - 13px);width:26px;}
  .dd-practice-pulse .pp-pipeline__node{gap:10px;}
  .dd-practice-pulse .pp-pipeline__node span{font-size:7.6px;}
  .dd-practice-pulse .pp-pipeline__traveller{left:calc(var(--pp-axis) - 4px);}
}

/* --- Marketing: bars spread,donut sized to its panel --------- */
.dd-practice-pulse .pp-cost-bars{justify-content:space-around;gap:0;padding:26px 0;}
.dd-practice-pulse .pp-cost-row{font-size:10px;}
.dd-practice-pulse .pp-cost-row i{height:20px;}
.dd-practice-pulse .pp-source-donut{width:148px;height:148px;margin:18px auto;}
.dd-practice-pulse .pp-source-donut::after{inset:26px;}
.dd-practice-pulse .pp-source-legend{gap:9px;}
.dd-practice-pulse .pp-source-legend span{font-size:9px;gap:7px;grid-template-columns:7px 1fr auto;}
.dd-practice-pulse .pp-source-legend i{width:7px;height:7px;}
@media(max-width:700px){
  .dd-practice-pulse .pp-cost-bars{padding:14px 0;}
  .dd-practice-pulse .pp-cost-row{font-size:7.4px;}
  .dd-practice-pulse .pp-cost-row i{height:13px;}
  .dd-practice-pulse .pp-source-donut{width:96px;height:96px;margin:10px auto;}
  .dd-practice-pulse .pp-source-donut::after{inset:17px;}
  .dd-practice-pulse .pp-source-legend span{font-size:6.6px;}
}
/* The donut's panel is a minmax(150px,.72fr) column,so ~122px of content
   box at 1440 - a fixed 148px disc overflowed it. Size it from the column
   it lives in and cap it,rather than from a number that only fits at some
   widths; the hole scales as a percentage so it stays proportional. */
.dd-practice-pulse .pp-source-donut{width:min(100%,148px);height:auto;aspect-ratio:1;}
.dd-practice-pulse .pp-source-donut::after{inset:17.5%;}
@media(max-width:700px){
  .dd-practice-pulse .pp-source-donut{width:min(100%,96px);}
}


/* ============================================================
   MOBILE: SECTION TITLE SCALE + THE TWO COLLIDING CONCLUSIONS

   Measured at 390x844 before this block:

     .dd-next__title      44px   3 lines   350px wide of 390
     .dd-reframe__title   44px   3 lines   350px
     .dd-demo__title      44px   3 lines   323px
     .dd-future__title    40px   3 lines   350px
     .dd-support__title   39px   3 lines   354px
     .dd-trust__title     39px   3 lines   354px
     .dd-faq__title       36px   3 lines   344px
     .dd-hero__title      23px   2 lines   (the h1, for comparison)

   The section h2s were running at 10.4-13vw, so each one filled
   ~90% of the viewport width across three authored lines - and
   every one of them was nearly twice the size of the h1 above it.
   The line breaks are authored as .dd-title-line spans, so the
   three-line shape is intentional; only the scale was wrong. One
   ramp for all seven, at 8vw, keeps the shape and takes roughly a
   third off.
   ============================================================ */
@media (max-width:600px){
  /* These two sat underneath the pinned HIPAA/SSL chip - measured,
     not guessed: both intersected its box, and the reframe line
     also finished 12px past the bottom of the viewport. The chip is
     position:fixed and these are the last thing in a pinned stage,
     so they meet wherever the stage ends. Hidden on phones at the
     brief's request; the desktop layout has room and keeps them. */
  .dd-reframe__conclusion,
  .dd-future__conclusion{ display:none; }
}

}


/* ===== dd-mobile-hero-composition-v1 ==========================================
   Mobile-only hero correction from the 373px device review.

   Goals:
     - reserve a clear band beneath the fixed logo / hamburger;
     - keep the headline out of the chrome;
     - leave desktop/tablet composition unchanged.

   --------------------------------------------------------------------------- */
@media (max-width: 767px){
  .dd-hero__copy{
    /* The hidden hero-brand anchor still occupies its measured line box. This
       top value therefore lands the visible headline roughly 20-26px below the
       fixed chrome on ordinary phones, with safe-area room on notched devices. */
    top: max(34px, calc(env(safe-area-inset-top) + 20px)) !important;
    padding-inline: 18px;
  }

  .dd-hero__actions{
    margin-top: 16px;
  }

}

/* Short phones need the same hierarchy with slightly tighter copy rhythm. */
@media (max-width: 767px) and (max-height: 700px){
  .dd-hero__copy{
    top: max(29px, calc(env(safe-area-inset-top) + 16px)) !important;
  }
  .dd-hero__title{
    font-size: clamp(21px, 5.7vw, 25px) !important;
  }
  .dd-hero__lede{
    font-size: 13px !important;
    line-height: 1.34 !important;
  }
  .dd-hero__actions{
    margin-top: 13px;
  }
  .dd-hero__actions .dd-hero__cta{
    min-height: 43px;
    padding-block: 10px;
  }
}


/* ===== dd-mobile-header-baseline-and-footer-visual-v1 ===== */
/* Mobile refinement from device review:
   1) visually align the logo and hamburger on a common header baseline
   2) use the approved mobile-only footer visual to resolve the empty top band */
@media (max-width:700px){
  .dd-site-logo{
    top:calc(env(safe-area-inset-top) + 24px) !important;
    width:108px !important;
  }
  .dd-site-nav{
    top:calc(env(safe-area-inset-top) + 12px) !important;
    right:max(12px, env(safe-area-inset-right)) !important;
  }
}

@media (max-width:600px){
  .dd-footer{ --dd-footer-scroll:108; }
  .dd-footer__inner{
    grid-template-rows:minmax(248px,34svh) auto minmax(0,1fr) !important;
  }
  .dd-footer__top{
    position:relative;
    display:block !important;
    padding:max(78px,calc(env(safe-area-inset-top) + 58px)) 14px 0 !important;
    overflow:visible;
  }
  .dd-footer__top::after{
    content:'';
    position:absolute;
    left:50%;
    bottom:6px;
    width:min(88vw,340px);
    aspect-ratio:832 / 768;
    transform:translateX(-50%);
    background:url('../assets/footer-mobile-visual.png') center bottom / contain no-repeat;
    filter:drop-shadow(0 18px 46px rgba(55,202,241,.18)) drop-shadow(0 0 24px rgba(93,221,249,.10));
    pointer-events:none;
  }
  .dd-footer__nav{
    grid-template-rows:repeat(3,72px);
  }
  .dd-footer__link{
    height:72px;
  }
  .dd-footer__brand{
    padding:22px 0 44px !important;
  }
}

/* ===== dd-mobile-hero-type-hierarchy-v1 =====================================
   Device-review refinement (Oct 2026).
   Keep the original hero artwork/crop untouched. This block only controls
   the mobile copy position and typographic hierarchy.

   The 54px offset matches the approved in-browser adjustment. Adding the
   safe-area inset preserves that same breathing room below mobile chrome on
   notched devices instead of letting the copy climb back into the header. */
@media (max-width: 767px){
  .dd-hero__copy{
    top: calc(env(safe-area-inset-top) + 54px) !important;
    padding-inline: 18px !important;
  }

  .dd-hero__title{
    font-size: clamp(32px, 8.8vw, 38px) !important;
    line-height: .99 !important;
    letter-spacing: -.026em !important;
    margin-bottom: 10px !important;
  }

  .dd-hero__lede{
    font-size: clamp(13px, 3.55vw, 14px) !important;
    line-height: 1.38 !important;
    max-width: 31ch !important;
  }

  .dd-hero__actions{
    gap: 8px !important;
    margin-top: 15px !important;
  }

  .dd-hero__actions .dd-hero__cta{
    min-height: 40px !important;
    padding: 9px 18px !important;
    font-size: 13px !important;
    line-height: 1 !important;
    font-weight: 650 !important;
  }
}

/* Preserve the same hierarchy on short phones without returning to the old
   undersized 21–25px H1 treatment. The CTA reduction provides the vertical
   room needed here. */
@media (max-width: 767px) and (max-height: 700px){
  .dd-hero__copy{
    top: calc(env(safe-area-inset-top) + 48px) !important;
  }
  .dd-hero__title{
    font-size: clamp(30px, 8.25vw, 34px) !important;
  }
  .dd-hero__lede{
    font-size: 12.5px !important;
    line-height: 1.34 !important;
  }
  .dd-hero__actions{
    margin-top: 12px !important;
  }
  .dd-hero__actions .dd-hero__cta{
    min-height: 38px !important;
    padding: 8px 16px !important;
    font-size: 12.5px !important;
  }
}


/* ===== dd-mobile-reframe-focus-simplification-v1 ===== */
/* Mobile-only simplification: reduce supporting chrome and let the handoff
   image become the focal point of the reframe section. */
@media (max-width:600px){
  .dd-reframe__lede,
  .dd-reframe__caption,
  .dd-reframe__node-step{
    display:none !important;
  }

  .dd-reframe__copy{
    margin-bottom:4px;
  }

  .dd-reframe__title{
    max-width:10.8em;
  }

  .dd-reframe__visual{
    margin-top:10px;
  }

  .dd-reframe__scene{
    width:min(78vw,320px) !important;
    margin:0 auto 8px !important;
  }

  .dd-reframe__scene-reflection{
    bottom:-20%;
  }

  .dd-reframe__journey{
    margin-top:2px;
  }

  .dd-reframe__journey-stack{
    gap:8px;
    padding-left:18px;
  }

  .dd-reframe__node{
    min-height:52px;
    grid-template-columns:46px minmax(0,1fr);
  }

  .dd-reframe__node-label{
    margin-bottom:3px;
  }

  .dd-reframe__conclusion{
    margin-top:14px;
  }
}

/* ===== dd-mobile-footer-spacing-v2 ===== */
/* Device-review refinement: give the mobile footer artwork more vertical room,
   lower the navigation block, and keep the animated wordmark visually tied to
   the links instead of floating below a large dead band. Desktop is untouched. */
@media (max-width:600px){
  .dd-footer__inner{
    grid-template-rows:minmax(286px,40svh) auto minmax(0,1fr) !important;
  }

  .dd-footer__top::after{
    bottom:18px !important;
  }

  .dd-footer__brand{
    align-items:flex-start !important;
    padding:12px 0 44px !important;
  }
}

/* ===== dd-mobile-natural-title-wrap-and-footer-bottom-group-v1 ===== */
/* Mobile only:
   - release desktop-authored title line breaks so headings can naturally use
     two lines when the viewport allows it, and wrap further only when needed;
   - anchor the footer navigation + animated wordmark toward the legal block,
     giving the mobile artwork a larger uninterrupted field above. */
@media (max-width:600px){
  .dd-next__title,
  .dd-reframe__title,
  .dd-future__title,
  .dd-support__title,
  .dd-trust__title,
  .dd-demo__title,
  .dd-faq__title{
    max-width:100% !important;
    text-wrap:balance;
  }

  .dd-next__title .dd-title-line,
  .dd-reframe__title .dd-title-line,
  .dd-future__title .dd-title-line,
  .dd-support__title .dd-title-line,
  .dd-trust__title .dd-title-line,
  .dd-demo__title .dd-title-line,
  .dd-faq__title .dd-title-line{
    display:inline !important;
    white-space:normal !important;
  }

  .dd-next__title .dd-title-line:not(:last-child)::after,
  .dd-reframe__title .dd-title-line:not(:last-child)::after,
  .dd-future__title .dd-title-line:not(:last-child)::after,
  .dd-support__title .dd-title-line:not(:last-child)::after,
  .dd-trust__title .dd-title-line:not(:last-child)::after,
  .dd-demo__title .dd-title-line:not(:last-child)::after,
  .dd-faq__title .dd-title-line:not(:last-child)::after{
    content:' ';
  }

  .dd-footer__inner{
    grid-template-rows:minmax(250px,1fr) 216px 175px !important;
  }

  .dd-footer__top::after{
    bottom:18px !important;
  }

  .dd-footer__nav{
    grid-row:2 !important;
    grid-template-rows:repeat(3,72px) !important;
    align-self:stretch !important;
  }

  .dd-footer__brand{
    grid-row:3 !important;
    min-height:175px !important;
    padding:0 0 78px !important;
    align-items:flex-end !important;
    justify-content:center !important;
  }

  .dd-footer__brand .dd-footer__wordmark{
    width:100vw !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
}

/* ===== dd-mobile-hero-direct-to-continuity-v1 ===== */
/* Mobile does not use the desktop scroll-scrub sequence. The hero is a single
   viewport video experience followed immediately by Referral Continuity. */
@media (max-width:767px){
  .dd-hero{
    height:100svh !important;
  }
  .dd-hero__annotations{
    display:none !important;
  }
  .dd-next{
    margin-top:0 !important;
  }
}

/* ===== dd-mobile-continuity-clean-edge-v1 ===== */
/* Mobile jumps directly from the hero video to Referral Continuity, so the
   desktop foreground-cover wedge must not project upward into the hero. */
@media (max-width:767px){
  .dd-next__surface::before{
    content:none !important;
    display:none !important;
  }
  .dd-next__surface{
    box-shadow:none !important;
  }
}

/* ===== dd-mobile-footer-bottom-pack-v2 ===== */
/* Mobile footer device-review fix:
   - move the nav + animated wordmark farther down as one group;
   - give the wordmark a real side safe-area instead of letting it touch edges;
   - use the SVG's transparent lower viewBox space intentionally so the visible
     lettering sits close to, but does not collide with, the copyright block. */
@media (max-width:600px){
  .dd-footer__inner{
    grid-template-rows:minmax(300px,1fr) 216px 116px !important;
  }

  .dd-footer__nav{
    grid-row:2 !important;
  }

  .dd-footer__brand{
    grid-row:3 !important;
    min-height:116px !important;
    padding:0 !important;
    align-items:flex-start !important;
    justify-content:center !important;
    overflow:hidden !important;
  }

  .dd-footer__brand .dd-footer__wordmark{
    width:88vw !important;
    max-width:calc(100% - 36px) !important;
    height:auto !important;
    margin:0 auto !important;
    transform:none !important;
  }
}

