@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Extralight.otf") format("opentype");
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Light.otf") format("opentype");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Regular.otf") format("opentype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Medium.otf") format("opentype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Semibold.otf") format("opentype");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Bold.otf") format("opentype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Extrabold.otf") format("opentype");
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Black.otf") format("opentype");
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Swarsh Daisy";
    src: url("../fonts/Swarsh Daisy-Regular.otf") format("opentype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Swarsh Daisy";
    src: url("../fonts/Swarsh Daisy-Italic.otf") format("opentype");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

:root {
    --dp-color-base: #000000;
    --dp-color-surface: #f8f8f8;
    --dp-color-brand: #d8f800;
    --dp-color-accent: #303890;
    --dp-color-accent-pink: #e00088;
    --dp-color-muted: #b5b5b5;
    --dp-color-border: rgba(248, 248, 248, 0.16);
    --dp-color-border-strong: rgba(248, 248, 248, 0.3);
    --dp-color-success: #3ddc97;
    --dp-color-error: #ff5a5f;
    --dp-font-primary: "Helvena", Helvetica, Arial, sans-serif;
    --dp-font-accent: "Swarsh Daisy", "Times New Roman", serif;
    --dp-content-width: min(100% - 2rem, 72rem);
    --dp-layout-wide: 90rem;
    --dp-site-gutter: clamp(1.25rem, 4vw, 3rem);
    --dp-wide-width: min(100%, var(--dp-layout-wide));
    --dp-header-height: 5.5rem;
    --dp-header-height-fallback: 5.5rem;
    --dp-dropdown-gap: 0.55rem;
    --dp-dropdown-bridge: calc(var(--dp-dropdown-gap) + 0.4rem);
    /* Section rhythm — shared across homepage blocks. */
    --dp-section-space-y: clamp(2.75rem, 6.5vw, 5rem);
    --dp-section-space-y-lg: clamp(3.25rem, 8vw, 6rem);
    --dp-section-space-y-sm: clamp(1.75rem, 4.5vw, 2.75rem);
    --dp-section-inner-space-y: clamp(1.25rem, 2.5vw, 2rem);
    --dp-section-inner-space-y-sm: clamp(0.75rem, 2vw, 1.25rem);
    --dp-section-title-gap: clamp(1.75rem, 4vw, 2.75rem);
    --dp-section-title-gap-lg: clamp(2.25rem, 5.5vw, 3.75rem);
    /* Single rhythm between back-to-back sections with the same background. */
    --dp-section-adjacent-gap: clamp(1.5rem, 4vw, 2.5rem);
    --dp-radius-button: 999px;
    --dp-radius-pill: 999px;
    --dp-radius-card: 1.75rem;
    --dp-button-font-size: 1rem;
    --dp-button-line-height: 2.75rem;
    --dp-button-font-weight: 500;
    --dp-button-padding-x: 1.25rem;
    --dp-radius-input: 1rem;
    --dp-shadow-soft: 0 18px 45px rgba(0, 0, 0, 0.16);
    --dp-transition: 180ms ease;
    --dp-button-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --dp-button-sweep-duration: 0.45s;
    --dp-button-hover-border: var(--dp-color-brand);
    --dp-button-hover-color: var(--dp-color-brand);
    /* Swarsh Daisy renders smaller than Helvena at 1em — scale + align optically. */
    --dp-accent-font-size: 1.14em;
    --dp-accent-vertical-align: 0.015em;
    --dp-accent-side-padding: 0.03em;
    --dp-accent-letter-spacing: 0.015em;
    --dp-accent-line-height: 0.92;
}

@media (max-width: 767px) {
    :root {
        --dp-section-space-y: clamp(2rem, 7vw, 2.75rem);
        --dp-section-space-y-lg: clamp(2.25rem, 8vw, 3.5rem);
        --dp-section-space-y-sm: clamp(1.25rem, 4.5vw, 1.75rem);
        --dp-section-inner-space-y: clamp(1rem, 3vw, 1.25rem);
        --dp-section-inner-space-y-sm: clamp(0.65rem, 2.5vw, 0.85rem);
        --dp-section-title-gap: clamp(1.25rem, 4.5vw, 1.75rem);
        --dp-section-title-gap-lg: clamp(1.5rem, 5.5vw, 2.25rem);
        --dp-section-adjacent-gap: clamp(1.25rem, 5vw, 1.75rem);
    }
}

html {
    scroll-behavior: smooth;
    overflow-x: clip;
}

body {
    margin: 0;
    overflow-x: clip;
    background: var(--dp-color-base);
    color: var(--dp-color-surface);
    font-family: var(--dp-font-primary);
    font-size: 1rem;
    line-height: 1.5;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

img,
svg {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: var(--dp-color-brand);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.15em;
    transition:
        color var(--dp-transition),
        border-color var(--dp-transition),
        background-color var(--dp-transition),
        opacity var(--dp-transition);
}

a:hover,
a:focus-visible {
    color: var(--dp-color-surface);
}

/* Admin-only “Edit in Dashboard” links (category list, shortlist, judges, …). */
.dp-dashboard-edit-link {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 2.25rem;
    padding: 0.35rem 0.75rem;
    border: 1px solid color-mix(in srgb, var(--dp-color-surface) 28%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--dp-color-surface) 6%, transparent);
    color: var(--dp-color-surface);
    font-family: var(--dp-font-primary);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    transition:
        border-color var(--dp-transition),
        background-color var(--dp-transition),
        color var(--dp-transition);
}

.dp-dashboard-edit-link:hover,
.dp-dashboard-edit-link:focus-visible {
    border-color: var(--dp-color-brand);
    background: color-mix(in srgb, var(--dp-color-brand) 14%, transparent);
    color: var(--dp-color-brand);
    outline: none;
}

.dp-dashboard-edit-link:focus-visible {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--dp-color-brand) 35%, transparent);
}

a:focus-visible {
    outline: 2px solid var(--dp-color-brand);
    outline-offset: 3px;
}

p,
ul,
ol {
    margin-block: 0 1.5rem;
}

ul,
ol {
    padding-inline-start: 1.2rem;
}

li + li {
    margin-top: 0.5rem;
}

small,
.has-small-font-size,
.dp-small-text {
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    line-height: 1.4;
}

h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-heading {
    margin: 0 0 1.25rem;
    font-family: var(--dp-font-primary);
    font-weight: 700;
    line-height: 0.95;
    color: var(--dp-color-surface);
    text-wrap: balance;
}

h1 {
    font-size: clamp(3rem, 5vw, 5.5rem);
    letter-spacing: -0.04em;
}

h2 {
    font-size: clamp(2.25rem, 4vw, 4rem);
    letter-spacing: -0.03em;
}

h3 {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    letter-spacing: -0.02em;
}

h4 {
    font-size: 1.375rem;
}

