.sf-welcome {
    --sf-welcome-font: "Cal Sans", Arial, Helvetica, system-ui, sans-serif;
}

@font-face {
    font-family: "Cal Sans";
    src: url("./fonts/cal-sans-variable.woff2") format("woff2");
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
}

.sf-welcome,
.sf-welcome * {
    box-sizing: border-box;
}

.sf-welcome {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    justify-items: center;
    align-items: stretch;
    gap: clamp(12px, 2vh, 26px);
    min-height: max(540px, calc(100svh - 76px));
    overflow: hidden;
    padding: clamp(18px, 2.8vw, 40px) clamp(20px, 4vw, 64px);
    background: #064ba2;
    color: #f0f1df;
    text-align: center;
    font-family: var(--sf-welcome-font);
}

.sf-welcome__texture {
    position: absolute;
    z-index: -1;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(#ffffff16 1px, transparent 1px) 0 0 / 18px 18px,
        radial-gradient(circle at 50% 48%, #2781cb55, transparent 52%),
        linear-gradient(125deg, #063e8a, #0751a8 58%, #003774);
}

.sf-welcome__partners {
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: clamp(12px, 2.4vw, 38px);
    width: min(100%, 1680px);
    min-width: 0;
    min-height: 64px;
}

.sf-welcome__partner-outer,
.sf-welcome__partners-main,
.sf-welcome__partner-slot {
    display: flex;
    align-items: center;
    min-width: 0;
}

.sf-welcome__partner-outer {
    flex-wrap: wrap;
    gap: clamp(12px, 1.8vw, 30px);
}

.sf-welcome__partner-outer--left {
    justify-content: flex-start;
}

.sf-welcome__partner-outer--right {
    justify-content: flex-end;
}

.sf-welcome__partners-main {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, max-content));
    justify-items: center;
    width: auto;
    min-width: 0;
}

.sf-welcome__partner-slot {
    justify-content: center;
    width: auto;
    min-height: 64px;
    padding-inline: clamp(8px, 1.2vw, 18px);
}

.sf-welcome__partner-outer img,
.sf-welcome__partner-slot img {
    display: block;
    width: auto;
    max-width: 100%;
    height: clamp(28px, 4.4vw, 58px);
    object-fit: contain;
}

.sf-welcome__partner-outer img {
    height: clamp(24px, 3.5vw, 48px);
}

/* Respect supplied artwork, including transparent margins in portrait logos. */
.sf-welcome__partner-outer--right img {
    width: auto;
    height: auto;
    max-width: clamp(88px, 10vw, 140px);
    max-height: 90px;
}

.sf-welcome__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(14px, 2.2vh, 24px);
    align-self: stretch;
    width: min(100%, 960px);
    min-width: 0;
    margin-inline: auto;
    padding-block: clamp(4px, 1.5vh, 18px);
}

.sf-welcome__eyebrow {
    max-width: 100%;
    margin: 0 !important;
    font-size: clamp(.67rem, 1vw, .82rem);
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1.45;
    text-transform: uppercase;
}

.sf-welcome h1 {
    max-width: min(100%, 21ch);
    margin: 0 !important;
    color: #ff9b69;
    font-family: "Cal Sans", Arial, Helvetica, system-ui, sans-serif;
    font-size: clamp(2.4rem, 6.4vw, 6rem);
    font-weight: 700;
    font-optical-sizing: auto;
    letter-spacing: -.045em;
    line-height: 1.02;
    text-wrap: balance;
    overflow-wrap: break-word;
}

.sf-welcome__tour-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: clamp(10px, 1.5vw, 22px);
    max-width: 100%;
    padding: 4px 10px;
    border-radius: 8px;
    color: inherit !important;
    text-decoration: none !important;
    transition: transform .3s ease, filter .3s ease;
}

