:root {
    --dd-sticky-top: calc(var(--dd-key-top) + var(--dd-key-cell-h) + 1.25rem);
    --dd-callout-line-color: var(--very-light-yellow-darker);
    --dd-solution-hero-max-height: calc(100dvh - var(--dd-sticky-top) - var(--dd-viewport-pad));
    --dd-solution-hero-radius: 2rem;
    --dd-solution-wide-max-width: min(
        calc(var(--dd-solution-hero-max-height) * 16 / 9),
        calc(100vw - 16vw)
    );
    --dd-carousel-offset: calc(var(--dd-sticky-top) + 2rem);
    --dd-carousel-slide-width: 82%;
    --dd-carousel-gap: 0.85rem;
    --dd-carousel-caption-gap: 0.35rem;
    --dd-carousel-caption-padding-left: 1.1rem;
    --dd-carousel-caption-padding-right: 1.75rem;
    --dd-carousel-caption-width: 96%;
    --dd-carousel-caption-font-size: 1.25rem;
    --dd-carousel-padding-block: 1.25rem;
    --dd-carousel-text-block: clamp(4rem, 11vh, 6rem);
    --dd-carousel-image-min-height: 600px;
    --dd-carousel-image-max-height: min(
        680px,
        calc(
            100dvh - var(--dd-carousel-offset)
            - (var(--dd-carousel-padding-block) * 2)
            - var(--dd-carousel-text-block)
        )
    );
    --dd-carousel-slide-max-height: calc(100dvh - var(--dd-carousel-offset));
}

.dd-header-lead {
    max-width: var(--dd-main-width);
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.dd-project-scroll {
    position: relative;
    margin: 0 -8vw 8rem -8vw;
    padding: 0 3vw 0 8vw;
}

.dd-project-scroll__lines {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 2;
    overflow: visible;
}

.dd-project-scroll__lines path {
    fill: none;
    stroke: var(--dd-callout-line-color);
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: opacity 0.25s linear;
}

.dd-project-scroll__lines .dd-callout-line--under {
    stroke-width: 9;
    opacity: 0;
}

.dd-project-scroll__lines .dd-callout-line--main {
    stroke-width: 1.5;
    opacity: 0;
}

.dd-project-scroll--active .dd-callout-line--under.is-visible {
    opacity: 0.2;
}

.dd-project-scroll--active .dd-callout-line--main.is-visible {
    opacity: 0.55;
}

.dd-project-scroll__content {
    min-width: 0;
    overflow: visible;
}

.dd-project-scroll__stage {
    min-width: 0;
}

.dd-callout-section {
    max-width: var(--dd-main-width);
    margin-bottom: clamp(3rem, 8vh, 5rem);
    scroll-margin-top: var(--dd-sticky-top);
}

.dd-callout-section:last-child {
    margin-bottom: 0;
}

.dd-callout-section__note {
    display: inline-block;
    margin-bottom: 0.75rem;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 250, 224, 0.15);
    font-size: 0.85rem;
    color: var(--very-light-yellow-darker);
    opacity: 0.45;
    transition: opacity 0.25s linear, border-color 0.25s linear, color 0.25s linear;
}

.dd-callout-section--active .dd-callout-section__note {
    opacity: 1;
    border-color: rgba(255, 250, 224, 0.35);
    color: var(--very-light-yellow);
}

.dd-callout-section__body {
    font-size: 1.6rem;
    color: var(--very-light-yellow-darker);
    line-height: 1.6;
    margin: 0;
}

.dd-callout-section__body + .dd-callout-section__body {
    margin-top: 1rem;
}

.dd-callout-section a,
.dd-callout-section a:visited {
    color: var(--very-light-yellow-darker);
    background: none;
    text-decoration: underline;
    text-decoration-color: rgba(204, 199, 170, 0.45);
    text-underline-offset: 0.14em;
    text-decoration-thickness: 1px;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.dd-callout-section a:hover {
    color: var(--very-light-yellow);
    text-decoration-color: rgba(255, 250, 224, 0.35);
}

.dd-inline-volume-demo {
    --dd-volume-slider-track: 0.32rem;
    --dd-volume-slider-thumb: 1.15rem;
    --dd-volume-accent: rgb(79, 246, 140);
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    white-space: nowrap;
    vertical-align: baseline;
}

.dd-volume-slider {
    -webkit-appearance: none;
    appearance: none;
    width: 9.5rem;
    height: var(--dd-volume-slider-thumb);
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    transform: translateY(-1px);
    --volume-fill: 0%;
}

.dd-volume-slider::-webkit-slider-runnable-track {
    height: var(--dd-volume-slider-track);
    border-radius: 999px;
    background: linear-gradient(
        to right,
        var(--dd-volume-accent) 0%,
        var(--dd-volume-accent) var(--volume-fill),
        rgba(255, 250, 224, 0.22) var(--volume-fill),
        rgba(255, 250, 224, 0.22) 100%
    );
}

.dd-volume-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: var(--dd-volume-slider-thumb);
    height: var(--dd-volume-slider-thumb);
    margin-top: calc((var(--dd-volume-slider-track) - var(--dd-volume-slider-thumb)) / 2);
    border: none;
    border-radius: 50%;
    background: var(--very-light-yellow-darker);
    transition: background 0.15s ease, box-shadow 0.15s ease;
}