h5,
h6 {
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.dp-accent-text,
.has-dp-accent-font {
    font-family: var(--dp-font-accent);
    font-weight: 400;
    font-style: normal;
}

/* Inline Swarsh Daisy in Helvena text (RichText italic, legacy accent spans). */
[class*='__heading'] em,
[class*='__heading'] i,
[class*='__title'] em,
[class*='__title'] i,
[class*='__heading-accent'],
.dp-hero__heading-accent,
.dp-award-categories__description em,
.dp-award-categories__description i {
    display: inline;
    font-family: var(--dp-font-accent);
    font-style: italic;
    font-weight: 400;
    font-size: var(--dp-accent-font-size);
    line-height: var(--dp-accent-line-height);
    letter-spacing: var(--dp-accent-letter-spacing);
    vertical-align: var(--dp-accent-vertical-align);
    padding-inline: var(--dp-accent-side-padding);
}

.dp-hero__heading em,
.dp-benefits__heading em,
.dp-award-categories__heading em,
.dp-carousel__heading em,
.dp-logo-grid__heading em {
    --dp-accent-font-size: 1.2em;
    --dp-accent-vertical-align: 0.01em;
    --dp-accent-letter-spacing: 0.02em;
    --dp-accent-line-height: 0.9;
}

[class*='__heading'] .has-dp-font-size-small,
.has-dp-font-size-small {
    font-size: 0.875rem;
}

[class*='__heading'] .has-dp-font-size-body,
.has-dp-font-size-body {
    font-size: 1rem;
}

[class*='__heading'] .has-dp-font-size-lead,
.has-dp-font-size-lead {
    font-size: 1.125rem;
}

[class*='__heading'] .has-dp-font-size-h6,
.has-dp-font-size-h6 {
    font-size: 1rem;
}

[class*='__heading'] .has-dp-font-size-h5,
.has-dp-font-size-h5 {
    font-size: 1.125rem;
}

[class*='__heading'] .has-dp-font-size-h4,
.has-dp-font-size-h4 {
    font-size: 1.375rem;
}

[class*='__heading'] .has-dp-font-size-h3,
.has-dp-font-size-h3 {
    font-size: 1.75rem;
}

[class*='__heading'] .has-dp-font-size-h2,
.has-dp-font-size-h2 {
    font-size: 2.5rem;
}

[class*='__heading'] .has-dp-font-size-h1,
.has-dp-font-size-h1 {
    font-size: clamp(3rem, 5vw, 5.5rem);
}

button,
input,
select,
textarea {
    font: inherit;
}

.dp-button,
.wp-block-button .wp-block-button__link {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: var(--dp-button-line-height);
    padding: 0 var(--dp-button-padding-x);
    border: 1px solid var(--dp-button-rest-border, transparent);
    border-radius: var(--dp-radius-button);
    background: var(--dp-button-rest-bg, transparent);
    color: var(--dp-button-rest-color, inherit);
    font-family: var(--dp-font-primary);
    font-size: var(--dp-button-font-size);
    font-weight: var(--dp-button-font-weight);
    line-height: var(--dp-button-line-height);
    text-decoration: none;
    text-transform: none;
    letter-spacing: normal;
    cursor: pointer;
    position: relative;
    z-index: 0;
    overflow: visible;
    isolation: isolate;
    transition:
        background-color 0.15s ease,
        border-color 0.15s ease,
        color var(--dp-button-sweep-duration) var(--dp-button-ease),
        transform 120ms var(--dp-button-ease);
}

.dp-button::after,
.wp-block-button .wp-block-button__link::after {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    border: 1px solid var(--dp-button-hover-border, var(--dp-color-brand));
    clip-path: inset(0 100% 0 0 round var(--dp-radius-button));
    pointer-events: none;
    z-index: 1;
    transition: clip-path var(--dp-button-sweep-duration) var(--dp-button-ease);
}

.dp-button:not([aria-disabled="true"]):not(.is-disabled):hover,
.dp-button:not([aria-disabled="true"]):not(.is-disabled):focus-visible,
.wp-block-button .wp-block-button__link:hover,
.wp-block-button .wp-block-button__link:focus-visible {
    background: transparent;
    border-color: var(--dp-button-sweep-from, var(--dp-button-rest-border, transparent));
    color: var(--dp-button-hover-color, var(--dp-color-brand));
}

.dp-button:not([aria-disabled="true"]):not(.is-disabled):hover::after,
.dp-button:not([aria-disabled="true"]):not(.is-disabled):focus-visible::after,
.wp-block-button .wp-block-button__link:hover::after,
.wp-block-button .wp-block-button__link:focus-visible::after {
    clip-path: inset(0 0 0 0 round var(--dp-radius-button));
}

.dp-button:not([aria-disabled="true"]):not(.is-disabled):active,
.wp-block-button .wp-block-button__link:active {
    transform: scale(0.99);
}

.dp-button:focus-visible,
.wp-block-button .wp-block-button__link:focus-visible {
    outline: 2px solid var(--dp-color-brand);
    outline-offset: 3px;
}

.dp-button[aria-disabled="true"],
.dp-button.is-disabled {
    cursor: not-allowed;
}

.dp-button--primary,
.is-style-dp-primary .wp-block-button__link,
.is-style-dp-primary.wp-block-button .wp-block-button__link {
    --dp-button-rest-bg: var(--dp-color-brand);
    --dp-button-rest-border: var(--dp-color-brand);
    --dp-button-rest-color: var(--dp-color-base);
    --dp-button-sweep-from: color-mix(in srgb, var(--dp-color-brand) 35%, #ffffff 65%);
}

.dp-button--white,
.dp-button--secondary,
.is-style-dp-white .wp-block-button__link,
.is-style-dp-white.wp-block-button .wp-block-button__link,
.is-style-dp-secondary .wp-block-button__link,
.is-style-dp-secondary.wp-block-button .wp-block-button__link {
    --dp-button-rest-bg: #ffffff;
    --dp-button-rest-border: #ffffff;
    --dp-button-rest-color: var(--dp-color-base);
    --dp-button-sweep-from: #ffffff;
}

@media (max-width: 959px) {
    .dp-button--white,
    .dp-button--secondary,
    .is-style-dp-white .wp-block-button__link,
    .is-style-dp-white.wp-block-button .wp-block-button__link,
    .is-style-dp-secondary .wp-block-button__link,
    .is-style-dp-secondary.wp-block-button .wp-block-button__link {
        --dp-button-rest-bg: transparent;
        --dp-button-rest-border: #ffffff;
        --dp-button-rest-color: #ffffff;
        --dp-button-sweep-from: #ffffff;
    }
}

.dp-button--accent,
.is-style-dp-accent .wp-block-button__link {
    --dp-button-rest-bg: var(--dp-color-accent);
    --dp-button-rest-border: var(--dp-color-accent);
    --dp-button-rest-color: var(--dp-color-surface);
    --dp-button-sweep-from: var(--dp-color-accent);
}

.dp-button--on-color {
    --dp-button-rest-bg: var(--dp-color-base);
    --dp-button-rest-border: var(--dp-color-base);
    --dp-button-rest-color: var(--dp-button-on-color-text, var(--dp-color-brand));
    --dp-button-sweep-from: color-mix(in srgb, var(--dp-color-base) 35%, transparent);
    --dp-button-hover-border: var(--dp-color-base);
    --dp-button-hover-color: var(--dp-color-base);
    text-decoration: none;
}

.dp-button--outline {
    --dp-button-rest-bg: transparent;
}

a.dp-button,
a.dp-button:hover,
a.dp-button:focus-visible {
    text-decoration: none;
}

a.dp-button:hover,
a.dp-button:focus-visible {
    color: var(--dp-button-hover-color, var(--dp-color-brand));
}

@media (prefers-reduced-motion: reduce) {
    .dp-button::after,
    .wp-block-button .wp-block-button__link::after {
        display: none;
    }

    .dp-button,
    .wp-block-button .wp-block-button__link {
        transition:
            color var(--dp-transition),
            background-color var(--dp-transition),
            border-color var(--dp-transition);
    }

    .dp-button:not([aria-disabled="true"]):not(.is-disabled):hover,
    .dp-button:not([aria-disabled="true"]):not(.is-disabled):focus-visible,
    .wp-block-button .wp-block-button__link:hover,
    .wp-block-button .wp-block-button__link:focus-visible {
        background: transparent;
        border-color: var(--dp-button-hover-border, var(--dp-color-brand));
        color: var(--dp-button-hover-color, var(--dp-color-brand));
    }

    .dp-button:not([aria-disabled="true"]):not(.is-disabled):hover::after,
    .dp-button:not([aria-disabled="true"]):not(.is-disabled):focus-visible::after,
    .wp-block-button .wp-block-button__link:hover::after,
    .wp-block-button .wp-block-button__link:focus-visible::after {
        clip-path: inset(0 0 0 0 round var(--dp-radius-button));
        transition: none;
    }

    .dp-button:not([aria-disabled="true"]):not(.is-disabled):active,
    .wp-block-button .wp-block-button__link:active {
        transform: none;
    }
}

label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.95rem;
    font-weight: 700;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not(
        [type="button"]
    ):not([type="reset"]),
select,
textarea {
    width: 100%;
    padding: 0.95rem 1rem;
    border: 1px solid var(--dp-color-border-strong);
    border-radius: var(--dp-radius-input);
    background: rgba(248, 248, 248, 0.04);
    color: var(--dp-color-surface);
    transition:
        border-color var(--dp-transition),
        background-color var(--dp-transition),
        box-shadow var(--dp-transition);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not(
        [type="button"]
    ):not([type="reset"]):hover,
select:hover,
textarea:hover {
    border-color: rgba(216, 248, 0, 0.55);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not(
        [type="button"]
    ):not([type="reset"]):focus,
select:focus,
textarea:focus {
    border-color: var(--dp-color-brand);
    background: rgba(248, 248, 248, 0.08);
    box-shadow: 0 0 0 3px rgba(216, 248, 0, 0.18);
    outline: none;
}

input::placeholder,
textarea::placeholder {
    color: var(--dp-color-muted);
}

textarea {
    min-height: 9rem;
    resize: vertical;
}

input[type="checkbox"],
input[type="radio"] {
    width: 1.125rem;
    height: 1.125rem;
    accent-color: var(--dp-color-brand);
}

input[aria-invalid="true"],
textarea[aria-invalid="true"],
select[aria-invalid="true"],
.gfield_error input,
.gfield_error select,
.gfield_error textarea,
.wpcf7-not-valid {
    border-color: var(--dp-color-error) !important;
    box-shadow: 0 0 0 3px rgba(255, 90, 95, 0.16);
}

.is-valid,
input[data-valid="true"],
textarea[data-valid="true"],
select[data-valid="true"] {
    border-color: var(--dp-color-success);
}

.dp-site {
    min-height: 100vh;
}

.dp-container {
    width: var(--dp-wide-width);
    margin-inline: auto;
    padding-inline: var(--dp-site-gutter);
    box-sizing: border-box;
}

.dp-site-main {
    min-height: 50vh;
}

.dp-site-main > .wp-block-dp-hero,
.dp-site-main > .dp-hero,
.dp-site-main > .wp-block-dp-key-dates,
.dp-site-main > .dp-key-dates,
.dp-site-main > .wp-block-dp-benefits,
.dp-site-main > .dp-benefits,
.dp-site-main > .wp-block-dp-award-categories,
.dp-site-main > .dp-award-categories,
.dp-site-main > .wp-block-dp-carousel,
.dp-site-main > .dp-carousel,
.dp-site-main > .wp-block-dp-logo-grid,
.dp-site-main > .dp-logo-grid,
.dp-site-main > .wp-block-dp-site-footer,
.dp-site-main > .dp-site-footer {
    margin-block: 0;
}

@media (prefers-reduced-motion: no-preference) {
    body.is-scroll-reveal-ready [data-dp-reveal-item]:not(.is-revealed),
    body.is-scroll-reveal-ready [data-dp-reveal-intro]:not(.is-revealed) > * {
        opacity: 0;
        transform: translate3d(0, 1.25rem, 0);
    }

    body.is-scroll-reveal-ready
        [data-dp-reveal-intro]:not(.is-revealed)
        .dp-category-list__heading,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro]:not(.is-revealed)
        .dp-category-list__description,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro]:not(.is-revealed)
        .dp-category-list__group-title,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro]:not(.is-revealed)
        .dp-category-list__group-description {
        opacity: 0;
        transform: translate3d(0, 1.25rem, 0);
    }

    body.is-scroll-reveal-ready [data-dp-reveal-item],
    body.is-scroll-reveal-ready [data-dp-reveal-intro] > *,
    body.is-scroll-reveal-ready [data-dp-reveal-intro] .dp-category-list__heading,
    body.is-scroll-reveal-ready [data-dp-reveal-intro] .dp-category-list__description,
    body.is-scroll-reveal-ready [data-dp-reveal-intro] .dp-category-list__group-title,
    body.is-scroll-reveal-ready [data-dp-reveal-intro] .dp-category-list__group-description {
        transition:
            opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
            transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    }

    body.is-scroll-reveal-ready [data-dp-reveal-item].is-revealed,
    body.is-scroll-reveal-ready [data-dp-reveal-intro].is-revealed > *,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__heading,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__description,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__group-title,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__group-description {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }

    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        > .dp-content-split__content,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__description,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__group-description {
        transition-delay: 0.12s;
    }

    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__group-title {
        transition-delay: 0.04s;
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-dp-reveal-item],
    [data-dp-reveal-intro],
    [data-dp-reveal-intro] > * {
        opacity: 1;
        transform: none;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .home .dp-reveal:not(.is-revealed) {
        opacity: 0;
        transform: translate3d(0, 1.25rem, 0);
    }

    .home .dp-reveal {
        transition:
            opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
            transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    }

    .home .dp-reveal.is-revealed {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }

    .home .dp-reveal.dp-reveal--same-bg {
        opacity: 1;
        transform: none;
    }

    .home .dp-benefits.dp-reveal--same-bg,
    .home .dp-award-categories.dp-reveal--same-bg,
    .home .dp-carousel.dp-reveal--same-bg,
    .home .dp-logo-grid.dp-reveal--same-bg,
    .home .dp-key-dates.dp-reveal--same-bg {
        padding-block-start: 0;
    }

    .home :is(
            .dp-benefits,
            .dp-award-categories,
            .dp-carousel,
            .dp-logo-grid,
            .dp-key-dates,
            .wp-block-dp-benefits,
            .wp-block-dp-award-categories,
            .wp-block-dp-carousel,
            .wp-block-dp-logo-grid,
            .wp-block-dp-key-dates
        ):has(
            + :is(
                    .dp-benefits,
                    .dp-award-categories,
                    .dp-carousel,
                    .dp-logo-grid,
                    .dp-key-dates,
                    .wp-block-dp-benefits,
                    .wp-block-dp-award-categories,
                    .wp-block-dp-carousel,
                    .wp-block-dp-logo-grid,
                    .wp-block-dp-key-dates
                ).dp-reveal--same-bg
        ) {
        padding-block-end: var(--dp-section-adjacent-gap);
    }

    .home .dp-reveal.dp-reveal--same-bg:not(.dp-reveal--stagger):not(.is-revealed) [class*="__inner"] > * {
        opacity: 0;
        transform: translate3d(0, 1.25rem, 0);
    }

    .home .dp-reveal.dp-reveal--same-bg:not(.dp-reveal--stagger) [class*="__inner"] > * {
        transition:
            opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
            transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    }

    .home .dp-reveal.dp-reveal--same-bg:not(.dp-reveal--stagger).is-revealed [class*="__inner"] > * {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }

    .home .dp-reveal.dp-reveal--same-bg.is-revealed [class*="__heading"] {
        transition-delay: 0.06s;
    }
}

.dp-entry-shell {
    width: var(--dp-content-width);
    margin-inline: auto;
    padding: 4rem 0 5rem;
}

.dp-post-card + .dp-post-card {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--dp-color-border);
}

.alignwide {
    width: min(100% - 2rem, 90rem);
    margin-left: auto;
    margin-right: auto;
}

.alignfull {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

@property --dp-countdown-banner-height {
    syntax: "<length>";
    inherits: true;
    initial-value: 0px;
}

.dp-countdown-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1002;
    background: var(--dp-color-brand, #d8f800);
    color: var(--dp-color-base, #000);
    border-bottom: 1px solid rgb(0 0 0 / 0.12);
    overflow: hidden;
    box-sizing: border-box;
}

.dp-countdown-banner.is-collapsing {
    height: var(--dp-countdown-banner-height, 0px);
    min-height: 0;
    border-bottom-color: transparent;
    pointer-events: none;
}

.dp-countdown-banner[hidden] {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    border-bottom-width: 0;
}

html.is-countdown-hidden {
    --dp-countdown-banner-height: 0px;
}

html:has(body.has-countdown-banner):not(.is-countdown-hidden) {
    --dp-countdown-banner-height: 2.625rem;
}

.has-countdown-banner .dp-site-header {
    top: calc(var(--dp-countdown-banner-height, 0px) - 1px);
}

html.is-countdown-hidden .has-countdown-banner .dp-site-header {
    top: 0;
}

/* Logged-in wp-admin bar sits above fixed countdown/header. */
body.admin-bar {
    --dp-admin-bar-height: var(--wp-admin--admin-bar--height, 32px);
}

body.admin-bar .dp-countdown-banner {
    top: var(--dp-admin-bar-height);
}

body.admin-bar.has-countdown-banner .dp-site-header {
    top: calc(var(--dp-admin-bar-height) + var(--dp-countdown-banner-height, 0px) - 1px);
}

html.is-countdown-hidden body.admin-bar.has-countdown-banner .dp-site-header {
    top: calc(var(--dp-admin-bar-height) - 1px);
}

body.admin-bar:not(.has-countdown-banner) .dp-site-header {
    top: var(--dp-admin-bar-height);
}

@media (prefers-reduced-motion: reduce) {
    .dp-countdown-banner.is-collapsing {
        transition: none;
    }
}

.dp-countdown-banner__inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(0.65rem, 2vw, 1.25rem);
    min-height: 1.75rem;
    padding-block: 0.3rem;
    text-align: center;
}

.dp-countdown-banner__text {
    margin: 0;
    flex: 0 1 auto;
    min-width: 0;
    font-family: var(--dp-font-primary);
    font-size: clamp(0.62rem, 1.2vw, 0.72rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.dp-countdown-banner__timer {
    display: flex;
    align-items: stretch;
    flex-shrink: 0;
    gap: 0;
    padding: 0.22rem 0.38rem;
    border-radius: 999px;
    background: rgb(0 0 0 / 0.06);
}

.dp-countdown-banner__unit {
    display: grid;
    gap: 0.05rem;
    min-width: 2.25rem;
    padding-inline: 0.45rem;
    border-inline-start: 1px solid rgb(0 0 0 / 0.18);
    line-height: 1;
    text-align: center;
}

.dp-countdown-banner__unit:first-child {
    border-inline-start: 0;
    padding-inline-start: 0;
}

.dp-countdown-banner__value {
    font-family: var(--dp-font-primary);
    font-size: clamp(0.82rem, 1.5vw, 0.95rem);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.dp-countdown-banner__label {
    font-family: var(--dp-font-primary);
    font-size: 0.55rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.72;
}

@media (max-width: 640px) {
    .dp-countdown-banner__inner {
        flex-direction: row;
        align-items: center;
        justify-content: center;
        text-align: center;
        gap: 0.65rem;
    }

    .dp-countdown-banner__text {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 0.58rem;
        letter-spacing: 0.04em;
    }

    .dp-countdown-banner__timer {
        justify-content: center;
        padding: 0.16rem 0.3rem;
    }

    .dp-countdown-banner__unit {
        min-width: 1.85rem;
        padding-inline: 0.28rem;
    }

    .dp-countdown-banner__value {
        font-size: 0.78rem;
    }

    .dp-countdown-banner__label {
        font-size: 0.5rem;
    }

    .dp-countdown-banner__unit:first-child {
        padding-inline-start: 0.2rem;
        border-inline-start: 0;
    }
}

@media (max-width: 420px) {
    .dp-countdown-banner__unit:last-child {
        display: none;
    }
}

.dp-site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    isolation: isolate;
    overflow: visible;
    background: transparent;
    box-shadow: none;
    --dp-header-fade-height: 6rem;
    --dp-header-overlay-height: calc(100% + var(--dp-header-fade-height));
    --dp-header-solid-strength: 0;
    --dp-header-fade-mask: linear-gradient(
        to bottom,
        #000 0,
        #000 calc(100% - var(--dp-header-fade-height)),
        rgb(0 0 0 / 0.85) calc(100% - var(--dp-header-fade-height) + 1rem),
        rgb(0 0 0 / 0.5) calc(100% - var(--dp-header-fade-height) + 2.5rem),
        rgb(0 0 0 / 0.15) calc(100% - var(--dp-header-fade-height) + 4.25rem),
        transparent 100%
    );
}

.dp-site-header::before,
.dp-site-header::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: var(--dp-header-overlay-height);
    z-index: 0;
    pointer-events: none;
    -webkit-mask-image: var(--dp-header-fade-mask);
    mask-image: var(--dp-header-fade-mask);
}

.dp-site-header::before {
    opacity: 0;
    background: rgba(0, 0, 0, 0.52);
    backdrop-filter: blur(14px) saturate(120%);
    -webkit-backdrop-filter: blur(14px) saturate(120%);
    transition: opacity 0.45s ease;
}

.dp-site-header::after {
    opacity: var(--dp-header-solid-strength);
    background: var(--dp-color-base, #000);
}

.dp-site-header.is-scrolled::before {
    opacity: 1;
}

.dp-site-header__inner {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: var(--dp-header-height);
    padding-block: 1rem;
}

.dp-site-header__branding {
    display: flex;
    align-items: center;
    gap: clamp(0.5rem, 1.5vw, 1rem);
    min-width: 0;
    --dp-header-award-logo-height: clamp(2.5rem, 5vw, 4rem);
    --dp-header-sponsor-logo-height: clamp(1.75rem, 3.5vw, 2.65rem);
    --dp-header-sponsor-logo-gap: clamp(0.45rem, 1.2vw, 0.75rem);
}

.dp-site-header__award-logo {
    max-height: var(--dp-header-award-logo-height);
    width: auto;
}

.dp-site-header__supporting-logos {
    display: flex;
    align-items: center;
    gap: var(--dp-header-sponsor-logo-gap);
    flex-wrap: wrap;
    min-width: 0;
}

.dp-site-header__supporting-logos[data-logo-count="2"] {
    --dp-header-sponsor-logo-height: clamp(1.65rem, 3.2vw, 2.45rem);
}

.dp-site-header__supporting-logos[data-logo-count="3"] {
    --dp-header-sponsor-logo-height: clamp(1.45rem, 2.8vw, 2.15rem);
    --dp-header-sponsor-logo-gap: clamp(0.35rem, 1vw, 0.6rem);
}

.dp-site-header__supporting-logos[data-logo-count="4"] {
    --dp-header-sponsor-logo-height: clamp(1.25rem, 2.4vw, 1.85rem);
    --dp-header-sponsor-logo-gap: clamp(0.3rem, 0.9vw, 0.5rem);
}

.dp-site-header__branding:has(.dp-site-header__supporting-logos[data-logo-count="3"]) {
    --dp-header-award-logo-height: clamp(2.35rem, 4.6vw, 3.5rem);
}

.dp-site-header__branding:has(.dp-site-header__supporting-logos[data-logo-count="4"]) {
    --dp-header-award-logo-height: clamp(2.1rem, 4vw, 3rem);
}

.dp-site-header__supporting-logo-link {
    flex-shrink: 0;
}

.dp-site-header__supporting-logo {
    max-height: var(--dp-header-sponsor-logo-height);
    width: auto;
    max-width: min(7.5rem, 18vw);
    object-fit: contain;
    opacity: 0.9;
}

.dp-site-header__supporting-logo--dp-event {
    max-height: calc(var(--dp-header-sponsor-logo-height) * 1.2);
    max-width: min(8.5rem, 20vw);
}

.dp-site-header__award-link {
    text-decoration: none;
}

.dp-site-header__ctas {
    display: flex;
    align-items: center;
    gap: clamp(0.4rem, 1vw, 0.55rem);
    flex-shrink: 1;
    min-width: 0;
}

.dp-site-header__cta {
    --dp-button-font-size: clamp(0.78rem, 1.5vw, 0.875rem);
    min-height: clamp(2.15rem, 4.5vw, 2.45rem);
    padding-inline: clamp(0.75rem, 1.8vw, 1.05rem);
    white-space: nowrap;
}

.dp-site-header__ctas--mobile {
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    width: 100%;
    margin-block: 1.5rem 0;
    padding-top: 1.5rem;
    border-top: 1px solid var(--dp-color-border);
}

.dp-site-header__ctas--mobile .dp-site-header__cta {
    width: 100%;
    flex: 0 0 auto;
    justify-content: center;
    min-height: 3rem;
    padding-inline: 1.25rem;
    font-size: 0.9375rem;
    white-space: nowrap;
}

.dp-site-header__utilities {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-left: auto;
    flex-shrink: 0;
}

.dp-site-header__account {
    position: relative;
}

.dp-profile-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    max-width: min(100%, 16rem);
    min-height: 2.85rem;
    padding: 0.3rem 0.85rem 0.3rem 0.3rem;
    border: 1px solid var(--dp-color-border-strong);
    border-radius: var(--dp-radius-pill);
    background: rgb(0 0 0 / 0.38);
    backdrop-filter: blur(10px) saturate(120%);
    -webkit-backdrop-filter: blur(10px) saturate(120%);
    color: var(--dp-color-surface);
    font: inherit;
    line-height: 1.2;
    text-align: left;
    cursor: pointer;
    transition:
        border-color 0.2s ease,
        background-color 0.2s ease,
        box-shadow 0.2s ease;
}

.dp-profile-pill:hover,
.dp-profile-pill:focus-visible,
.dp-site-header__account.is-open .dp-profile-pill {
    border-color: var(--dp-color-brand);
    background: rgb(0 0 0 / 0.58);
    outline: none;
    box-shadow: 0 0 0 1px rgb(216 248 0 / 0.18);
}

.dp-profile-pill--guest {
    padding-inline: 0.95rem 0.85rem;
}

.dp-profile-pill__icon,
.dp-profile-pill__avatar,
.dp-profile-menu__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 999px;
}

.dp-profile-pill__icon {
    width: 2.15rem;
    height: 2.15rem;
    background: rgb(248 248 248 / 0.08);
}

.dp-profile-pill__icon svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: currentColor;
}

.dp-profile-pill__avatar,
.dp-profile-menu__avatar {
    width: 2.15rem;
    height: 2.15rem;
    background: var(--dp-color-accent, #303890);
}

.dp-profile-pill__avatar img,
.dp-profile-menu__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dp-profile-pill__initials,
.dp-profile-menu__initials {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.dp-profile-pill__copy {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.dp-profile-pill__name,
.dp-profile-menu__name {
    font-size: 0.88rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dp-profile-pill__meta,
.dp-profile-pill__role,
.dp-profile-menu__email,
.dp-profile-menu__link-description {
    font-size: 0.72rem;
    color: var(--dp-color-muted);
}

.dp-profile-pill__role,
.dp-profile-menu__badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 0.12rem 0.5rem;
    border-radius: var(--dp-radius-pill);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.dp-profile-pill__role--administrator,
.dp-profile-menu__badge.dp-profile-pill__role--administrator,
.dp-profile-pill__role--eventmanager,
.dp-profile-menu__badge.dp-profile-pill__role--eventmanager {
    color: var(--dp-color-base);
    background: var(--dp-color-brand);
}

.dp-profile-pill__role--judge,
.dp-profile-menu__badge.dp-profile-pill__role--judge,
.dp-profile-pill__role--head-judge,
.dp-profile-menu__badge.dp-profile-pill__role--head-judge {
    color: var(--dp-color-surface);
    background: var(--dp-color-accent, #303890);
}

.dp-profile-pill__role--entrant,
.dp-profile-menu__badge.dp-profile-pill__role--entrant,
.dp-profile-pill__role--user,
.dp-profile-menu__badge.dp-profile-pill__role--user {
    color: var(--dp-color-surface);
    background: rgb(248 248 248 / 0.14);
}

.dp-profile-pill__chevron {
    width: 0.45rem;
    height: 0.45rem;
    margin-inline-start: 0.1rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

.dp-site-header__account.is-open .dp-profile-pill__chevron {
    transform: scaleY(-1) rotate(45deg);
}

.dp-profile-backdrop {
    position: fixed;
    inset: 0;
    z-index: 24;
    border: 0;
    background: rgb(0 0 0 / 0.12);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity 0.32s cubic-bezier(0.22, 1, 0.36, 1),
        visibility 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.dp-site-header__account.is-open .dp-profile-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.dp-profile-menu {
    --dp-profile-menu-radius: 1.35rem;

    position: absolute;
    top: calc(100% + var(--dp-dropdown-gap, 0.55rem));
    right: 0;
    left: auto;
    z-index: 30;
    width: min(20rem, calc(100vw - 2rem));
    overflow: hidden;
    border: 1px solid rgb(248 248 248 / 0.14);
    border-radius: var(--dp-profile-menu-radius);
    background: rgb(6 6 6 / 0.98);
    box-shadow:
        0 24px 48px rgb(0 0 0 / 0.45),
        0 0 0 1px rgb(255 255 255 / 0.04) inset;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: scale(0.94) translate3d(0, -0.45rem, 0);
    transform-origin: calc(100% - 1.35rem) 0;
    transition:
        opacity 0.28s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.34s cubic-bezier(0.34, 1.25, 0.64, 1),
        visibility 0.34s cubic-bezier(0.22, 1, 0.36, 1);
}

.dp-site-header__account.is-open .dp-profile-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: scale(1) translate3d(0, 0, 0);
}

.dp-site-header__account.is-closing .dp-profile-menu,
.dp-site-header__account.is-closing .dp-profile-backdrop {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.dp-site-header__account.is-closing .dp-profile-menu {
    transform: scale(0.96) translate3d(0, -0.3rem, 0);
    transition-duration: 0.22s;
}

.dp-site-header__account.is-closing .dp-profile-backdrop {
    transition-duration: 0.22s;
}

.dp-profile-menu__header,
.dp-profile-menu__nav,
.dp-profile-menu__profile,
.dp-profile-menu__footer {
    opacity: 0;
    transform: translate3d(0, 0.45rem, 0);
    transition:
        opacity 0.26s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.26s cubic-bezier(0.22, 1, 0.36, 1);
}

.dp-site-header__account.is-open .dp-profile-menu__header {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.05s;
}

.dp-site-header__account.is-open .dp-profile-menu__nav {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.1s;
}

.dp-site-header__account.is-open .dp-profile-menu__profile {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.14s;
}

.dp-site-header__account.is-open .dp-profile-menu__footer {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.18s;
}

.dp-site-header__account.is-closing .dp-profile-menu__header,
.dp-site-header__account.is-closing .dp-profile-menu__nav,
.dp-site-header__account.is-closing .dp-profile-menu__profile,
.dp-site-header__account.is-closing .dp-profile-menu__footer {
    opacity: 0;
    transform: translate3d(0, 0.25rem, 0);
    transition-delay: 0s;
    transition-duration: 0.16s;
}

.dp-profile-menu__header {
    display: grid;
    gap: 0.75rem;
    padding: 1rem 1rem 0.875rem;
    border-bottom: 1px solid var(--dp-color-border);
}

.dp-profile-menu__identity {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.dp-profile-menu__avatar {
    width: 2.5rem;
    height: 2.5rem;
}

.dp-profile-menu__identity-copy {
    min-width: 0;
}

.dp-profile-menu__name {
    margin: 0;
}

.dp-profile-menu__email {
    margin: 0.15rem 0 0;
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--dp-color-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dp-profile-menu__badge {
    width: fit-content;
}

.dp-profile-menu__eyebrow {
    margin: 0 0 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--dp-color-brand);
}

.dp-profile-menu__title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.35;
}

.dp-profile-menu__nav {
    padding-block: 0.15rem;
}

.dp-profile-menu__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.dp-profile-menu__list li + li {
    margin-top: 0;
}

.dp-profile-menu__link {
    display: grid;
    gap: 0.2rem;
    padding: 0.85rem 1rem;
    border-top: 1px solid transparent;
    border-bottom: 1px solid var(--dp-color-border);
    color: var(--dp-color-surface);
    text-decoration: none;
    transition:
        background-color 0.2s ease,
        color 0.2s ease;
}

.dp-profile-menu__list li:first-child .dp-profile-menu__link {
    border-top-color: transparent;
}

.dp-profile-menu__list li:last-child .dp-profile-menu__link {
    border-bottom-color: transparent;
}

.dp-profile-menu__link:hover,
.dp-profile-menu__link:focus-visible {
    background: rgb(248 248 248 / 0.06);
    color: var(--dp-color-brand);
    outline: none;
}

.dp-profile-menu__link-label {
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.25;
}

.dp-profile-menu__link-description {
    line-height: 1.35;
}

.dp-profile-menu__profile {
    padding: 0.35rem 1rem 0.15rem;
    border-top: 1px solid var(--dp-color-border);
}

.dp-profile-menu__profile-link {
    display: flex;
    align-items: center;
    min-height: 2.75rem;
    color: var(--dp-color-surface);
    font-size: 0.92rem;
    font-weight: 700;
    text-decoration: none;
    transition: color 0.2s ease;
}

.dp-profile-menu__profile-link:hover,
.dp-profile-menu__profile-link:focus-visible {
    color: var(--dp-color-brand);
    outline: none;
}

.dp-profile-menu__footer {
    padding: 0.75rem 1rem 1rem;
}

.dp-profile-menu__logout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2.75rem;
    border: 1px solid rgb(248 248 248 / 0.28);
    border-radius: var(--dp-radius-pill);
    background: transparent;
    color: var(--dp-color-surface);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 700;
    transition:
        border-color 0.2s ease,
        background-color 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

.dp-profile-menu__logout:hover,
.dp-profile-menu__logout:focus-visible {
    border-color: var(--dp-color-brand);
    background: var(--dp-color-brand);
    color: var(--dp-color-base);
    outline: none;
    transform: translateY(-1px);
}

/* Mobile nav account section (shown inside header panel below 960px). */
.dp-site-header__profile-nav {
    display: none;
}

.dp-profile-nav__header {
    display: grid;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.dp-profile-nav__eyebrow {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--dp-color-brand);
}

.dp-profile-nav__title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--dp-color-surface);
}

.dp-profile-nav__identity {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
        "avatar copy"
        "badge badge";
    gap: 0.65rem 0.85rem;
    align-items: center;
    margin-bottom: 0.85rem;
}

.dp-profile-nav__avatar {
    grid-area: avatar;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    overflow: hidden;
    border-radius: 999px;
    background: var(--dp-color-accent, #303890);
}

.dp-profile-nav__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dp-profile-nav__initials {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--dp-color-surface);
}

.dp-profile-nav__identity-copy {
    grid-area: copy;
    min-width: 0;
}

.dp-profile-nav__name {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--dp-color-surface);
}

.dp-profile-nav__email {
    margin: 0.15rem 0 0;
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--dp-color-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dp-profile-nav__badge {
    grid-area: badge;
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 0.12rem 0.5rem;
    border-radius: var(--dp-radius-pill);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.dp-profile-nav__badge.dp-profile-pill__role--administrator,
.dp-profile-nav__badge.dp-profile-pill__role--eventmanager {
    color: var(--dp-color-base);
    background: var(--dp-color-brand);
}

.dp-profile-nav__badge.dp-profile-pill__role--judge,
.dp-profile-nav__badge.dp-profile-pill__role--head-judge {
    color: var(--dp-color-surface);
    background: var(--dp-color-accent, #303890);
}

.dp-profile-nav__badge.dp-profile-pill__role--entrant,
.dp-profile-nav__badge.dp-profile-pill__role--user {
    color: var(--dp-color-surface);
    background: rgb(248 248 248 / 0.14);
}

.dp-profile-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.dp-profile-nav__link {
    display: block;
    padding-block: 0.55rem;
    color: var(--dp-color-surface);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
    transition: color 0.2s ease;
}

.dp-profile-nav__link:hover,
.dp-profile-nav__link:focus-visible {
    color: var(--dp-color-brand);
    outline: none;
}

.dp-profile-nav__actions {
    display: grid;
    gap: 0.65rem;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--dp-color-border);
}

.dp-profile-nav__link--secondary {
    padding-block: 0.35rem;
}

.dp-profile-nav__logout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2.75rem;
    border: 1px solid rgb(248 248 248 / 0.28);
    border-radius: var(--dp-radius-pill);
    background: transparent;
    color: var(--dp-color-surface);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 700;
    transition:
        border-color 0.2s ease,
        background-color 0.2s ease,
        color 0.2s ease;
}

.dp-profile-nav__logout:hover,
.dp-profile-nav__logout:focus-visible {
    border-color: var(--dp-color-brand);
    background: var(--dp-color-brand);
    color: var(--dp-color-base);
    outline: none;
}

.dp-profile-nav--compact {
    width: 100%;
}

.dp-profile-nav__toggle {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem 0;
    border: 0;
    background: transparent;
    color: var(--dp-color-surface);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: color 0.2s ease;
}

.dp-profile-nav__toggle:hover,
.dp-profile-nav__toggle:focus-visible {
    color: var(--dp-color-brand);
    outline: none;
}

.dp-profile-nav__toggle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 999px;
    background: rgb(248 248 248 / 0.08);
}

.dp-profile-nav__toggle-icon svg {
    width: 1.15rem;
    height: 1.15rem;
    fill: currentColor;
}

.dp-profile-nav--compact .dp-profile-nav__avatar {
    width: 2.35rem;
    height: 2.35rem;
}

.dp-profile-nav__toggle-copy {
    display: grid;
    gap: 0.15rem;
    flex: 1 1 auto;
    min-width: 0;
}

.dp-profile-nav__toggle-label {
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.2;
    color: inherit;
}

.dp-profile-nav__toggle-meta {
    font-size: 0.78rem;
    line-height: 1.3;
    color: var(--dp-color-muted);
}

.dp-profile-nav__toggle-chevron {
    width: 0.5rem;
    height: 0.5rem;
    margin-inline-start: 0.15rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    /* Closed → down. */
    transform: rotate(45deg);
    transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
    flex-shrink: 0;
}

.dp-profile-nav.is-open .dp-profile-nav__toggle-chevron {
    /* Open → up (flip after rotate). */
    transform: scaleY(-1) rotate(45deg);
}

.dp-profile-nav__dropdown {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    pointer-events: none;
    transition:
        max-height 0.34s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.28s ease;
}

.dp-profile-nav.is-open .dp-profile-nav__dropdown {
    max-height: 24rem;
    opacity: 1;
    pointer-events: auto;
}

.dp-profile-nav--compact .dp-profile-nav__actions {
    margin-top: 0.35rem;
    padding-top: 0.65rem;
}

.dp-profile-nav--compact .dp-profile-nav__badge {
    grid-area: auto;
    width: fit-content;
}

@media (min-width: 960px) {
    .dp-site-header__profile-nav {
        display: none !important;
    }
}

.dp-site-header__toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 0.28rem;
    width: 3rem;
    height: 3rem;
    min-height: 3rem;
    padding: 0.65rem;
    background: transparent;
    border: 1px solid var(--dp-color-border-strong);
    border-radius: 999px;
    color: var(--dp-color-surface);
    box-shadow: none;
    font: inherit;
    line-height: 1;
    flex-shrink: 0;
}

.dp-site-header__toggle-line {
    width: 100%;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transition:
        transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.2s ease;
    transform-origin: center;
}

.dp-site-header__toggle[aria-expanded="true"] .dp-site-header__toggle-line:nth-child(2) {
    transform: translateY(0.42rem) rotate(45deg);
}

.dp-site-header__toggle[aria-expanded="true"] .dp-site-header__toggle-line:nth-child(3) {
    opacity: 0;
    transform: scaleX(0);
}

.dp-site-header__toggle[aria-expanded="true"] .dp-site-header__toggle-line:nth-child(4) {
    transform: translateY(-0.42rem) rotate(-45deg);
}

.dp-site-header.is-nav-open .dp-site-header__toggle {
    position: relative;
    z-index: 2;
    border-color: var(--dp-color-brand);
    background: rgb(0 0 0 / 0.88);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.dp-site-header__panel {
    display: flex;
    align-items: center;
    gap: 1rem;
}

@media (min-width: 960px) {
    .dp-site-header__menu > li.menu-item-has-children > .dp-site-header__menu-anchor > .dp-site-header__menu-row {
        display: inline-flex;
    }
}

.dp-site-header__submenu-toggle {
    display: none;
}

.dp-site-header__menu .sub-menu {
    display: none;
}

@media (min-width: 960px) {
    .dp-site-header__ctas--desktop {
        display: flex;
    }

    .dp-site-header__ctas--mobile {
        display: none;
    }

    .dp-site-header__panel-offset,
    .dp-site-header__panel-scroll > .dp-site-header__ctas--mobile,
    .dp-site-header__panel-scroll > .dp-site-header__profile-nav {
        display: none !important;
    }

    .dp-site-header__toggle {
        display: none !important;
    }

    .dp-site-header__inner {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: clamp(1rem, 2vw, 1.5rem);
    }

    .dp-site-header__branding {
        position: relative;
        z-index: 2;
        flex: 0 1 auto;
        min-width: 0;
    }

    .dp-site-header__panel {
        position: absolute;
        top: 50%;
        left: 50%;
        z-index: 1;
        width: max-content;
        max-width: min(100% - 2rem, 40rem);
        margin: 0;
        pointer-events: none;
        transform: translate(-50%, -50%);
        overflow: visible;
    }

    .dp-site-header.is-scrolled .dp-site-header__panel,
    .dp-site-header__panel:focus-within {
        pointer-events: auto;
    }

    .dp-site-header__utilities {
        position: relative;
        z-index: 2;
        flex: 0 0 auto;
        margin-left: auto;
        gap: clamp(0.75rem, 1.25vw, 1rem);
    }

    .dp-site-header__panel-reveal,
    .dp-site-header__panel-inner,
    .dp-site-header__panel-scroll {
        display: contents;
    }

    .dp-site-header__navigation {
        position: relative;
        overflow: visible;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition:
            opacity 0.45s ease,
            visibility 0.45s ease;
    }

    .dp-site-header.is-scrolled .dp-site-header__navigation,
    .dp-site-header__navigation:focus-within {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .dp-site-header__menu {
        justify-content: center;
        gap: clamp(1.15rem, 1.8vw, 1.85rem);
    }

    .dp-site-header__menu > li {
        font-size: 0.9375rem;
    }

    .dp-site-header__menu a {
        padding: 0.35rem 0.2rem;
        font-size: 0.9375rem;
        font-weight: 700;
        letter-spacing: 0.01em;
        white-space: nowrap;
    }

    .dp-site-header__ctas--desktop {
        gap: 0.65rem;
    }

    .dp-site-header__cta {
        min-height: 2.4rem;
        padding-inline: clamp(0.95rem, 1.6vw, 1.15rem);
    }

}

.dp-site-header__navigation {
    min-width: 0;
}

.dp-site-header__menu,
.dp-site-footer__menu {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 0.85rem 1.25rem;
    padding: 0;
    margin: 0;
    font-size: 0;
    line-height: 0;
}

.dp-site-header__menu > li,
.dp-site-footer__menu > li {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    font-size: 0.95rem;
    line-height: 1.2;
}

.dp-site-header__menu > li.menu-item-has-children {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
}

.dp-site-header__menu a,
.dp-site-footer__menu a {
    display: block;
    color: var(--dp-color-surface);
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.2;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.dp-site-header__menu a:hover,
.dp-site-header__menu a:focus-visible,
.dp-site-header__menu a.dp-site-header__menu-trigger:hover,
.dp-site-header__menu a.dp-site-header__menu-trigger:focus-visible,
.dp-site-footer__menu a:hover,
.dp-site-footer__menu a:focus-visible {
    color: var(--dp-color-brand);
}

@media (prefers-reduced-motion: reduce) {
    .dp-site-header::before,
    .dp-site-header::after,
    .dp-site-header__navigation,
    .dp-profile-pill,
    .dp-profile-menu,
    .dp-profile-backdrop,
    .dp-profile-menu__header,
    .dp-profile-menu__nav,
    .dp-profile-menu__profile,
    .dp-profile-menu__footer,
    .dp-profile-pill__chevron,
    .dp-site-header__toggle-line,
    .dp-site-header__panel-reveal,
    .dp-site-header__panel-inner,
    .dp-site-header__panel-scroll .dp-site-header__menu > li {
        transition: none;
        animation: none;
    }

    @media (min-width: 960px) {
        .dp-site-header__panel {
            pointer-events: auto;
        }

        .dp-site-header__navigation {
            opacity: 1;
            pointer-events: auto;
        }
    }

    .dp-profile-menu__header,
    .dp-profile-menu__nav,
    .dp-profile-menu__profile,
    .dp-profile-menu__footer {
        opacity: 1;
        transform: none;
    }

    .dp-site-header__panel.is-open .dp-site-header__panel-reveal {
        clip-path: none;
    }

    .dp-site-header__panel.is-open .dp-site-header__panel-inner {
        opacity: 1;
        transform: none;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li,
    .dp-site-header__panel.is-open .dp-site-header__profile-nav,
    .dp-site-header__panel.is-open .dp-site-header__ctas--mobile {
        opacity: 1;
        transform: none;
        animation: none;
    }
}

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

.screen-reader-text:focus {
    clip: auto !important;
    clip-path: none;
    height: auto;
    margin: 0;
    overflow: visible;
    position: fixed !important;
    top: 1rem;
    left: 1rem;
    width: auto;
    padding: 0.75rem 1rem;
    background: var(--dp-color-brand);
    color: var(--dp-color-base);
    border-radius: var(--dp-radius-pill);
    z-index: 10000;
}

@media (max-width: 959px) {
    body.dp-nav-open {
        overflow: hidden;
    }

    /* Cover countdown while the full-bleed menu is open. */
    body.dp-nav-open .dp-countdown-banner {
        visibility: hidden;
        pointer-events: none;
    }

    /*
     * Overflow lock on body breaks position:sticky — pin the header as a
     * full-viewport shell so logo + toggle stay above the menu overlay.
     */
    .dp-site-header.is-nav-open {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 100%;
        max-height: 100dvh;
        z-index: 1200;
        overflow: hidden;
    }

    .has-countdown-banner .dp-site-header.is-nav-open {
        top: 0;
    }

    body.admin-bar .dp-site-header.is-nav-open,
    body.admin-bar.has-countdown-banner .dp-site-header.is-nav-open {
        top: var(--dp-admin-bar-height, 32px);
        height: calc(100% - var(--dp-admin-bar-height, 32px));
        max-height: calc(100dvh - var(--dp-admin-bar-height, 32px));
    }

    .dp-site-header.is-nav-open::before,
    .dp-site-header.is-nav-open::after {
        display: none;
    }

    .dp-site-header.is-nav-open .dp-site-header__inner {
        position: relative;
        z-index: 2;
        height: 100%;
        max-height: 100%;
        align-items: flex-start;
        background: transparent;
    }

    .dp-site-header.is-nav-open .dp-site-header__panel,
    body.admin-bar .dp-site-header.is-nav-open .dp-site-header__panel {
        position: absolute;
        inset: 0;
        z-index: 1;
        top: 0;
    }

    .dp-site-header.is-nav-open .dp-site-header__panel-reveal {
        background: var(--dp-color-base, #000);
    }

    .dp-site-header.is-nav-open .dp-site-header__branding,
    .dp-site-header.is-nav-open .dp-site-header__utilities {
        position: relative;
        z-index: 3;
        min-height: calc(var(--dp-header-height, 5.5rem) - 1.5rem);
        display: flex;
        align-items: center;
    }

    .dp-site-header__inner {
        position: relative;
        z-index: 2;
        flex-wrap: nowrap;
        min-height: var(--dp-header-height, 5.5rem);
        padding-block: 0.75rem;
    }

    .dp-site-header__award-logo {
        max-height: clamp(2rem, 7.5vw, 2.65rem);
    }

    .dp-site-header__branding {
        flex: 1 1 auto;
        min-width: 0;
        position: relative;
        z-index: 1202;
    }

    .dp-site-header__supporting-logos {
        display: none;
    }

    .dp-site-header__ctas--desktop,
    .dp-site-header__utilities .dp-site-header__account {
        display: none;
    }

    .dp-site-header__ctas--mobile {
        display: flex;
    }

    .dp-site-header__utilities {
        position: relative;
        z-index: 1203;
        margin-left: auto;
        flex-shrink: 0;
        gap: 0;
    }

    .dp-site-header__toggle {
        display: inline-flex;
        position: relative;
        z-index: 1;
    }

    .dp-profile--header-dropdown {
        display: none;
    }

    .dp-site-header__panel {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1100;
        display: block;
        width: auto;
        margin: 0;
        padding: 0;
        border: 0;
        visibility: hidden;
        pointer-events: none;
    }

    body.admin-bar .dp-site-header__panel {
        top: var(--dp-admin-bar-height, 32px);
    }

    /* Keep chrome above the overlay (must follow base panel rules above). */
    .dp-site-header.is-nav-open .dp-site-header__panel,
    body.admin-bar .dp-site-header.is-nav-open .dp-site-header__panel {
        position: absolute;
        inset: 0;
        top: 0;
        z-index: 1;
    }

    .dp-site-header.is-nav-open .dp-site-header__branding,
    .dp-site-header.is-nav-open .dp-site-header__utilities {
        position: relative;
        z-index: 3;
    }

    .dp-site-header.is-nav-open .dp-site-header__toggle {
        position: relative;
        z-index: 4;
    }

    .dp-site-header__panel.is-open,
    .dp-site-header__panel.is-closing {
        visibility: visible;
        pointer-events: auto;
    }

    .dp-site-header__panel-reveal {
        display: block;
        position: absolute;
        inset: 0;
        background: var(--dp-color-base, #000);
        clip-path: circle(0 at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
        transition: clip-path 0.58s cubic-bezier(0.4, 0, 0.2, 1);
        will-change: clip-path;
    }

    .dp-site-header__panel.is-open .dp-site-header__panel-reveal {
        clip-path: circle(var(--dp-nav-r, 150vmax) at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
    }

    .dp-site-header__panel.is-closing .dp-site-header__panel-reveal {
        clip-path: circle(0 at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
        transition-duration: 0.48s;
        transition-timing-function: cubic-bezier(0.4, 0, 0.6, 1);
    }

    .dp-site-header__panel-inner {
        display: flex;
        flex-direction: column;
        position: relative;
        z-index: 1;
        height: 100%;
        opacity: 0;
        transform: translateY(1.25rem);
        transition:
            opacity 0.34s ease 0.14s,
            transform 0.42s cubic-bezier(0.22, 1, 0.36, 1) 0.14s;
        pointer-events: none;
    }

    .dp-site-header__panel-offset {
        display: none;
    }

    .dp-site-header__panel.is-open .dp-site-header__panel-inner,
    .dp-site-header__panel.is-closing .dp-site-header__panel-inner {
        pointer-events: auto;
    }

    .dp-site-header__panel.is-open .dp-site-header__panel-inner {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }

    .dp-site-header__panel.is-closing .dp-site-header__panel-inner {
        opacity: 0;
        transform: translateY(0.75rem);
        transition-delay: 0s;
        transition-duration: 0.22s;
    }

    .dp-site-header__panel-scroll {
        display: flex;
        flex-direction: column;
        flex: 1 1 auto;
        min-height: 0;
        padding:
            calc(var(--dp-header-height, 5.5rem) + env(safe-area-inset-top, 0px) + 0.35rem)
            var(--dp-site-gutter, clamp(1.25rem, 4vw, 3rem))
            max(2.5rem, calc(1.5rem + env(safe-area-inset-bottom, 0px)));
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    .dp-site-header__navigation {
        flex: 0 0 auto;
        opacity: 1;
        pointer-events: auto;
        padding-top: 0;
        width: 100%;
    }

    .dp-site-header__menu {
        font-size: inherit;
        line-height: inherit;
    }

    .dp-site-header__menu > li {
        font-size: inherit;
        line-height: inherit;
    }

    .dp-site-header__menu,
    .dp-site-footer__menu {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        font-size: inherit;
        line-height: inherit;
    }

    .dp-site-header__menu > li,
    .dp-site-footer__menu > li {
        flex-direction: column;
        align-items: stretch;
        border-bottom: 1px solid var(--dp-color-border);
    }

    .dp-site-header__menu > li:first-child {
        border-top: 0;
    }

    .dp-site-header__menu > li {
        opacity: 1;
        transform: none;
    }

    .dp-site-header__panel:not(.is-open):not(.is-closing) .dp-site-header__menu > li {
        opacity: 0;
        transform: translate3d(0, 0.75rem, 0);
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li {
        animation: dp-nav-item-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(1) {
        animation-delay: 0.18s;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(2) {
        animation-delay: 0.24s;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(3) {
        animation-delay: 0.3s;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(4) {
        animation-delay: 0.36s;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(5) {
        animation-delay: 0.42s;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(6) {
        animation-delay: 0.48s;
    }

    .dp-site-header__panel.is-closing .dp-site-header__menu > li {
        animation: none;
        opacity: 0;
        transform: translate3d(0, 0.35rem, 0);
        transition:
            opacity 0.18s ease,
            transform 0.18s ease;
    }

    .dp-site-header__menu > li.menu-item-has-children {
        flex: 1 1 auto;
        width: 100%;
        align-items: stretch;
    }

    .dp-site-header__menu > li > .dp-site-header__menu-anchor {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .dp-site-header__menu-row {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        width: 100%;
    }

    .dp-site-header__menu > li > a,
    .dp-site-header__menu-row > a,
    .dp-site-header__menu-row > .dp-site-header__menu-trigger {
        flex: 1 1 auto;
        min-width: 0;
        padding: 0.95rem 0;
        font-size: clamp(1.5rem, 6vw, 2.1rem);
        font-weight: 400;
        line-height: 1.1;
        letter-spacing: -0.02em;
    }

    .dp-site-header__submenu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 2.75rem;
        height: 2.75rem;
        padding: 0;
        border: 1px solid var(--dp-color-border-strong);
        border-radius: 999px;
        background: transparent;
        color: var(--dp-color-surface);
        cursor: pointer;
        transition:
            border-color 0.2s ease,
            background-color 0.2s ease,
            transform 0.2s ease;
    }

    .dp-site-header__submenu-toggle:hover,
    .dp-site-header__submenu-toggle:focus-visible {
        border-color: var(--dp-color-brand);
        background: rgb(216 248 0 / 0.08);
        outline: none;
    }

    .dp-site-header__submenu-toggle-icon {
        width: 0.55rem;
        height: 0.55rem;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        /* Closed → down. */
        transform: rotate(45deg);
        transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
    }

    .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .dp-site-header__menu-row .dp-site-header__submenu-toggle-icon,
    .menu-item.is-submenu-open > .dp-site-header__submenu-toggle .dp-site-header__submenu-toggle-icon {
        /* Open → up (flip after rotate). */
        transform: scaleY(-1) rotate(45deg);
    }

    .dp-site-header__menu .sub-menu,
    .dp-site-header__menu .dp-mega-menu {
        display: block;
        list-style: none;
        margin: 0;
        padding: 0 0 0.75rem;
        width: 100%;
        max-width: none;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transition:
            max-height 0.36s cubic-bezier(0.22, 1, 0.36, 1),
            opacity 0.24s ease;
    }

    .dp-site-header__menu .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .sub-menu,
    .dp-site-header__menu .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .dp-mega-menu {
        max-height: 80rem;
        opacity: 1;
    }

    .dp-site-header__menu .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .sub-menu[hidden],
    .dp-site-header__menu .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .dp-mega-menu[hidden] {
        display: block !important;
    }

    .dp-site-header__menu .sub-menu > li {
        border-bottom: 0;
    }

    .dp-site-header__menu .sub-menu a {
        display: block;
        padding: 0.55rem 0 0.55rem 0.35rem;
        font-size: clamp(1rem, 3.8vw, 1.2rem);
        font-weight: 700;
        line-height: 1.25;
        color: var(--dp-color-muted);
    }

    .dp-site-header__menu .sub-menu a:hover,
    .dp-site-header__menu .sub-menu a:focus-visible {
        color: var(--dp-color-brand);
    }

    .dp-site-header__profile-nav {
        display: block;
        width: 100%;
        margin-top: auto;
        padding-top: 1.25rem;
        padding-bottom: max(0.5rem, env(safe-area-inset-bottom, 0px));
        opacity: 1;
        border-top: 1px solid var(--dp-color-border);
    }

    .dp-site-header__navigation + .dp-site-header__ctas--mobile {
        margin-top: 0.25rem;
    }

    .dp-site-header__ctas--mobile {
        margin-block: 1.25rem 0.35rem;
        padding-top: 1.25rem;
    }

    .dp-site-header__ctas--mobile .dp-site-header__cta {
        border-radius: 999px;
    }

    .dp-site-header__ctas--mobile + .dp-site-header__profile-nav {
        margin-top: auto;
        padding-top: 1.5rem;
        border-top: 1px solid var(--dp-color-border);
    }

    .dp-site-header__navigation + .dp-site-header__profile-nav {
        margin-top: auto;
        padding-top: 1.5rem;
        border-top: 1px solid var(--dp-color-border);
    }

    .dp-site-header__panel:not(.is-open):not(.is-closing) .dp-site-header__profile-nav {
        opacity: 0;
        transform: translate3d(0, 0.75rem, 0);
    }

    .dp-site-header__panel:not(.is-open):not(.is-closing) .dp-site-header__ctas--mobile {
        opacity: 0;
        transform: translate3d(0, 0.75rem, 0);
    }

    .dp-site-header__panel.is-open .dp-site-header__profile-nav {
        animation: dp-nav-item-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) 0.34s both;
    }

    .dp-site-header__panel.is-open .dp-site-header__ctas--mobile {
        animation: dp-nav-item-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) 0.28s both;
    }

    .dp-site-header__menu .sub-menu .sub-menu {
        padding-left: 0.75rem;
        max-height: none;
        opacity: 1;
    }

    .dp-site-header__panel.is-closing .dp-site-header__profile-nav {
        animation: none;
        opacity: 0;
        transform: translate3d(0, 0.35rem, 0);
        transition:
            opacity 0.18s ease,
            transform 0.18s ease;
    }

    .dp-site-header__panel.is-closing .dp-site-header__ctas--mobile {
        animation: none;
        opacity: 0;
        transform: translate3d(0, 0.35rem, 0);
        transition:
            opacity 0.18s ease,
            transform 0.18s ease;
    }

    .dp-profile-nav__link {
        padding-block: 0.65rem;
        font-size: 1rem;
    }
}

@keyframes dp-nav-item-in {
    from {
        opacity: 0;
        transform: translate3d(0, 0.75rem, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@media (max-width: 639px) {
    :root {
        --dp-header-height: 4.75rem;
    }

    h1 {
        font-size: clamp(2.5rem, 12vw, 4rem);
    }
}

/* ==========================================================================
   Auth pages (login, register, password flows)
   ========================================================================== */

.dp-auth-page .dp-site-main {
    min-height: auto;
}

.dp-auth-shell {
    --dp-auth-field-gap: clamp(0.45rem, 0.85vw, 0.65rem);
    --dp-auth-block-gap: clamp(0.65rem, 1.2vw, 0.9rem);
    --dp-auth-field-padding: clamp(0.6rem, 1vw, 0.75rem);
    --dp-auth-field-size: clamp(0.8125rem, 1.25vw, 0.9375rem);
    --dp-auth-section-size: clamp(1.05rem, 1.6vw, 1.25rem);
    --dp-auth-copy-size: clamp(0.875rem, 1.35vw, 1rem);
}

.dp-auth-shell .dp-content-split__heading {
    font-size: clamp(2rem, 4vw, 3rem);
}

.dp-auth-shell__body {
    display: grid;
    gap: var(--dp-auth-block-gap);
    min-width: 0;
}

.dp-auth-shell .dp-content-split__content {
    min-width: 0;
}

.dp-auth-shell--no-image .dp-content-split__media {
    display: none;
}

/* Stacked login/register images share one fixed frame — no layout jump on tab change. */
.dp-auth-shell .dp-content-split__media-frame {
    position: relative;
    overflow: hidden;
}

.dp-auth-shell__image-slot {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition:
        opacity 0.28s ease,
        visibility 0.28s ease;
    pointer-events: none;
}

.dp-auth-shell__image-slot.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.dp-auth-shell__image-slot .dp-content-split__image,
.dp-auth-shell__image-slot .dp-auth-shell__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 767px) {
    .dp-auth-shell .dp-content-split__media {
        display: none !important;
    }

    .dp-auth-shell .dp-content-split__layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (min-width: 768px) {
    .dp-auth-shell--no-image .dp-content-split__layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .dp-auth-shell--no-image .dp-content-split__content {
        max-width: min(100%, 42rem);
    }

    /* Keep form + media columns stable across Sign in / Create account. */
    .dp-auth-shell .dp-content-split__layout {
        align-items: start;
    }

    .dp-auth-shell .dp-content-split__content {
        justify-content: flex-start;
    }

    .dp-auth-shell .dp-content-split__media {
        position: sticky;
        top: calc(
            var(--dp-header-height, 5.5rem) + var(--dp-countdown-banner-height, 0px)
        );
        align-self: start;
        width: 100%;
    }

    .dp-auth-shell .dp-content-split__media-frame {
        flex: 0 0 auto;
        width: 100%;
        height: auto;
        min-height: 0;
        max-height: min(68vh, 36rem);
        aspect-ratio: 4 / 5;
    }

    .dp-auth-portal__panels {
        min-height: 18rem;
    }

    .dp-auth-shell.dp-content-split--image-right .dp-content-split__layout {
        grid-template-columns: minmax(0, 1fr) minmax(0, 0.42fr);
    }

    .dp-auth-shell:not(.dp-content-split--image-right) .dp-content-split__layout {
        grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr);
    }
}

/* Registration wizard */
.dp-auth-register-wizard {
    display: grid;
    gap: clamp(1rem, 2vw, 1.35rem);
    width: 100%;
}

.dp-auth-register-wizard__chrome {
    display: grid;
    gap: 0.65rem;
}

.dp-auth-register-wizard__progress {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.85rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.dp-auth-register-wizard__progress-item {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-family: var(--dp-font-primary);
    font-size: clamp(0.75rem, 1.1vw, 0.8125rem);
    font-weight: 600;
    letter-spacing: 0.02em;
    color: color-mix(in srgb, var(--dp-color-surface) 52%, transparent);
}

.dp-auth-register-wizard__progress-item.is-active,
.dp-auth-register-wizard__progress-item.is-complete {
    color: var(--dp-color-surface);
}

.dp-auth-register-wizard__progress-dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--dp-color-surface) 35%, transparent);
    background: transparent;
    transition:
        background-color var(--dp-transition),
        border-color var(--dp-transition),
        transform var(--dp-transition);
}

.dp-auth-register-wizard__progress-item.is-active .dp-auth-register-wizard__progress-dot,
.dp-auth-register-wizard__progress-item.is-complete .dp-auth-register-wizard__progress-dot {
    border-color: var(--dp-color-brand);
    background: var(--dp-color-brand);
}

.dp-auth-register-wizard__progress-item.is-active .dp-auth-register-wizard__progress-dot {
    transform: scale(1.15);
}

.dp-auth-register-wizard__step-label {
    margin: 0;
    font-family: var(--dp-font-accent);
    font-size: clamp(0.9375rem, 1.4vw, 1.0625rem);
    font-style: italic;
    line-height: 1.35;
    color: color-mix(in srgb, var(--dp-color-surface) 88%, transparent);
}

.dp-auth-register-wizard__track {
    height: 0.2rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--dp-color-surface) 12%, transparent);
    overflow: hidden;
}

.dp-auth-register-wizard__track-fill {
    display: block;
    height: 100%;
    width: 0;
    border-radius: inherit;
    background: var(--dp-color-brand);
    transition: width 0.35s ease;
}

.dp-auth-register-wizard__steps {
    display: grid;
    gap: var(--dp-auth-block-gap);
}

.dp-auth-register-wizard__step {
    display: grid;
    gap: var(--dp-auth-field-gap);
}

.dp-auth-register-wizard__step[hidden],
.dp-auth-register-wizard__back[hidden],
.dp-auth-register-wizard__next[hidden] {
    display: none !important;
}

.dp-auth-register-wizard__step-title {
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: var(--dp-auth-section-size);
    font-weight: 700;
    line-height: 1.2;
    color: var(--dp-color-surface);
}

.dp-auth-register-wizard__step-notice {
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.4;
    color: color-mix(in srgb, var(--dp-color-error) 76%, var(--dp-color-surface));
}

.dp-auth-register-wizard__step-notice[hidden] {
    display: none !important;
}

.dp-auth-register-wizard__nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.dp-auth-register-wizard__back {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0.35rem 0;
    font-family: var(--dp-font-primary);
    font-size: 0.875rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--dp-color-surface) 78%, transparent);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.dp-auth-register-wizard__back:hover,
.dp-auth-register-wizard__back:focus-visible {
    color: var(--dp-color-brand);
    outline: none;
}

.dp-auth-register-wizard__next {
    margin-left: auto;
}

@media (min-width: 768px) {
    .dp-auth-register-wizard__step {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: clamp(0.65rem, 1.2vw, 0.85rem);
    }

    .dp-auth-register-wizard__step-title,
    .dp-auth-register-wizard__step-notice,
    .dp-auth-register-wizard__step > p,
    .dp-auth-register-wizard__step > label,
    .dp-auth-register-wizard__step > .other-box,
    .dp-auth-register-wizard__step > .contact-form__bottom,
    .dp-auth-register-wizard__step > .cf-turnstile,
    .dp-auth-register-wizard__step > input[type="file"],
    .dp-auth-register-wizard__step > select[name="how_hear"],
    .dp-auth-register-wizard__step > select[name="country"],
    .dp-auth-register-wizard__step > select[name="company_type"],
    .dp-auth-register-wizard__step > select.us_state_select_control,
    .dp-auth-register-wizard__step > input.state_text_input,
    .dp-auth-register-wizard__step > .dp-auth-field:has(> input[type="file"]),
    .dp-auth-register-wizard__step > .dp-auth-field:has(> select[name="how_hear"]),
    .dp-auth-register-wizard__step > .dp-auth-field:has(> select[name="country"]),
    .dp-auth-register-wizard__step > .dp-auth-field:has(> select[name="company_type"]),
    .dp-auth-register-wizard__step > .dp-auth-field:has(> select.us_state_select_control),
    .dp-auth-register-wizard__step > .dp-auth-field:has(> input.state_text_input),
    .dp-auth-register-wizard__step > .dp-auth-field-row {
        grid-column: 1 / -1;
    }

    .dp-auth-register-wizard__step > .dp-auth-field:has(> input[name="job_title"]) {
        grid-column: auto;
    }

    .dp-auth-register-wizard__step > .dp-auth-field-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: clamp(0.65rem, 1.2vw, 0.85rem);
    }
}

.dp-auth-shell .dp-auth-field {
    position: relative;
    min-width: 0;
}

.dp-auth-field--url input {
    padding-right: 2.85rem;
}

.dp-auth-field--url .dp-auth-field-hint {
    position: absolute;
    right: 0.65rem;
    top: 50%;
    transform: translateY(-50%);
    max-width: 42%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--dp-font-primary);
    font-size: 0.625rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: color-mix(in srgb, var(--dp-color-surface) 40%, transparent);
    pointer-events: none;
    transition: opacity var(--dp-transition);
}

.dp-auth-field--url.has-value .dp-auth-field-hint,
.dp-auth-field--url:focus-within .dp-auth-field-hint {
    opacity: 0;
}

.dp-auth-field-row {
    display: grid;
    gap: var(--dp-auth-field-gap);
    min-width: 0;
}

/* Combined portal */
.dp-auth-shell:has(.dp-auth-portal) .dp-content-split__heading {
    margin-bottom: clamp(0.65rem, 1.35vw, 0.9rem);
}

.dp-auth-portal {
    display: grid;
    gap: clamp(0.75rem, 1.35vw, 1rem);
    min-width: 0;
}

.dp-auth-portal__tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    width: 100%;
}

.dp-auth-portal__tab {
    appearance: none;
    border: 1px solid color-mix(in srgb, var(--dp-color-surface) 22%, transparent);
    border-radius: 999px;
    background: transparent;
    color: color-mix(in srgb, var(--dp-color-surface) 88%, transparent);
    padding: 0.62rem 1rem;
    font-family: var(--dp-font-primary);
    font-size: clamp(0.8125rem, 1.2vw, 0.875rem);
    font-style: italic;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    transition:
        background-color var(--dp-transition),
        border-color var(--dp-transition),
        color var(--dp-transition);
}

.dp-auth-portal__tab:hover,
.dp-auth-portal__tab:focus-visible {
    border-color: color-mix(in srgb, var(--dp-color-brand) 55%, transparent);
    color: var(--dp-color-surface);
}

.dp-auth-portal__tab.is-active {
    background: var(--dp-color-brand);
    border-color: var(--dp-color-brand);
    color: var(--dp-color-base);
}

.dp-auth-portal__panels,
.dp-auth-portal__panel,
.dp-auth-portal__panel-body,
.dp-auth-shell .widecolumn,
#password-lost-form,
#password-reset-form {
    min-width: 0;
}

.dp-auth-portal__lede {
    margin: 0;
    font-family: var(--dp-font-accent);
    font-size: clamp(0.875rem, 1.25vw, 0.9375rem);
    font-style: italic;
    line-height: 1.45;
    color: color-mix(in srgb, var(--dp-color-surface) 78%, transparent);
}

.dp-auth-portal__lede[hidden] {
    display: none;
}

.dp-auth-portal__panel-body {
    display: grid;
    gap: var(--dp-auth-block-gap);
}

.dp-auth-forgot-intro {
    display: grid;
    gap: calc(var(--dp-auth-field-gap) * 0.75);
}

.dp-auth-shell__body > p,
.dp-auth-shell__body .login-form > p,
.dp-auth-forgot-intro p,
#password-lost-form > p,
#password-reset-form .description {
    margin: 0;
    font-family: var(--dp-font-accent);
    font-size: var(--dp-auth-copy-size);
    font-style: italic;
    line-height: 1.45;
    color: color-mix(in srgb, var(--dp-color-surface) 92%, transparent);
}

.dp-auth-shell__body > p a,
.dp-auth-shell__body .login-form a,
.dp-auth-forgot-intro a,
.dp-auth-login-hint a,
.dp-auth-forgot-link,
.dp-auth-alert__action {
    color: var(--dp-color-brand);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.dp-auth-shell__body > p a:hover,
.dp-auth-shell__body > p a:focus-visible,
.dp-auth-shell__body .login-form a:hover,
.dp-auth-shell__body .login-form a:focus-visible,
.dp-auth-forgot-intro a:hover,
.dp-auth-forgot-intro a:focus-visible,
.dp-auth-login-hint a:hover,
.dp-auth-login-hint a:focus-visible,
.dp-auth-forgot-link:hover,
.dp-auth-forgot-link:focus-visible,
.dp-auth-alert__action:hover,
.dp-auth-alert__action:focus-visible {
    color: color-mix(in srgb, var(--dp-color-brand) 82%, #fff);
}

.dp-auth-shell__body > h2,
.dp-auth-shell .contact-form > h2,
#password-reset-form h3 {
    margin: calc(var(--dp-auth-field-gap) * 0.5) 0 0;
    font-family: var(--dp-font-primary);
    font-size: var(--dp-auth-section-size);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--dp-color-surface);
}

.dp-auth-shell__body > h2:first-child,
.dp-auth-shell .contact-form > h2:first-child,
#password-reset-form h3:first-child {
    margin-top: 0;
}

.dp-auth-alert,
.fe-alert,
.error-alert,
.newsletter-alert {
    padding: 0.7rem 0.85rem;
    border-radius: var(--dp-radius-input);
    font-family: var(--dp-font-primary);
    font-size: var(--dp-auth-copy-size);
    line-height: 1.45;
}

.dp-auth-alert--success,
.fe-alert:not(.error-alert) {
    background: color-mix(in srgb, var(--dp-color-brand) 18%, transparent);
    color: var(--dp-color-surface);
    border: 1px solid color-mix(in srgb, var(--dp-color-brand) 45%, transparent);
}

.dp-auth-alert--error,
.error-alert,
.newsletter-alert,
.fe-alert.error-alert {
    background: color-mix(in srgb, var(--dp-color-error) 16%, transparent);
    color: var(--dp-color-surface);
    border: 1px solid color-mix(in srgb, var(--dp-color-error) 45%, transparent);
}

.dp-auth-alert p,
.fe-alert p,
.error-alert p,
.newsletter-alert p {
    margin: 0;
}

.dp-auth-alert__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 0.85rem;
    margin-top: 0.55rem;
}

.dp-auth-alert__action {
    font-size: 0.8125rem;
    font-weight: 600;
}

.dp-auth-login-hint {
    padding: 0.65rem 0.75rem;
    border-radius: var(--dp-radius-input);
    background: color-mix(in srgb, var(--dp-color-accent) 24%, transparent);
    border: 1px solid color-mix(in srgb, var(--dp-color-surface) 18%, transparent);
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--dp-color-surface);
}

.login-form,
.contact-form,
#password-lost-form .login-form,
#password-reset-form,
#resetpassform {
    display: grid;
    gap: var(--dp-auth-field-gap);
}

.login-form label,
#password-lost-form label,
#password-reset-form label,
#resetpassform label,
.form-group label {
    display: block;
    margin-bottom: 0.25rem;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: color-mix(in srgb, var(--dp-color-surface) 88%, transparent);
}

.login-form form,
.contact-form,
#password-lost-form .login-form form,
#resetpassform {
    display: grid;
    gap: var(--dp-auth-field-gap);
}

.dp-auth-shell .login-form .input,
.dp-auth-shell .border-input,
.dp-auth-shell .form-control,
.dp-auth-shell .login-form input[type="text"],
.dp-auth-shell .login-form input[type="email"],
.dp-auth-shell .login-form input[type="password"],
.dp-auth-shell .login-form input[type="tel"],
.dp-auth-shell .login-form input[type="url"],
.dp-auth-shell .login-form input[type="file"],
.dp-auth-shell .login-form select,
.dp-auth-shell .login-form textarea,
.dp-auth-shell .contact-form input,
.dp-auth-shell .contact-form select,
.dp-auth-shell .contact-form textarea,
.dp-auth-shell #password-lost-form input,
.dp-auth-shell #password-reset-form input,
.dp-auth-shell #resetpassform input {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: var(--dp-auth-field-padding);
    font-size: var(--dp-auth-field-size);
}

.dp-auth-shell .contact-form textarea {
    min-height: 5.5rem;
}

/* Parsley — screen-reader only; visual feedback is field border + step notice */
.dp-auth-shell .dp-auth-field .parsley-errors-list {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.dp-auth-shell .dp-auth-field .parsley-errors-list li {
    margin: 0;
    padding: 0;
}

.dp-auth-shell .dp-auth-field .parsley-errors-list:empty {
    display: none;
}

.dp-auth-shell .contact-form input.parsley-error,
.dp-auth-shell .contact-form select.parsley-error,
.dp-auth-shell .contact-form textarea.parsley-error,
.dp-auth-shell .contact-form input.dp-auth-input-error,
.dp-auth-shell .contact-form select.dp-auth-input-error,
.dp-auth-shell .contact-form textarea.dp-auth-input-error,
.dp-auth-shell .border-input.parsley-error,
.dp-auth-shell .border-input.dp-auth-input-error {
    border-color: color-mix(in srgb, var(--dp-color-error) 72%, transparent) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--dp-color-error) 14%, transparent);
}

.dp-auth-shell .contact-form input.parsley-success:not(.dp-auth-input-error),
.dp-auth-shell .contact-form select.parsley-success:not(.dp-auth-input-error),
.dp-auth-shell .contact-form textarea.parsley-success:not(.dp-auth-input-error) {
    border-color: inherit;
    box-shadow: none;
}

.dp-auth-login-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
}

.dp-auth-login-forgot,
.dp-auth-login-meta .login-forgot {
    margin: 0;
    text-align: right;
}

.dp-auth-login-forgot {
    margin-top: -0.15rem;
}

.dp-auth-login-meta .login-remember {
    margin: 0;
}

.dp-auth-login-meta .login-remember label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-weight: 500;
    color: color-mix(in srgb, var(--dp-color-surface) 88%, transparent);
}

.dp-auth-login-meta .login-remember input {
    width: auto;
}

.dp-auth-forgot-link {
    display: inline-block;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.3;
    white-space: nowrap;
}

.dp-auth-forgot-title {
    margin: 0;
    font-family: var(--dp-font-accent);
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
    font-weight: 400;
    line-height: 1.2;
    color: var(--dp-color-surface);
}

.dp-auth-forgot-lede {
    margin: 0;
    font-family: var(--dp-font-accent);
    font-size: var(--dp-auth-copy-size, 0.9375rem);
    font-style: italic;
    line-height: 1.45;
    color: color-mix(in srgb, var(--dp-color-surface) 86%, transparent);
}

/* Plugin lost-password shortcode already includes helper copy — hide the duplicate. */
.dp-auth-portal__panel[data-dp-auth-panel="forgot"] #password-lost-form > p:first-of-type {
    display: none;
}

.dp-auth-portal__tabs[hidden] {
    display: none;
}

.login-form .button-primary,
.contact-form__submit-button,
#password-lost-form .button-primary,
#resetpassform .fe-button,
#resetpass-button,
.resetpass-submit .button,
.resetpass-submit input[type="submit"] {
    justify-self: start;
    min-height: calc(var(--dp-button-line-height) - 0.35rem);
    padding: 0 calc(var(--dp-button-padding-x) - 0.15rem);
    border: 1px solid transparent;
    border-radius: var(--dp-radius-button);
    background: var(--dp-color-brand);
    color: var(--dp-color-base);
    font-family: var(--dp-font-primary);
    font-size: clamp(0.875rem, 1.2vw, var(--dp-button-font-size));
    font-weight: var(--dp-button-font-weight);
    line-height: 1.2;
    cursor: pointer;
    transition:
        background-color var(--dp-transition),
        color var(--dp-transition),
        border-color var(--dp-transition),
        transform 120ms var(--dp-button-ease);
}

.login-form .button-primary:hover,
.login-form .button-primary:focus-visible,
.contact-form__submit-button:hover,
.contact-form__submit-button:focus-visible,
#password-lost-form .button-primary:hover,
#password-lost-form .button-primary:focus-visible,
#resetpassform .fe-button:hover,
#resetpassform .fe-button:focus-visible,
#resetpass-button:hover,
#resetpass-button:focus-visible {
    background: color-mix(in srgb, var(--dp-color-brand) 88%, #fff);
    color: var(--dp-color-base);
}

.contact-form__bottom {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.25rem;
}

.dp-auth-register-step-footer {
    gap: 1rem;
    margin-top: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--dp-color-surface) 16%, transparent);
}