.sf-welcome__science-fair-logo {
    display: block;
    width: clamp(250px, 38vw, 535px);
    max-width: min(74vw, 535px);
    height: auto;
    max-height: clamp(150px, 34svh, 310px);
    object-fit: contain;
    filter: drop-shadow(0 10px 24px #001e5645);
    transition: filter .3s ease;
}

.sf-welcome__tour-link:hover {
    transform: translateY(-3px);
}

.sf-welcome__tour-link:hover .sf-welcome__science-fair-logo {
    filter: drop-shadow(0 14px 30px #001e5670);
}

.sf-welcome__tour-link:focus-visible,
.sf-welcome__scroll:focus-visible {
    outline: 3px solid #ff9b69;
    outline-offset: 6px;
}

.sf-welcome__tour-arrow {
    flex: none;
    color: #f0f1df;
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    font-weight: 700;
    line-height: 1;
    transition: transform .3s ease;
}

.sf-welcome__tour-link:hover .sf-welcome__tour-arrow {
    transform: translate(4px, -4px);
}

.sf-welcome__scroll {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .6em;
    max-width: 100%;
    min-height: 44px;
    margin: 0 !important;
    border-bottom: 1px solid #ffffff80;
    color: inherit !important;
    font-size: clamp(.82rem, 1vw, .98rem);
    font-weight: 700;
    line-height: 1.45;
    text-decoration: none !important;
}

.sf-welcome__scroll span {
    flex: none;
    transition: transform .25s ease;
}

.sf-welcome__scroll:hover span {
    transform: translateY(3px);
}

.sf-welcome__anchor {
    position: relative;
    scroll-margin-top: 0;
}

.sf-welcome-editor-note {
    color: #53657b;
    font-size: 12px;
    line-height: 1.5;
}

.sf-welcome-editor-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 14px 0;
    border-top: 1px solid #e1e6ec;
}

.sf-welcome-editor-pair .components-base-control {
    min-width: 0;
    margin-bottom: 0;
}

.sf-welcome-editor-preview {
    margin-top: 18px;
    overflow: hidden;
    border: 1px solid #c9d2df;
    border-radius: 8px;
    background: #fff;
}

.sf-welcome-editor-preview-tools {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px;
    border-bottom: 1px solid #d8e0e8;
    background: #f2f5f9;
}

.sf-welcome-editor-preview-tools .components-button {
    white-space: nowrap;
}

.sf-welcome-editor-loading {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #53657b;
}

.sf-welcome-editor-loading .components-spinner {
    float: none;
    margin: 0;
}

.sf-welcome-editor-partner {
    margin: 12px 0;
    padding: 12px;
    border: 1px solid #d6dfe9;
    border-radius: 8px;
    background: #f7f9fc;
}

.sf-welcome-editor-partner__heading,
.sf-welcome-editor-partner__media,
.sf-welcome-editor-partner__media-actions,
.sf-welcome-editor-partner-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sf-welcome-editor-partner__heading {
    justify-content: space-between;
    margin-bottom: 8px;
}

.sf-welcome-editor-partner__heading strong {
    min-width: 0;
    overflow-wrap: anywhere;
}

.sf-welcome-editor-partner .components-base-control {
    margin-bottom: 10px;
}

.sf-welcome-editor-partner__media {
    align-items: flex-start;
    flex-direction: column;
}

.sf-welcome-editor-partner__media img {
    display: block;
    width: 100%;
    max-height: 72px;
    padding: 8px;
    border: 1px solid #dce3eb;
    border-radius: 6px;
    background: #0a438f;
    object-fit: contain;
}

.sf-welcome-editor-partner__empty {
    display: grid;
    width: 100%;
    min-height: 48px;
    place-items: center;
    border: 1px dashed #b9c5d2;
    border-radius: 6px;
    color: #64758a;
    font-size: 12px;
}

.sf-welcome-editor-partner__media-actions,
.sf-welcome-editor-partner-actions {
    flex-wrap: wrap;
}

.sf-welcome-editor-partner-actions {
    justify-content: space-between;
    margin-top: 12px;
}

.sf-welcome-editor-unsaved {
    margin: 10px 0 0;
    color: #8a4b00;
    font-size: 12px;
    line-height: 1.45;
}

.sf-welcome-editor-partner .components-notice {
    margin: 12px 0 0;
}

@media (max-width: 800px) {
    .sf-welcome {
        min-height: max(560px, calc(100svh - 68px));
        gap: 8px;
        padding: 16px clamp(16px, 4vw, 28px) 22px;
    }

    .sf-welcome__partners {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto auto;
        justify-items: center;
        gap: 8px 12px;
        min-height: 0;
    }

    .sf-welcome__partner-outer {
        min-height: 38px;
        gap: 10px;
    }

    .sf-welcome__partner-outer--left {
        grid-column: 1;
        grid-row: 1;
        justify-content: center;
    }

    .sf-welcome__partner-outer--right {
        grid-column: 1;
        grid-row: 3;
        justify-content: center;
    }

    .sf-welcome__partners-main {
        grid-column: 1;
        grid-row: 2;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: min(100%, 560px);
    }

    .sf-welcome__partner-slot {
        min-height: 44px;
        width: 100%;
        padding-inline: 3px;
    }

    .sf-welcome__partner-slot img {
        height: clamp(24px, 7vw, 38px);
    }

    .sf-welcome__partner-outer img {
        height: clamp(20px, 6vw, 32px);
    }

    .sf-welcome__partner-outer--right img {
        height: auto;
        max-width: 110px;
        max-height: 68px;
    }

    .sf-welcome__content {
        gap: clamp(12px, 2vh, 18px);
        padding-block: 4px;
    }

    .sf-welcome h1 {
        max-width: min(100%, 22ch);
        font-size: clamp(1.85rem, 8.4vw, 3.45rem);
        letter-spacing: -.04em;
        line-height: 1.05;
    }

    .sf-welcome__science-fair-logo {
        width: clamp(215px, 62vw, 380px);
        max-width: 68vw;
        max-height: clamp(145px, 27svh, 235px);
    }

    .sf-welcome__tour-link {
        gap: 8px;
    }

    .sf-welcome__tour-arrow {
        font-size: 1.65rem;
    }
}

@media (max-width: 420px) {
    .sf-welcome {
        min-height: max(590px, calc(100svh - 68px));
        padding-inline: 14px;
    }

    .sf-welcome__partner-outer {
        gap: 6px;
    }

    .sf-welcome__partner-outer img {
        height: 20px;
    }

    .sf-welcome__partner-outer--right img {
        height: auto;
        max-width: 96px;
        max-height: 58px;
    }

    .sf-welcome__partner-slot img {
        height: clamp(20px, 6.2vw, 24px);
    }

    .sf-welcome h1 {
        max-width: min(100%, 24ch);
        font-size: clamp(1.75rem, 8.8vw, 2.25rem);
    }

    .sf-welcome__science-fair-logo {
        width: min(68vw, 330px);
        max-height: 24svh;
    }

    .sf-welcome__scroll {
        font-size: .82rem;
    }
}

@media (max-height: 720px) and (min-width: 801px) {
    .sf-welcome {
        gap: 8px;
        padding-block: 16px;
    }

    .sf-welcome__content {
        gap: 10px;
    }

    .sf-welcome__science-fair-logo {
        max-height: 27svh;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sf-welcome__tour-link,
    .sf-welcome__science-fair-logo,
    .sf-welcome__tour-arrow,
    .sf-welcome__scroll span {
        transition: none;
    }
}

@media (max-width: 782px) {
    .sf-welcome-editor-pair {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
    }

    .sf-welcome-editor-preview-tools {
        align-items: flex-start;
        flex-direction: column;
    }
}