.dd-volume-slider.is-active::-webkit-slider-thumb,
.dd-volume-slider:focus-visible::-webkit-slider-thumb {
    background: var(--dd-volume-accent);
    box-shadow: 0 0 0 2px rgba(79, 246, 140, 0.28);
}

.dd-volume-slider::-moz-range-track {
    height: var(--dd-volume-slider-track);
    border: none;
    border-radius: 999px;
    background: rgba(255, 250, 224, 0.22);
}

.dd-volume-slider::-moz-range-progress {
    height: var(--dd-volume-slider-track);
    border-radius: 999px 0 0 999px;
    background: var(--dd-volume-accent);
}

.dd-volume-slider::-moz-range-thumb {
    width: var(--dd-volume-slider-thumb);
    height: var(--dd-volume-slider-thumb);
    border: none;
    border-radius: 50%;
    background: var(--very-light-yellow-darker);
    transition: background 0.15s ease, box-shadow 0.15s ease;
}

.dd-volume-slider.is-active::-moz-range-thumb,
.dd-volume-slider:focus-visible::-moz-range-thumb {
    background: var(--dd-volume-accent);
    box-shadow: 0 0 0 2px rgba(79, 246, 140, 0.28);
}

.dd-volume-slider__value {
    font: inherit;
    color: inherit;
    transition: color 0.15s ease;
}

.dd-volume-slider__value.is-max {
    color: var(--dd-volume-accent);
}

.dd-volume-slider__reading {
    display: inline;
    white-space: nowrap;
}

.dd-callout-section__heading {
    font-family: "Henrietta Regular";
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    color: var(--very-light-yellow);
    margin: 0 0 1rem 0;
    line-height: 1.2;
    font-weight: normal;
}

.dd-callout-section__title {
    font-family: "Henrietta Regular";
    font-size: clamp(1.25rem, 2.2vw, 1.55rem);
    color: var(--very-light-yellow);
    margin: 0;
    line-height: 1.2;
    font-weight: normal;
}

.dd-project-scroll__carousel-slide .dd-callout-section__title {
    align-self: flex-start;
    width: var(--dd-carousel-caption-width);
    max-width: 100%;
    box-sizing: border-box;
    padding: 0 var(--dd-carousel-caption-padding-right) 0 var(--dd-carousel-caption-padding-left);
    margin-bottom: 0.15rem;
}

.dd-callout-list {
    list-style: none;
    margin: 0.75rem 0 0;
    padding: 0;
    font-size: 1.6rem;
    color: var(--very-light-yellow-darker);
    line-height: 1.6;
}

.dd-callout-list li {
    position: relative;
    padding: 0 0 0.5em 1.15em;
}

.dd-callout-list li:last-child {
    padding-bottom: 0;
}

.dd-callout-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.78em;
    width: 0.28em;
    height: 0.28em;
    border-radius: 50%;
    background: var(--very-light-yellow-darker);
    opacity: 0.7;
    transform: translateY(-50%);
}

.dd-callout-list li::marker {
    content: none;
}

.dd-project-media__frame {
    position: relative;
    display: block;
    margin: 0;
    line-height: 0;
    border-radius: 2rem;
    overflow: hidden;
    width: 100%;
    max-width: min(420px, 100%);
}

.dd-project-media__frame figcaption {
    line-height: 1.45;
    font-size: 1.25rem;
    color: var(--very-light-yellow-darker);
    margin-top: 0.65rem;
    padding: 0 0.15rem;
}

.dd-project-media__frame figcaption a,
.dd-project-media__frame figcaption a:visited {
    color: var(--very-light-yellow-darker);
    background: none;
    text-decoration: underline;
    text-decoration-color: rgba(204, 199, 170, 0.45);
    text-underline-offset: 0.14em;
    text-decoration-thickness: 1px;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.dd-project-media__frame figcaption a:hover {
    color: var(--very-light-yellow);
    text-decoration-color: rgba(255, 250, 224, 0.35);
}

.dd-project-media__stack {
    position: relative;
    opacity: 0;
    transition: opacity 0.45s ease;
}

.dd-project-media__stack.is-showing {
    opacity: 1;
}

.dd-project-media__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--dd-layout-gap);
    width: 100%;
    opacity: 1;
}

.dd-project-media__grid-item {
    display: flex;
    justify-content: center;
    min-width: 0;
}