.dp-auth-register-requirements {
    padding: 0.85rem 1rem;
    border-radius: var(--dp-radius-input);
    background: color-mix(in srgb, var(--dp-color-surface) 5%, transparent);
    border: 1px solid color-mix(in srgb, var(--dp-color-surface) 14%, transparent);
}

.dp-auth-register-requirements__title {
    display: block;
    margin-bottom: 0.45rem;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--dp-color-surface);
}

.dp-auth-register-requirements__list {
    margin: 0;
    padding-left: 1.15rem;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    line-height: 1.5;
    color: color-mix(in srgb, var(--dp-color-surface) 82%, transparent);
}

.dp-auth-register-requirements__list li + li {
    margin-top: 0.2rem;
}

.dp-auth-register-consent {
    display: grid;
    grid-template-columns: 1.125rem minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 0.35rem 0.75rem;
    align-items: start;
    padding: 0.9rem 1rem;
    border-radius: var(--dp-radius-input);
    border: 1px solid color-mix(in srgb, var(--dp-color-surface) 18%, transparent);
    background: color-mix(in srgb, var(--dp-color-surface) 4%, transparent);
    cursor: pointer;
}

.dp-auth-register-consent input[type="checkbox"] {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 1.125rem;
    height: 1.125rem;
    margin: 0.15rem 0 0;
    accent-color: var(--dp-color-brand);
}