.dd-project-media__grid-card {
    display: grid;
    justify-items: start;
    width: 100%;
    max-width: 100%;
    gap: 0.75rem;
    min-width: 0;
}

.dd-project-media__grid-copy {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    width: 100%;
    box-sizing: border-box;
}

.dd-project-media__grid-title {
    font-family: "Henrietta Regular";
    font-size: clamp(1.25rem, 2.2vw, 1.55rem);
    color: var(--very-light-yellow);
    margin: 0;
    line-height: 1.2;
    font-weight: normal;
}

.dd-project-media__grid-body {
    font-size: 1.6rem;
    color: var(--very-light-yellow-darker);
    margin: 0;
    line-height: 1.6;
}

.dd-project-media__grid-media {
    width: 100%;
    min-width: 0;
    display: flex;
    justify-content: center;
}

.dd-project-media__frame--grid {
    max-width: none;
    width: 100%;
    overflow: visible;
    line-height: inherit;
}

.dd-volume-control-page .dd-project-scroll--stage-carousel {
    column-gap: clamp(4rem, 7vw, 6rem);
}

.dd-volume-control-page .dd-project-scroll--stage-carousel.dd-project-scroll--has-carousel {
    overflow-x: visible;
}

.dd-volume-control-page .dd-project-scroll--stage-carousel.dd-project-scroll--has-carousel .dd-project-scroll__content {
    overflow-x: visible;
}

.dd-volume-control-page .dd-project-scroll--stage-carousel.dd-project-scroll--has-carousel .dd-project-scroll__stage {
    display: flex;
    justify-content: flex-start;
    width: calc(100% + var(--dd-volume-stage-bleed-right));
    margin-right: calc(-1 * var(--dd-volume-stage-bleed-right));
    min-width: 0;
    overflow: visible;
    position: relative;
}

.dd-volume-control-page .dd-project-scroll--stage-carousel.dd-project-scroll--has-carousel .dd-project-scroll__stage::before,
.dd-volume-control-page .dd-project-scroll--stage-carousel.dd-project-scroll--has-carousel .dd-project-scroll__stage::after {
    content: "";
    position: absolute;
    top: 0;
    width: var(--dd-volume-carousel-fade-width);
    height: 100%;
    pointer-events: none;
    z-index: 1;
}

.dd-volume-control-page .dd-project-scroll--stage-carousel.dd-project-scroll--has-carousel .dd-project-scroll__stage::before {
    left: calc(-1 * var(--dd-volume-carousel-fade-left-shift));
    width: calc(var(--dd-volume-carousel-fade-width) + var(--dd-volume-carousel-fade-left-shift));
    background: linear-gradient(
        to right,
        var(--dd-surface-deep) 0%,
        color-mix(in srgb, var(--dd-surface-deep) 55%, transparent) 50%,
        transparent 100%
    );
}

.dd-volume-control-page .dd-project-scroll--stage-carousel.dd-project-scroll--has-carousel .dd-project-scroll__stage::after {
    right: 0;
    background: linear-gradient(
        to right,
        transparent 0%,
        color-mix(in srgb, var(--dd-surface-deep) 55%, transparent) 50%,
        var(--dd-surface-deep) 100%
    );
}

.dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-scroll__carousel {
    width: 100%;
    max-width: none;
    margin: 0;
    gap: clamp(1.15rem, 1.8vw, 1.5rem);
}

.dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-scroll__carousel-slide {
    flex: 0 0 var(--dd-volume-carousel-slide-width);
    min-width: 320px;
    max-height: none;
    height: auto;
    padding: 0;
    overflow: visible;
    scroll-snap-align: start;
    scroll-snap-stop: always;
}

.dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-scroll__carousel-slide__inner.dd-project-media__grid-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    width: 100%;
    max-width: 100%;
    gap: 0.65rem;
}

.dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-media__grid-media {
    width: 100%;
    display: block;
    line-height: 0;
}

.dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-media__grid-copy {
    width: var(--dd-volume-carousel-copy-width);
    max-width: 100%;
    min-width: 0;
    padding-left: var(--dd-volume-carousel-copy-padding-left);
    box-sizing: border-box;
}

.dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-media__grid-title,
.dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-media__grid-body {
    width: 100%;
    max-width: 100%;
}

.dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-media__grid-body {
    font-size: 1.2rem;
    line-height: 1.55;
}

.dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-media__surface {
    position: relative;
    inset: auto;
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0;
    border-radius: 1.25rem;
}

.dd-volume-control-page .dd-project-scroll:not(.dd-project-scroll--stage-carousel) {
    column-gap: clamp(4rem, 7vw, 6rem);
}

.dd-volume-control-page .dd-project-scroll__stage {
    width: 100%;
    min-width: 0;
}

.dd-volume-control-page .dd-project-media__grid {
    gap: clamp(1.25rem, 2.5vw, 2rem);
    width: var(--dd-media-grid-width);
    max-width: 100%;
}

.dd-volume-control-page .dd-project-media__grid-card {
    width: 100%;
    max-width: 100%;
}

.dd-volume-control-page .dd-project-media__grid-copy {
    padding-left: 0.85rem;
}

.dd-volume-control-page .dd-project-media__grid-card .dd-project-media__surface {
    position: relative;
    inset: auto;
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
    margin: 0;
    border-radius: 1.25rem;
    object-fit: contain;
    object-position: top center;
}

.dd-project-media__surface,
.dd-project-media__frame img,
.dd-project-media__frame video {
    display: block;
    width: 100%;
    max-width: min(420px, 100%);
    height: auto;
    border-radius: 2rem;
}

.dd-project-scroll__carousel {
    display: none;
}

.dd-project-scroll__carousel-slide {
    flex: 0 0 var(--dd-carousel-slide-width);
    scroll-snap-align: start;
    scroll-snap-stop: always;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    box-sizing: border-box;
    max-height: var(--dd-carousel-slide-max-height);
    padding: var(--dd-carousel-padding-block) 0;
    min-width: 0;
    overflow: hidden;
}

.dd-project-scroll__carousel-slide__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--dd-carousel-caption-gap);
    width: fit-content;
    max-width: 100%;
}

.dd-project-scroll__carousel-slide__media {
    flex: 0 1 auto;
    margin: 0;
    line-height: 0;
    display: block;
    min-height: 0;
    max-height: var(--dd-carousel-image-max-height);
}

.dd-project-scroll__carousel-slide__media img {
    display: block;
    width: auto;
    height: auto;
    max-height: var(--dd-carousel-image-max-height);
    max-width: 100%;
    object-fit: contain;
    border-radius: 2rem;
}

.dd-project-scroll__carousel-slide .dd-callout-section__body {
    flex: 0 0 auto;
    align-self: flex-start;
    position: relative;
    z-index: 2;
    width: var(--dd-carousel-caption-width);
    max-width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 0 var(--dd-carousel-caption-padding-right) 0 var(--dd-carousel-caption-padding-left);
    background: none;
    text-align: left;
    font-size: var(--dd-carousel-caption-font-size);
}

.dd-project-scroll--has-carousel .dd-project-scroll__stage,
.dd-project-scroll--has-carousel .dd-callout-section--step {
    display: none;
}

.dd-project-scroll--has-carousel {
    overflow-x: clip;
}

.dd-project-scroll--has-carousel .dd-project-scroll__content {
    min-width: 0;
    overflow-x: clip;
}

.dd-project-scroll--has-carousel .dd-project-scroll__lines {
    display: none;
}

.dd-project-scroll--has-carousel .dd-project-scroll__carousel {
    display: flex;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: var(--dd-carousel-gap);
    margin: 0 0 2.5rem;
    padding: 0 0 0.25rem;
}

.dd-project-scroll--has-carousel .dd-project-scroll__carousel::-webkit-scrollbar {
    display: none;
}

.dd-project-scroll__solution-layout {
    display: flex;
    flex-direction: column;
    gap: clamp(3rem, 8vh, 5rem);
}

.dd-project-scroll__solution-block {
    display: flex;
    flex-direction: column;
    gap: var(--dd-layout-gap);
}

.dd-project-scroll__solution-block > .dd-callout-section {
    margin-bottom: 0;
}

.dd-project-scroll__solution-block__row {
    display: flex;
    flex-direction: column;
    gap: var(--dd-layout-gap);
    min-width: 0;
}

.dd-project-scroll__solution-block__row .dd-solution-card {
    width: min(100%, var(--dd-main-width));
    max-width: var(--dd-main-width);
    margin-inline: auto;
}

.dd-project-scroll__solution-block__video {
    align-self: center;
    width: min(100%, calc(var(--dd-solution-hero-max-height) * 944 / 1920));
    max-width: min(420px, 100%);
    height: auto;
}

.dd-project-scroll__solution-block__video.dd-solution-video {
    display: flex;
    justify-content: center;
}

.dd-solution-video {
    line-height: 0;
    border-radius: var(--dd-solution-hero-radius);
    overflow: hidden;
}

.dd-solution-video__media {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    padding-bottom: 0;
    border: 0;
    vertical-align: top;
    box-sizing: border-box;
}

.dd-solution-video--portrait {
    width: min(100%, calc(var(--dd-solution-hero-max-height) * 944 / 1920));
    max-width: min(420px, 100%);
}

.dd-solution-video--wide {
    width: min(100%, var(--dd-solution-wide-max-width));
    max-width: 100%;
}

.dd-project-scroll__solution-demo {
    min-width: 0;
    margin-right: calc(-1 * var(--dd-text-column-pad-right, 0px));
    width: calc(100% + var(--dd-text-column-pad-right, 0px));
}

.dd-solution-video-figure {
    margin: 0;
}