.dp-auth-register-consent__title {
    grid-column: 2;
    grid-row: 1;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--dp-color-surface);
}

.dp-auth-register-consent__body {
    grid-column: 2;
    grid-row: 2;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    line-height: 1.55;
    color: color-mix(in srgb, var(--dp-color-surface) 84%, transparent);
}

.dp-auth-register-consent__body a {
    color: var(--dp-color-brand);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.dp-auth-register-consent__body a:hover,
.dp-auth-register-consent__body a:focus-visible {
    color: var(--dp-color-surface);
}

.dp-auth-register-step-footer .contact-form__submit-button {
    width: 100%;
    max-width: 100%;
}

.dp-auth-register-step-footer .cf-turnstile {
    justify-self: start;
}

.contact-form__checkbox-label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.55rem;
    align-items: start;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    line-height: 1.4;
    color: color-mix(in srgb, var(--dp-color-surface) 88%, transparent);
}

.contact-form__checkbox-label input {
    margin-top: 0.15rem;
}

#password-lost-form.widecolumn,
#password-reset-form.widecolumn {
    width: 100%;
    max-width: none;
    margin: 0;
}

#password-reset-form .row,
#password-lost-form .row,
#password-reset-form .form-group,
#password-lost-form .form-group {
    margin: 0;
}

@media (min-width: 768px) {
    .dp-auth-shell .contact-form {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: clamp(0.65rem, 1.2vw, 0.85rem);
        row-gap: var(--dp-auth-field-gap);
    }

    .dp-auth-shell .contact-form.dp-auth-register-wizard {
        grid-template-columns: minmax(0, 1fr);
    }

    .dp-auth-shell .contact-form > h2,
    .dp-auth-shell .contact-form > p,
    .dp-auth-shell .contact-form > label,
    .dp-auth-shell .contact-form > .other-box,
    .dp-auth-shell .contact-form > .contact-form__bottom,
    .dp-auth-shell .contact-form > .cf-turnstile,
    .dp-auth-shell .contact-form > script {
        grid-column: 1 / -1;
    }
}

@media (max-width: 767px) {
    .dp-auth-portal__tabs {
        gap: 0.45rem;
    }

    .dp-auth-portal__tab {
        padding-inline: 0.75rem;
    }

    .dp-auth-login-forgot {
        text-align: left;
    }

    .dp-auth-login-meta {
        flex-direction: column;
        align-items: flex-start;
    }
}