.dd-solution-video-figure figcaption {
    font-size: 1.25rem;
    line-height: 1.45;
    color: var(--very-light-yellow-darker);
    margin-top: 0.65rem;
}

.dd-solution-card {
    border-radius: 1.5rem;
    background: color-mix(in srgb, var(--dd-surface-inset) 62%, transparent);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border: 1px solid rgba(255, 250, 224, 0.14);
    padding: clamp(1.5rem, 3vw, 2rem);
    box-sizing: border-box;
    margin-bottom: 0;
}

.dd-solution-card .dd-callout-section__body,
.dd-solution-card .dd-callout-list {
    font-size: 1.4rem;
}

.dd-project-scroll__wheel-band {
    width: 100%;
    padding-top: calc(12rem + clamp(2rem, 5vw, 3.5rem));
    padding-bottom: calc(8rem + clamp(3.5rem, 7vw, 5.5rem));
    background: var(--dd-neutral-75);
    color: var(--dd-neutral-975);
    box-sizing: border-box;
}

.dd-project-scroll__wheel-band__inner {
    max-width: 1680px;
    margin: 0 auto;
    padding-inline: 8vw;
    box-sizing: border-box;
}

.dd-project-scroll__solution-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

.dd-project-scroll__wheel-band .dd-project-scroll__solution-row {
    gap: clamp(3.5rem, 6vw, 5rem);
}

.dd-project-scroll__wheel-band .dd-callout-section {
    padding-right: 0;
    margin-bottom: 0;
    max-width: var(--dd-main-width);
}

.dd-project-scroll__wheel-band .dd-callout-section__heading,
.dd-project-scroll__wheel-band .dd-callout-section__body,
.dd-project-scroll__wheel-band .dd-callout-list {
    color: var(--dd-neutral-975);
}

.dd-project-scroll__wheel-band .dd-callout-section__body a,
.dd-project-scroll__wheel-band .dd-callout-section__body a:visited {
    color: var(--dd-neutral-975);
    background: none;
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--dd-neutral-975) 35%, transparent);
    text-underline-offset: 0.14em;
    text-decoration-thickness: 1px;
}

.dd-project-scroll__wheel-band .dd-callout-section__body a:hover {
    color: var(--dd-neutral-800);
    text-decoration-color: color-mix(in srgb, var(--dd-neutral-800) 45%, transparent);
}

.dd-project-scroll__wheel-band .dd-project-media__frame figcaption,
.dd-project-scroll__wheel-band .dd-project-media__frame figcaption a,
.dd-project-scroll__wheel-band .dd-project-media__frame figcaption a:visited {
    color: var(--dd-neutral-975);
    background: none;
    text-decoration-color: color-mix(in srgb, var(--dd-neutral-975) 35%, transparent);
}

.dd-project-scroll__wheel-band .dd-project-media__frame figcaption a:hover {
    color: var(--dd-neutral-800);
    text-decoration-color: color-mix(in srgb, var(--dd-neutral-800) 45%, transparent);
}

.dd-project-scroll__wheel-band .dd-inline-volume-demo {
    --dd-volume-accent: var(--dd-neutral-975);
    --dd-volume-slider-track-bg: color-mix(in srgb, var(--dd-neutral-975) 22%, transparent);
}

.dd-project-scroll__wheel-band .dd-volume-slider::-webkit-slider-runnable-track {
    background: linear-gradient(
        to right,
        var(--dd-volume-accent) 0%,
        var(--dd-volume-accent) var(--volume-fill),
        var(--dd-volume-slider-track-bg) var(--volume-fill),
        var(--dd-volume-slider-track-bg) 100%
    );
}

.dd-project-scroll__wheel-band .dd-volume-slider::-webkit-slider-thumb {
    background: var(--dd-neutral-800);
}

.dd-project-scroll__wheel-band .dd-volume-slider.is-active::-webkit-slider-thumb,
.dd-project-scroll__wheel-band .dd-volume-slider:focus-visible::-webkit-slider-thumb {
    background: var(--dd-neutral-975);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--dd-neutral-975) 28%, transparent);
}

.dd-project-scroll__wheel-band .dd-volume-slider::-moz-range-track {
    background: var(--dd-volume-slider-track-bg);
}

.dd-project-scroll__wheel-band .dd-volume-slider::-moz-range-progress {
    background: var(--dd-volume-accent);
}

.dd-project-scroll__wheel-band .dd-volume-slider::-moz-range-thumb {
    background: var(--dd-neutral-800);
}

.dd-project-scroll__wheel-band .dd-volume-slider.is-active::-moz-range-thumb,
.dd-project-scroll__wheel-band .dd-volume-slider:focus-visible::-moz-range-thumb {
    background: var(--dd-neutral-975);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--dd-neutral-975) 28%, transparent);
}

.dd-project-scroll__wheel-band .dd-volume-slider__value.is-max {
    color: var(--dd-neutral-975);
}

.dd-project-scroll__solution-layout .dd-callout-section {
    margin-bottom: 0;
}

.dd-project-scroll__solution-stage {
    min-width: 0;
}

.dd-project-scroll__solution-stage--wide {
    width: 100%;
}

.dd-project-media__frame--wide {
    width: 100%;
    max-width: 100%;
    overflow: visible;
}

.dd-project-scroll__solution-stage--wide .dd-project-media__surface {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
    border-radius: 2rem;
}

.dd-project-scroll__wheel-band .dd-project-scroll__solution-stage--wide {
    width: 100%;
    min-width: 0;
}

.dd-project-scroll__wheel-band .dd-project-media__frame--wide {
    width: 100%;
    max-width: 100%;
}

.dd-project-scroll__wheel-band .dd-project-scroll__solution-stage--wide .dd-project-media__surface {
    width: 100%;
    max-width: 100%;
    height: auto;
}

.dd-project-media__video {
    display: block;
    width: 100%;
    max-width: min(420px, 100%);
    height: auto;
    border-radius: 2rem;
    cursor: pointer;
}

.dd-project-media__video:focus {
    outline: 2px solid rgba(255, 250, 224, 0.35);
    outline-offset: 4px;
}

.dd-project-media__stack .dd-project-media__surface {
    transition: opacity 0.45s ease;
}

.dd-project-media__stack .dd-project-media__surface:not(.is-active) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: top center;
    opacity: 0;
    pointer-events: none;
}

.dd-project-media__stack .dd-project-media__surface.is-active {
    position: relative;
    opacity: 1;
}

.dd-project-media__frame .dd-media-placeholder {
    line-height: 1.4;
    min-height: 20rem;
    max-width: min(420px, 100%);
    box-sizing: border-box;
}

.dd-project-media__anchor {
    position: absolute;
    left: calc(var(--anchor-x, 0.5) * 100%);
    top: calc(var(--anchor-y, 0.5) * 100%);
    width: 10px;
    height: 10px;
    transform: translate(-50%, -50%) scale(0.85);
    border-radius: 50%;
    background: var(--very-light-yellow);
    box-shadow: 0 0 0 4px rgba(255, 250, 224, 0.12);
    opacity: 0;
    transition: opacity 0.25s linear, transform 0.25s linear;
    pointer-events: none;
}

.dd-project-scroll--active .dd-project-media__anchor.is-visible {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

@media (min-width: 901px) {
    .dd-project-scroll:not(.dd-project-scroll--has-carousel),
    .dd-volume-control-page .dd-project-scroll--stage-carousel {
        display: grid;
        grid-template-columns: var(--dd-main-width) 1fr;
        column-gap: var(--dd-layout-gap);
        align-items: start;
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel {
        column-gap: clamp(4rem, 7vw, 6rem);
    }

    .dd-project-scroll:not(.dd-project-scroll--has-carousel) .dd-project-scroll__content,
    .dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-scroll__content {
        grid-column: 1;
        grid-row: 1;
    }

    .dd-project-scroll:not(.dd-project-scroll--has-carousel) .dd-project-scroll__stage,
    .dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-scroll__stage {
        grid-column: 2;
        grid-row: 1;
        position: sticky;
        top: var(--dd-sticky-top);
        align-self: start;
        display: flex;
        justify-content: flex-start;
        width: 100%;
        min-width: 0;
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-scroll__stage {
        justify-content: stretch;
        width: calc(100% + var(--dd-volume-stage-bleed-right));
        margin-right: calc(-1 * var(--dd-volume-stage-bleed-right));
    }

    .dd-volume-control-page .dd-project-scroll:not(.dd-project-scroll--stage-carousel) .dd-project-scroll__stage {
        justify-content: stretch;
    }

    .dd-project-scroll--has-carousel {
        --dd-carousel-slide-width: min(
            44vw,
            max(280px, calc(var(--dd-carousel-image-max-height) * 0.52))
        );
    }

    .dd-project-scroll__solution-row {
        grid-template-columns: var(--dd-main-width) 1fr;
        column-gap: var(--dd-layout-gap);
        align-items: start;
    }

    .dd-project-scroll__wheel-band .dd-project-scroll__solution-row {
        grid-template-columns: minmax(0, var(--dd-main-width)) minmax(0, 1fr);
        column-gap: clamp(4rem, 7vw, 6rem);
    }

    .dd-project-scroll__solution-block__row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        column-gap: var(--dd-layout-gap);
        align-items: center;
        justify-items: center;
        width: calc(100% + var(--dd-layout-gap) + min(420px, 35vw));
        max-width: var(--dd-solution-wide-max-width);
        margin-right: calc(-1 * (var(--dd-layout-gap) + min(420px, 35vw)));
        margin-left: 0;
    }

    .dd-project-scroll__solution-block__row .dd-solution-card {
        justify-self: center;
        align-self: center;
        width: min(100%, var(--dd-main-width));
        max-width: var(--dd-main-width);
        height: auto;
        margin-inline: auto;
    }

    .dd-project-scroll__solution-block__video {
        align-self: center;
        width: 100%;
        max-width: none;
        height: auto;
        min-height: min(var(--dd-solution-hero-max-height), 80vh);
        min-width: 0;
    }

    .dd-project-scroll__solution-block__video.dd-solution-video {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .dd-project-scroll__solution-block__video .dd-solution-video__media {
        width: auto;
        height: auto;
        max-width: min(420px, 100%);
        max-height: 100%;
        margin: 0;
        object-fit: contain;
        object-position: center center;
    }

    .dd-solution-video--portrait.dd-project-scroll__solution-block__video {
        width: 100%;
        max-width: none;
    }

    .dd-project-media__surface,
    .dd-project-media__frame img,
    .dd-project-media__frame video,
    .dd-project-media__video {
        max-height: calc(100dvh - var(--dd-sticky-top) - var(--dd-viewport-pad));
        width: auto;
        max-width: min(420px, 100%);
        object-fit: contain;
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-media__surface {
        width: 100%;
        max-width: 100%;
        height: auto;
        max-height: none;
        margin-inline: 0;
    }

    .dd-volume-control-page .dd-project-media__grid-card .dd-project-media__surface {
        width: 100%;
        max-width: 100%;
        max-height: none;
        margin-inline: 0;
        object-fit: contain;
        object-position: top center;
    }

    .dd-project-scroll__solution-demo {
        margin-right: calc(-1 * (var(--dd-layout-gap) + min(420px, 35vw)));
        width: calc(100% + var(--dd-layout-gap) + min(420px, 35vw));
        max-width: var(--dd-solution-wide-max-width);
    }

    .dd-volume-control-page .dd-project-scroll__solution-demo {
        margin-right: calc(-1 * (var(--dd-layout-gap) + min(480px, 42vw) + var(--dd-volume-stage-bleed-right)));
        width: calc(100% + var(--dd-layout-gap) + min(480px, 42vw) + var(--dd-volume-stage-bleed-right));
        max-width: var(--dd-solution-wide-max-width);
    }

    .dd-volume-control-page .dd-solution-video-figure,
    .dd-volume-control-page .dd-project-scroll__solution-demo .dd-solution-video--wide {
        width: 100%;
        max-width: 100%;
    }

    .dd-project-scroll__solution-stage {
        position: sticky;
        top: var(--dd-sticky-top);
        display: flex;
        justify-content: flex-start;
    }

    .dd-project-scroll__solution-stage--wide .dd-project-media__surface {
        width: 100%;
        max-width: 100%;
        max-height: none;
        height: auto;
    }
}

@media (max-width: 900px) {
    .dd-project-scroll {
        margin-left: calc(-1 * var(--dd-mobile-gutter, max(1.5rem, 5vw)));
        margin-right: calc(-1 * var(--dd-mobile-gutter, max(1.5rem, 5vw)));
        padding-left: var(--dd-mobile-gutter, max(1.5rem, 5vw));
        padding-right: var(--dd-mobile-gutter, max(1.5rem, 5vw));
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel {
        display: grid;
        grid-template-columns: 1fr;
        overflow-x: visible;
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-scroll__content {
        display: contents;
        overflow-x: visible;
    }

    .dd-volume-control-page .dd-project-scroll__intro {
        order: 1;
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-scroll__stage {
        order: 2;
        display: flex;
        position: static;
        top: auto;
        width: 100%;
        margin-right: 0;
        margin-bottom: 2.5rem;
        overflow: visible;
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel.dd-project-scroll--has-carousel .dd-project-scroll__stage::before,
    .dd-volume-control-page .dd-project-scroll--stage-carousel.dd-project-scroll--has-carousel .dd-project-scroll__stage::after {
        display: none;
    }

    .dd-volume-control-page .dd-project-scroll__solution-layout {
        order: 3;
        display: flex;
        flex-direction: column;
        gap: clamp(2rem, 6vh, 3rem);
        width: 100%;
        min-width: 0;
    }

    .dd-project-scroll__lines {
        display: none;
    }

    .dd-project-scroll__stage {
        position: sticky;
        top: var(--dd-sticky-top);
        margin-bottom: 2.5rem;
    }

    .dd-project-media__surface,
    .dd-project-media__frame img,
    .dd-project-media__frame video,
    .dd-project-media__video {
        max-width: min(680px, 100%);
    }

    .dd-volume-control-page {
        --dd-volume-carousel-slide-width: 100%;
        --dd-volume-carousel-copy-width: 100%;
        --dd-volume-carousel-copy-padding-left: 0.95rem;
        --dd-volume-stage-bleed-right: 0px;
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-scroll__carousel {
        display: flex;
        width: 100%;
        margin-inline: 0;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        gap: 0;
        padding: 0;
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-scroll__carousel-slide {
        flex: 0 0 100%;
        min-width: 0;
        scroll-snap-align: center;
        scroll-snap-stop: always;
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-media__surface {
        width: 100%;
        max-width: 100%;
        height: auto;
        max-height: none;
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-media__grid-copy {
        width: 100%;
        max-width: 100%;
        padding-left: var(--dd-volume-carousel-copy-padding-left);
    }

    .dd-volume-control-page .dd-project-scroll__solution-block {
        width: 100%;
        min-width: 0;
    }

    .dd-volume-control-page .dd-project-scroll__solution-block__row {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        max-width: 100%;
        margin-right: 0;
        gap: var(--dd-layout-gap);
    }

    .dd-volume-control-page .dd-project-scroll__solution-block__row .dd-solution-card {
        width: 100%;
        max-width: 100%;
        margin-inline: 0;
    }

    .dd-volume-control-page .dd-project-scroll__solution-block__video {
        width: 100%;
        max-width: min(420px, 100%);
        min-height: 0;
        align-self: center;
    }

    .dd-volume-control-page .dd-project-scroll__solution-demo {
        width: 100%;
        max-width: 100%;
        margin-right: 0;
    }

    .dd-volume-control-page .dd-solution-video-figure,
    .dd-volume-control-page .dd-project-scroll__solution-demo .dd-solution-video--wide {
        width: 100%;
        max-width: 100%;
    }

    .dd-volume-control-page .dd-page .dd-project-scroll__content .dd-callout-section:not(.dd-solution-card),
    .dd-volume-control-page .dd-callout-section {
        padding-right: 0;
        max-width: 100%;
    }

    .dd-solution-video--portrait,
    .dd-solution-video--wide {
        width: 100%;
        max-width: 100%;
    }

    .dd-project-scroll__wheel-band {
        padding-top: clamp(6rem, 18vh, 10rem);
    }

    .dd-project-scroll__wheel-band__inner {
        padding-inline: var(--dd-mobile-gutter, max(1.5rem, 5vw));
    }

    .dd-project-scroll__wheel-band .dd-project-scroll__solution-row {
        display: flex;
        flex-direction: column;
        gap: var(--dd-layout-gap);
    }

    .dd-project-scroll__wheel-band .dd-callout-section {
        max-width: 100%;
    }

    .dd-project-scroll__wheel-band .dd-project-scroll__solution-stage--wide {
        width: 100%;
        min-width: 0;
    }

    .dd-project-scroll__solution-block__row .dd-solution-card {
        max-width: 100%;
        width: 100%;
    }

    .dd-project-scroll__solution-stage--wide .dd-project-media__surface {
        width: 100%;
        max-width: 100%;
    }

    .dd-project-media__anchor {
        display: none;
    }
}

@media (max-height: 720px) {
    .dd-project-scroll__carousel-slide {
        height: var(--dd-carousel-slide-max-height);
        padding: var(--dd-carousel-padding-block) 0;
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-scroll__carousel-slide {
        height: auto;
        padding: 0;
    }

    .dd-project-scroll__carousel-slide__inner {
        position: relative;
        width: fit-content;
        max-width: 100%;
        height: 100%;
    }

    .dd-volume-control-page .dd-project-scroll--stage-carousel .dd-project-scroll__carousel-slide__inner.dd-project-media__grid-card {
        position: static;
        width: 100%;
        max-width: 100%;
        height: auto;
    }

    .dd-project-scroll__carousel-slide__media {
        position: absolute;
        inset: 0;
        flex: none;
        max-height: none;
        min-height: var(--dd-carousel-image-min-height);
    }

    .dd-project-scroll__carousel-slide__media img {
        height: 100%;
        width: auto;
        min-height: var(--dd-carousel-image-min-height);
        max-height: none;
    }

    .dd-project-scroll__carousel-slide .dd-callout-section__body {
        position: absolute;
        left: 0;
        right: auto;
        bottom: 0;
        width: var(--dd-carousel-caption-width);
        max-width: 100%;
        box-sizing: border-box;
        margin: 0;
        padding: 2.75rem var(--dd-carousel-caption-padding-right) var(--dd-carousel-padding-block) var(--dd-carousel-caption-padding-left);
        background: linear-gradient(
            to top,
            var(--darkblue) 0%,
            var(--darkblue) 42%,
            color-mix(in srgb, var(--dd-neutral-975) 92%, transparent) 68%,
            transparent 100%
        );
    }
}

@media (prefers-reduced-motion: reduce) {
    .dd-callout-section__note,
    .dd-project-media__anchor,
    .dd-project-scroll__lines path,
    .dd-project-media__stack,
    .dd-project-media__stack .dd-project-media__surface {
        transition: none;
    }
}
