:root {
    color-scheme: light;
    --ink: #11243d;
    --muted: #5e6b7d;
    --paper: #f6f3eb;
    --line: rgba(17, 36, 61, 0.12);
    --panel: rgba(255, 255, 255, 0.82);
    --shadow: 0 24px 60px rgba(17, 36, 61, 0.14);
    --amber: #d8811f;
    --teal: #0c8b80;
    --coral: #cf5c43;
}

/* Errailium identity v44: shared navy, gold and ivory brand system. */
:root {
    --errailium-navy: #071a38;
    --errailium-blue: #163b6d;
    --errailium-blue-soft: #e9eef5;
    --errailium-gold: #d8a43a;
    --errailium-gold-dark: #a96c13;
    --errailium-gold-soft: #f7edda;
    --errailium-ivory: #fbf8f1;
    --errailium-ink: #10213d;
    --errailium-muted: #667187;
    --ink: var(--errailium-ink);
    --muted: var(--errailium-muted);
    --paper: var(--errailium-ivory);
    --line: rgba(7, 26, 56, .13);
    --amber: var(--errailium-gold);
    --teal: var(--errailium-blue);
    --coral: var(--errailium-gold-dark);
}

::selection {
    color: #fff;
    background: var(--errailium-blue);
}

.public-body,
.public-showcase-body {
    --public-ink: var(--errailium-ink);
    --public-deep: var(--errailium-navy);
    --public-teal: var(--errailium-blue);
    --public-mint: var(--errailium-gold);
    --public-sand: #efd28e;
    --public-paper: var(--errailium-ivory);
    --showcase-ink: var(--errailium-ink);
    --showcase-muted: var(--errailium-muted);
    --showcase-line: rgba(7, 26, 56, .13);
    --showcase-mint: var(--errailium-gold);
    --showcase-mint-dark: var(--errailium-blue);
    --showcase-warm: var(--errailium-gold-dark);
    --showcase-paper: var(--errailium-ivory);
}

.platform-home-body {
    --platform-deep: var(--errailium-navy);
    --platform-ink: var(--errailium-ink);
    --platform-teal: var(--errailium-blue);
    --platform-mint: var(--errailium-gold);
    --platform-sand: var(--errailium-gold-dark);
    --platform-cream: var(--errailium-gold-soft);
    --landing-ink: var(--errailium-ink);
    --landing-muted: var(--errailium-muted);
    --landing-line: rgba(7, 26, 56, .13);
    --landing-paper: var(--errailium-ivory);
    --landing-mint: var(--errailium-gold);
    --landing-mint-dark: var(--errailium-blue);
    --landing-amber: var(--errailium-gold-dark);
    --landing-deep: var(--errailium-navy);
}

.school-public-body {
    --school-deep: var(--errailium-navy);
    --school-gold: var(--errailium-gold);
}

.parent-public-body {
    --parent-coral: var(--errailium-gold-dark);
    --parent-coral-dark: #81500c;
    --parent-coral-soft: var(--errailium-gold-soft);
    --parent-teal: var(--errailium-blue);
    --parent-ink: var(--errailium-ink);
}

.brand {
    color: var(--errailium-navy);
}

.brand-emblem {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(216, 164, 58, .4);
    border-radius: 16px;
    background:
        radial-gradient(circle at 75% 18%, rgba(216, 164, 58, .2), transparent 44%),
        #fffaf0;
    box-shadow: 0 9px 24px rgba(7, 26, 56, .12);
}

.brand-emblem img {
    display: block;
    width: 92%;
    height: 92%;
    object-fit: contain;
}

.brand-copy {
    display: grid;
    gap: .05rem;
    min-width: 0;
    line-height: 1;
}

.brand-copy strong {
    color: var(--errailium-navy);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.12rem;
    font-weight: 700;
    letter-spacing: .09em;
    line-height: 1;
}

.brand-copy small {
    color: var(--errailium-gold-dark);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .035em;
    line-height: 1.25;
}

.landing-v31-brand-signature {
    display: block;
    width: min(330px, 70%);
    height: auto;
    margin: 0 0 .7rem;
    object-fit: contain;
    object-position: left center;
}

.landing-v31-body .topbar::before,
.school-public-body .topbar::before,
.public-showcase-body .topbar::before,
.public-showcase-body .photographer-public-topbar::before {
    border-bottom-color: rgba(7, 26, 56, .12);
    background: rgba(251, 248, 241, .96);
    box-shadow: 0 10px 34px rgba(7, 26, 56, .08);
}

.landing-nav-link,
.photographer-nav-link,
.photographer-nav-dropdown summary {
    color: #34445f;
}

.landing-nav-link:hover,
.landing-nav-link:focus-visible,
.photographer-nav-link:hover,
.photographer-nav-link:focus-visible,
.photographer-nav-dropdown summary:hover,
.photographer-nav-dropdown summary:focus-visible {
    color: var(--errailium-navy);
    background: var(--errailium-gold-soft);
}

.landing-nav-link.is-current,
.photographer-nav-link.is-current,
.photographer-nav-dropdown.is-current > summary {
    color: #fff;
    border-color: var(--errailium-navy);
    background: var(--errailium-navy);
    box-shadow: 0 8px 20px rgba(7, 26, 56, .15);
}

.landing-login,
.public-login-link,
.photographer-login-link {
    border-color: rgba(7, 26, 56, .16);
    color: var(--errailium-navy);
    background: rgba(255, 255, 255, .76);
}

.landing-login:hover,
.landing-login:focus-visible,
.public-login-link:hover,
.public-login-link:focus-visible {
    border-color: var(--errailium-gold);
    background: var(--errailium-gold-soft);
}

.photographer-contact-link,
.public-button-primary,
.landing-v31-button.is-primary,
.gateway-button,
.primary-button,
.simple-login-button {
    border-color: var(--errailium-navy) !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--errailium-blue), var(--errailium-navy)) !important;
    box-shadow: 0 13px 28px rgba(7, 26, 56, .2) !important;
}

.photographer-contact-link:hover,
.photographer-contact-link:focus-visible,
.public-button-primary:hover,
.public-button-primary:focus-visible,
.landing-v31-button.is-primary:hover,
.landing-v31-button.is-primary:focus-visible,
.gateway-button:hover,
.gateway-button:focus-visible,
.primary-button:hover,
.primary-button:focus-visible,
.simple-login-button:hover,
.simple-login-button:focus-visible {
    border-color: var(--errailium-gold-dark) !important;
    color: var(--errailium-navy) !important;
    background: linear-gradient(135deg, #edd087, var(--errailium-gold)) !important;
}

.landing-v31-kicker,
.public-kicker,
.gateway-kicker,
.eyebrow {
    color: var(--errailium-gold-dark);
}

.landing-v31-kicker > span,
.photographer-page-progress > span {
    background: linear-gradient(90deg, var(--errailium-gold-dark), var(--errailium-gold));
}

.landing-v31-space-card,
.public-formula-card,
.public-product-card,
.school-entry-preview,
.parent-entry-preview {
    border-color: rgba(7, 26, 56, .13);
    box-shadow: 0 22px 54px rgba(7, 26, 56, .09);
}

.landing-v31-space-card.is-school,
.landing-v31-space-card.is-photo {
    border-top-color: var(--errailium-blue);
}

.landing-v31-space-card.is-parent {
    border-top-color: var(--errailium-gold);
}

.landing-v31-journey,
.landing-v31-final {
    background:
        radial-gradient(circle at 88% 10%, rgba(216, 164, 58, .2), transparent 25rem),
        linear-gradient(145deg, #102b52, var(--errailium-navy));
}

.landing-v31-tool-mark,
.landing-v31-space-icon {
    color: var(--errailium-navy);
    border-color: rgba(216, 164, 58, .35);
    background: var(--errailium-gold-soft);
}

.showcase-footer {
    border-color: rgba(216, 164, 58, .2);
    color: rgba(255, 255, 255, .78);
    background:
        radial-gradient(circle at 8% 0, rgba(216, 164, 58, .18), transparent 22rem),
        var(--errailium-navy);
}

.showcase-footer .brand-copy strong,
.showcase-footer > div > strong,
.showcase-footer a {
    color: #fff;
}

.showcase-footer .brand-copy small,
.showcase-footer-brand p {
    color: rgba(255, 255, 255, .64);
}

.showcase-footer .brand-emblem {
    border-color: rgba(216, 164, 58, .48);
    background: rgba(255, 250, 240, .96);
}

.landing-v31-footer .brand {
    gap: .7rem;
}

body.login-body-school {
    background:
        linear-gradient(105deg, rgba(7, 26, 56, .44) 0%, rgba(7, 26, 56, .12) 44%, rgba(250, 247, 239, .76) 100%),
        url("/static/portal/media/login-school-v35.webp") center / cover fixed no-repeat;
}

body.login-body-professional {
    background:
        linear-gradient(105deg, rgba(4, 16, 36, .54) 0%, rgba(7, 26, 56, .3) 48%, rgba(7, 26, 56, .68) 100%),
        url("/static/portal/media/login-professional-v35.webp") center / cover fixed no-repeat;
}

body.login-body .login-story-school,
body.login-body .login-story-professional {
    background-color: var(--errailium-navy);
    background-blend-mode: multiply;
}

.login-story-brand .simple-login-mark {
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(216, 164, 58, .5);
    background: rgba(255, 250, 240, .94);
}

.login-story-brand .simple-login-mark img {
    width: 94%;
    height: 94%;
    object-fit: contain;
}

.login-story-brand strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
    letter-spacing: .08em;
}

.simple-field input:focus,
.public-contact-form input:focus,
.public-contact-form select:focus,
.public-contact-form textarea:focus {
    border-color: var(--errailium-gold);
    box-shadow: 0 0 0 4px rgba(216, 164, 58, .13);
    outline: 0;
}

@media (max-width: 780px) {
    .brand-emblem {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
        border-radius: 14px;
    }

    .brand-copy strong {
        font-size: .98rem;
        letter-spacing: .065em;
    }

    .brand-copy small {
        font-size: .62rem;
    }

    .landing-v31-brand-signature {
        width: min(280px, 78%);
        margin-bottom: .45rem;
    }
}

@media (max-width: 420px) {
    .brand-copy small {
        display: none;
    }

    .brand-copy strong {
        font-size: .9rem;
    }
}

/* Commercial request: compact three-step flow */
.public-contact {
    grid-template-columns: 1fr;
    gap: 1rem;
}

.public-contact-copy {
    position: static;
    top: auto;
    display: grid;
    grid-template-columns: minmax(320px, .9fr) minmax(0, 1.1fr);
    gap: 1.5rem;
    align-items: end;
    border: 1px solid rgba(18,51,59,.1);
    border-radius: 24px;
    padding: 1.35rem 1.5rem;
    background: linear-gradient(125deg, #f8fcfb, #edf7f4);
}

.public-contact-intro {
    display: grid;
    gap: .45rem;
}

.public-contact-intro h2,
.public-contact-intro p {
    margin: 0;
}

.public-contact-intro > p:last-child {
    max-width: 720px;
    color: #627a7f;
    line-height: 1.6;
}

.public-contact-outcomes {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
    margin: 0;
}

.public-contact-outcomes li {
    grid-template-columns: auto 1fr;
    min-height: 74px;
    border: 1px solid rgba(18,51,59,.09);
    border-radius: 13px;
    padding: .7rem;
    background: rgba(255,255,255,.7);
}

.public-contact-form-card {
    border-radius: 24px;
    padding: 1.25rem;
}

.public-wizard-progress {
    grid-template-columns: auto 1fr auto 1fr auto;
}

.public-formula-panel {
    background: linear-gradient(130deg, #f9fcfb, #f1f8f6);
}

.public-formula-choice-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .55rem;
}

.public-formula-choice {
    position: relative;
    display: grid;
    min-height: 78px;
    border: 1px solid #d8e3e1;
    border-radius: 13px;
    padding: .75rem;
    background: #fff;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.public-formula-choice:hover {
    border-color: rgba(8,124,112,.42);
}

.public-formula-choice.is-selected {
    border-color: #087c70;
    background: #eaf8f3;
    box-shadow: 0 0 0 3px rgba(8,124,112,.08);
}

.public-formula-choice input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.public-formula-choice > span {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .22rem .55rem;
    align-content: center;
}

.public-formula-choice > span::after {
    display: grid;
    width: 20px;
    height: 20px;
    grid-row: 1 / span 2;
    grid-column: 2;
    place-items: center;
    border: 1px solid #cbd9d6;
    border-radius: 50%;
    color: transparent;
    background: #fff;
    content: "\2713";
    font-size: .7rem;
    font-weight: 900;
}

.public-formula-choice.is-selected > span::after {
    border-color: #087c70;
    color: #fff;
    background: #087c70;
}

.public-formula-choice input:focus-visible + span {
    border-radius: 8px;
    outline: 3px solid rgba(8,124,112,.18);
    outline-offset: 3px;
}

.public-formula-choice strong {
    color: var(--public-deep);
    font-size: .82rem;
}

.public-formula-choice small {
    color: #72868b;
    font-size: .68rem;
    line-height: 1.35;
}

.public-request-products-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, .75fr);
    gap: .7rem;
}

.public-request-products-layout .public-request-option-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-request-products-layout .is-standalone .public-request-option-grid {
    grid-template-columns: 1fr;
}

.public-request-option {
    min-height: 58px;
    padding: .58rem .65rem;
}

.public-request-details-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.public-request-detail-panel {
    display: grid;
    gap: .85rem;
    align-content: start;
    border: 1px solid #dce6e4;
    border-radius: 16px;
    padding: 1rem;
    background: #fbfdfc;
}

.public-request-detail-head {
    display: grid;
    gap: .14rem;
    border-bottom: 1px solid #e1e8e6;
    padding-bottom: .7rem;
}

.public-request-detail-head strong {
    color: var(--public-deep);
    font-size: .9rem;
}

.public-request-detail-head small {
    color: #74898d;
    font-size: .7rem;
    line-height: 1.4;
}

.public-request-review {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-request-review > div.is-products {
    grid-column: auto;
}

@media (max-width: 1100px) {
    .public-contact-copy,
    .public-request-products-layout,
    .public-request-details-grid {
        grid-template-columns: 1fr;
    }

    .public-formula-choice-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-request-products-layout .public-request-option-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-request-products-layout .is-standalone .public-request-option-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 780px) {
    .public-contact-copy {
        gap: 1rem;
        padding: 1rem;
    }

    .public-contact-outcomes,
    .public-formula-choice-grid,
    .public-request-products-layout .public-request-option-grid,
    .public-request-products-layout .is-standalone .public-request-option-grid,
    .public-request-review {
        grid-template-columns: 1fr;
    }

    .public-contact-outcomes li {
        min-height: 0;
    }

    .public-request-review > div.is-products {
        grid-column: auto;
    }
}

/* Contextual photographic backgrounds v27 */
.public-showcase-body {
    --showcase-photo: none;
    --showcase-photo-position: center;
    position: relative;
    isolation: isolate;
    overflow-x: clip;
}

.public-showcase-body.photo-backdrop-studio {
    --showcase-photo: url("/static/portal/media/presentation-studio.webp");
    --showcase-photo-position: center 42%;
}

.public-showcase-body.photo-backdrop-campaign {
    --showcase-photo: url("/static/portal/media/presentation-campaign.webp");
    --showcase-photo-position: center 54%;
}

.public-showcase-body.photo-backdrop-school {
    --showcase-photo: url("/static/portal/media/presentation-school.webp");
    --showcase-photo-position: center 62%;
}

.public-showcase-body::before {
    position: absolute;
    z-index: 0;
    top: 78px;
    right: 0;
    left: 0;
    height: min(900px, 88vh);
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(247, 250, 247, .93), rgba(243, 248, 245, .72) 50%, rgba(248, 244, 237, .9)),
        linear-gradient(180deg, rgba(247, 250, 247, .22), rgba(239, 245, 241, .62)),
        var(--showcase-photo);
    background-position: center, center, var(--showcase-photo-position);
    background-size: cover;
    filter: saturate(.72) contrast(.9);
    opacity: .46;
    mask-image: linear-gradient(180deg, #000 0%, #000 66%, transparent 100%);
    content: "";
}

.public-showcase-body .page-shell {
    position: relative;
    z-index: 1;
}

.pricing-showcase-body .pricing-simple-hero,
.contact-streamlined-body .contact-simple-hero,
.faq-showcase-body .faq-hero,
.software-showcase-body .software-index-hero,
.software-detail-body .software-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.pricing-showcase-body .pricing-simple-hero::after,
.contact-streamlined-body .contact-simple-hero::after,
.faq-showcase-body .faq-hero::after,
.software-showcase-body .software-index-hero::after,
.software-detail-body .software-hero::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(252, 253, 251, .98) 0%, rgba(250, 252, 249, .93) 46%, rgba(247, 250, 247, .68) 100%),
        var(--showcase-photo);
    background-position: center, var(--showcase-photo-position);
    background-size: cover;
    filter: saturate(.72) contrast(.92);
    opacity: .48;
    mask-image: linear-gradient(90deg, transparent 0%, transparent 42%, #000 72%, #000 100%);
    content: "";
}

.software-showcase-body .software-index-hero::after,
.software-detail-body .software-hero::after {
    background:
        linear-gradient(90deg, rgba(9, 49, 57, .94) 0%, rgba(8, 44, 52, .82) 48%, rgba(8, 42, 50, .46) 100%),
        var(--showcase-photo);
    filter: saturate(.76) contrast(1.02);
    opacity: .64;
}

.pricing-showcase-body .pricing-simple-hero > *,
.contact-streamlined-body .contact-simple-hero > *,
.faq-showcase-body .faq-hero > *,
.software-showcase-body .software-index-hero > *,
.software-detail-body .software-hero > * {
    position: relative;
    z-index: 1;
}

@media (max-width: 780px) {
    .public-showcase-body::before {
        top: 66px;
        height: 620px;
        opacity: .3;
    }

    .pricing-showcase-body .pricing-simple-hero::after,
    .contact-streamlined-body .contact-simple-hero::after,
    .faq-showcase-body .faq-hero::after,
    .software-showcase-body .software-index-hero::after,
    .software-detail-body .software-hero::after {
        opacity: .26;
        mask-image: linear-gradient(180deg, transparent 0%, transparent 58%, #000 100%);
    }
}

@media (prefers-reduced-data: reduce) {
    .public-showcase-body::before,
    .pricing-showcase-body .pricing-simple-hero::after,
    .contact-streamlined-body .contact-simple-hero::after,
    .faq-showcase-body .faq-hero::after,
    .software-showcase-body .software-index-hero::after,
    .software-detail-body .software-hero::after {
        background-image: none;
    }
}

/* Isolated school landing navigation v28 */
.school-public-brand .school-brand-copy {
    display: grid;
    gap: .05rem;
    line-height: 1;
}

.school-public-brand .school-brand-copy strong {
    font-size: 1rem;
    letter-spacing: -.015em;
}

.school-public-brand .school-brand-copy small {
    color: #71858a;
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.school-public-body .school-entry-topnav {
    display: flex;
}

.school-public-body .school-entry-topnav .public-login-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-inline: 1.1rem;
}

@media (max-width: 700px) {
    .school-public-brand .school-brand-copy small {
        display: none;
    }

    .school-public-body .school-entry-topnav .public-login-link {
        min-height: 40px;
        padding: .55rem .8rem;
        font-size: .78rem;
    }
}

/* Visible photographic canvas and corrected public navigation v29 */
.photo-backdrop-studio {
    --showcase-photo: url("/static/portal/media/presentation-studio.webp");
    --showcase-photo-position: center 42%;
}

.photo-backdrop-campaign {
    --showcase-photo: url("/static/portal/media/presentation-campaign.webp");
    --showcase-photo-position: center 54%;
}

.photo-backdrop-school {
    --showcase-photo: url("/static/portal/media/presentation-school.webp");
    --showcase-photo-position: center 62%;
}

.platform-home-body,
.school-public-body {
    position: relative;
    isolation: isolate;
    overflow-x: clip;
}

.platform-home-body::after,
.school-public-body::after {
    position: fixed;
    z-index: 0;
    top: 78px;
    right: 0;
    bottom: 0;
    left: 0;
    height: auto;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(247, 249, 244, .8) 0%, rgba(244, 248, 244, .3) 52%, rgba(247, 242, 234, .46) 100%),
        linear-gradient(180deg, rgba(247, 249, 244, .08) 0%, rgba(242, 247, 243, .2) 64%, #f4f7f4 100%),
        var(--showcase-photo);
    background-position: center, center, var(--showcase-photo-position);
    background-size: cover;
    filter: saturate(.82) contrast(.94);
    opacity: .88;
    mask-image: none;
    content: "";
}

.platform-home-body .page-shell,
.school-public-body .page-shell {
    position: relative;
    z-index: 1;
}

.public-showcase-body::before {
    position: fixed;
    bottom: 0;
    height: auto;
    background:
        linear-gradient(90deg, rgba(247, 250, 247, .78) 0%, rgba(243, 248, 245, .28) 54%, rgba(248, 244, 237, .5) 100%),
        linear-gradient(180deg, rgba(247, 250, 247, .06) 0%, rgba(239, 245, 241, .22) 70%, #eef4f1 100%),
        var(--showcase-photo);
    filter: saturate(.82) contrast(.95);
    opacity: .9;
    mask-image: none;
}

.pricing-showcase-body {
    --showcase-hero-photo: url("/static/portal/media/presentation-school.webp");
}

.contact-streamlined-body {
    --showcase-hero-photo: url("/static/portal/media/presentation-campaign.webp");
}

.faq-showcase-body {
    --showcase-hero-photo: url("/static/portal/media/presentation-school.webp");
}

.software-showcase-body,
.software-detail-body,
.school-public-body {
    --showcase-hero-photo: url("/static/portal/media/presentation-studio.webp");
}

.pricing-showcase-body .pricing-simple-hero::after,
.contact-streamlined-body .contact-simple-hero::after,
.faq-showcase-body .faq-hero::after {
    background:
        linear-gradient(90deg, rgba(252, 253, 251, .98) 0%, rgba(250, 252, 249, .9) 42%, rgba(247, 250, 247, .24) 100%),
        var(--showcase-hero-photo);
    filter: saturate(.86) contrast(.98);
    opacity: .9;
    mask-image: linear-gradient(90deg, transparent 0%, transparent 34%, #000 66%, #000 100%);
}

.software-showcase-body .software-index-hero::after,
.software-detail-body .software-hero::after {
    background:
        linear-gradient(90deg, rgba(9, 49, 57, .96) 0%, rgba(8, 44, 52, .76) 44%, rgba(8, 42, 50, .18) 100%),
        var(--showcase-hero-photo);
    filter: saturate(.9) contrast(1.04);
    opacity: .92;
    mask-image: linear-gradient(90deg, transparent 0%, transparent 28%, #000 62%, #000 100%);
}

.photographer-overview-body .photographer-overview-hero,
.solution-showcase-body .showcase-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.photographer-overview-body .photographer-overview-hero::after,
.solution-showcase-body .showcase-hero::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(8, 48, 56, .98) 0%, rgba(8, 45, 53, .84) 46%, rgba(8, 42, 50, .3) 100%),
        url("/static/portal/media/presentation-campaign.webp");
    background-position: center, center 54%;
    background-size: cover;
    filter: saturate(.82) contrast(1.02);
    opacity: .54;
    mask-image: linear-gradient(90deg, transparent 0%, transparent 42%, #000 72%, #000 100%);
    content: "";
}

.solution-showcase-body .showcase-hero::after {
    background:
        linear-gradient(90deg, rgba(252, 253, 251, .98) 0%, rgba(248, 251, 248, .88) 48%, rgba(247, 250, 247, .26) 100%),
        url("/static/portal/media/presentation-studio.webp");
    background-position: center, center 42%;
    opacity: .66;
}

.photographer-overview-body .photographer-overview-hero::after {
    content: none;
}

.photographer-overview-body .photographer-overview-hero > *,
.solution-showcase-body .showcase-hero > * {
    position: relative;
    z-index: 1;
}

.school-entry-hero {
    isolation: isolate;
}

.school-entry-hero::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, .98) 0%, rgba(250, 252, 249, .86) 46%, rgba(250, 251, 248, .2) 100%),
        var(--showcase-hero-photo);
    background-position: center, var(--showcase-photo-position);
    background-size: cover;
    filter: saturate(.84) contrast(.96);
    opacity: .82;
    mask-image: linear-gradient(90deg, transparent 0%, transparent 38%, #000 72%, #000 100%);
    content: "";
}

.school-entry-hero > * {
    position: relative;
    z-index: 1;
}

@media (max-width: 780px) {
    .platform-home-body::after,
    .school-public-body::after,
    .public-showcase-body::before {
        top: 64px;
        bottom: 0;
        height: auto;
        opacity: .66;
    }

    .pricing-showcase-body .pricing-simple-hero::after,
    .contact-streamlined-body .contact-simple-hero::after,
    .faq-showcase-body .faq-hero::after,
    .software-showcase-body .software-index-hero::after,
    .software-detail-body .software-hero::after,
    .photographer-overview-body .photographer-overview-hero::after,
    .solution-showcase-body .showcase-hero::after,
    .school-entry-hero::after {
        opacity: .52;
        mask-image: linear-gradient(180deg, transparent 0%, transparent 48%, #000 78%, #000 100%);
    }
}

/* Keep the portal redesign above legacy page rules. */
body.school-public-body .school-entry-preview {
    overflow: visible;
    border: 0;
    background: rgba(248, 251, 250, .96);
    box-shadow:
        0 35px 85px rgba(16, 60, 69, .16),
        0 0 0 1px rgba(16, 60, 69, .11);
}

body.school-public-body .school-entry-preview header {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    border-radius: 30px 30px 0 0;
    padding: 1rem 1.25rem;
}

body.school-public-body .school-entry-preview header span {
    color: rgba(255, 255, 255, .78);
}

body.school-public-body .school-entry-help {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1.35rem;
    padding: 1.4rem 1.5rem;
}

body.login-body .page-shell {
    width: min(1120px, calc(100% - 2.4rem));
    min-height: 100vh;
    padding: 1.15rem 0;
}

body.login-body .page-content {
    display: block;
    width: 100%;
}

body.login-body .login-stage {
    width: 100%;
    min-height: min(655px, calc(100vh - 58px));
}

@media (max-width: 880px) {
    body.school-public-body .school-entry-help {
        grid-template-columns: auto 1fr;
    }

    body.school-public-body .school-entry-help > a {
        grid-column: 1 / -1;
    }

    body.login-body .page-shell {
        width: min(680px, calc(100% - 2rem));
        padding: 1rem 0;
    }

    body.login-body .login-stage {
        min-height: 0;
    }
}

@media (max-width: 700px) {
    body.school-public-body .school-entry-preview header {
        border-radius: 22px 22px 0 0;
    }

    body.school-public-body .school-entry-help {
        grid-template-columns: 1fr;
    }

    body.school-public-body .school-entry-help > a {
        grid-column: auto;
    }

    body.login-body .page-shell {
        width: min(100% - 1rem, 680px);
        padding: .5rem 0;
    }
}

/* Photographer overview v12 */

.photographer-overview-body .page-content {
    gap: clamp(4.5rem, 7vw, 7.5rem);
}

.photographer-page-progress {
    position: fixed;
    z-index: 120;
    height: 3px;
    top: 0;
    right: 0;
    left: 0;
    pointer-events: none;
}

.photographer-page-progress span {
    display: block;
    width: 100%;
    height: 100%;
    transform: scaleX(0);
    transform-origin: left center;
    background: linear-gradient(90deg, #ee9d3a, #61d1b0);
}

.photographer-overview-messages {
    display: grid;
    gap: .65rem;
    margin-bottom: -2.5rem;
}

.photographer-overview-message {
    border: 1px solid #b9ddd2;
    border-radius: 16px;
    padding: .85rem 1rem;
    color: #0b4a48;
    background: #edf9f5;
    box-shadow: 0 12px 30px rgba(8, 42, 50, .08);
    font-weight: 700;
}

.photographer-overview-message.is-error {
    border-color: #efc5bb;
    color: #8a3427;
    background: #fff3f0;
}

.photographer-overview-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.03fr) minmax(460px, .97fr);
    gap: clamp(2.5rem, 6vw, 7rem);
    align-items: center;
    min-height: min(720px, calc(100vh - 8rem));
    overflow: hidden;
    border-radius: 42px;
    padding: clamp(2.5rem, 5vw, 5.5rem);
    color: #fff;
    background:
        radial-gradient(circle at 3% 100%, rgba(95, 211, 176, .22), transparent 24rem),
        radial-gradient(circle at 92% 0, rgba(239, 157, 58, .12), transparent 23rem),
        linear-gradient(135deg, #0b3a43, #082a32);
    box-shadow: 0 36px 90px rgba(8, 42, 50, .24);
}

.photographer-overview-hero::before {
    position: absolute;
    width: 34rem;
    height: 34rem;
    left: -22rem;
    bottom: -24rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    box-shadow:
        0 0 0 5rem rgba(255, 255, 255, .025),
        0 0 0 10rem rgba(255, 255, 255, .015);
    content: "";
}

.photographer-overview-copy {
    position: relative;
    z-index: 2;
    animation: photographer-copy-in .65s ease both;
}

.photographer-overview-hero .public-kicker {
    color: #91e1c9;
}

.photographer-overview-hero h1 {
    max-width: 820px;
    margin: .9rem 0 1.3rem;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(3.6rem, 5.7vw, 6.4rem);
    letter-spacing: -.06em;
    line-height: .9;
}

.photographer-overview-lead {
    max-width: 730px;
    margin: 0;
    color: rgba(255, 255, 255, .69);
    font-size: clamp(1rem, 1.3vw, 1.22rem);
    line-height: 1.7;
}

.photographer-overview-hero .public-button-secondary {
    border-color: rgba(255, 255, 255, .25);
    color: #fff;
    background: rgba(255, 255, 255, .06);
}

.photographer-overview-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
    margin: 2rem 0 0;
}

.photographer-overview-facts > div {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .7rem;
    border-top: 1px solid rgba(255, 255, 255, .14);
    padding-top: .85rem;
}

.photographer-overview-facts dt {
    color: #78d9bd;
    font-size: .65rem;
    font-weight: 900;
}

.photographer-overview-facts dd {
    display: grid;
    gap: .25rem;
    margin: 0;
}

.photographer-overview-facts strong {
    font-size: .76rem;
}

.photographer-overview-facts small {
    color: rgba(255, 255, 255, .54);
    font-size: .65rem;
    line-height: 1.45;
}

.photographer-overview-visual {
    position: relative;
    z-index: 1;
    min-height: 560px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 34px;
    margin: 0;
    background: #153f46;
    box-shadow: 0 30px 75px rgba(0, 0, 0, .28);
    animation: photographer-visual-in .75s .08s ease both;
}

.photographer-overview-visual::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(6, 37, 44, .08), rgba(6, 37, 44, .62));
    content: "";
}

.photographer-overview-visual > img {
    width: 100%;
    height: 560px;
    object-fit: cover;
}

.photographer-visual-card {
    position: absolute;
    z-index: 2;
    display: grid;
    width: min(300px, calc(100% - 3rem));
    gap: .25rem;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 18px;
    padding: 1rem;
    background: rgba(8, 47, 55, .78);
    backdrop-filter: blur(14px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, .2);
}

.photographer-visual-card.is-top {
    top: 1.3rem;
    right: 1.3rem;
}

.photographer-visual-card.is-bottom {
    bottom: 4.5rem;
    left: 1.3rem;
}

.photographer-visual-card > span {
    color: #8de2c8;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.photographer-visual-card strong {
    margin-top: .25rem;
    font-size: .88rem;
}

.photographer-visual-card small {
    color: rgba(255, 255, 255, .58);
    font-size: .68rem;
    line-height: 1.45;
}

.photographer-overview-visual figcaption {
    position: absolute;
    z-index: 2;
    display: flex;
    gap: .55rem;
    right: 1.3rem;
    bottom: 1.2rem;
    left: 1.3rem;
    align-items: center;
    color: rgba(255, 255, 255, .72);
    font-size: .68rem;
}

.photographer-overview-visual figcaption i {
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    background: #66d2b2;
    box-shadow: 0 0 0 .3rem rgba(102, 210, 178, .15);
}

@keyframes photographer-copy-in {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes photographer-visual-in {
    from { opacity: 0; transform: translateX(24px); }
    to { opacity: 1; transform: translateX(0); }
}

.photographer-overview-nav {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    border: 1px solid var(--showcase-line);
    border-radius: 26px;
    padding: .7rem;
    background: rgba(255, 255, 255, .78);
    box-shadow: 0 18px 48px rgba(11, 48, 56, .07);
}

.photographer-overview-nav a {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    min-height: 78px;
    border: 1px solid transparent;
    border-radius: 17px;
    padding: .8rem;
    color: var(--showcase-ink);
    background: rgba(248, 251, 249, .7);
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.photographer-overview-nav a:hover {
    border-color: rgba(8, 124, 112, .22);
    background: #fff;
    transform: translateY(-2px);
}

.photographer-overview-nav a > span {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    border-radius: 11px;
    color: #08766c;
    background: #dff4ed;
    font-size: .66rem;
    font-weight: 900;
}

.photographer-overview-nav p,
.photographer-overview-nav small {
    display: block;
    margin: 0;
}

.photographer-overview-nav strong {
    font-size: .83rem;
}

.photographer-overview-nav small {
    margin-top: .2rem;
    color: var(--showcase-muted);
    font-size: .66rem;
}

.photographer-campaign-story {
    display: grid;
    grid-template-columns: minmax(280px, .72fr) minmax(360px, 1fr) minmax(380px, 1.08fr);
    gap: clamp(2rem, 4vw, 4.5rem);
    align-items: stretch;
    scroll-margin-top: 7rem;
}

.photographer-campaign-heading {
    display: flex;
    flex-direction: column;
    align-items: start;
    padding: 1rem 0;
}

.photographer-campaign-heading h2,
.photographer-pillars h2,
.photographer-spaces h2,
.photographer-software-chain h2,
.photographer-offer-preview h2,
.photographer-trust-band h2,
.photographer-final-contact h2,
.photographer-configured-section h2 {
    margin: .7rem 0 1rem;
    color: var(--showcase-ink);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.7rem, 4.3vw, 4.7rem);
    letter-spacing: -.05em;
    line-height: .95;
}

.photographer-campaign-heading > p:not(.public-kicker),
.photographer-spaces-intro > p:not(.public-kicker),
.photographer-software-heading > p:not(.public-kicker),
.photographer-final-contact > div > p:not(.public-kicker) {
    margin: 0 0 1.2rem;
    color: var(--showcase-muted);
    line-height: 1.7;
}

.photographer-campaign-heading .public-text-link {
    margin-top: auto;
}

.photographer-campaign-image {
    position: relative;
    min-height: 590px;
    overflow: hidden;
    border-radius: 30px;
    margin: 0;
    background: #dce9e5;
    box-shadow: 0 26px 65px rgba(11, 48, 56, .13);
}

.photographer-campaign-image::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 54%, rgba(7, 43, 50, .68));
    content: "";
}

.photographer-campaign-image img {
    width: 100%;
    height: 590px;
    object-fit: cover;
}

.photographer-campaign-image figcaption {
    position: absolute;
    z-index: 1;
    right: 1.4rem;
    bottom: 1.3rem;
    left: 1.4rem;
    color: #fff;
    font-size: .78rem;
    line-height: 1.5;
}

.photographer-campaign-steps {
    display: grid;
    align-content: stretch;
    margin: 0;
    padding: 0;
    list-style: none;
}

.photographer-campaign-steps li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    border-top: 1px solid var(--showcase-line);
    padding: 1rem .2rem;
}

.photographer-campaign-steps li:last-child {
    border-bottom: 1px solid var(--showcase-line);
}

.photographer-campaign-steps li > span {
    display: grid;
    width: 2.4rem;
    height: 2.4rem;
    place-items: center;
    border-radius: 12px;
    color: #08766c;
    background: #dff4ed;
    font-size: .65rem;
    font-weight: 900;
}

.photographer-campaign-steps li:nth-child(2n) > span {
    color: #975f20;
    background: #fff0dc;
}

.photographer-campaign-steps small {
    color: #9a6729;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.photographer-campaign-steps strong {
    display: block;
    margin: .25rem 0 .35rem;
    color: var(--showcase-ink);
    font-size: .92rem;
}

.photographer-campaign-steps p {
    margin: 0;
    color: var(--showcase-muted);
    font-size: .75rem;
    line-height: 1.55;
}

.photographer-pillar-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.photographer-pillar-grid article {
    position: relative;
    display: flex;
    min-height: 350px;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid var(--showcase-line);
    border-radius: 29px;
    padding: 1.7rem;
    background: rgba(255, 255, 255, .84);
    box-shadow: 0 18px 45px rgba(11, 48, 56, .055);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.photographer-pillar-grid article::after {
    position: absolute;
    width: 11rem;
    height: 11rem;
    right: -5rem;
    bottom: -6rem;
    border-radius: 50%;
    background: rgba(102, 210, 178, .1);
    content: "";
}

.photographer-pillar-grid article:nth-child(2)::after {
    background: rgba(239, 157, 58, .1);
}

.photographer-pillar-grid article:hover {
    border-color: rgba(8, 124, 112, .23);
    box-shadow: 0 26px 60px rgba(11, 48, 56, .1);
    transform: translateY(-4px);
}

.photographer-pillar-grid article > span {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border-radius: 15px;
    color: #08766c;
    background: #dff4ed;
    font-size: .72rem;
    font-weight: 900;
}

.photographer-pillar-grid article > small {
    margin-top: 1.4rem;
    color: #9a6729;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.photographer-pillar-grid h3 {
    max-width: 360px;
    margin: .65rem 0 .8rem;
    color: var(--showcase-ink);
    font-size: 1.45rem;
    line-height: 1.15;
}

.photographer-pillar-grid p {
    margin: 0;
    color: var(--showcase-muted);
    font-size: .86rem;
    line-height: 1.65;
}

.photographer-pillar-grid a {
    position: relative;
    z-index: 1;
    margin-top: auto;
    padding-top: 1.4rem;
    color: #08766c;
    font-size: .78rem;
    font-weight: 850;
}

.photographer-configured-section > div {
    display: grid;
    border-top: 1px solid var(--showcase-line);
}

.photographer-configured-section article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1.2rem;
    align-items: start;
    border-bottom: 1px solid var(--showcase-line);
    padding: 1.3rem .2rem;
}

.photographer-configured-section article > span {
    color: #08766c;
    font-size: .7rem;
    font-weight: 900;
}

.photographer-configured-section article small {
    color: #9a6729;
    font-size: .63rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.photographer-configured-section article h3 {
    margin: .35rem 0 .45rem;
    color: var(--showcase-ink);
}

.photographer-configured-section article p {
    max-width: 850px;
    margin: 0;
    color: var(--showcase-muted);
    line-height: 1.65;
}

.photographer-configured-section article > a {
    color: #08766c;
    font-size: .78rem;
    font-weight: 850;
}

.photographer-spaces {
    display: grid;
    grid-template-columns: minmax(300px, .58fr) minmax(0, 1.42fr);
    gap: clamp(2.5rem, 6vw, 6rem);
    scroll-margin-top: 7rem;
}

.photographer-spaces-intro {
    align-self: center;
}

.photographer-space-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.photographer-space-cards article {
    display: flex;
    min-height: 430px;
    flex-direction: column;
    border: 1px solid var(--showcase-line);
    border-radius: 27px;
    padding: 1.45rem;
    background: #fff;
}

.photographer-space-cards article.is-studio {
    color: #fff;
    background:
        radial-gradient(circle at 100% 0, rgba(102, 210, 178, .18), transparent 15rem),
        #0c3841;
}

.photographer-space-cards article.is-parent {
    background:
        radial-gradient(circle at 100% 0, rgba(239, 157, 58, .14), transparent 14rem),
        #fffaf3;
}

.photographer-space-cards header {
    display: flex;
    gap: .65rem;
    align-items: center;
}

.photographer-space-cards header > span {
    display: grid;
    width: 2.55rem;
    height: 2.55rem;
    place-items: center;
    border-radius: 13px;
    color: #08766c;
    background: #dff4ed;
    font-size: .66rem;
    font-weight: 900;
}

.photographer-space-cards header small {
    color: #9a6729;
    font-size: .63rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.photographer-space-cards .is-studio header small {
    color: #8de2c8;
}

.photographer-space-cards h3 {
    margin: 1.6rem 0 .8rem;
    color: var(--showcase-ink);
    font-size: 1.35rem;
    line-height: 1.15;
}

.photographer-space-cards .is-studio h3 {
    color: #fff;
}

.photographer-space-cards p {
    margin: 0;
    color: var(--showcase-muted);
    font-size: .82rem;
    line-height: 1.65;
}

.photographer-space-cards .is-studio p {
    color: rgba(255, 255, 255, .63);
}

.photographer-space-cards ul {
    display: grid;
    gap: .55rem;
    margin: auto 0 0;
    padding: 1.4rem 0 0;
    list-style: none;
}

.photographer-space-cards li {
    border-top: 1px solid var(--showcase-line);
    padding-top: .55rem;
    color: #517076;
    font-size: .73rem;
}

.photographer-space-cards .is-studio li {
    border-color: rgba(255, 255, 255, .12);
    color: rgba(255, 255, 255, .67);
}

.photographer-space-cards article > a {
    margin-top: auto;
    padding-top: 1.4rem;
    color: #08766c;
    font-size: .76rem;
    font-weight: 850;
}

.photographer-software-chain {
    display: grid;
    grid-template-columns: minmax(310px, .62fr) minmax(0, 1.38fr);
    gap: clamp(2.5rem, 6vw, 6rem);
    align-items: center;
    border-radius: 38px;
    padding: clamp(2.3rem, 5vw, 5rem);
    color: #fff;
    background:
        radial-gradient(circle at 0 100%, rgba(102, 210, 178, .2), transparent 22rem),
        radial-gradient(circle at 100% 0, rgba(152, 114, 208, .16), transparent 20rem),
        linear-gradient(135deg, #0b3640, #102c36);
    box-shadow: 0 34px 80px rgba(7, 40, 47, .2);
    scroll-margin-top: 7rem;
}

.photographer-software-chain .public-kicker {
    color: #8de2c8;
}

.photographer-software-chain h2 {
    color: #fff;
}

.photographer-software-heading > p:not(.public-kicker) {
    color: rgba(255, 255, 255, .66);
}

.photographer-software-heading .public-button-secondary {
    border-color: rgba(255, 255, 255, .25);
    color: #fff;
    background: rgba(255, 255, 255, .06);
}

.photographer-software-route {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    gap: .7rem;
    align-items: center;
}

.photographer-software-route > a,
.photographer-software-route > div {
    display: grid;
    min-height: 260px;
    align-content: end;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 24px;
    padding: 1.3rem;
    color: #fff;
    background: rgba(255, 255, 255, .055);
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.photographer-software-route > a:hover {
    border-color: rgba(102, 210, 178, .42);
    background: rgba(255, 255, 255, .09);
    transform: translateY(-3px);
}

.photographer-software-route > a > span,
.photographer-software-route > div > span {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    border-radius: 11px;
    color: #08323a;
    background: #66d2b2;
    font-size: .65rem;
    font-weight: 900;
}

.photographer-software-route small {
    margin-top: 1.2rem;
    color: #8de2c8;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.photographer-software-route strong {
    margin: .4rem 0 .35rem;
    font-size: 1.25rem;
}

.photographer-software-route p {
    margin: 0;
    color: rgba(255, 255, 255, .55);
    font-size: .7rem;
    line-height: 1.5;
}

.photographer-software-route > i {
    color: rgba(255, 255, 255, .4);
    font-style: normal;
}

.photographer-offer-preview {
    scroll-margin-top: 7rem;
}

.photographer-offer-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.photographer-offer-list article {
    display: flex;
    min-height: 330px;
    flex-direction: column;
    border: 1px solid var(--showcase-line);
    border-radius: 26px;
    padding: 1.5rem;
    background: rgba(255, 255, 255, .82);
}

.photographer-offer-list article.is-featured {
    border-color: rgba(8, 124, 112, .34);
    background:
        radial-gradient(circle at 100% 0, rgba(102, 210, 178, .16), transparent 15rem),
        #f9fffc;
}

.photographer-offer-list header {
    display: flex;
    gap: .7rem;
    align-items: center;
    justify-content: space-between;
}

.photographer-offer-list header span,
.photographer-offer-list header b,
.photographer-offer-list .is-empty > span {
    border-radius: 999px;
    padding: .4rem .65rem;
    color: #8c5b22;
    background: #fff0dc;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.photographer-offer-list header b {
    color: #08766c;
    background: #dff4ed;
}

.photographer-offer-list h3 {
    margin: 1.4rem 0 .65rem;
    color: var(--showcase-ink);
    font-size: 1.55rem;
}

.photographer-offer-list > article > p {
    margin: 0;
    color: var(--showcase-muted);
    font-size: .82rem;
    line-height: 1.6;
}

.photographer-offer-list dl {
    display: grid;
    margin: 1.3rem 0;
}

.photographer-offer-list dl > div {
    display: flex;
    gap: .8rem;
    justify-content: space-between;
    border-top: 1px solid var(--showcase-line);
    padding: .65rem 0;
}

.photographer-offer-list dt {
    color: var(--showcase-muted);
    font-size: .7rem;
}

.photographer-offer-list dd {
    margin: 0;
    color: var(--showcase-ink);
    font-size: .73rem;
    font-weight: 900;
    text-align: right;
}

.photographer-offer-list article > a {
    margin-top: auto;
    color: #08766c;
    font-size: .76rem;
    font-weight: 850;
}

.photographer-all-offers {
    margin-top: 1.2rem;
}

.photographer-trust-band {
    display: grid;
    grid-template-columns: minmax(300px, .7fr) minmax(0, 1.3fr);
    gap: clamp(2.5rem, 6vw, 6rem);
    align-items: center;
    border: 1px solid var(--showcase-line);
    border-radius: 34px;
    padding: clamp(2rem, 4vw, 4rem);
    background:
        radial-gradient(circle at 100% 0, rgba(102, 210, 178, .13), transparent 20rem),
        #fff;
}

.photographer-trust-band h2 {
    font-size: clamp(2.3rem, 3.8vw, 4rem);
}

.photographer-trust-band ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.photographer-trust-band li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .75rem;
    min-height: 100px;
    align-items: start;
    border: 1px solid var(--showcase-line);
    border-radius: 18px;
    padding: 1rem;
    background: rgba(248, 251, 249, .78);
}

.photographer-trust-band li > span {
    color: #08766c;
    font-size: .66rem;
    font-weight: 900;
}

.photographer-trust-band li p {
    margin: 0;
    color: #45656b;
    font-size: .78rem;
    line-height: 1.55;
}

.photographer-final-contact {
    display: flex;
    gap: 3rem;
    align-items: center;
    justify-content: space-between;
    border-radius: 36px;
    padding: clamp(2.5rem, 5vw, 5rem);
    color: #fff;
    background:
        radial-gradient(circle at 0 100%, rgba(239, 157, 58, .2), transparent 20rem),
        linear-gradient(130deg, #0b3a43, #082c34);
    box-shadow: 0 30px 75px rgba(7, 40, 47, .2);
}

.photographer-final-contact .public-kicker {
    color: #8de2c8;
}

.photographer-final-contact h2 {
    max-width: 900px;
    color: #fff;
}

.photographer-final-contact > div > p:not(.public-kicker) {
    max-width: 700px;
    color: rgba(255, 255, 255, .65);
}

.photographer-final-contact > div:last-child {
    display: grid;
    min-width: 260px;
    gap: 1rem;
    text-align: center;
}

.photographer-final-contact .public-text-link {
    color: #9be5cf;
}

@media (max-width: 1280px) {
    .photographer-overview-hero {
        grid-template-columns: minmax(0, 1fr) minmax(400px, .9fr);
    }

    .photographer-overview-hero h1 {
        font-size: clamp(3.4rem, 5.2vw, 5rem);
    }

    .photographer-campaign-story {
        grid-template-columns: minmax(280px, .72fr) minmax(380px, 1fr);
    }

    .photographer-campaign-steps {
        grid-column: 1 / -1;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: .5rem;
    }

    .photographer-campaign-steps li,
    .photographer-campaign-steps li:last-child {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        border: 1px solid var(--showcase-line);
        border-radius: 17px;
        padding: .85rem;
    }

    .photographer-campaign-steps p {
        display: none;
    }

    .photographer-spaces {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 980px) {
    .photographer-overview-hero,
    .photographer-software-chain,
    .photographer-trust-band {
        grid-template-columns: 1fr;
    }

    .photographer-overview-visual {
        min-height: 470px;
    }

    .photographer-overview-visual > img {
        height: 470px;
    }

    .photographer-overview-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .photographer-pillar-grid,
    .photographer-offer-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .photographer-space-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .photographer-space-cards .is-parent {
        grid-column: 1 / -1;
        min-height: 310px;
    }

    .photographer-software-route > a,
    .photographer-software-route > div {
        min-height: 220px;
    }

    .photographer-final-contact {
        display: grid;
    }

    .photographer-final-contact > div:last-child {
        min-width: 0;
        justify-items: start;
        text-align: left;
    }
}

@media (max-width: 700px) {
    .photographer-overview-body .page-content {
        gap: 3.4rem;
    }

    .photographer-overview-hero {
        border-radius: 28px;
        padding: 1.4rem;
    }

    .photographer-overview-hero h1 {
        font-size: clamp(2.55rem, 13vw, 3.25rem);
        line-height: .94;
    }

    .photographer-overview-facts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: .4rem;
    }

    .photographer-overview-facts > div {
        grid-template-columns: 1fr;
        gap: .3rem;
    }

    .photographer-overview-facts dt {
        font-size: .7rem;
    }

    .photographer-overview-facts strong {
        font-size: .74rem;
        line-height: 1.25;
    }

    .photographer-overview-facts small {
        display: none;
    }

    .photographer-overview-visual {
        min-height: 390px;
        border-radius: 23px;
    }

    .photographer-overview-visual > img {
        height: 390px;
    }

    .photographer-visual-card {
        width: calc(100% - 2rem);
        padding: .85rem;
    }

    .photographer-visual-card.is-top {
        top: 1rem;
        right: 1rem;
    }

    .photographer-visual-card.is-bottom {
        bottom: 3.8rem;
        left: 1rem;
    }

    .photographer-overview-nav {
        grid-template-columns: 1fr;
        border-radius: 22px;
    }

    .photographer-overview-nav a {
        min-height: 65px;
    }

    .photographer-campaign-story {
        grid-template-columns: 1fr;
    }

    .photographer-campaign-heading h2,
    .photographer-pillars h2,
    .photographer-spaces h2,
    .photographer-software-chain h2,
    .photographer-offer-preview h2,
    .photographer-trust-band h2,
    .photographer-final-contact h2,
    .photographer-configured-section h2 {
        font-size: clamp(2.4rem, 12vw, 3.3rem);
    }

    .photographer-campaign-image,
    .photographer-campaign-image img {
        min-height: 390px;
        height: 390px;
    }

    .photographer-campaign-steps {
        grid-column: auto;
        grid-template-columns: 1fr;
    }

    .photographer-campaign-steps p {
        display: block;
    }

    .photographer-pillar-grid,
    .photographer-space-cards,
    .photographer-offer-list,
    .photographer-trust-band ol {
        grid-template-columns: 1fr;
    }

    .photographer-pillar-grid article,
    .photographer-space-cards article,
    .photographer-space-cards .is-parent {
        min-height: 0;
    }

    .photographer-configured-section article {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .photographer-configured-section article > a {
        grid-column: 2;
    }

    .photographer-software-chain {
        border-radius: 28px;
        padding: 1.4rem;
    }

    .photographer-software-route {
        grid-template-columns: 1fr;
    }

    .photographer-software-route > a,
    .photographer-software-route > div {
        min-height: 170px;
    }

    .photographer-software-route > i {
        transform: rotate(90deg);
        text-align: center;
    }

    .photographer-final-contact {
        border-radius: 28px;
        padding: 1.5rem;
    }

    .photographer-final-contact .public-button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .photographer-overview-copy,
    .photographer-overview-visual {
        animation: none;
    }

    .photographer-overview-nav a,
    .photographer-pillar-grid article,
    .photographer-software-route > a {
        transition: none;
    }
}

/* Dressed portal pages: school entry and separated authentication */
.gateway-body .topbar,
.school-public-body .topbar {
    position: relative;
    z-index: 20;
    min-height: 78px;
}

.gateway-body .brand,
.school-public-body .brand {
    gap: .8rem;
    color: #123b44;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: 1.02rem;
    letter-spacing: -.01em;
}

.gateway-body .brand-mark,
.school-public-body .brand-mark {
    width: 2.7rem;
    height: 2.7rem;
    border-radius: 14px;
    background: linear-gradient(145deg, #e99a35, #d46e24);
    box-shadow: 0 10px 24px rgba(211, 111, 36, .22);
}

.gateway-body .topnav,
.school-public-body .topnav {
    gap: .25rem;
    align-items: center;
}

.gateway-body .topnav a,
.school-public-body .topnav a {
    border-radius: 12px;
    padding: .65rem .85rem;
    color: #526d73;
    font-size: .82rem;
    font-weight: 750;
    transition: color .18s ease, background .18s ease, transform .18s ease;
}

.gateway-body .topnav a:hover,
.school-public-body .topnav a:hover {
    color: #103c45;
    background: rgba(255, 255, 255, .72);
    transform: translateY(-1px);
}

.school-public-body .topnav .public-login-link {
    border: 1px solid #d88423;
    color: #fff;
    background: #d88423;
    box-shadow: 0 9px 24px rgba(216, 132, 35, .2);
}

.school-public-body .topnav .public-login-link:hover {
    color: #fff;
    background: #c97618;
}

.gateway-space {
    position: relative;
    isolation: isolate;
}

.gateway-space::after {
    position: absolute;
    z-index: -1;
    width: 210px;
    height: 210px;
    right: -95px;
    bottom: -105px;
    border-radius: 50%;
    background: currentColor;
    content: "";
    opacity: .035;
}

.gateway-space-content h2::after {
    display: block;
    width: 2.2rem;
    height: .22rem;
    margin-top: .7rem;
    border-radius: 999px;
    background: currentColor;
    content: "";
    opacity: .38;
}

.gateway-space-school {
    color: #d27c20;
}

.gateway-space-professional {
    color: #087c70;
}

.gateway-space-content > p:not(.gateway-space-number),
.gateway-space-content li {
    color: #567077;
}

.gateway-space-content li::before {
    box-shadow: 0 0 0 .25rem rgba(17, 86, 91, .06);
}

.gateway-space-actions .gateway-text-link {
    display: inline-flex;
    gap: .45rem;
    align-items: center;
    justify-content: center;
    min-height: 2rem;
}

.gateway-space-actions .gateway-text-link::after {
    content: "\2192";
    transition: transform .18s ease;
}

.gateway-space-actions .gateway-text-link:hover::after {
    transform: translateX(3px);
}

.school-public-body {
    min-height: 100vh;
    background:
        linear-gradient(rgba(16, 60, 69, .025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(16, 60, 69, .025) 1px, transparent 1px),
        radial-gradient(circle at 0% 0%, rgba(238, 169, 80, .25), transparent 31rem),
        radial-gradient(circle at 100% 36%, rgba(37, 150, 132, .16), transparent 36rem),
        #f4f7f4;
    background-size: 48px 48px, 48px 48px, auto, auto, auto;
}

.school-public-body .page-content {
    gap: 1rem;
    padding-bottom: 1.8rem;
}

.school-entry-hero {
    position: relative;
    grid-template-columns: minmax(0, 1.08fr) minmax(410px, .92fr);
    gap: clamp(2rem, 4vw, 4rem);
    min-height: 640px;
    overflow: hidden;
    padding: clamp(2.3rem, 4.5vw, 4.7rem);
    border-radius: 38px;
    background:
        radial-gradient(circle at 86% 12%, rgba(44, 154, 135, .1), transparent 22rem),
        linear-gradient(125deg, rgba(255,255,255,.98), rgba(249,252,250,.9));
}

.school-entry-hero::before {
    position: absolute;
    width: 18rem;
    height: 18rem;
    left: -9rem;
    bottom: -12rem;
    border: 1px solid rgba(222, 141, 43, .18);
    border-radius: 50%;
    box-shadow:
        0 0 0 3.5rem rgba(222, 141, 43, .035),
        0 0 0 7rem rgba(222, 141, 43, .025);
    content: "";
}

.school-entry-copy {
    position: relative;
    z-index: 1;
}

.school-entry-back {
    gap: .35rem;
    align-items: center;
    margin-bottom: 2.7rem;
    color: #667d82;
    transition: color .18s ease, transform .18s ease;
}

.school-entry-back:hover {
    color: var(--school-deep);
    transform: translateX(-3px);
}

.school-entry-hero .gateway-kicker {
    color: #b46d1d;
}

.school-entry-hero h1 {
    max-width: 760px;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(3.15rem, 5.45vw, 5.65rem);
    font-weight: 750;
    letter-spacing: -.06em;
    line-height: .94;
}

.school-entry-lead {
    max-width: 680px;
    margin-top: 1.55rem;
    font-size: 1.04rem;
    line-height: 1.68;
}

.school-entry-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: 1.5rem;
}

.school-entry-trust span {
    display: inline-flex;
    gap: .43rem;
    align-items: center;
    border: 1px solid rgba(16, 60, 69, .09);
    border-radius: 999px;
    padding: .5rem .7rem;
    color: #49666d;
    background: rgba(247, 250, 248, .9);
    font-size: .72rem;
    font-weight: 750;
}

.school-entry-trust b {
    display: grid;
    width: 1.05rem;
    height: 1.05rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #178678;
    font-size: .61rem;
}

.school-entry-actions {
    margin-top: 1.7rem;
}

.school-entry-actions .gateway-button {
    min-width: 285px;
    min-height: 3.55rem;
    border-radius: 16px;
    font-size: .84rem;
}

.school-entry-actions > span {
    position: relative;
    max-width: 195px;
    padding-left: .8rem;
}

.school-entry-actions > span::before {
    position: absolute;
    width: 2px;
    height: 100%;
    left: 0;
    top: 0;
    border-radius: 999px;
    background: rgba(16, 60, 69, .12);
    content: "";
}

.school-entry-preview {
    position: relative;
    z-index: 2;
    overflow: visible;
    border: 0;
    border-radius: 30px;
    background: rgba(248, 251, 250, .96);
    box-shadow:
        0 35px 85px rgba(16, 60, 69, .16),
        0 0 0 1px rgba(16, 60, 69, .11);
    transform: rotate(1deg);
}

.school-entry-preview::before {
    position: absolute;
    z-index: -1;
    inset: 22px -18px -18px 18px;
    border: 1px solid rgba(16, 60, 69, .09);
    border-radius: 30px;
    background: rgba(255, 255, 255, .5);
    content: "";
}

.school-entry-preview header {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    border-radius: 30px 30px 0 0;
    padding: 1rem 1.25rem;
    background: #103f48;
}

.school-entry-preview header div {
    display: flex;
    gap: .55rem;
    align-items: center;
}

.school-entry-preview header i {
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    background: #63d5b2;
    box-shadow: 0 0 0 .32rem rgba(99, 213, 178, .13);
}

.school-entry-preview header span {
    color: rgba(255, 255, 255, .78);
    font-size: .66rem;
}

.school-entry-preview header b {
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 999px;
    padding: .35rem .55rem;
    color: rgba(255, 255, 255, .8);
    font-size: .58rem;
    letter-spacing: .04em;
}

.school-preview-body {
    padding: 1.35rem 1.4rem 1.25rem;
}

.school-preview-heading {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
}

.school-preview-heading > div {
    display: grid;
    gap: .25rem;
}

.school-preview-heading span {
    color: #7a8e92;
    font-size: .63rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.school-preview-heading strong {
    color: var(--school-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: 1.28rem;
}

.school-preview-heading em {
    border-radius: 999px;
    padding: .4rem .65rem;
    color: #0b756a;
    background: #e4f5ef;
    font-size: .65rem;
    font-style: normal;
    font-weight: 800;
}

.school-preview-progress {
    display: grid;
    gap: .55rem;
    margin: 1.05rem 0 .35rem;
    border-radius: 14px;
    padding: .72rem .8rem;
    background: #eef4f1;
}

.school-preview-progress > div {
    display: flex;
    justify-content: space-between;
    color: #667d82;
    font-size: .66rem;
}

.school-preview-progress > div b {
    color: #34545b;
}

.school-preview-progress > i {
    height: .35rem;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(16, 60, 69, .1);
}

.school-preview-progress > i span {
    display: block;
    width: 25%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #df8e2d, #edb256);
}

.school-entry-preview ol {
    padding: .25rem 0 0;
}

.school-entry-preview li {
    position: relative;
    padding: .82rem 0;
}

.school-entry-preview li:not(:last-child)::after {
    position: absolute;
    width: 1px;
    height: 1.05rem;
    left: .98rem;
    bottom: -.52rem;
    background: rgba(16, 60, 69, .12);
    content: "";
}

.school-entry-preview li b {
    color: #a3661c;
    background: #fff2df;
}

.school-preview-note {
    display: flex;
    gap: .55rem;
    align-items: center;
    margin: .45rem 0 0;
    border-radius: 12px;
    padding: .65rem .7rem;
    color: #647b80;
    background: #fff;
    font-size: .65rem;
    line-height: 1.45;
}

.school-preview-note span {
    display: grid;
    min-width: 1.1rem;
    height: 1.1rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #168477;
    font-size: .65rem;
    font-weight: 800;
}

.school-entry-features {
    gap: .85rem;
}

.school-entry-features article {
    position: relative;
    display: flex;
    min-height: 235px;
    flex-direction: column;
    overflow: hidden;
    border-radius: 26px;
    padding: 1.35rem;
    background:
        linear-gradient(145deg, rgba(255,255,255,.96), rgba(250,252,250,.83));
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.school-entry-features article::after {
    position: absolute;
    width: 7rem;
    height: 7rem;
    right: -3rem;
    bottom: -3rem;
    border-radius: 50%;
    background: #df8e2d;
    content: "";
    opacity: .045;
}

.school-entry-features article:hover {
    border-color: rgba(16, 60, 69, .18);
    box-shadow: 0 18px 45px rgba(16, 60, 69, .08);
    transform: translateY(-3px);
}

.school-feature-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.school-feature-top > b {
    color: #b87729;
    font-size: .65rem;
    letter-spacing: .15em;
}

.school-feature-icon {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    border-radius: 14px;
    color: #b76f1d;
    background: #fff1df;
}

.school-feature-icon svg {
    width: 1.45rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.school-entry-features h2 {
    margin: 1.1rem 0 .5rem;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: 1.45rem;
}

.school-entry-features p {
    font-size: .82rem;
}

.school-entry-features article > small {
    margin-top: auto;
    padding-top: .8rem;
    color: #8a9a9d;
    font-size: .64rem;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.school-entry-help {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1.35rem;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 28px;
    padding: 1.4rem 1.5rem;
    background:
        radial-gradient(circle at 8% 50%, rgba(99, 213, 178, .14), transparent 12rem),
        var(--school-deep);
}

.school-entry-code {
    display: grid;
    min-width: 115px;
    min-height: 80px;
    place-content: center;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 18px;
    background: rgba(255,255,255,.075);
    text-align: center;
}

.school-entry-code span {
    color: #f4b55f;
    font-size: 1.15rem;
    font-weight: 850;
    letter-spacing: .12em;
}

.school-entry-code strong {
    margin-top: .2rem;
    color: rgba(255,255,255,.58);
    font-size: .56rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.school-entry-help h2 {
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
}

.school-entry-help div > p:last-child {
    margin: .4rem 0 0;
    color: rgba(255,255,255,.62);
    font-size: .72rem;
}

.school-entry-help > a {
    min-height: 3.15rem;
    transition: color .18s ease, transform .18s ease, background .18s ease;
}

.school-entry-help > a:hover {
    color: #fff;
    background: #d88724;
    transform: translateX(3px);
}

.login-body {
    --login-school: #dd8b28;
    --login-teal: #0b8175;
    --login-deep: #103b45;
    min-height: 100vh;
    color: #153a43;
}

.login-body-school {
    background:
        linear-gradient(rgba(16, 60, 69, .025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(16, 60, 69, .025) 1px, transparent 1px),
        radial-gradient(circle at 0% 0%, rgba(231, 154, 54, .27), transparent 36rem),
        radial-gradient(circle at 100% 100%, rgba(21, 134, 120, .14), transparent 36rem),
        #f4f7f5;
    background-size: 48px 48px, 48px 48px, auto, auto, auto;
}

.login-body-professional {
    background:
        linear-gradient(rgba(16, 60, 69, .025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(16, 60, 69, .025) 1px, transparent 1px),
        radial-gradient(circle at 0% 100%, rgba(20, 135, 120, .22), transparent 38rem),
        radial-gradient(circle at 100% 0%, rgba(34, 91, 119, .16), transparent 38rem),
        #f3f7f6;
    background-size: 48px 48px, 48px 48px, auto, auto, auto;
}

.login-body .page-shell {
    width: min(1120px, calc(100% - 2.4rem));
    min-height: 100vh;
    padding: 1.15rem 0;
}

.login-body .page-content {
    display: block;
}

.simple-login-wrap {
    width: 100%;
}

.simple-login-back {
    gap: .3rem;
    margin: 0 0 .65rem .1rem;
    font-size: .76rem;
}

.login-stage {
    display: grid;
    grid-template-columns: minmax(0, .94fr) minmax(420px, .78fr);
    min-height: 655px;
    overflow: hidden;
    border: 1px solid rgba(16, 60, 69, .11);
    border-radius: 32px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 30px 90px rgba(16, 60, 69, .14);
    animation: fadeUp .42s ease both;
}

.login-story {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    padding: 2.1rem;
    color: #fff;
    isolation: isolate;
}

.login-story::before,
.login-story::after {
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
    content: "";
}

.login-story::before {
    width: 25rem;
    height: 25rem;
    right: -13rem;
    top: -12rem;
}

.login-story::after {
    width: 18rem;
    height: 18rem;
    left: -10rem;
    bottom: -10rem;
}

.login-story-school {
    background:
        radial-gradient(circle at 85% 18%, rgba(244, 181, 95, .3), transparent 18rem),
        linear-gradient(145deg, #123f48, #0d343d);
}

.login-story-professional {
    background:
        radial-gradient(circle at 85% 12%, rgba(99, 213, 178, .22), transparent 18rem),
        linear-gradient(145deg, #0f4d50, #0c303a);
}

.login-story-brand {
    display: flex;
    gap: .75rem;
    align-items: center;
}

.login-story-brand .simple-login-mark {
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 14px;
    box-shadow: none;
    font-size: .75rem;
}

.login-story-brand > div {
    display: grid;
    gap: .1rem;
}

.login-story-brand strong {
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: .95rem;
}

.login-story-brand small {
    color: rgba(255,255,255,.58);
    font-size: .75rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.login-story-copy {
    margin-top: clamp(2rem, 5vh, 3.4rem);
}

.login-story-copy .eyebrow {
    color: #f0b35d;
    font-size: .68rem;
}

.login-story-professional .login-story-copy .eyebrow {
    color: #78dbc0;
}

.login-story-copy h2 {
    max-width: 500px;
    margin: 0;
    color: #fff;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2rem, 3.1vw, 3rem);
    font-weight: 720;
    letter-spacing: -.045em;
    line-height: 1.02;
}

.login-story-copy > p:last-child {
    max-width: 470px;
    margin: .9rem 0 0;
    color: rgba(255,255,255,.67);
    font-size: .82rem;
    line-height: 1.6;
}

.login-story-window {
    width: min(100%, 475px);
    margin: auto 0 1.1rem;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 20px;
    background: rgba(255,255,255,.95);
    box-shadow: 0 20px 45px rgba(0,0,0,.16);
    color: #173e47;
    transform: rotate(-1deg);
}

.login-story-window-head {
    display: flex;
    gap: .3rem;
    align-items: center;
    border-bottom: 1px solid rgba(16,60,69,.08);
    padding: .58rem .7rem;
    background: #f0f5f3;
}

.login-story-window-head > span {
    width: .38rem;
    height: .38rem;
    border-radius: 50%;
    background: #d2dcd9;
}

.login-story-window-head > span:first-child {
    background: #e9a651;
}

.login-story-window-head b {
    margin-left: auto;
    color: #668087;
    font-size: .55rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.login-story-school-status {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .15rem .6rem;
    margin: .72rem;
    border-radius: 12px;
    padding: .72rem;
    background: #fff3e3;
}

.login-story-school-status span {
    grid-column: 1 / -1;
    color: #a36a24;
    font-size: .54rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.login-story-school-status strong {
    font-size: .72rem;
}

.login-story-school-status em {
    align-self: center;
    color: #a36a24;
    font-size: .59rem;
    font-style: normal;
    font-weight: 800;
}

.login-story-line {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .62rem;
    align-items: center;
    margin: 0 .72rem;
    border-top: 1px solid rgba(16,60,69,.08);
    padding: .55rem 0;
}

.login-story-line > i {
    display: grid;
    width: 1.4rem;
    height: 1.4rem;
    place-items: center;
    border: 1px solid rgba(16,60,69,.14);
    border-radius: 50%;
    color: #668087;
    font-size: .55rem;
    font-style: normal;
    font-weight: 800;
}

.login-story-line.is-active > i {
    border-color: #dd8b28;
    color: #fff;
    background: #dd8b28;
}

.login-story-line > span {
    display: grid;
    gap: .08rem;
}

.login-story-line b {
    font-size: .66rem;
}

.login-story-line small {
    color: #829397;
    font-size: .54rem;
}

.login-story-line > strong {
    color: #148477;
    font-size: .72rem;
}

.login-story-professional-window {
    display: grid;
    gap: .58rem;
    padding-bottom: .72rem;
    transform: rotate(1deg);
}

.login-story-professional-window .login-story-window-head {
    margin-bottom: .12rem;
}

.login-role-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .7rem;
    align-items: center;
    margin: 0 .72rem;
    border: 1px solid rgba(16,60,69,.09);
    border-radius: 13px;
    padding: .65rem;
    background: #f7faf9;
}

.login-role-card.is-photographer {
    border-color: rgba(11,129,117,.24);
    background: #eaf7f3;
}

.login-role-card > i {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 10px;
    color: #0b8175;
    background: #fff;
}

.login-role-card svg {
    width: 1.15rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.login-role-card > span {
    display: grid;
    gap: .1rem;
}

.login-role-card b {
    font-size: .67rem;
}

.login-role-card small {
    color: #7d9296;
    font-size: .55rem;
}

.login-role-card em {
    border-radius: 999px;
    padding: .3rem .42rem;
    color: #45656b;
    background: #fff;
    font-size: .54rem;
    font-style: normal;
    font-weight: 850;
}

.login-story-foot {
    display: flex;
    gap: .55rem;
    align-items: center;
    color: rgba(255,255,255,.58);
    font-size: .61rem;
    font-weight: 700;
}

.login-story-foot > span {
    width: .5rem;
    height: .5rem;
    border-radius: 50%;
    background: #63d5b2;
    box-shadow: 0 0 0 .28rem rgba(99, 213, 178, .12);
}

.login-stage .simple-login-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    border: 0;
    border-left: 1px solid rgba(16, 60, 69, .08);
    border-radius: 0;
    padding: clamp(1.8rem, 4vw, 3.2rem);
    background: rgba(255,255,255,.96);
    box-shadow: none;
    animation: none;
}

.login-stage .simple-login-head {
    display: block;
    margin: 0 0 1.35rem;
    border: 0;
    padding: 0;
}

.login-stage .simple-login-head .eyebrow {
    margin-bottom: .45rem;
    color: #a86a20;
    font-size: .67rem;
}

.login-stage .simple-login-card-professional .simple-login-head .eyebrow {
    color: #087c70;
}

.login-stage .simple-login-head h1 {
    margin: 0;
    color: var(--login-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(1.8rem, 2.7vw, 2.5rem);
    font-weight: 730;
    letter-spacing: -.04em;
}

.login-stage .simple-login-head > p:last-child {
    max-width: 430px;
    margin-top: .55rem;
    font-size: .8rem;
    line-height: 1.55;
}

.login-stage .simple-login-form {
    gap: .8rem;
}

.login-stage .simple-field {
    gap: .4rem;
}

.login-stage .simple-field > label {
    color: #395a61;
    font-size: .7rem;
    font-weight: 800;
}

.login-stage .field-input,
.login-stage .simple-field input {
    min-height: 3.2rem;
    border: 1px solid rgba(16, 60, 69, .14);
    border-radius: 13px;
    padding: .82rem .9rem;
    color: #143d46;
    background: #f8faf9;
    font-family: inherit;
    font-size: .88rem;
}

.login-body-school .login-stage .field-input:focus,
.login-body-school .login-stage .simple-field input:focus {
    border-color: rgba(221, 139, 40, .55);
    outline: 2px solid rgba(221, 139, 40, .15);
    box-shadow: 0 0 0 .28rem rgba(221, 139, 40, .07);
}

.login-stage .simple-login-button {
    min-height: 3.15rem;
    gap: .65rem;
    border-radius: 13px;
    font-family: inherit;
    font-size: .77rem;
}

.login-body-school .login-stage .simple-login-button {
    background: linear-gradient(135deg, #e39a37, #d67b20);
    box-shadow: 0 13px 26px rgba(214, 123, 32, .2);
}

.login-body-professional .login-stage .simple-login-button {
    background: linear-gradient(135deg, #0c9182, #176f88);
}

.login-stage .simple-login-button span {
    transition: transform .18s ease;
}

.login-stage .simple-login-button:hover span {
    transform: translateX(3px);
}

.login-stage .demo-accesses {
    margin-top: 1rem;
    padding-top: .9rem;
}

.demo-accesses-heading {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .55rem;
}

.demo-accesses-heading .demo-accesses-title {
    margin: 0;
    font-size: .65rem;
}

.demo-accesses-heading > span {
    color: #91a0a3;
    font-size: .59rem;
}

.login-stage .demo-access-button {
    position: relative;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .12rem .8rem;
    min-height: 3.25rem;
    align-items: center;
    border-radius: 13px;
    padding: .62rem .75rem;
}

.login-stage .demo-access-button span,
.login-stage .demo-access-button strong {
    grid-column: 1;
}

.login-stage .demo-access-button > i {
    grid-column: 2;
    grid-row: 1 / 3;
    color: #0b8175;
    font-style: normal;
    transition: transform .18s ease;
}

.login-stage .demo-access-button:hover > i {
    transform: translateX(3px);
}

.login-stage .simple-login-help {
    margin-top: .65rem;
    font-size: .67rem;
}

.login-stage .simple-login-switch {
    gap: .15rem;
    margin-top: .75rem;
    padding-top: .75rem;
    font-size: .66rem;
}

.login-stage .simple-login-switch a {
    font-size: .7rem;
}

.simple-parent-access {
    display: grid;
    gap: .28rem;
    border: 1px solid rgba(189, 87, 55, .18);
    border-radius: 16px;
    padding: .9rem 1rem;
    color: #713523;
    background: rgba(255, 240, 235, .72);
    text-decoration: none;
}

.simple-parent-access span {
    color: #9d6d5e;
    font-size: .72rem;
    font-weight: 750;
}

.simple-parent-access strong {
    display: flex;
    gap: .65rem;
    align-items: center;
    justify-content: space-between;
    font-size: .86rem;
}

.simple-parent-access i {
    font-style: normal;
}

.simple-parent-access:hover,
.simple-parent-access:focus-visible {
    color: #fff;
    border-color: #bd5737;
    background: #bd5737;
    outline: none;
    transform: translateY(-1px);
}

.simple-parent-access:hover span,
.simple-parent-access:focus-visible span {
    color: rgba(255, 255, 255, .74);
}

@media (max-width: 1080px) {
    .school-entry-hero {
        grid-template-columns: minmax(0, 1fr) minmax(350px, .82fr);
        gap: 2rem;
        min-height: 600px;
        padding: 2.5rem;
    }

    .school-entry-hero h1 {
        font-size: clamp(3rem, 6vw, 4.7rem);
    }

    .login-stage {
        grid-template-columns: minmax(0, .9fr) minmax(390px, .75fr);
    }
}

@media (max-width: 880px) {
    .school-entry-hero {
        grid-template-columns: 1fr;
        padding: 2rem;
    }

    .school-entry-preview {
        width: min(100%, 640px);
        transform: none;
    }

    .school-entry-preview::before {
        display: none;
    }

    .school-entry-help {
        grid-template-columns: auto 1fr;
    }

    .school-entry-help > a {
        grid-column: 1 / -1;
    }

    .login-body .page-shell {
        width: min(680px, calc(100% - 2rem));
        padding: 1rem 0;
    }

    .login-stage {
        grid-template-columns: 1fr;
    }

    .login-story {
        min-height: 410px;
        padding: 1.6rem;
    }

    .login-story-copy {
        margin-top: 1.5rem;
    }

    .login-story-copy h2 {
        font-size: 2rem;
    }

    .login-story-window {
        margin-top: 1.5rem;
        margin-bottom: 1rem;
    }

    .login-stage .simple-login-card {
        border-top: 1px solid rgba(16,60,69,.08);
        border-left: 0;
    }
}

@media (max-width: 700px) {
    .gateway-body .topbar,
    .school-public-body .topbar {
        min-height: 64px;
    }

    .gateway-body .brand-mark,
    .school-public-body .brand-mark {
        width: 2.35rem;
        height: 2.35rem;
    }

    .school-public-body .topnav a:not(.public-login-link) {
        display: none;
    }

    .school-entry-hero {
        border-radius: 25px;
        padding: 1.4rem;
    }

    .school-entry-back {
        margin-bottom: 1.9rem;
    }

    .school-entry-hero h1 {
        font-size: clamp(2.75rem, 13vw, 4rem);
    }

    .school-entry-actions {
        display: grid;
    }

    .school-entry-actions .gateway-button {
        width: 100%;
        min-width: 0;
    }

    .school-entry-actions > span {
        max-width: none;
    }

    .school-entry-preview {
        border-radius: 22px;
    }

    .school-entry-preview header {
        border-radius: 22px 22px 0 0;
    }

    .school-preview-body {
        padding: 1rem;
    }

    .school-preview-heading strong {
        font-size: 1.05rem;
    }

    .school-entry-features {
        grid-template-columns: 1fr;
    }

    .school-entry-features article {
        min-height: 215px;
    }

    .school-entry-help {
        grid-template-columns: 1fr;
        border-radius: 23px;
    }

    .school-entry-code {
        min-width: 0;
        min-height: 68px;
    }

    .school-entry-help > a {
        grid-column: auto;
        justify-content: center;
    }

    .login-body .page-shell {
        width: min(100% - 1rem, 680px);
        padding: .5rem 0;
    }

    .simple-login-back {
        margin: .3rem 0 .55rem .4rem;
    }

    .login-stage {
        min-height: 0;
        border-radius: 24px;
    }

    .login-story {
        min-height: 360px;
        padding: 1.3rem;
    }

    .login-story-copy h2 {
        font-size: 1.75rem;
    }

    .login-story-copy > p:last-child {
        font-size: .74rem;
    }

    .login-story-window {
        margin-top: 1.2rem;
        transform: none;
    }

    .login-story-foot {
        display: none;
    }

    .login-stage .simple-login-card {
        padding: 1.4rem;
    }
}

@media (max-width: 440px) {
    .login-story {
        min-height: 320px;
    }

    .login-story-window {
        display: none;
    }

    .login-stage .simple-login-head h1 {
        font-size: 1.75rem;
    }
}

/* Split portal entry pages */
.gateway-body {
    --gateway-navy: #0b2f3a;
    --gateway-ink: #173b44;
    --gateway-school: #e79a36;
    --gateway-school-soft: #fff4e3;
    --gateway-pro: #158678;
    --gateway-pro-soft: #e8f6f2;
    color: var(--gateway-ink);
    background:
        linear-gradient(rgba(11, 47, 58, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(11, 47, 58, .035) 1px, transparent 1px),
        radial-gradient(circle at 10% 0%, rgba(231, 154, 54, .2), transparent 32rem),
        radial-gradient(circle at 100% 25%, rgba(21, 134, 120, .16), transparent 34rem),
        #f4f7f5;
    background-size: 42px 42px, 42px 42px, auto, auto, auto;
}

.gateway-body .page-shell,
.school-public-body .page-shell {
    width: min(1440px, calc(100% - 3rem));
}

.gateway-body .topbar,
.school-public-body .topbar {
    padding-bottom: 1.1rem;
}

.gateway-kicker {
    margin: 0 0 .65rem;
    color: #698087;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.gateway-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2rem;
    align-items: end;
    padding: 3.6rem 0 2rem;
}

.gateway-hero-copy {
    max-width: 850px;
}

.gateway-hero h1 {
    max-width: 820px;
    margin: 0;
    color: var(--gateway-navy);
    font-size: clamp(2.7rem, 5.6vw, 5.7rem);
    font-weight: 780;
    letter-spacing: -.065em;
    line-height: .96;
}

.gateway-hero-copy > p:last-child {
    max-width: 700px;
    margin: 1.35rem 0 0;
    color: #61777d;
    font-size: 1.08rem;
    line-height: 1.7;
}

.gateway-status {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .75rem;
    align-items: center;
    min-width: 230px;
    border: 1px solid rgba(11, 47, 58, .1);
    border-radius: 18px;
    padding: .85rem 1rem;
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 14px 35px rgba(11, 47, 58, .07);
}

.gateway-status > span {
    width: .65rem;
    height: .65rem;
    border-radius: 50%;
    background: #2eb98c;
    box-shadow: 0 0 0 .35rem rgba(46, 185, 140, .12);
}

.gateway-status div {
    display: grid;
    gap: .15rem;
}

.gateway-status strong {
    font-size: .84rem;
}

.gateway-status small {
    color: #75888c;
    font-size: .72rem;
}

.gateway-spaces {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem;
}

.gateway-space {
    display: grid;
    grid-template-columns: minmax(210px, .72fr) minmax(0, 1.28fr);
    min-height: 500px;
    overflow: hidden;
    border: 1px solid rgba(11, 47, 58, .1);
    border-radius: 30px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 24px 70px rgba(11, 47, 58, .1);
    animation: fadeUp .48s ease both;
}

.gateway-space-professional {
    animation-delay: .08s;
}

.gateway-space-visual {
    position: relative;
    display: grid;
    gap: 1rem;
    place-content: center;
    padding: 2rem;
    overflow: hidden;
    text-align: center;
}

.gateway-space-visual::before,
.gateway-space-visual::after {
    position: absolute;
    border: 1px solid currentColor;
    border-radius: 50%;
    opacity: .12;
    content: "";
}

.gateway-space-visual::before {
    width: 240px;
    height: 240px;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
}

.gateway-space-visual::after {
    width: 330px;
    height: 330px;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
}

.gateway-space-school .gateway-space-visual {
    color: #9c5e17;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, .52), transparent),
        var(--gateway-school-soft);
}

.gateway-space-professional .gateway-space-visual {
    color: #096c61;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, .5), transparent),
        var(--gateway-pro-soft);
}

.gateway-space-icon {
    position: relative;
    z-index: 1;
    display: grid;
    width: 7.6rem;
    height: 7.6rem;
    margin: auto;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .82);
    border-radius: 34px;
    background: rgba(255, 255, 255, .78);
    box-shadow: 0 20px 45px rgba(11, 47, 58, .12);
}

.gateway-space-icon svg {
    width: 3.6rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.45;
}

.gateway-space-visual small {
    position: relative;
    z-index: 1;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.gateway-space-content {
    display: flex;
    flex-direction: column;
    padding: 2.4rem;
}

.gateway-space-number {
    margin: 0 0 2rem;
    color: #8b9a9e;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .14em;
}

.gateway-space-content h2 {
    margin: 0;
    color: var(--gateway-navy);
    font-size: clamp(1.8rem, 3vw, 2.7rem);
    letter-spacing: -.045em;
}

.gateway-space-content > p:not(.gateway-space-number) {
    margin: .9rem 0 0;
    color: #62777d;
    line-height: 1.62;
}

.gateway-space-content ul {
    display: grid;
    gap: .65rem;
    margin: 1.6rem 0 2rem;
    padding: 0;
    list-style: none;
}

.gateway-space-content li {
    position: relative;
    padding-left: 1.35rem;
    color: #344f57;
    font-size: .9rem;
    font-weight: 650;
}

.gateway-space-content li::before {
    position: absolute;
    width: .52rem;
    height: .52rem;
    left: 0;
    top: .34rem;
    border-radius: 50%;
    background: currentColor;
    content: "";
    opacity: .42;
}

.gateway-space-actions {
    display: grid;
    gap: .8rem;
    margin-top: auto;
}

.gateway-button {
    display: inline-flex;
    min-height: 3.2rem;
    align-items: center;
    justify-content: center;
    border-radius: 15px;
    padding: .85rem 1.15rem;
    color: #fff;
    font-size: .88rem;
    font-weight: 800;
    text-align: center;
    transition: transform .18s ease, box-shadow .18s ease;
}

.gateway-button:hover {
    transform: translateY(-2px);
}

.gateway-button-school {
    background: #d88724;
    box-shadow: 0 12px 28px rgba(216, 135, 36, .22);
}

.gateway-button-professional {
    background: #087c70;
    box-shadow: 0 12px 28px rgba(8, 124, 112, .2);
}

.gateway-text-link {
    color: #496169;
    font-size: .79rem;
    font-weight: 750;
    text-align: center;
    text-decoration: underline;
    text-decoration-color: rgba(73, 97, 105, .32);
    text-underline-offset: .25rem;
}

.gateway-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.5rem .15rem 0;
    color: #718489;
    font-size: .78rem;
}

.gateway-footer span {
    color: var(--gateway-navy);
    font-weight: 800;
}

.gateway-footer p {
    margin: 0;
}

/* School public entry */
.school-public-body {
    --school-deep: #103c45;
    --school-gold: #df8e2d;
    color: #173b44;
    background:
        radial-gradient(circle at 0% 0%, rgba(238, 169, 80, .22), transparent 29rem),
        radial-gradient(circle at 100% 40%, rgba(37, 150, 132, .14), transparent 32rem),
        #f5f7f4;
}

.school-entry-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(380px, .85fr);
    gap: 3rem;
    align-items: center;
    min-height: 610px;
    padding: 3rem clamp(1rem, 4vw, 4rem);
    border: 1px solid rgba(16, 60, 69, .1);
    border-radius: 34px;
    background:
        linear-gradient(120deg, rgba(255,255,255,.96), rgba(249,252,249,.82)),
        #fff;
    box-shadow: 0 28px 80px rgba(16, 60, 69, .1);
}

.school-entry-back {
    display: inline-flex;
    margin-bottom: 2.3rem;
    color: #708287;
    font-size: .78rem;
    font-weight: 750;
}

.school-entry-hero h1 {
    max-width: 780px;
    margin: 0;
    color: var(--school-deep);
    font-size: clamp(2.8rem, 5.4vw, 5.5rem);
    letter-spacing: -.065em;
    line-height: .97;
}

.school-entry-lead {
    max-width: 720px;
    margin: 1.35rem 0 0;
    color: #60787e;
    font-size: 1.08rem;
    line-height: 1.72;
}

.school-entry-actions {
    display: flex;
    gap: 1rem;
    align-items: center;
    margin-top: 2rem;
}

.school-entry-actions .gateway-button {
    min-width: 260px;
}

.school-entry-actions span {
    max-width: 180px;
    color: #788a8e;
    font-size: .75rem;
    line-height: 1.45;
}

.school-entry-preview {
    overflow: hidden;
    border: 1px solid rgba(16, 60, 69, .12);
    border-radius: 26px;
    background: #f8fbfa;
    box-shadow: 0 24px 55px rgba(16, 60, 69, .1);
}

.school-entry-preview header {
    display: grid;
    gap: .28rem;
    padding: 1.3rem 1.4rem;
    color: #fff;
    background: var(--school-deep);
}

.school-entry-preview header span {
    color: rgba(255, 255, 255, .65);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.school-entry-preview ol {
    display: grid;
    gap: 0;
    margin: 0;
    padding: .5rem 1.4rem 1rem;
    list-style: none;
}

.school-entry-preview li {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .9rem;
    align-items: center;
    border-bottom: 1px solid rgba(16, 60, 69, .09);
    padding: 1rem 0;
}

.school-entry-preview li:last-child {
    border-bottom: 0;
}

.school-entry-preview li > span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border: 1px solid rgba(16, 60, 69, .18);
    border-radius: 50%;
    color: #60777d;
    font-size: .75rem;
    font-weight: 800;
    background: #fff;
}

.school-entry-preview li.is-complete > span {
    border-color: var(--school-gold);
    color: #fff;
    background: var(--school-gold);
}

.school-entry-preview li div {
    display: grid;
    gap: .18rem;
}

.school-entry-preview li strong {
    color: var(--school-deep);
    font-size: .88rem;
}

.school-entry-preview li small {
    color: #77898d;
    font-size: .72rem;
}

.school-entry-preview li b {
    border-radius: 999px;
    padding: .36rem .55rem;
    color: #997;
    background: #fff2df;
    font-size: .64rem;
}

.school-entry-features {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.school-entry-features article {
    min-height: 210px;
    border: 1px solid rgba(16, 60, 69, .1);
    border-radius: 24px;
    padding: 1.5rem;
    background: rgba(255, 255, 255, .78);
}

.school-entry-features span {
    color: var(--school-gold);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .12em;
}

.school-entry-features h2 {
    margin: 1.4rem 0 .6rem;
    color: var(--school-deep);
    font-size: 1.35rem;
}

.school-entry-features p {
    margin: 0;
    color: #687e83;
    font-size: .86rem;
    line-height: 1.65;
}

.school-entry-help {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.5rem;
    align-items: center;
    border-radius: 26px;
    padding: 1.6rem 1.8rem;
    color: #fff;
    background: var(--school-deep);
}

.school-entry-help h2 {
    max-width: 780px;
    margin: 0;
    font-size: clamp(1.3rem, 2.4vw, 2rem);
    letter-spacing: -.025em;
}

.school-entry-help .gateway-kicker {
    color: rgba(255,255,255,.58);
}

.school-entry-help a {
    display: inline-flex;
    gap: .7rem;
    align-items: center;
    border-radius: 14px;
    padding: .9rem 1rem;
    color: var(--school-deep);
    background: #fff;
    font-size: .8rem;
    font-weight: 800;
}

/* Distinct login identities */
.login-body-school {
    background:
        radial-gradient(circle at 0% 0%, rgba(231, 154, 54, .24), transparent 34rem),
        radial-gradient(circle at 100% 100%, rgba(21, 134, 120, .13), transparent 32rem),
        #f4f7f5;
}

.login-body-professional {
    background:
        radial-gradient(circle at 0% 0%, rgba(21, 134, 120, .22), transparent 34rem),
        radial-gradient(circle at 100% 100%, rgba(37, 93, 125, .14), transparent 32rem),
        #f3f7f6;
}

.login-body .page-shell {
    width: min(470px, calc(100% - 2rem));
}

.simple-login-card-school .simple-login-mark {
    background: linear-gradient(135deg, #e79a36, #cd721d);
}

.simple-login-card-professional .simple-login-mark {
    background: linear-gradient(135deg, #128a7c, #155e7b);
}

.demo-access-grid-single {
    grid-template-columns: 1fr;
}

.simple-login-switch {
    display: grid;
    gap: .25rem;
    margin-top: 1rem;
    border-top: 1px solid var(--line);
    padding-top: 1rem;
    color: var(--muted);
    font-size: .78rem;
    text-align: center;
}

.simple-login-switch a {
    color: #0b796f;
    font-weight: 800;
}

@media (max-width: 1060px) {
    .gateway-space {
        grid-template-columns: 1fr;
    }

    .gateway-space-visual {
        min-height: 250px;
    }

    .gateway-space-content {
        min-height: 400px;
    }

    .school-entry-hero {
        grid-template-columns: 1fr;
    }

    .school-entry-preview {
        max-width: 720px;
    }
}

@media (max-width: 760px) {
    .gateway-body .page-shell,
    .school-public-body .page-shell {
        width: min(100% - 1.25rem, 1440px);
    }

    .gateway-hero {
        grid-template-columns: 1fr;
        padding-top: 2rem;
    }

    .gateway-status {
        width: 100%;
    }

    .gateway-spaces,
    .school-entry-features {
        grid-template-columns: 1fr;
    }

    .gateway-space {
        min-height: 0;
    }

    .gateway-space-content {
        min-height: 380px;
        padding: 1.5rem;
    }

    .gateway-space-number {
        margin-bottom: 1rem;
    }

    .gateway-footer,
    .school-entry-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .school-entry-hero {
        min-height: 0;
        gap: 2rem;
        padding: 1.3rem;
    }

    .school-entry-back {
        margin-bottom: 1.5rem;
    }

    .school-entry-actions .gateway-button {
        width: 100%;
        min-width: 0;
    }

    .school-entry-help {
        grid-template-columns: 1fr;
    }
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    font-family: "Segoe UI Variable Text", "Bahnschrift", "Trebuchet MS", sans-serif;
    color: var(--ink);
    background:
        radial-gradient(circle at top left, rgba(216, 129, 31, 0.18), transparent 26%),
        radial-gradient(circle at top right, rgba(12, 139, 128, 0.14), transparent 26%),
        linear-gradient(160deg, #f4efe5 0%, #f4f7fa 46%, #ecf2ef 100%);
}

a {
    color: inherit;
    text-decoration: none;
}

code {
    display: block;
    padding: 0.9rem 1rem;
    border-radius: 14px;
    background: rgba(17, 36, 61, 0.08);
    font-family: "Consolas", "Courier New", monospace;
    overflow-wrap: anywhere;
}

.page-shell {
    width: min(1180px, calc(100% - 2rem));
    margin: 0 auto;
    padding: 1.25rem 0 2.5rem;
}

.topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0 1.5rem;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.brand-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 18px;
    color: white;
    background: linear-gradient(135deg, var(--amber), var(--coral));
    box-shadow: var(--shadow);
}

.topnav {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    flex-wrap: wrap;
}

.page-content {
    display: grid;
    gap: 1.5rem;
}

.card,
.hero,
.login-panel {
    background: var(--panel);
    backdrop-filter: blur(12px);
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow);
}

.eyebrow {
    margin: 0 0 0.75rem;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--muted);
}

.lead {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--muted);
}

.login-body .topbar {
    display: none;
}

.login-body .page-shell {
    width: min(420px, calc(100% - 2rem));
    min-height: 100vh;
    padding: 0;
    display: grid;
    align-items: center;
}

.login-body .page-content {
    width: 100%;
}

.simple-login-wrap {
    width: 100%;
}

.simple-login-back {
    display: inline-flex;
    margin-bottom: .85rem;
    color: var(--muted);
    font-size: .86rem;
    font-weight: 700;
}

.simple-login-back:hover { color: var(--teal); }

.simple-login-card {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(17, 36, 61, 0.1);
    border-radius: 24px;
    box-shadow: 0 18px 40px rgba(17, 36, 61, 0.12);
    padding: 1.5rem;
    animation: fadeUp 0.35s ease both;
}

.simple-login-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.35rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid var(--line);
}

.simple-login-head .eyebrow {
    margin-bottom: 0.3rem;
}

.simple-login-head h1,
.simple-login-head p {
    margin-top: 0;
}

.simple-login-head h1 {
    margin-bottom: 0.35rem;
    font-size: 1.55rem;
    line-height: 1.1;
}

.simple-login-head p:last-child,
.simple-login-help {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.9rem;
    line-height: 1.45;
}

.simple-login-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(135deg, var(--amber), var(--coral));
    box-shadow: 0 12px 24px rgba(216, 129, 31, 0.22);
    font-weight: 800;
    letter-spacing: 0.08em;
}

.simple-login-help {
    margin-top: 1rem;
    text-align: center;
}

.demo-accesses {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.demo-accesses-title {
    margin: 0 0 0.65rem;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.demo-access-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.demo-access-button {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
    padding: 0.75rem 0.9rem;
    border: 1px solid rgba(17, 36, 61, 0.12);
    border-radius: 14px;
    color: var(--ink);
    background: rgba(17, 36, 61, 0.035);
    text-align: left;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.demo-access-button:hover,
.demo-access-button:focus-visible {
    border-color: rgba(12, 139, 128, 0.38);
    background: rgba(12, 139, 128, 0.08);
    transform: translateY(-1px);
    outline: none;
}

.demo-access-button span {
    color: var(--muted);
    font-size: 0.78rem;
}

.demo-access-button strong {
    overflow: hidden;
    font-size: 0.93rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.simple-login-form {
    display: grid;
    gap: 0.9rem;
}

.simple-field {
    display: grid;
    gap: 0.4rem;
}

.field {
    display: grid;
    gap: 0.55rem;
}

.field label {
    font-weight: 600;
}

.field-input,
.field input {
    width: 100%;
    padding: 0.95rem 1rem;
    border-radius: 14px;
    border: 1px solid rgba(17, 36, 61, 0.14);
    background: rgba(255, 255, 255, 0.94);
    font-size: 1rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.field-input:focus,
.field input:focus {
    outline: 2px solid rgba(12, 139, 128, 0.24);
    border-color: rgba(12, 139, 128, 0.5);
    box-shadow: 0 0 0 0.35rem rgba(12, 139, 128, 0.08);
}

.field-error,
.form-alert p,
.muted {
    color: var(--muted);
}

.form-alert {
    padding: 0.9rem 1rem;
    border-radius: 16px;
    border: 1px solid rgba(207, 92, 67, 0.24);
    background: rgba(207, 92, 67, 0.08);
}

.form-alert p {
    margin: 0;
}

.primary-button,
.ghost-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.9rem 1.2rem;
    border-radius: 999px;
    border: 0;
    font-weight: 700;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.primary-button {
    width: 100%;
    color: white;
    background: linear-gradient(135deg, var(--teal), #1770a6);
    box-shadow: 0 14px 28px rgba(12, 139, 128, 0.24);
}

.ghost-button {
    background: rgba(17, 36, 61, 0.06);
}

.primary-button:hover,
.ghost-button:hover {
    transform: translateY(-1px);
}

.simple-login-button {
    margin-top: 0.2rem;
}

.hero {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 1.5rem;
    padding: 2rem;
    animation: fadeUp 0.55s ease both;
}

.hero-amber {
    background:
        linear-gradient(140deg, rgba(216, 129, 31, 0.18), rgba(255, 255, 255, 0.9)),
        var(--panel);
}

.hero-teal {
    background:
        linear-gradient(140deg, rgba(12, 139, 128, 0.18), rgba(255, 255, 255, 0.9)),
        var(--panel);
}

.hero-coral {
    background:
        linear-gradient(140deg, rgba(207, 92, 67, 0.18), rgba(255, 255, 255, 0.9)),
        var(--panel);
}

.hero-copy h1 {
    margin: 0;
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.05;
}

.hero-card {
    padding: 1.5rem;
    align-self: end;
}

.status-row,
.audit-meta,
.section-heading {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: space-between;
}

.status-row span {
    padding: 0.55rem 0.8rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid rgba(17, 36, 61, 0.08);
}

.card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.nav-card,
.audit-card {
    padding: 1.5rem;
    animation: fadeUp 0.65s ease both;
}

.nav-card h2,
.audit-card h2,
.hero-card h2 {
    margin-top: 0;
}

.nav-amber {
    border-top: 4px solid var(--amber);
}

.nav-teal {
    border-top: 4px solid var(--teal);
}

.nav-coral {
    border-top: 4px solid var(--coral);
}

.nav-card-active {
    transform: translateY(-4px);
}

.audit-list {
    display: grid;
    gap: 0.9rem;
    margin-top: 1.2rem;
}

.audit-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
    border-top: 1px solid var(--line);
}

.audit-row:first-child {
    border-top: 0;
    padding-top: 0;
}

.audit-row p {
    margin: 0.3rem 0 0;
    color: var(--muted);
}

.audit-meta {
    min-width: 205px;
    font-size: 0.92rem;
    color: var(--muted);
    text-align: right;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 900px) {
    .hero,
    .card-grid {
        grid-template-columns: 1fr;
    }

    .topbar,
    .section-heading,
    .audit-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .audit-meta {
        min-width: 0;
        text-align: left;
    }

    .simple-login-card {
        padding: 1.2rem;
    }

    .simple-login-head {
        align-items: start;
    }

    .demo-access-grid {
        grid-template-columns: 1fr;
    }
}

/* Public presentation */
.public-body {
    --public-ink: #12333b;
    --public-deep: #0b2c34;
    --public-teal: #087c70;
    --public-mint: #64d5b2;
    --public-sand: #f4c873;
    --public-paper: #fbfaf5;
    color: var(--public-ink);
    background:
        radial-gradient(circle at 12% 3%, rgba(244, 200, 115, .23), transparent 23rem),
        radial-gradient(circle at 94% 20%, rgba(100, 213, 178, .17), transparent 30rem),
        #f4f7f5;
}

.public-body .page-shell {
    width: min(1380px, calc(100% - 3rem));
    padding-top: 0;
}

.public-body .topbar {
    position: sticky;
    z-index: 50;
    top: 0;
    min-height: 78px;
    padding: .9rem 0;
    background: rgba(244, 247, 245, .88);
    backdrop-filter: blur(18px);
}

.public-body .topbar::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    background: rgba(18, 51, 59, .09);
    content: "";
}

.public-body .brand {
    color: var(--public-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: 1.12rem;
}

.public-body .brand-mark {
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 14px;
    background: var(--public-deep);
    box-shadow: 0 10px 25px rgba(11, 44, 52, .2);
}

.public-topnav a {
    border-radius: 999px;
    padding: .7rem .9rem;
    color: #49666c;
    font-size: .92rem;
    font-weight: 700;
}

.public-topnav a:hover,
.public-topnav a:focus-visible {
    color: var(--public-deep);
    background: rgba(11, 44, 52, .06);
    outline: none;
}

.public-topnav .public-login-link {
    padding-inline: 1.15rem;
    color: #fff;
    background: var(--public-deep);
}

.public-topnav .public-login-link:hover,
.public-topnav .public-login-link:focus-visible {
    color: #fff;
    background: var(--public-teal);
}

.public-body .page-content {
    gap: 3.5rem;
}

.public-kicker {
    margin: 0 0 .8rem;
    color: var(--public-teal);
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.public-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(430px, .96fr);
    min-height: 650px;
    overflow: hidden;
    border-radius: 36px;
    color: #f8fffd;
    background:
        radial-gradient(circle at 17% 15%, rgba(100, 213, 178, .19), transparent 24rem),
        linear-gradient(125deg, #0b2c34 0%, #124851 100%);
    box-shadow: 0 32px 80px rgba(13, 47, 55, .18);
}

.public-hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2.5rem, 4vw, 4rem);
}

.public-hero .public-kicker { color: var(--public-mint); }

.public-hero h1 {
    max-width: 850px;
    margin: 0;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.7rem, 4.2vw, 4.6rem);
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: .99;
}

.public-hero-lead {
    max-width: 720px;
    margin: 1.6rem 0 0;
    color: rgba(248, 255, 253, .76);
    font-size: clamp(1.05rem, 1.5vw, 1.26rem);
    line-height: 1.65;
}

.public-hero-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: 2rem;
}

.public-button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: .8rem 1.3rem;
    font: inherit;
    font-size: .92rem;
    font-weight: 800;
    cursor: pointer;
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}

.public-button:hover,
.public-button:focus-visible { transform: translateY(-2px); outline: none; }
.public-button-primary { color: #092e33; background: var(--public-mint); }
.public-button-primary:hover { background: #84e3c6; }
.public-button-secondary { border-color: rgba(18, 51, 59, .18); color: var(--public-deep); background: #fff; }
.public-hero .public-button-secondary { border-color: rgba(255,255,255,.22); color: #fff; background: rgba(255,255,255,.08); }

.public-proof-row {
    display: flex;
    gap: 1.2rem;
    flex-wrap: wrap;
    margin-top: 2rem;
    color: rgba(248, 255, 253, .67);
    font-size: .82rem;
}

.public-proof-row span { display: flex; align-items: baseline; gap: .35rem; }
.public-proof-row span::before { width: .48rem; height: .48rem; flex: 0 0 auto; border-radius: 50%; background: var(--public-mint); content: ""; }
.public-proof-row strong { color: #fff; font-size: 1.12rem; }

.public-operation-panel {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-self: center;
    margin: clamp(1.25rem, 2vw, 2rem);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 28px;
    background: rgba(255,255,255,.065);
    box-shadow: inset 0 1px rgba(255,255,255,.08), 0 24px 55px rgba(3,24,29,.2);
}
.public-operation-panel header { display: grid; gap: .25rem; border-bottom: 1px solid rgba(255,255,255,.1); padding: 1.1rem 1.35rem; background: rgba(100,213,178,.08); }
.public-operation-panel header span { color: var(--public-mint); font-size: .7rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.public-operation-panel header strong { font-size: 1.08rem; }
.public-operation-panel ol { display: grid; margin: 0; padding: .5rem 1.4rem; list-style: none; }
.public-operation-panel li { display: grid; grid-template-columns: 2.2rem 1fr; gap: .85rem; align-items: center; border-bottom: 1px solid rgba(255,255,255,.08); padding: .78rem 0; }
.public-operation-panel li:last-child { border-bottom: 0; }
.public-operation-panel li > span { display: grid; width: 2.1rem; height: 2.1rem; place-items: center; border-radius: 10px; color: var(--public-mint); background: rgba(100,213,178,.1); font-size: .7rem; font-weight: 900; }
.public-operation-panel li div { display: grid; gap: .22rem; }
.public-operation-panel li strong { font-size: .91rem; }
.public-operation-panel li small { color: rgba(248,255,253,.62); line-height: 1.4; }
.public-operation-panel footer { border-top: 1px solid rgba(255,255,255,.1); padding: .8rem 1.35rem; color: rgba(248,255,253,.68); font-size: .78rem; line-height: 1.5; }

.public-hero-visual {
    display: grid;
    min-width: 0;
    place-items: center;
    padding: 2rem;
    background: rgba(255,255,255,.035);
}

.public-hero-visual img,
.public-hero-visual video,
.public-story-media img,
.public-story-media video {
    width: 100%;
    height: 100%;
    min-height: 0;
    border-radius: 24px;
    object-fit: cover;
}

.public-product-map {
    position: relative;
    display: grid;
    width: min(510px, 100%);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.public-map-node {
    display: grid;
    gap: .3rem;
    min-height: 150px;
    align-content: end;
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 24px;
    padding: 1.35rem;
    background: rgba(255,255,255,.07);
    box-shadow: inset 0 1px rgba(255,255,255,.08);
}

.public-map-node.is-main {
    grid-column: 1 / -1;
    min-height: 190px;
    background: linear-gradient(140deg, rgba(100,213,178,.24), rgba(255,255,255,.06));
}

.public-map-node span { width: max-content; border-radius: 999px; padding: .32rem .55rem; color: var(--public-mint); background: rgba(100,213,178,.1); font-size: .72rem; font-weight: 900; }
.public-map-node strong { font-size: 1.18rem; }
.public-map-node small { color: rgba(248,255,253,.62); }

.public-intro {
    display: grid;
    max-width: 1000px;
    justify-self: center;
    text-align: center;
}

.public-intro h2,
.public-section-heading h2,
.public-story h2,
.public-trust h2,
.public-contact h2 {
    margin: 0;
    color: var(--public-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2rem, 4vw, 3.5rem);
    letter-spacing: -.035em;
    line-height: 1.08;
}

.public-intro > p:last-child,
.public-section-heading > div > p:last-child,
.public-story-copy > p:last-of-type,
.public-contact-copy > p {
    color: #627a7f;
    font-size: 1.03rem;
    line-height: 1.7;
}

.public-coverage { display: grid; gap: 1.6rem; scroll-margin-top: 96px; }
.public-coverage-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem; }
.public-coverage-grid article { display: flex; min-height: 270px; flex-direction: column; border: 1px solid rgba(18,51,59,.1); border-radius: 23px; padding: 1.4rem; background: rgba(255,255,255,.78); }
.public-coverage-grid article > span { width: max-content; border-radius: 999px; padding: .34rem .65rem; color: var(--public-teal); background: rgba(8,124,112,.09); font-size: .7rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.public-coverage-grid h3 { margin: 1rem 0 .75rem; color: var(--public-deep); font-size: 1.18rem; }
.public-coverage-grid ul { display: grid; gap: .7rem; margin: 0; padding: 0; list-style: none; }
.public-coverage-grid li { position: relative; padding-left: 1.15rem; color: #60777c; font-size: .85rem; line-height: 1.5; }
.public-coverage-grid li::before { position: absolute; top: .58em; left: 0; width: .4rem; height: .4rem; border-radius: 50%; background: var(--public-teal); content: ""; }

.public-story {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(2rem, 6vw, 6rem);
    align-items: center;
    min-height: 420px;
    border: 1px solid rgba(18, 51, 59, .1);
    border-radius: 30px;
    padding: clamp(2rem, 5vw, 4.5rem);
    background: rgba(255,255,255,.72);
    box-shadow: 0 16px 48px rgba(18, 51, 59, .07);
}

.public-story-collection { min-width: 0; }
.public-story-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; }
.public-story-grid .public-story { display: flex; min-height: 260px; flex-direction: column; gap: 1rem; align-items: stretch; border-radius: 23px; padding: 1.35rem; }
.public-story-grid .public-story.without-media { grid-template-columns: none; }
.public-story-grid .public-story-copy { max-width: none; }
.public-story-grid .public-story h2 { font-size: clamp(1.45rem, 2.2vw, 2rem); line-height: 1.12; }
.public-story-grid .public-story-copy > p:last-of-type { color: #627a7f; font-size: .9rem; line-height: 1.65; }
.public-story-grid .public-story-media { min-height: 190px; order: 2; }

.public-story.without-media { grid-template-columns: 1fr; min-height: 0; }
.public-story.without-media .public-story-copy { max-width: 970px; }
.public-story-media { min-height: 320px; }
.public-story-media img,
.public-story-media video { max-height: 520px; box-shadow: 0 20px 45px rgba(18,51,59,.13); }
.public-story-media_left .public-story-media { order: -1; }

.public-text-link { display: inline-flex; width: max-content; align-items: center; gap: .45rem; color: var(--public-teal); font-weight: 850; }

.public-offers,
.public-products { display: grid; gap: 1.8rem; scroll-margin-top: 96px; }
.public-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.public-section-heading > div { max-width: 860px; }

.public-offer-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.public-offer-card {
    display: flex;
    min-height: 0;
    flex-direction: column;
    border: 1px solid rgba(18, 51, 59, .12);
    border-radius: 26px;
    padding: 1.7rem;
    background: rgba(255,255,255,.9);
    box-shadow: 0 15px 42px rgba(18,51,59,.06);
}

.public-offer-card.is-featured {
    border-color: #287f76;
    background: linear-gradient(160deg, #fff 0%, #edf9f5 100%);
    box-shadow: 0 22px 55px rgba(8,124,112,.14);
}

.public-offer-topline { display: flex; min-height: 28px; align-items: center; justify-content: space-between; gap: .75rem; }
.public-offer-topline span,
.public-offer-topline strong,
.public-product-topline span,
.public-product-topline strong { width: max-content; border-radius: 999px; padding: .35rem .62rem; color: #49676d; background: #eef3f2; font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.public-offer-topline strong { color: #0c655d; background: #dff5ed; }
.public-offer-title-row { display: flex; align-items: center; gap: .8rem; margin: 1rem 0 .45rem; }
.public-offer-card h3 { margin: 0; font-size: 1.55rem; }
.public-formula-logo {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    border: 1px solid rgba(18,51,59,.1);
    border-radius: 13px;
    color: #087c70;
    background: #e8f7f3;
    box-shadow: 0 8px 20px rgba(18,51,59,.08);
}
.public-formula-logo svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.public-formula-logo b { font-size: 1rem; }
.public-formula-logo[data-formula-code="pro"] { color: #b35b00; background: #fff1dc; }
.public-formula-logo[data-formula-code="integral"] { color: #174a68; background: #e9f2f8; }
.public-offer-card > p { min-height: 2.8rem; margin: 0; color: #667c81; line-height: 1.5; }
.public-price { display: flex; align-items: baseline; gap: .5rem; margin-top: 1rem; }
.public-price strong { color: var(--public-deep); font-size: 2rem; }
.public-price span,
.public-setup-price { color: #71868b; font-size: .78rem; }
.public-price.is-contractual { display: grid; gap: .15rem; }
.public-price.is-contractual strong { font-size: 1.12rem; }
.public-price.is-contractual span { font-size: .78rem; }
.public-fixed-price { display: flex; align-items: baseline; gap: .45rem; margin-top: .45rem; color: #587076; }
.public-fixed-price strong { color: var(--public-teal); font-size: .9rem; }
.public-fixed-price span { font-size: .74rem; }
.public-offer-card ul { display: grid; gap: .55rem; margin: 1.15rem 0; padding: 0; list-style: none; }
.public-offer-card li { position: relative; padding-left: 1.4rem; color: #3e5e64; font-size: .9rem; }
.public-offer-card li::before { position: absolute; left: 0; color: var(--public-teal); content: "\2713"; font-weight: 900; }
.public-offer-card .public-button { width: 100%; margin-top: auto; }
.public-offer-empty { grid-column: 1 / -1; border: 1px dashed #b9c9c8; border-radius: 24px; padding: 2rem; text-align: center; background: rgba(255,255,255,.6); }

.public-pricing-rule { display: grid; gap: 1.25rem; border: 1px solid rgba(18,51,59,.1); border-radius: 28px; padding: clamp(1.6rem, 4vw, 3rem); background: linear-gradient(135deg, #f8fcfa, #edf7f4); }
.public-pricing-rule h2 { max-width: 900px; margin: 0; color: var(--public-deep); font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif; font-size: clamp(1.9rem, 3.5vw, 3rem); letter-spacing: -.035em; }
.public-pricing-rule > div:first-child > p:last-child { max-width: 850px; margin-bottom: 0; color: #627a7f; line-height: 1.65; }
.public-pricing-equation { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }
.public-pricing-equation span { border: 1px solid rgba(18,51,59,.1); border-radius: 12px; padding: .72rem .85rem; color: #385a61; background: #fff; font-size: .82rem; font-weight: 800; }
.public-pricing-equation b { color: var(--public-teal); font-size: 1.1rem; }
.public-pricing-note { margin: 0; color: #71858a; font-size: .78rem; }

.public-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.public-product-grid.is-a-la-carte { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.public-product-card {
    min-height: 290px;
    overflow: hidden;
    border: 1px solid rgba(18,51,59,.1);
    border-radius: 22px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 15px 42px rgba(18,51,59,.05);
}
.public-product-card.is-license { min-height: 430px; }
.public-product-card.is-featured {
    border-color: rgba(8,124,112,.48);
    background: linear-gradient(160deg, #fff 0%, #edf9f5 100%);
    box-shadow: 0 22px 55px rgba(8,124,112,.13);
}
.public-product-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 100%; }
.public-product-logo-column {
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid rgba(18,51,59,.1);
    padding: 1.4rem 1rem;
    background: linear-gradient(145deg, #f9fcfb 0%, #edf5f3 100%);
}
[data-product-code="2shoot"] .public-product-logo-column {
    background: linear-gradient(145deg, #f9fcfd 0%, #e7f5f5 100%);
}
[data-product-code="fornb"] .public-product-logo-column {
    background: linear-gradient(145deg, #fbfafc 0%, #eef2f6 100%);
}
.public-product-details { display: flex; min-width: 0; flex-direction: column; gap: 1rem; padding: 1.4rem; }
.public-product-topline { display: flex; min-height: 28px; align-items: center; justify-content: space-between; gap: .75rem; }
.public-product-topline strong { color: #0c655d; background: #dff5ed; }
.public-product-logo {
    display: grid;
    width: min(100%, 270px);
    height: auto;
    aspect-ratio: 1;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(18,51,59,.1);
    border-radius: 28px;
    padding: clamp(8px, 2vw, 16px);
    background: #fff;
    box-shadow: 0 22px 50px rgba(18,51,59,.13);
}
.public-product-logo img { width: 100%; height: 100%; object-fit: contain; }
.public-product-logo.is-placeholder { color: var(--public-teal); font-size: 2rem; font-weight: 900; }
.public-product-copy { display: grid; gap: .55rem; }
.public-product-card h3,
.public-product-card p,
.public-product-card dl { margin: 0; }
.public-product-card h3 { color: var(--public-deep); font-size: 1.22rem; }
.public-product-copy p { min-height: 2.8rem; color: #6b8085; font-size: .88rem; line-height: 1.5; }
.public-product-price { display: flex; align-items: baseline; gap: .5rem; border-top: 1px solid rgba(18,51,59,.08); padding-top: 1rem; }
.public-product-price strong { color: var(--public-deep); font-size: 1.5rem; }
.public-product-price span,
.public-product-setup { color: #71868b; font-size: .76rem; }
.public-license-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; border-top: 1px solid rgba(18,51,59,.08); padding-top: 1rem; }
.public-license-heading span { color: var(--public-teal); font-size: .78rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.public-license-heading small { color: #71868b; font-size: .7rem; }
.public-license-prices { display: grid; gap: .5rem; }
.public-license-prices div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; border-bottom: 1px solid rgba(18,51,59,.08); padding: .35rem 0 .6rem; }
.public-license-prices dt { color: #60777c; font-size: .78rem; }
.public-license-prices dd { margin: 0; color: var(--public-deep); font-size: .86rem; font-weight: 900; text-align: right; }
.public-license-prices dd small { color: #71868b; font-size: .68rem; font-weight: 700; }
.public-license-mode { color: #71868b; font-size: .75rem; line-height: 1.45; }
.public-product-details .public-button { width: 100%; margin-top: auto; }
.public-product-empty { grid-column: 1 / -1; border: 1px dashed #b9c9c8; border-radius: 24px; padding: 2rem; text-align: center; background: rgba(255,255,255,.6); }
.public-product-empty span { color: var(--public-teal); font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.public-product-empty h3 { margin: .65rem 0 .4rem; color: var(--public-deep); }
.public-product-empty p { margin: 0; color: #6b8085; }

.public-trust {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(2rem, 6vw, 6rem);
    align-items: center;
    border-radius: 30px;
    padding: clamp(2rem, 5vw, 4rem);
    color: #f8fffd;
    background: var(--public-deep);
}
.public-trust .public-kicker { color: var(--public-mint); }
.public-trust h2 { color: #fff; }
.public-trust ul { display: grid; gap: .85rem; margin: 0; padding: 0; list-style: none; }
.public-trust li { display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: center; border-bottom: 1px solid rgba(255,255,255,.1); padding: .9rem 0; color: rgba(248,255,253,.78); }
.public-trust li span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: #083e3b; background: var(--public-mint); font-weight: 900; }

.public-contact {
    display: grid;
    grid-template-columns: minmax(300px, .6fr) minmax(0, 1.4fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
    scroll-margin-top: 96px;
}
.public-contact-copy { position: sticky; top: 110px; }
.public-contact-details { display: flex; gap: .6rem; flex-wrap: wrap; margin: 1.25rem 0; }
.public-contact-details a { border-radius: 999px; padding: .6rem .85rem; color: var(--public-teal); background: rgba(8,124,112,.08); font-weight: 750; }
.public-contact-outcomes { display: grid; gap: .65rem; margin: 1.35rem 0 0; padding: 0; list-style: none; }
.public-contact-outcomes li { display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: center; border-top: 1px solid rgba(18,51,59,.1); padding-top: .75rem; }
.public-contact-outcomes li > span { color: var(--public-teal); font-size: .72rem; font-weight: 900; letter-spacing: .08em; }
.public-contact-outcomes p { display: grid; gap: .12rem; margin: 0; }
.public-contact-outcomes strong { color: var(--public-deep); font-size: .88rem; }
.public-contact-outcomes small { color: #6a7f84; font-size: .78rem; line-height: 1.45; }

.public-contact-form-card { border: 1px solid rgba(18,51,59,.11); border-radius: 28px; padding: clamp(1.25rem, 2.4vw, 1.85rem); background: #fff; box-shadow: 0 22px 60px rgba(18,51,59,.09); }
.public-contact-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .78rem 1rem; }
.public-contact-form > label,
.public-contact-more-grid > label { display: grid; gap: .42rem; color: #395b62; font-size: .78rem; font-weight: 800; }
.public-contact-form-head { display: flex; grid-column: 1 / -1; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #e3e9e8; padding-bottom: 1rem; }
.public-contact-form-head > div { display: grid; gap: .2rem; }
.public-contact-form-head > div > span { color: var(--public-teal); font-size: .7rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.public-contact-form-head > div > strong { color: var(--public-deep); font-size: 1rem; }
.public-selected-offer { margin: 0; border-radius: 999px; padding: .5rem .75rem; color: #0c655d; background: #e7f6f1; font-size: .76rem; font-weight: 800; }
.public-field-input { width: 100%; min-height: 42px; border: 1px solid #d6e1df; border-radius: 12px; padding: .68rem .85rem; color: var(--public-deep); background: #fbfdfc; font: inherit; }
textarea.public-field-input { min-height: 88px; resize: vertical; }
.public-field-input:focus { border-color: var(--public-teal); outline: 4px solid rgba(8,124,112,.1); }
.public-field-wide,
.public-interest-field,
.public-consent,
.public-form-footer,
.public-form-errors,
.public-success { grid-column: 1 / -1; }
.public-interest-field { margin: 0; border: 0; padding: .3rem 0 0; }
.public-interest-field legend { margin-bottom: .6rem; color: #395b62; font-size: .78rem; font-weight: 800; }
.public-interest-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.public-interest-grid label { display: flex; align-items: center; gap: .55rem; border: 1px solid #dce5e3; border-radius: 11px; padding: .72rem; color: #4a666c; background: #fafcfb; font-size: .8rem; cursor: pointer; }
.public-interest-grid input,
.public-consent input { width: 18px; height: 18px; accent-color: var(--public-teal); }
.public-consent { display: flex; align-items: flex-start; gap: .65rem; color: #536d72; font-size: .82rem; font-weight: 650; }
.public-contact-more { grid-column: 1 / -1; border: 1px solid #dce5e3; border-radius: 14px; background: #fafcfb; }
.public-contact-more summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; color: var(--public-deep); cursor: pointer; font-size: .82rem; font-weight: 850; }
.public-contact-more summary::marker { color: var(--public-teal); }
.public-contact-more summary:focus-visible { border-radius: 13px; outline: 3px solid rgba(8,124,112,.18); }
.public-contact-more summary small { color: #71868b; font-size: .72rem; font-weight: 600; text-align: right; }
.public-contact-more-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; border-top: 1px solid #e1e8e6; padding: 1rem; }
.public-form-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid #e3e9e8; padding-top: .85rem; }
.public-form-footer p { max-width: 430px; margin: 0; color: #7b8e92; font-size: .72rem; line-height: 1.45; }
.public-form-footer .public-button { flex: 0 0 auto; }
.public-form-errors { border: 1px solid #efc8c2; border-radius: 12px; padding: .8rem 1rem; color: #963d35; background: #fff4f2; }
.public-form-errors p { margin: 0; }
.public-success { display: grid; grid-template-columns: auto 1fr; gap: .85rem; align-items: start; margin-bottom: 1rem; border: 1px solid #b9dfd3; border-radius: 14px; padding: 1rem; color: #145f55; background: #edf9f5; }
.public-success > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: #fff; background: var(--public-teal); }
.public-success p { margin: .25rem 0 0; color: #4d746d; font-size: .82rem; line-height: 1.5; }

.public-footer { display: flex; align-items: center; justify-content: space-between; gap: 2rem; border-top: 1px solid rgba(18,51,59,.12); padding: 2rem 0; }
.public-footer p { margin: .35rem 0 0; color: #74878b; }
.public-footer a { color: var(--public-teal); font-weight: 800; }
.public-unpublished { display: grid; min-height: 65vh; place-items: center; align-content: center; gap: 1rem; text-align: center; }
.public-unpublished > span { display: grid; width: 64px; height: 64px; place-items: center; border-radius: 20px; color: #fff; background: var(--public-deep); font-weight: 900; }
.public-unpublished h1,
.public-unpublished p { margin: 0; }
.public-unpublished .public-button { margin-top: .75rem; }

@media (max-width: 1100px) {
    .public-hero { grid-template-columns: 1fr; }
    .public-operation-panel { margin-top: 0; }
    .public-coverage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .public-story-grid { grid-template-columns: 1fr; }
    .public-offer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .public-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
    .public-body .page-shell { width: min(100% - 1.25rem, 1380px); }
    .public-body .topbar { min-height: 66px; align-items: center; flex-direction: row; }
    .public-body .topbar > .topnav:not(.public-topnav) .ghost-button { display: none; }
    .public-topnav a:not(.public-login-link) { display: none; }
    .public-body .page-content { gap: 2.25rem; }
    .public-hero { min-height: 0; border-radius: 24px; }
    .public-hero-copy { padding: 2rem 1.25rem; }
    .public-hero h1 { font-size: 2.25rem; }
    .public-hero-actions .public-button { width: 100%; }
    .public-hero-visual { min-height: 370px; padding: 1rem; }
    .public-operation-panel { margin: 0 1rem 1rem; }
    .public-operation-panel li { padding: .62rem 0; }
    .public-operation-panel footer { display: none; }
    .public-product-map { gap: .6rem; }
    .public-map-node { min-height: 125px; padding: 1rem; }
    .public-map-node.is-main { min-height: 145px; }
    .public-proof-row { margin-top: 2rem; }
    .public-story,
    .public-trust,
    .public-contact { grid-template-columns: 1fr; }
    .public-story { gap: 1.5rem; min-height: 0; border-radius: 22px; padding: 1.5rem; }
    .public-story-grid .public-story { min-height: 0; }
    .public-story-media_left .public-story-media { order: initial; }
    .public-story-media { min-height: 240px; }
    .public-section-heading { align-items: start; flex-direction: column; }
    .public-offer-grid,
    .public-product-grid,
    .public-product-grid.is-a-la-carte,
    .public-coverage-grid { grid-template-columns: 1fr; }
    .public-product-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .public-product-logo-column { padding: 1rem .65rem; }
    .public-product-details { gap: .85rem; padding: 1rem .8rem; }
    .public-product-logo { width: min(100%, 240px); height: auto; border-radius: 16px; padding: 7px; }
    .public-product-topline { align-items: flex-start; flex-direction: column; }
    .public-license-heading { align-items: flex-start; flex-direction: column; }
    .public-license-prices div { display: grid; gap: .2rem; }
    .public-license-prices dd { text-align: left; }
    .public-coverage-grid article { min-height: 0; }
    .public-pricing-equation { align-items: stretch; flex-direction: column; }
    .public-pricing-equation b { align-self: center; }
    .public-contact-copy { position: static; }
    .public-contact-form { grid-template-columns: 1fr; }
    .public-contact-form-head { align-items: start; flex-direction: column; }
    .public-contact-more-grid { grid-template-columns: 1fr; }
    .public-contact-more summary { align-items: start; flex-direction: column; gap: .2rem; }
    .public-contact-more summary small { text-align: left; }
    .public-field-wide,
    .public-interest-field,
    .public-consent,
    .public-form-footer,
    .public-form-errors,
    .public-success { grid-column: auto; }
    .public-interest-grid { grid-template-columns: 1fr; }
    .public-form-footer,
    .public-footer { align-items: stretch; flex-direction: column; }
    .public-form-footer .public-button { width: 100%; }
}

/* Presentation 2.0 */
.public-page-progress {
    position: fixed;
    z-index: 90;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    pointer-events: none;
}

.public-page-progress span {
    display: block;
    width: 100%;
    height: 100%;
    transform: scaleX(0);
    transform-origin: left;
    background: linear-gradient(90deg, var(--public-mint), var(--public-sand));
}

.public-live-canvas {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-self: center;
    margin: clamp(1.25rem, 2vw, 2rem);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 30px 18px 30px 18px;
    background: linear-gradient(145deg, rgba(255,255,255,.1), rgba(255,255,255,.035));
    box-shadow: inset 0 1px rgba(255,255,255,.08), 0 28px 60px rgba(3,24,29,.24);
}

.public-live-canvas header {
    position: relative;
    z-index: 2;
    display: grid;
    gap: .25rem;
    border-bottom: 1px solid rgba(255,255,255,.1);
    padding: 1.2rem 1.4rem;
}

.public-live-canvas header span,
.public-live-stack small {
    color: var(--public-mint);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.public-live-canvas header strong { font-size: 1.08rem; }

.public-live-orbit {
    position: absolute;
    top: -8rem;
    right: -7rem;
    width: 22rem;
    height: 22rem;
    border: 1px solid rgba(100,213,178,.12);
    border-radius: 50%;
}

.public-live-orbit::before,
.public-live-orbit::after {
    position: absolute;
    border: 1px solid rgba(100,213,178,.1);
    border-radius: inherit;
    content: "";
}

.public-live-orbit::before { inset: 3rem; }
.public-live-orbit::after { inset: 6rem; }

.public-live-stack {
    position: relative;
    z-index: 2;
    display: grid;
    gap: .55rem;
    padding: 1rem 1.25rem;
}

.public-live-stack article {
    display: grid;
    grid-template-columns: 2.3rem minmax(0, 1fr) auto;
    gap: .8rem;
    align-items: center;
    min-height: 64px;
    border: 1px solid transparent;
    border-radius: 15px;
    padding: .65rem .75rem;
    color: rgba(248,255,253,.58);
    background: rgba(3,24,29,.1);
    transition: transform .35s ease, color .35s ease, background .35s ease, border-color .35s ease;
}

.public-live-stack article.is-active {
    transform: translateX(-.35rem);
    border-color: rgba(100,213,178,.32);
    color: #fff;
    background: rgba(100,213,178,.13);
}

.public-live-stack article > span {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    border-radius: 10px;
    color: var(--public-mint);
    background: rgba(100,213,178,.1);
    font-size: .7rem;
    font-weight: 900;
}

.public-live-stack article div { display: grid; gap: .16rem; }
.public-live-stack article strong { font-size: .88rem; }
.public-live-stack article b { border-radius: 999px; padding: .38rem .55rem; color: inherit; background: rgba(255,255,255,.06); font-size: .66rem; }
.public-live-canvas footer { position: relative; z-index: 2; display: flex; align-items: center; gap: .8rem; border-top: 1px solid rgba(255,255,255,.1); padding: .8rem 1.3rem; }
.public-live-canvas footer span { flex: 0 0 auto; color: var(--public-mint); font-size: .75rem; font-weight: 900; }
.public-live-canvas footer p { margin: 0; color: rgba(248,255,253,.62); font-size: .72rem; line-height: 1.45; }

.public-workflow,
.public-role-map,
.public-product-lab,
.public-evidence-ledger { scroll-margin-top: 96px; }

.public-workflow { display: grid; gap: 2rem; }
.public-workflow-heading { max-width: 980px; }
.public-workflow h2,
.public-role-map h2,
.public-product-lab h2,
.public-evidence-ledger h2 {
    margin: 0;
    color: var(--public-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.1rem, 4vw, 3.65rem);
    letter-spacing: -.04em;
    line-height: 1.04;
}

.public-workflow-layout {
    display: grid;
    grid-template-columns: minmax(330px, .82fr) minmax(0, 1.18fr);
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: start;
}

.public-workflow-scene {
    position: sticky;
    top: 108px;
    display: flex;
    min-height: 500px;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    border-radius: 34px 34px 10px 34px;
    padding: clamp(2rem, 4vw, 3.2rem);
    color: #f8fffd;
    background:
        radial-gradient(circle at 88% 12%, rgba(244,200,115,.24), transparent 15rem),
        linear-gradient(145deg, #0b2c34, #124851);
    box-shadow: 0 28px 70px rgba(11,44,52,.18);
}

.public-workflow-scene::after {
    position: absolute;
    right: -5rem;
    bottom: -7rem;
    width: 18rem;
    height: 18rem;
    border: 1px solid rgba(100,213,178,.17);
    border-radius: 50%;
    content: "";
}

.public-scene-index { position: absolute; top: 1.4rem; right: 1.7rem; color: rgba(255,255,255,.12); font-family: "Bahnschrift SemiCondensed", sans-serif; font-size: 6rem; font-weight: 900; line-height: 1; }
.public-workflow-scene .public-kicker { position: relative; z-index: 1; color: var(--public-mint); }
.public-workflow-scene h3 { position: relative; z-index: 1; max-width: 520px; margin: .2rem 0 1rem; font-family: "Bahnschrift SemiCondensed", sans-serif; font-size: clamp(2rem, 3vw, 3rem); line-height: 1.05; }
.public-workflow-scene > p:not(.public-kicker) { position: relative; z-index: 1; margin: 0; color: rgba(248,255,253,.7); line-height: 1.65; }

.public-scene-document {
    position: relative;
    z-index: 1;
    display: grid;
    gap: .7rem;
    margin-top: 2.2rem;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 18px 18px 18px 5px;
    padding: 1.1rem;
    background: rgba(255,255,255,.08);
}

.public-scene-document > span { color: var(--public-mint); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.public-scene-document strong { font-size: .95rem; }
.public-scene-document div { display: grid; grid-template-columns: 1fr .75fr .45fr; gap: .4rem; }
.public-scene-document i { height: 5px; border-radius: 999px; background: rgba(255,255,255,.13); }

.public-workflow-steps { display: grid; gap: .8rem; padding-block: 1rem 5rem; }
.public-workflow-steps article {
    display: grid;
    grid-template-columns: 3.4rem 1fr;
    gap: 1.2rem;
    align-items: start;
    min-height: 160px;
    border: 1px solid rgba(18,51,59,.1);
    border-radius: 8px 24px 24px 24px;
    padding: 1.5rem;
    background: rgba(255,255,255,.7);
    opacity: .68;
    transition: opacity .3s ease, transform .3s ease, border-color .3s ease, background .3s ease;
}

.public-workflow-steps article.is-active { transform: translateX(-.6rem); border-color: rgba(8,124,112,.38); background: #fff; opacity: 1; }
.public-workflow-steps article > span { display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: 50%; color: var(--public-teal); background: rgba(8,124,112,.08); font-weight: 900; }
.public-workflow-steps h3 { margin: .25rem 0 .5rem; color: var(--public-deep); font-size: 1.25rem; }
.public-workflow-steps p { margin: 0; color: #667c81; line-height: 1.55; }

.public-configured-details { border-top: 1px solid rgba(18,51,59,.12); border-bottom: 1px solid rgba(18,51,59,.12); }
.public-configured-details summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 0; color: var(--public-deep); cursor: pointer; font-weight: 850; }
.public-configured-details summary small { color: #71868b; font-weight: 650; }
.public-configured-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; padding: .2rem 0 1.2rem; }
.public-configured-grid article { border-left: 2px solid rgba(8,124,112,.3); padding: .5rem 1rem; }
.public-configured-grid h3 { margin: 0 0 .5rem; color: var(--public-deep); font-size: 1.04rem; }
.public-configured-grid article > p:last-of-type { margin: 0; color: #657b80; font-size: .86rem; line-height: 1.55; }

.public-role-map {
    display: grid;
    gap: 2rem;
    overflow: hidden;
    border-radius: 38px 12px 38px 38px;
    padding: clamp(2rem, 5vw, 4.5rem);
    color: #f8fffd;
    background:
        radial-gradient(circle at 9% 90%, rgba(100,213,178,.18), transparent 25rem),
        linear-gradient(135deg, #0b2c34, #103c45);
}

.public-role-map h2 { max-width: 850px; color: #fff; }
.public-role-map .public-section-heading > div > p:last-child { color: rgba(248,255,253,.66); }
.public-role-map .public-kicker { color: var(--public-mint); }
.public-role-layout { display: grid; grid-template-columns: 210px minmax(520px,1fr) 280px; gap: 1rem; align-items: stretch; }
.public-role-switcher { display: grid; align-content: start; gap: .55rem; }
.public-role-node { display: grid; grid-template-columns: auto 1fr; gap: .1rem .65rem; align-items: center; width: 100%; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; padding: .8rem; color: rgba(248,255,253,.7); background: rgba(255,255,255,.06); font: inherit; text-align: left; cursor: pointer; transition: transform .2s ease, color .2s ease, background .2s ease, border-color .2s ease; }
.public-role-node:hover,
.public-role-node:focus-visible,
.public-role-node.is-active { transform: translateY(-3px); border-color: rgba(100,213,178,.45); color: #fff; background: rgba(100,213,178,.14); outline: none; }
.public-role-node span { display: grid; width: 2rem; height: 2rem; grid-row: 1 / 3; place-items: center; border-radius: 50%; color: var(--public-mint); background: rgba(100,213,178,.1); font-size: .65rem; font-weight: 900; }
.public-role-node strong { font-size: .82rem; }
.public-role-node small { color: rgba(248,255,253,.5); font-size: .65rem; font-weight: 650; }
.public-interface-capture { display: grid; min-width: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: 18px; color: var(--public-deep); background: #f4f7f6; box-shadow: 0 30px 70px rgba(0,0,0,.2); }
.public-capture-bar { display: flex; gap: .35rem; align-items: center; min-height: 42px; border-bottom: 1px solid rgba(18,51,59,.1); padding: .7rem 1rem; background: #fff; }
.public-capture-bar > span { width: .55rem; height: .55rem; border-radius: 50%; background: #d7dfdd; }
.public-capture-bar > span:first-child { background: #e89a7f; }
.public-capture-bar > span:nth-child(2) { background: #e6c36a; }
.public-capture-bar > span:nth-child(3) { background: #72c39e; }
.public-capture-bar strong { margin-left: .55rem; color: #557076; font-size: .58rem; letter-spacing: .1em; }
.public-capture-bar small { margin-left: auto; border-radius: 999px; padding: .3rem .55rem; color: #397369; background: #e5f5ef; font-size: .58rem; font-weight: 800; }
.public-capture-shell { display: grid; min-height: 390px; grid-template-columns: 56px 1fr; }
.public-capture-shell > aside { display: grid; align-content: start; justify-items: center; gap: 1.25rem; padding: .85rem .4rem; color: #fff; background: #123b45; }
.public-capture-shell > aside b { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 10px; color: var(--public-deep); background: var(--public-mint); font-size: .7rem; }
.public-capture-rail-mark span { display: none; }
.public-interface-capture[data-role-capture="photo"] [data-capture-mark="photo"],
.public-interface-capture[data-role-capture="school"] [data-capture-mark="school"],
.public-interface-capture[data-role-capture="parent"] [data-capture-mark="parent"] { display: block; }
.public-capture-shell > aside i { width: 1.3rem; height: .35rem; border-radius: 999px; background: rgba(255,255,255,.25); }
.public-capture-content { min-width: 0; padding: 1.35rem; }
.public-capture-scene { display: none; }
.public-interface-capture[data-role-capture="photo"] [data-capture-scene="photo"],
.public-interface-capture[data-role-capture="school"] [data-capture-scene="school"],
.public-interface-capture[data-role-capture="parent"] [data-capture-scene="parent"],
.public-interface-capture[data-role-capture="system"] [data-capture-scene="system"] { display: grid; gap: 1rem; animation: public-capture-in .28s ease both; }
@keyframes public-capture-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.public-capture-scene header { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.public-capture-scene header small { color: var(--public-teal); font-size: .58rem; font-weight: 900; letter-spacing: .12em; }
.public-capture-scene header h3 { margin: .22rem 0 0; font-size: 1.35rem; }
.public-capture-scene header > span { border-radius: 999px; padding: .4rem .65rem; color: #526c72; background: #e8efed; font-size: .65rem; font-weight: 750; }
.public-capture-kpis { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; }
.public-capture-kpis article { display: grid; gap: .15rem; border: 1px solid #dce6e3; border-radius: 13px; padding: .8rem; background: #fff; }
.public-capture-kpis small { color: #6f8388; font-size: .62rem; }
.public-capture-kpis strong { font-size: 1.25rem; }
.public-capture-kpis span { color: #3f8a78; font-size: .58rem; }
.public-capture-list { display: grid; overflow: hidden; border: 1px solid #dce6e3; border-radius: 13px; background: #fff; }
.public-capture-list article { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .78rem .9rem; font-size: .72rem; }
.public-capture-list article + article { border-top: 1px solid #e4ecea; }
.public-capture-list span { border-radius: 999px; padding: .3rem .5rem; color: #567076; background: #edf2f1; font-size: .58rem; font-weight: 800; }
.public-capture-list span.is-green { color: #24745e; background: #dff2eb; }
.public-capture-list span.is-gold { color: #8a6721; background: #fff0c9; }
.public-capture-progress { display: grid; gap: .45rem; border-radius: 13px; padding: 1rem; background: #fff; }
.public-capture-progress span { color: #6f8388; font-size: .65rem; }
.public-capture-progress strong { font-size: 1rem; }
.public-capture-progress i { position: relative; height: .45rem; overflow: hidden; border-radius: 999px; background: #e3ece9; }
.public-capture-progress i::after { position: absolute; inset: 0 33% 0 0; border-radius: inherit; background: var(--public-teal); content: ""; }
.public-capture-photos { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.public-capture-photos article { display: grid; gap: .35rem; border: 1px solid #dce6e3; border-radius: 13px; padding: .7rem; background: #fff; }
.public-capture-photos article > div { position: relative; aspect-ratio: 1.55; overflow: hidden; border-radius: 9px; background: linear-gradient(145deg,#83d1bb,#194a54); }
.public-capture-photos article > div::before { position: absolute; top: 18%; left: 50%; width: 22%; aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%; background: rgba(255,255,255,.9); content: ""; }
.public-capture-photos article > div::after { position: absolute; bottom: -25%; left: 50%; width: 55%; aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%; background: rgba(255,255,255,.82); content: ""; }
.public-capture-photos strong { font-size: .72rem; }
.public-capture-photos small { color: #71858a; font-size: .58rem; }
.public-capture-cart { display: flex; justify-content: space-between; gap: 1rem; border-radius: 12px; padding: .8rem 1rem; color: #fff; background: #123b45; font-size: .72rem; }
.public-interface-capture[data-role-capture="parent"] { background: #f6f0e9; }
.public-interface-capture[data-role-capture="parent"] .public-capture-bar small { color: #9c4728; background: #f7e6dc; }
.public-interface-capture[data-role-capture="parent"] .public-capture-shell > aside { background: #3d2721; }
.public-interface-capture[data-role-capture="parent"] .public-capture-shell > aside b { color: #fff; background: #c45b32; box-shadow: 0 8px 18px rgba(126,55,31,.28); }
.public-interface-capture[data-role-capture="parent"] .public-capture-content { background: radial-gradient(circle at 92% 2%, rgba(94,139,123,.13), transparent 14rem), #f8f3ed; }
.public-parent-capture-brand { display: flex; gap: .65rem; align-items: center; }
.public-parent-capture-brand > span { display: grid; width: 2.2rem; height: 2.2rem; place-items: center; border-radius: 10px; color: #fff; background: linear-gradient(145deg,#d86d43,#a84425); box-shadow: 0 8px 18px rgba(160,67,35,.22); font-size: .68rem; font-weight: 900; }
.public-parent-capture-brand > div { display: grid; }
.public-parent-capture header small { color: #a94b2b; }
.public-parent-capture header > span { color: #456a5f; background: #e2eee9; }
.public-parent-capture-route { display: flex; gap: .55rem; align-items: center; border-block: 1px solid #e4d8cf; padding-block: .65rem; color: #8b7770; font-size: .62rem; font-weight: 800; }
.public-parent-capture-route span { display: flex; gap: .35rem; align-items: center; white-space: nowrap; }
.public-parent-capture-route span b { display: grid; width: 1.25rem; height: 1.25rem; place-items: center; border-radius: 50%; color: #fff; background: #b9aaa4; font-size: .55rem; }
.public-parent-capture-route span.is-active { color: #a84425; }
.public-parent-capture-route span.is-active b { background: #c45b32; }
.public-parent-capture-route > i { min-width: .8rem; height: 1px; flex: 1 1 auto; background: #d9cbc4; }
.public-parent-capture .public-capture-photos { grid-template-columns: repeat(3,minmax(0,1fr)); }
.public-parent-capture .public-capture-photos article { border-color: #e4d8cf; box-shadow: 0 10px 24px rgba(75,45,35,.06); }
.public-parent-capture .public-capture-photos article > div { background: linear-gradient(145deg,#d6a07f,#9d4b31 62%,#51342c); }
.public-parent-capture .public-capture-photos article:nth-child(2) > div { background: linear-gradient(145deg,#c7d9d2,#527d70 62%,#29473f); }
.public-parent-capture .public-capture-photos article:nth-child(3) > div { background: linear-gradient(145deg,#e9cfa3,#b87b30 62%,#654721); }
.public-parent-capture .public-capture-cart { align-items: center; background: #3d2721; box-shadow: 0 10px 22px rgba(61,39,33,.13); }
.public-parent-capture .public-capture-cart > span { display: grid; gap: .08rem; }
.public-parent-capture .public-capture-cart small { color: #d9b6a8; font-size: .55rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.public-parent-capture .public-capture-cart strong { display: flex; gap: .45rem; align-items: center; color: #fff; }
.public-parent-capture .public-capture-cart strong i { color: #edaa89; font-style: normal; }
.public-interface-capture[data-role-capture="parent"] > footer strong { color: #a94b2b; }
.public-interface-capture > footer { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid rgba(18,51,59,.1); padding: .65rem 1rem; color: #698085; background: #fff; font-size: .58rem; }
.public-interface-capture > footer strong { color: var(--public-teal); }
.public-role-readout { display: grid; gap: .8rem; border: 1px solid rgba(255,255,255,.14); border-radius: 8px 26px 26px 26px; padding: 1.6rem; background: rgba(255,255,255,.07); }
.public-role-readout h3 { margin: 0; font-size: 1.6rem; }
.public-role-readout > p:not(.public-kicker) { margin: 0; color: rgba(248,255,253,.66); line-height: 1.65; }
.public-role-readout > div { display: grid; gap: .25rem; border-top: 1px solid rgba(255,255,255,.1); padding-top: 1rem; }
.public-role-readout > div span { color: var(--public-mint); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }

.public-product-lab { display: grid; grid-template-columns: minmax(0,.78fr) minmax(500px,1.22fr); gap: clamp(2rem,6vw,6rem); align-items: center; border: 1px solid rgba(18,51,59,.09); border-radius: 10px 38px 38px 38px; padding: clamp(2rem,5vw,4rem); background: linear-gradient(135deg, #fffaf0, #f3eee2); }
.public-product-lab-copy > p:not(.public-kicker):not(.public-lab-note) { color: #657b80; line-height: 1.7; }
.public-lab-controls { display: grid; gap: 1rem; margin-top: 1.5rem; }
.public-lab-controls > div { display: flex; gap: .45rem; flex-wrap: wrap; align-items: center; }
.public-lab-controls > div > span { width: 100%; color: #71868b; font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.public-lab-controls button { border: 1px solid rgba(18,51,59,.12); border-radius: 999px; padding: .6rem .85rem; color: #49666c; background: rgba(255,255,255,.55); font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; }
.public-lab-controls button.is-active { border-color: var(--public-deep); color: #fff; background: var(--public-deep); }
.public-lab-note { margin-top: 1.2rem; color: #7b8e92; font-size: .72rem; line-height: 1.5; }
.public-lab-stage { position: relative; display: grid; min-height: 580px; place-items: center; overflow: hidden; border-radius: 30px; background: radial-gradient(circle at 50% 42%, rgba(100,213,178,.18), transparent 18rem), #e7ece8; }
.public-lab-stage::before { position: absolute; inset: 1rem; border: 1px dashed rgba(18,51,59,.12); border-radius: 22px; content: ""; }
.public-lab-product { position: relative; display: grid; width: min(390px,72%); aspect-ratio: .78; grid-template-rows: 1fr auto; overflow: hidden; border: 10px solid #fff; border-radius: 4px; background: #fff; box-shadow: 0 35px 65px rgba(18,51,59,.2); transition: width .4s ease, aspect-ratio .4s ease, transform .4s ease, filter .3s ease; }
.public-lab-photo { position: relative; overflow: hidden; background: linear-gradient(145deg, #5fc6ac, #164b55 62%, #0b2c34); }
.public-lab-photo::before { position: absolute; top: 20%; left: 50%; width: 28%; aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%; background: rgba(255,255,255,.86); content: ""; }
.public-lab-photo::after { position: absolute; bottom: -10%; left: 50%; width: 70%; aspect-ratio: 1.05; transform: translateX(-50%); border-radius: 50% 50% 20% 20%; background: rgba(255,255,255,.82); content: ""; }
.public-lab-photo span { position: absolute; inset: 0; background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.2) 46%, transparent 60%); }
.public-lab-caption { display: grid; gap: .22rem; padding: .9rem; }
.public-lab-caption small { color: var(--public-teal); font-size: .58rem; font-weight: 900; letter-spacing: .1em; }
.public-lab-caption strong { color: var(--public-deep); }
.public-lab-caption span { color: #70848a; font-size: .68rem; }
.public-lab-mark { position: absolute; top: .8rem; right: .8rem; display: grid; width: 2.1rem; height: 2.1rem; place-items: center; border-radius: 50%; color: #fff; background: rgba(11,44,52,.76); font-size: .65rem; font-style: normal; font-weight: 900; }
.public-lab-meta { position: absolute; right: 1.3rem; bottom: 1.3rem; display: grid; gap: .1rem; border-radius: 14px; padding: .65rem .8rem; color: #fff; background: rgba(11,44,52,.9); }
.public-lab-meta span { color: var(--public-mint); font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.public-lab-meta strong { font-size: .75rem; }
.public-lab-stage[data-format="wallet"] .public-lab-product { width: min(520px,82%); aspect-ratio: 1.48; transform: rotate(-2deg); }
.public-lab-stage[data-format="digital"] .public-lab-product { width: min(340px,66%); aspect-ratio: .72; border-radius: 18px; transform: rotate(2deg); }
.public-lab-stage[data-tone="mono"] .public-lab-photo { filter: grayscale(1) contrast(1.08); }

.public-pricing-composer { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(330px,.75fr); gap: 1rem; overflow: hidden; border: 1px solid rgba(18,51,59,.11); border-radius: 34px 10px 34px 34px; padding: 1rem; background: rgba(255,255,255,.72); box-shadow: 0 22px 60px rgba(18,51,59,.08); }
.public-composer-controls { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; padding: clamp(1rem,3vw,2rem); }
.public-composer-controls > div:first-child,
.public-composer-options { grid-column: 1 / -1; }
.public-composer-controls h3 { margin: 0; color: var(--public-deep); font-family: "Bahnschrift SemiCondensed", sans-serif; font-size: 2rem; }
.public-composer-controls > div:first-child > p:last-child { margin-bottom: 0; color: #657b80; line-height: 1.55; }
.public-composer-controls > label { display: grid; gap: .45rem; color: #49666c; font-size: .75rem; font-weight: 850; }
.public-composer-controls select { min-height: 46px; border: 1px solid #d6e1df; border-radius: 12px; padding: .7rem .8rem; color: var(--public-deep); background: #fff; font: inherit; font-weight: 750; }
.public-composer-wide { grid-column: 1 / -1; }
.public-ca-range > span,
.public-percent-range > span { display: flex; justify-content: space-between; gap: .5rem; }
.public-ca-range output,
.public-percent-range output { color: var(--public-teal); }
.public-ca-range input[type="number"],
.public-percent-range input[type="number"] { width: 100%; min-height: 46px; box-sizing: border-box; border: 1px solid #d6e1df; border-radius: 12px; padding: .7rem .8rem; color: var(--public-deep); background: #fff; font: inherit; font-weight: 800; }
.public-ca-range input[type="range"],
.public-percent-range input[type="range"] { width: 100%; height: 7px; margin-top: .35rem; border-radius: 999px; appearance: none; background: linear-gradient(90deg,var(--public-teal) var(--range-progress,.01%),#dce6e3 var(--range-progress,.01%)); }
.public-ca-range input[type="range"]::-webkit-slider-thumb,
.public-percent-range input[type="range"]::-webkit-slider-thumb { width: 22px; height: 22px; border: 4px solid #fff; border-radius: 50%; appearance: none; background: var(--public-teal); box-shadow: 0 3px 10px rgba(11,44,52,.2); }
.public-ca-average { display: flex; justify-content: flex-end; gap: .35rem; color: #6b8085; font-size: .68rem; font-weight: 650; }
.public-ca-average strong { color: var(--public-teal); font-weight: 900; }
.public-composer-options { margin: .5rem 0 0; border: 0; padding: 0; }
.public-composer-options legend { margin-bottom: .7rem; color: #49666c; font-size: .75rem; font-weight: 850; }
.public-composer-options > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.public-composer-options label { display: flex; gap: .7rem; align-items: center; border: 1px solid #dce5e3; border-radius: 14px; padding: .75rem; background: #fff; cursor: pointer; }
.public-composer-options input { width: 19px; height: 19px; flex: 0 0 auto; accent-color: var(--public-teal); }
.public-composer-options label > span { display: grid; gap: .15rem; }
.public-composer-options strong { color: var(--public-deep); font-size: .78rem; }
.public-composer-options small { color: var(--public-teal); font-size: .68rem; }
.public-composer-result { display: flex; min-height: 100%; flex-direction: column; border-radius: 25px 6px 25px 25px; padding: clamp(1.5rem,3vw,2.4rem); color: #f8fffd; background: linear-gradient(145deg,#0b2c34,#124851); }
.public-result-period > span { color: var(--public-mint); font-size: .7rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.public-result-period > strong { display: block; margin-top: .45rem; font-family: "Bahnschrift SemiCondensed", sans-serif; font-size: clamp(2.1rem,3.4vw,3.25rem); letter-spacing: -.04em; line-height: 1; }
.public-result-period > p { margin: .45rem 0 0; color: rgba(248,255,253,.64); font-size: .72rem; line-height: 1.45; }
.public-result-period > p b { color: #fff; }
.public-result-annual { margin: 1.15rem 0 .7rem; border: 1px solid rgba(255,255,255,.13); border-radius: 16px 5px 16px 16px; padding: 1rem; background: rgba(255,255,255,.07); }
.public-result-annual > strong { font-size: clamp(1.7rem,2.6vw,2.35rem); }
.public-composer-result dl { display: grid; margin: 0; }
.public-composer-result dl div { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid rgba(255,255,255,.1); padding: .75rem 0; }
.public-composer-result dt { color: rgba(248,255,253,.6); font-size: .78rem; }
.public-composer-result dd { display: grid; gap: .12rem; margin: 0; text-align: right; font-size: .76rem; font-weight: 850; }
.public-composer-result dd small { color: var(--public-mint); font-size: .65rem; font-weight: 750; }
.public-composer-note { margin: auto 0 1.2rem; padding-top: 1.2rem; color: rgba(248,255,253,.55); font-size: .7rem; line-height: 1.5; }

.public-evidence-ledger { display: grid; gap: 1.8rem; border-top: 1px solid rgba(18,51,59,.14); border-bottom: 1px solid rgba(18,51,59,.14); padding: 2.8rem 0; }
.public-evidence-ledger header { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(260px,.9fr); gap: 2rem; align-items: end; }
.public-evidence-ledger header > p { margin: 0; color: #667c81; line-height: 1.65; }
.public-evidence-ledger ol { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; padding: 0; list-style: none; }
.public-evidence-ledger li { display: grid; grid-template-columns: 2.5rem 1fr auto; gap: .8rem; align-items: center; border-top: 1px solid rgba(18,51,59,.11); padding: 1rem .5rem; }
.public-evidence-ledger li:nth-child(odd) { padding-right: 1.5rem; }
.public-evidence-ledger li:nth-child(even) { border-left: 1px solid rgba(18,51,59,.11); padding-left: 1.5rem; }
.public-evidence-ledger li > span { color: var(--public-teal); font-size: .72rem; font-weight: 900; }
.public-evidence-ledger li p { margin: 0; color: var(--public-deep); font-weight: 750; }
.public-evidence-ledger li small { color: #7b8e92; font-size: .65rem; text-transform: uppercase; }

.public-contact-form { display: grid; grid-template-columns: 1fr; }
.public-contact-form-head,
.public-wizard-progress,
.public-form-step { grid-column: 1 / -1; }
.public-wizard-progress { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; gap: .6rem; align-items: center; }
.public-wizard-progress > span { display: grid; grid-template-columns: 2rem auto; gap: .45rem; align-items: center; color: #7a8d91; font-size: .72rem; font-weight: 850; }
.public-wizard-progress > span::before { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid #d6e1df; border-radius: 50%; color: inherit; background: #fff; content: attr(data-step-number); }
.public-wizard-progress > span { width: max-content; }
.public-wizard-progress > span small { font-size: .7rem; }
.public-wizard-progress > span.is-active,
.public-wizard-progress > span.is-complete { color: var(--public-teal); }
.public-wizard-progress > span.is-active::before,
.public-wizard-progress > span.is-complete::before { border-color: var(--public-teal); color: #fff; background: var(--public-teal); }
.public-wizard-progress > i { height: 1px; background: #dce5e3; }
.public-form-step { margin: 0; border: 0; padding: .35rem 0 0; }
.public-form-step > legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.public-js .public-form-step { display: none; }
.public-js .public-form-step.is-active { display: block; animation: publicStepIn .28s ease both; }
.public-step-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem 1rem; }
.public-step-grid > label { display: grid; gap: .42rem; color: #395b62; font-size: .78rem; font-weight: 800; }
.public-wizard-actions { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; border-top: 1px solid #e3e9e8; margin-top: 1rem; padding-top: .9rem; }
.public-wizard-actions > span { color: #7b8e92; font-size: .72rem; text-align: center; }
.public-wizard-actions > .public-button:first-child:last-child { grid-column: 3; }
.public-form-step .public-form-footer { margin-top: 1rem; }

.public-request-choice {
    display: grid;
    gap: .8rem;
}

.public-request-panel {
    display: grid;
    gap: .8rem;
    border: 1px solid #dce6e4;
    border-radius: 16px;
    padding: 1rem;
    background: #fbfdfc;
}

.public-request-panel.is-standalone {
    border-color: #dbe2e9;
    background: #fafbfc;
}

.public-request-panel-head {
    display: flex;
    gap: .7rem;
    align-items: center;
}

.public-request-panel-head > span {
    display: grid;
    width: 30px;
    height: 30px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 9px;
    color: #087c70;
    background: #e5f5f0;
    font-size: .7rem;
    font-weight: 900;
}

.public-request-panel-head > div {
    display: grid;
    gap: .08rem;
}

.public-request-panel-head strong {
    color: var(--public-deep);
    font-size: .9rem;
}

.public-request-panel-head small {
    color: #74898d;
    font-size: .72rem;
}

.public-request-formula {
    display: grid;
    gap: .4rem;
    color: #395b62;
    font-size: .76rem;
    font-weight: 800;
}

.public-request-option-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.public-request-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .65rem;
    align-items: center;
    min-height: 68px;
    border: 1px solid #dce5e3;
    border-radius: 13px;
    padding: .72rem;
    background: #fff;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.public-request-option:hover {
    border-color: rgba(8,124,112,.4);
}

.public-request-option.is-selected {
    border-color: #087c70;
    background: #edf9f5;
    box-shadow: 0 0 0 3px rgba(8,124,112,.08);
}

.public-request-option input {
    width: 19px;
    height: 19px;
    margin: 0;
    accent-color: #087c70;
}

.public-request-option > span {
    display: grid;
    gap: .16rem;
    min-width: 0;
}

.public-request-option strong {
    overflow: hidden;
    color: var(--public-deep);
    font-size: .8rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.public-request-option small {
    color: #70858a;
    font-size: .68rem;
    line-height: 1.35;
}

.public-request-empty {
    grid-column: 1 / -1;
    margin: 0;
    color: #71868b;
    font-size: .75rem;
}

.public-request-advice {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .25rem .65rem;
    align-items: center;
    border-radius: 13px;
    padding: .8rem 1rem;
    color: #315e5a;
    background: #edf7f4;
}

.public-request-advice strong {
    font-size: .77rem;
}

.public-request-advice p {
    margin: 0;
    color: #657e7c;
    font-size: .72rem;
    line-height: 1.45;
}

.public-request-review {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
    margin-bottom: 1rem;
    border: 1px solid #cfe3de;
    border-radius: 16px;
    padding: .8rem;
    background: #f2faf7;
}

.public-request-review > div {
    display: grid;
    gap: .2rem;
    border-radius: 11px;
    padding: .75rem;
    background: #fff;
}

.public-request-review > div.is-products {
    grid-column: 1 / -1;
}

.public-request-review span {
    color: #71868b;
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.public-request-review strong {
    color: var(--public-deep);
    font-size: .84rem;
}

.public-request-review ul {
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
    margin: .15rem 0 0;
    padding: 0;
    list-style: none;
}

.public-request-review li {
    border-radius: 999px;
    padding: .38rem .58rem;
    color: #0c655d;
    background: #e6f5f0;
    font-size: .7rem;
    font-weight: 800;
}

[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .55s ease, transform .55s ease; }
[data-reveal].is-visible { opacity: 1; transform: none; }

@keyframes publicStepIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: none; }
}

@media (max-width: 1100px) {
    .public-workflow-layout,
    .public-product-lab,
    .public-pricing-composer { grid-template-columns: 1fr; }
    .public-workflow-scene { position: relative; top: auto; min-height: 390px; }
    .public-workflow-steps { grid-template-columns: repeat(2,minmax(0,1fr)); padding-bottom: 0; }
    .public-workflow-steps article { min-height: 0; }
    .public-workflow-steps article.is-active { transform: none; }
    .public-role-layout { grid-template-columns: 190px minmax(0,1fr); }
    .public-role-readout { max-width: none; grid-column: 1 / -1; }
    .public-product-lab { grid-template-columns: 1fr; }
    .public-lab-stage { min-height: 540px; }
    .public-composer-result { min-height: 440px; }
}

@media (max-width: 780px) {
    .public-live-canvas { margin: 0 1rem 1rem; }
    .public-live-stack article { grid-template-columns: 2.2rem minmax(0,1fr); }
    .public-live-stack article b { display: none; }
    .public-live-canvas footer { display: flex; }
    .public-workflow h2,
    .public-role-map h2,
    .public-product-lab h2,
    .public-evidence-ledger h2 { font-size: 2.25rem; }
    .public-workflow-steps { grid-template-columns: 1fr; }
    .public-workflow-scene { min-height: 390px; border-radius: 26px 26px 8px 26px; padding: 1.5rem; }
    .public-scene-index { font-size: 4.5rem; }
    .public-workflow-steps article { min-height: 0; padding: 1.15rem; }
    .public-configured-grid { grid-template-columns: 1fr; }
    .public-role-map { border-radius: 28px 8px 28px 28px; padding: 1.5rem; }
    .public-role-layout { grid-template-columns: 1fr; }
    .public-role-switcher { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .public-role-node { min-width: 0; transform: none !important; padding: .65rem; }
    .public-interface-capture { border-radius: 14px; }
    .public-capture-shell { min-height: 430px; grid-template-columns: 42px 1fr; }
    .public-capture-shell > aside { gap: 1rem; }
    .public-capture-content { padding: 1rem; }
    .public-capture-kpis { grid-template-columns: 1fr; }
    .public-capture-kpis article { grid-template-columns: 1fr auto; }
    .public-capture-kpis article span { grid-column: 1 / -1; }
    .public-capture-photos { grid-template-columns: 1fr; }
    .public-parent-capture .public-capture-photos { grid-template-columns: 1fr; }
    .public-parent-capture-route { overflow-x: auto; }
    .public-interface-capture > footer { display: grid; }
    .public-role-readout { grid-column: auto; }
    .public-product-lab { border-radius: 8px 28px 28px 28px; padding: 1.5rem; }
    .public-lab-stage { min-height: 440px; }
    .public-lab-product { width: 72%; }
    .public-lab-stage[data-format="wallet"] .public-lab-product { width: 88%; }
    .public-pricing-composer { border-radius: 26px 8px 26px 26px; padding: .6rem; }
    .public-composer-controls { grid-template-columns: 1fr; padding: 1rem; }
    .public-composer-controls > div:first-child,
    .public-composer-options { grid-column: auto; }
    .public-composer-options > div { grid-template-columns: 1fr; }
    .public-composer-result { min-height: 420px; }
    .public-evidence-ledger header,
    .public-evidence-ledger ol { grid-template-columns: 1fr; }
    .public-evidence-ledger li:nth-child(odd),
    .public-evidence-ledger li:nth-child(even) { border-left: 0; padding-right: .25rem; padding-left: .25rem; }
    .public-evidence-ledger li { grid-template-columns: 2rem 1fr; }
    .public-evidence-ledger li small { display: none; }
    .public-wizard-progress > span { grid-template-columns: 2rem; }
    .public-wizard-progress > span small { display: none; }
    .public-step-grid { grid-template-columns: 1fr; }
    .public-request-option-grid,
    .public-request-review { grid-template-columns: 1fr; }
    .public-request-review > div.is-products { grid-column: auto; }
    .public-request-advice { grid-template-columns: 1fr; }
    .public-wizard-actions { grid-template-columns: 1fr 1fr; }
    .public-wizard-actions > span { display: none; }
    .public-wizard-actions > .public-button:first-child:last-child { grid-column: 2; }
    .public-form-step .public-form-footer { display: grid; grid-template-columns: 1fr; }
    .public-form-step .public-form-footer p { order: -1; }
}

@media (prefers-reduced-motion: reduce) {
    .public-live-stack article,
    .public-workflow-steps article,
    .public-lab-product,
    [data-reveal] { transition: none; }
    .public-js .public-form-step.is-active { animation: none; }
}

/* Presentation visual balance */
.public-body {
    overflow-x: hidden;
}

.public-body .page-shell {
    width: min(1760px, calc(100% - 2.5rem));
}

.public-body .topbar {
    min-height: 68px;
    padding-block: .65rem;
}

.public-body .brand-mark {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 12px;
}

.public-body .page-content {
    gap: 2.65rem;
}

.public-hero {
    grid-template-columns: minmax(0, 1.08fr) minmax(400px, .92fr);
    min-height: 560px;
    border-radius: 30px;
}

.public-hero-copy {
    padding: clamp(2.25rem, 3.7vw, 3.5rem);
}

.public-hero h1 {
    max-width: 690px;
    font-size: clamp(2.65rem, 3.65vw, 4rem);
    line-height: 1.01;
}

.public-hero-lead {
    max-width: 640px;
    margin-top: 1.25rem;
    font-size: clamp(1rem, 1.25vw, 1.15rem);
    line-height: 1.58;
}

.public-hero-actions,
.public-proof-row {
    margin-top: 1.5rem;
}

.public-live-canvas {
    margin: 1.4rem;
    border-radius: 24px 14px 24px 14px;
}

.public-live-canvas header {
    padding: 1rem 1.15rem;
}

.public-live-stack {
    gap: .42rem;
    padding: .8rem 1rem;
}

.public-live-stack article {
    min-height: 56px;
    padding: .5rem .65rem;
}

.public-live-canvas footer {
    padding: .7rem 1.1rem;
}

.public-workflow,
.public-role-map,
.public-product-lab,
.public-evidence-ledger {
    scroll-margin-top: 82px;
}

.public-workflow {
    gap: 1.5rem;
}

.public-workflow h2,
.public-role-map h2,
.public-product-lab h2,
.public-evidence-ledger h2,
.public-section-heading h2,
.public-contact h2 {
    font-size: clamp(2rem, 3.15vw, 3rem);
    line-height: 1.08;
}

.public-section-heading > div > p:last-child {
    max-width: 760px;
    margin-bottom: 0;
    line-height: 1.58;
}

.public-workflow-layout {
    grid-template-columns: minmax(320px, .78fr) minmax(0, 1.22fr);
    gap: clamp(1.4rem, 3vw, 2.75rem);
}

.public-workflow-scene {
    top: 88px;
    min-height: 420px;
    border-radius: 28px 28px 8px 28px;
    padding: clamp(1.75rem, 3vw, 2.5rem);
}

.public-workflow-scene h3 {
    font-size: clamp(1.8rem, 2.5vw, 2.45rem);
}

.public-scene-document {
    margin-top: 1.5rem;
}

.public-workflow-steps {
    gap: .65rem;
    padding-block: .25rem 1rem;
}

.public-workflow-steps article {
    min-height: 116px;
    grid-template-columns: 2.75rem 1fr;
    gap: .9rem;
    border-radius: 8px 20px 20px 20px;
    padding: 1.15rem;
}

.public-workflow-steps article > span {
    width: 2.55rem;
    height: 2.55rem;
}

.public-workflow-steps h3 {
    margin-top: .1rem;
}

.public-configured-details summary {
    padding-block: .9rem;
}

.public-configured-details summary::after {
    display: grid;
    width: 1.8rem;
    height: 1.8rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: var(--public-teal);
    background: rgba(8, 124, 112, .08);
    content: "+";
}

.public-configured-details[open] summary::after {
    content: "\2212";
}

.public-role-map {
    gap: 1.5rem;
    border-radius: 30px 10px 30px 30px;
    padding: clamp(2rem, 3.6vw, 3.25rem);
}

.public-role-layout {
    grid-template-columns: 180px minmax(470px, 1fr) 240px;
    gap: .85rem;
}

.public-role-node {
    padding: .68rem;
}

.public-capture-shell {
    min-height: 320px;
}

.public-capture-content {
    padding: 1rem;
}

.public-role-readout {
    gap: .65rem;
    padding: 1.25rem;
}

.public-role-readout h3 {
    font-size: 1.35rem;
}

.public-role-readout > p:not(.public-kicker) {
    font-size: .88rem;
    line-height: 1.55;
}

.public-product-lab {
    grid-template-columns: minmax(0, .85fr) minmax(430px, 1.15fr);
    gap: clamp(2rem, 4vw, 4rem);
    border-radius: 10px 30px 30px 30px;
    padding: clamp(2rem, 3.5vw, 3.25rem);
}

.public-lab-stage {
    min-height: 470px;
    border-radius: 24px;
}

.public-lab-product {
    width: min(320px, 68%);
}

.public-offers {
    gap: 1.5rem;
}

.public-pricing-section {
    display: grid;
    gap: 1.5rem;
    scroll-margin-top: 96px;
}

.public-commercial-heading {
    align-items: center;
    border: 1px solid rgba(18, 51, 59, .1);
    border-radius: 22px;
    padding: clamp(1.2rem, 2.5vw, 1.7rem);
    background: linear-gradient(135deg, rgba(255, 255, 255, .9), rgba(237, 247, 244, .82));
    box-shadow: 0 14px 36px rgba(18, 51, 59, .05);
}

.public-commercial-heading h2 {
    margin: .2rem 0 .4rem;
    font-size: clamp(1.75rem, 3vw, 2.5rem);
}

.public-commercial-heading p:last-child {
    margin: 0;
    color: #60777c;
    line-height: 1.55;
}

.public-commercial-heading .public-text-link {
    flex: 0 0 auto;
    border: 1px solid rgba(8, 124, 112, .18);
    border-radius: 999px;
    padding: .7rem .9rem;
    background: rgba(255, 255, 255, .78);
}

.public-offer-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-radius: 22px;
    padding: 1.4rem;
}

.public-offer-card::after {
    position: absolute;
    z-index: -1;
    right: -48px;
    bottom: -54px;
    width: 150px;
    height: 150px;
    border: 1px solid rgba(8, 124, 112, .08);
    border-radius: 50%;
    content: "";
}

.public-offer-card > p {
    min-height: 0;
}

.public-offer-card ul {
    margin-block: .9rem 1.1rem;
}

.public-product-logo-column {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.public-product-logo-column::before {
    content: none;
}

.public-pricing-composer {
    border-radius: 24px;
    background: rgba(255, 255, 255, .88);
}

.public-composer-controls {
    padding: clamp(1rem, 2.2vw, 1.6rem);
}

.public-composer-result {
    border-radius: 22px 7px 22px 22px;
    padding: clamp(1.4rem, 2.2vw, 2rem);
}

.public-evidence-ledger {
    gap: 1.4rem;
    padding-block: 2.2rem;
}

.public-contact {
    grid-template-columns: minmax(280px, .68fr) minmax(0, 1.32fr);
    gap: clamp(2rem, 4vw, 4rem);
}

.public-contact-copy {
    top: 88px;
}

@media (min-width: 1500px) {
    .public-hero {
        grid-template-columns: minmax(0, .95fr) minmax(560px, 1.05fr);
    }

    .public-hero h1 {
        max-width: 820px;
    }

    .public-hero-lead {
        max-width: 760px;
    }

    .public-workflow-layout {
        grid-template-columns: minmax(440px, .72fr) minmax(0, 1.28fr);
    }

    .public-role-layout {
        grid-template-columns: 200px minmax(0, 1fr) 280px;
        gap: 1rem;
    }

    .public-product-lab {
        grid-template-columns: minmax(480px, .72fr) minmax(620px, 1.28fr);
    }

    .public-pricing-composer {
        grid-template-columns: minmax(0, 1.32fr) minmax(480px, .68fr);
    }

    .public-contact {
        grid-template-columns: minmax(360px, .55fr) minmax(0, 1.45fr);
    }
}

/* Public showcase v8: multipage presentation */

.public-menu-toggle {
    display: none;
}

.public-topnav a.is-current {
    color: #063f47;
    background: #e8f5f1;
    box-shadow: inset 0 0 0 1px rgba(8, 124, 112, .13);
}

.public-showcase-body {
    --showcase-ink: #0b3038;
    --showcase-muted: #627a7f;
    --showcase-line: rgba(11, 48, 56, .11);
    --showcase-mint: #68d1b2;
    --showcase-mint-dark: #087c70;
    --showcase-warm: #f0a142;
    --showcase-paper: #fbfcfa;
    background:
        radial-gradient(circle at 6% 12%, rgba(104, 209, 178, .1), transparent 28rem),
        radial-gradient(circle at 94% 34%, rgba(240, 161, 66, .08), transparent 25rem),
        #f4f7f5;
}

.public-showcase-body .page-shell {
    max-width: none;
}

.public-showcase-body .page-content {
    width: min(1540px, calc(100% - clamp(2rem, 5vw, 6rem)));
    max-width: none;
    gap: clamp(4.5rem, 7vw, 7.5rem);
    padding: clamp(2.25rem, 4vw, 4.5rem) 0 clamp(3.5rem, 6vw, 6.5rem);
}

.showcase-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(420px, .98fr);
    gap: clamp(2.5rem, 6vw, 7rem);
    align-items: center;
    min-height: min(720px, calc(100vh - 9rem));
    overflow: hidden;
    border: 1px solid var(--showcase-line);
    border-radius: 42px;
    padding: clamp(2.25rem, 5vw, 5.5rem);
    background:
        linear-gradient(125deg, rgba(255, 255, 255, .98), rgba(247, 251, 248, .88)),
        var(--showcase-paper);
    box-shadow: 0 32px 90px rgba(11, 48, 56, .1);
}

.showcase-hero::before {
    position: absolute;
    width: 27rem;
    height: 27rem;
    right: -10rem;
    top: -12rem;
    border: 1px solid rgba(104, 209, 178, .28);
    border-radius: 50%;
    box-shadow:
        0 0 0 4rem rgba(104, 209, 178, .04),
        0 0 0 8rem rgba(104, 209, 178, .025);
    content: "";
}

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

.showcase-hero h1,
.faq-hero h1,
.contact-page-head h1,
.software-hero h1 {
    max-width: 920px;
    margin: .85rem 0 1.25rem;
    color: var(--showcase-ink);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(3.4rem, 6.2vw, 6.6rem);
    letter-spacing: -.06em;
    line-height: .9;
}

.showcase-hero-copy > p:not(.public-kicker),
.faq-hero > div > p:last-child,
.contact-page-head > div > p:last-child,
.software-hero-copy > p:not(.public-kicker) {
    max-width: 760px;
    color: var(--showcase-muted);
    font-size: clamp(1.05rem, 1.35vw, 1.3rem);
    line-height: 1.7;
}

.showcase-hero-visual {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    border-radius: 32px;
    background: #dfece8;
    box-shadow: 0 28px 70px rgba(11, 48, 56, .18);
}

.showcase-hero-visual::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 46%, rgba(7, 40, 47, .72));
    content: "";
}

.showcase-hero-visual img {
    width: 100%;
    height: 100%;
    min-height: 520px;
    object-fit: cover;
    transition: transform .7s ease;
}

.showcase-hero-visual:hover img {
    transform: scale(1.025);
}

.showcase-hero-visual figcaption {
    position: absolute;
    z-index: 1;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    right: 1.5rem;
    bottom: 1.5rem;
    left: 1.5rem;
    align-items: center;
    color: #fff;
}

.showcase-hero-visual figcaption > span {
    display: grid;
    width: 3.2rem;
    height: 3.2rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 50%;
    background: rgba(255, 255, 255, .14);
    backdrop-filter: blur(10px);
    font-weight: 900;
}

.showcase-hero-visual figcaption p,
.showcase-hero-visual figcaption small {
    display: block;
    margin: 0;
}

.showcase-hero-visual figcaption strong {
    display: block;
    margin-bottom: .2rem;
    font-size: 1.05rem;
}

.showcase-hero-visual figcaption small {
    color: rgba(255, 255, 255, .78);
}

.showcase-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, .72fr);
    gap: clamp(2rem, 6vw, 7rem);
    align-items: end;
    margin-bottom: clamp(2rem, 4vw, 4rem);
}

.showcase-heading h2,
.showcase-role-intro h2,
.software-workflow h2,
.software-pricing h2,
.showcase-contact-layout > aside h2,
.showcase-final-cta h2,
.showcase-simulator h2 {
    max-width: 900px;
    margin: .65rem 0 0;
    color: var(--showcase-ink);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.5rem, 4.5vw, 4.8rem);
    letter-spacing: -.05em;
    line-height: .95;
}

.showcase-heading > p,
.showcase-role-intro > p,
.software-workflow-copy > p,
.software-pricing > div > p,
.showcase-contact-layout > aside > p,
.showcase-simulator-controls > p:not(.public-kicker) {
    max-width: 650px;
    margin: 0;
    color: var(--showcase-muted);
    font-size: 1rem;
    line-height: 1.75;
}

.showcase-process-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.showcase-process-grid li {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1.15rem;
    min-height: 250px;
    overflow: hidden;
    border: 1px solid var(--showcase-line);
    border-radius: 26px;
    padding: 1.55rem;
    background: rgba(255, 255, 255, .8);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.showcase-process-grid li::after {
    position: absolute;
    width: 8rem;
    height: 8rem;
    right: -4rem;
    bottom: -4rem;
    border-radius: 50%;
    background: rgba(104, 209, 178, .08);
    content: "";
}

.showcase-process-grid li:nth-child(3n+2)::after {
    background: rgba(240, 161, 66, .09);
}

.showcase-process-grid li:hover {
    border-color: rgba(8, 124, 112, .26);
    box-shadow: 0 22px 55px rgba(11, 48, 56, .1);
    transform: translateY(-5px);
}

.showcase-process-grid li > span {
    display: grid;
    width: 2.65rem;
    height: 2.65rem;
    place-items: center;
    border-radius: 13px;
    color: #076d64;
    background: #dff4ed;
    font-size: .72rem;
    font-weight: 900;
}

.showcase-process-grid small,
.showcase-option-columns article > span {
    color: #a7671d;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.showcase-process-grid h3 {
    margin: .75rem 0 .65rem;
    color: var(--showcase-ink);
    font-size: 1.3rem;
}

.showcase-process-grid p {
    margin: 0;
    color: var(--showcase-muted);
    font-size: .91rem;
    line-height: 1.65;
}

.showcase-role-section {
    display: grid;
    grid-template-columns: minmax(340px, .78fr) minmax(0, 1.22fr);
    gap: clamp(2.5rem, 7vw, 8rem);
    border-radius: 38px;
    padding: clamp(2.2rem, 5vw, 5rem);
    color: #fff;
    background:
        radial-gradient(circle at 8% 100%, rgba(104, 209, 178, .24), transparent 23rem),
        linear-gradient(135deg, #0c3841, #092b32);
    box-shadow: 0 34px 80px rgba(7, 40, 47, .22);
}

.showcase-role-section .public-kicker {
    color: #8fe2c8;
}

.showcase-role-intro h2 {
    color: #fff;
}

.showcase-role-intro > p {
    margin: 1.2rem 0 1.5rem;
    color: rgba(255, 255, 255, .7);
}

.showcase-role-section .public-text-link {
    color: #9ce8d1;
}

.showcase-role-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.showcase-role-list article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    min-height: 180px;
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 24px;
    padding: 1.35rem;
    background: rgba(255, 255, 255, .055);
}

.showcase-role-list article > span {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    border-radius: 14px;
    color: #082f37;
    background: var(--showcase-mint);
    font-size: .72rem;
    font-weight: 900;
}

.showcase-role-list h3 {
    margin: .2rem 0 .55rem;
    font-size: 1.1rem;
}

.showcase-role-list p {
    margin: 0;
    color: rgba(255, 255, 255, .66);
    font-size: .88rem;
    line-height: 1.6;
}

.showcase-connected {
    padding: 0 clamp(.25rem, 3vw, 2rem);
}

.showcase-connected-line {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr) auto);
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
}

.showcase-connected-line > a {
    display: grid;
    min-height: 190px;
    align-content: end;
    border: 1px solid var(--showcase-line);
    border-radius: 26px;
    padding: 1.5rem;
    color: var(--showcase-ink);
    background: linear-gradient(145deg, #fff, #f1f8f5);
    transition: transform .2s ease, box-shadow .2s ease;
}

.showcase-connected-line > a:hover {
    box-shadow: 0 22px 50px rgba(11, 48, 56, .1);
    transform: translateY(-4px);
}

.showcase-connected-line a > span {
    color: #9a6729;
    font-size: .69rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.showcase-connected-line strong {
    margin: .8rem 0 .35rem;
    font-size: 1.55rem;
}

.showcase-connected-line small {
    color: var(--showcase-muted);
}

.showcase-connected-line > i {
    color: #83aaa1;
    font-size: 1.5rem;
    font-style: normal;
}

.showcase-final-cta {
    display: flex;
    gap: 2rem;
    align-items: center;
    justify-content: space-between;
    border: 1px solid rgba(8, 124, 112, .15);
    border-radius: 34px;
    padding: clamp(2rem, 4vw, 4rem);
    background:
        radial-gradient(circle at 95% 5%, rgba(104, 209, 178, .2), transparent 18rem),
        #f9fcfa;
}

.showcase-final-cta h2 {
    max-width: 920px;
    font-size: clamp(2.2rem, 3.8vw, 4rem);
}

.showcase-footer {
    display: grid;
    grid-template-columns: minmax(280px, 1.7fr) repeat(3, minmax(130px, .6fr));
    gap: 2rem;
    border-top: 1px solid var(--showcase-line);
    padding: 3.5rem 1rem 1rem;
}

.showcase-footer-brand p {
    max-width: 440px;
    margin: 1rem 0 0;
    color: var(--showcase-muted);
    line-height: 1.6;
}

.showcase-footer > div:not(.showcase-footer-brand) {
    display: grid;
    gap: .7rem;
    align-content: start;
}

.showcase-footer strong {
    margin-bottom: .3rem;
    color: var(--showcase-ink);
    font-size: .82rem;
}

.showcase-footer a:not(.brand) {
    color: var(--showcase-muted);
    font-size: .82rem;
}

.showcase-footer a:hover {
    color: var(--showcase-mint-dark);
}

/* Offers */

.showcase-hero-pricing {
    min-height: 570px;
}

.showcase-price-note {
    position: relative;
    z-index: 1;
    border: 1px solid rgba(11, 48, 56, .1);
    border-radius: 30px;
    padding: clamp(1.8rem, 3vw, 3rem);
    background:
        radial-gradient(circle at 100% 0, rgba(104, 209, 178, .18), transparent 16rem),
        #0c3841;
    color: #fff;
    box-shadow: 0 28px 70px rgba(7, 40, 47, .2);
}

.showcase-price-note > span {
    color: #8ee0c7;
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.showcase-price-note > strong {
    display: block;
    margin: 1.1rem 0 .85rem;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2rem, 3vw, 3.2rem);
    line-height: 1;
}

.showcase-price-note p {
    color: rgba(255, 255, 255, .68);
    line-height: 1.7;
}

.showcase-price-note a {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid rgba(255, 255, 255, .12);
    margin-top: 1.5rem;
    padding-top: 1.2rem;
    color: #fff;
    font-weight: 800;
}

.showcase-offer-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.showcase-offer-card {
    display: flex;
    min-height: 520px;
    flex-direction: column;
    border: 1px solid var(--showcase-line);
    border-radius: 30px;
    padding: 1.8rem;
    background: rgba(255, 255, 255, .86);
    box-shadow: 0 18px 44px rgba(11, 48, 56, .055);
}

.showcase-offer-card.is-featured {
    border-color: rgba(8, 124, 112, .4);
    background:
        radial-gradient(circle at 100% 0, rgba(104, 209, 178, .2), transparent 16rem),
        #f8fffc;
    box-shadow: 0 28px 70px rgba(8, 124, 112, .13);
}

.showcase-offer-card > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.showcase-offer-card > header span,
.showcase-offer-card > header b {
    border-radius: 999px;
    padding: .45rem .7rem;
    color: #8b5a21;
    background: #fff1df;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.showcase-offer-card > header b {
    color: #056c61;
    background: #dff5ee;
}

.showcase-offer-card h3 {
    margin: 1.8rem 0 .7rem;
    color: var(--showcase-ink);
    font-size: 1.9rem;
}

.showcase-offer-card > p {
    min-height: 70px;
    margin: 0;
    color: var(--showcase-muted);
    font-size: .9rem;
    line-height: 1.65;
}

.showcase-offer-card dl,
.software-pricing dl {
    display: grid;
    gap: 0;
    margin: 1.4rem 0;
}

.showcase-offer-card dl > div,
.software-pricing dl > div {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid var(--showcase-line);
    padding: .8rem 0;
}

.showcase-offer-card dt,
.software-pricing dt {
    color: var(--showcase-muted);
    font-size: .76rem;
}

.showcase-offer-card dd,
.software-pricing dd {
    margin: 0;
    color: var(--showcase-ink);
    font-size: .82rem;
    font-weight: 900;
    text-align: right;
}

.showcase-offer-card ul {
    display: grid;
    gap: .55rem;
    margin: 0 0 1.4rem;
    padding: 0;
    list-style: none;
}

.showcase-offer-card li {
    color: #4e6b70;
    font-size: .78rem;
}

.showcase-offer-card li::before {
    margin-right: .55rem;
    color: #088174;
    content: "+";
    font-weight: 900;
}

.showcase-offer-card .public-button {
    width: 100%;
    margin-top: auto;
}

.showcase-empty {
    grid-column: 1 / -1;
    border: 1px dashed rgba(11, 48, 56, .2);
    border-radius: 28px;
    padding: 3rem;
    text-align: center;
}

.showcase-option-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.showcase-option-columns > div {
    border: 1px solid var(--showcase-line);
    border-radius: 30px;
    padding: 1.5rem;
    background: rgba(255, 255, 255, .76);
}

.showcase-option-columns > div > h3 {
    margin: .2rem 0 1.2rem;
    color: var(--showcase-ink);
    font-size: 1.35rem;
}

.showcase-option-columns article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    border-top: 1px solid var(--showcase-line);
    padding: 1rem .2rem;
}

.showcase-option-columns article div {
    display: grid;
    gap: .25rem;
}

.showcase-option-columns article strong {
    color: var(--showcase-ink);
}

.showcase-option-columns article small {
    overflow: hidden;
    color: var(--showcase-muted);
    font-size: .75rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.showcase-option-columns article b,
.showcase-option-columns article a {
    color: #08766c;
    font-size: .74rem;
}

.showcase-simulator {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(380px, .75fr);
    gap: clamp(2rem, 6vw, 6rem);
    border-radius: 38px;
    padding: clamp(2.2rem, 5vw, 5rem);
    color: #fff;
    background:
        radial-gradient(circle at 2% 100%, rgba(240, 161, 66, .18), transparent 20rem),
        linear-gradient(135deg, #0b3740, #082830);
    box-shadow: 0 34px 80px rgba(7, 40, 47, .22);
}

.showcase-simulator h2 {
    color: #fff;
}

.showcase-simulator .public-kicker {
    color: #8ee0c7;
}

.showcase-simulator-controls {
    display: grid;
    gap: 1.4rem;
}

.showcase-simulator-controls label {
    display: grid;
    gap: .65rem;
    border-top: 1px solid rgba(255, 255, 255, .12);
    padding-top: 1.2rem;
}

.showcase-simulator-controls label > span {
    font-size: .78rem;
    font-weight: 800;
}

.showcase-simulator-controls select {
    min-height: 52px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 14px;
    padding: 0 1rem;
    color: #fff;
    background: #123f47;
}

.showcase-simulator-controls label > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
}

.showcase-simulator-controls input[type="range"] {
    width: 100%;
    accent-color: var(--showcase-mint);
}

.showcase-simulator-controls output {
    min-width: 115px;
    font-weight: 900;
    text-align: right;
}

.showcase-simulator-result {
    display: grid;
    gap: 1rem;
    align-content: start;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 28px;
    padding: 1.6rem;
    background: rgba(255, 255, 255, .07);
    backdrop-filter: blur(12px);
}

.showcase-simulator-result > span {
    color: #91dcca;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.showcase-simulator-result > div {
    display: grid;
    gap: .25rem;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    padding: .5rem 0 1rem;
}

.showcase-simulator-result > div strong {
    font-size: clamp(1.8rem, 3vw, 3rem);
}

.showcase-simulator-result > div small,
.showcase-simulator-result p,
.showcase-simulator-result dt {
    color: rgba(255, 255, 255, .62);
}

.showcase-simulator-result dl {
    display: grid;
    gap: .5rem;
    margin: 0;
}

.showcase-simulator-result dl > div {
    display: flex;
    justify-content: space-between;
}

.showcase-simulator-result dd {
    margin: 0;
    font-weight: 800;
}

.showcase-simulator-result p {
    font-size: .75rem;
    line-height: 1.55;
}

/* Software */

.software-index-hero {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(500px, 1.05fr);
    gap: clamp(2.5rem, 7vw, 8rem);
    align-items: center;
    min-height: 560px;
    border-radius: 42px;
    padding: clamp(2.2rem, 5vw, 5.5rem);
    color: #fff;
    background:
        radial-gradient(circle at 3% 100%, rgba(104, 209, 178, .2), transparent 23rem),
        radial-gradient(circle at 100% 0, rgba(160, 119, 219, .17), transparent 22rem),
        linear-gradient(135deg, #0c3942, #112e38);
    box-shadow: 0 34px 85px rgba(7, 40, 47, .22);
}

.software-index-hero h1 {
    margin: .8rem 0 1.2rem;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(3.3rem, 5.5vw, 5.8rem);
    letter-spacing: -.06em;
    line-height: .91;
}

.software-index-hero > div:first-child > p:last-child {
    max-width: 690px;
    color: rgba(255, 255, 255, .68);
    font-size: 1.05rem;
    line-height: 1.7;
}

.software-index-hero .public-kicker {
    color: #8fe2c8;
}

.software-index-route {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    gap: .65rem;
    align-items: center;
}

.software-index-route > span {
    display: grid;
    min-height: 180px;
    align-content: end;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 24px;
    padding: 1.2rem;
    background: rgba(255, 255, 255, .055);
}

.software-index-route b {
    color: #8fe2c8;
    font-size: .64rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.software-index-route strong {
    margin: .75rem 0 .25rem;
    font-size: 1.2rem;
}

.software-index-route small {
    color: rgba(255, 255, 255, .58);
}

.software-index-route i {
    color: rgba(255, 255, 255, .42);
    font-style: normal;
}

.software-index-grid {
    display: grid;
    gap: 1.2rem;
}

.software-index-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    min-height: 540px;
    overflow: hidden;
    border: 1px solid var(--showcase-line);
    border-radius: 34px;
    background: #fff;
    box-shadow: 0 24px 65px rgba(11, 48, 56, .08);
}

.software-index-logo {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-right: 1px solid var(--showcase-line);
    background:
        radial-gradient(circle at center, rgba(104, 209, 178, .18), transparent 18rem),
        linear-gradient(145deg, #effaf6, #f8fbfa);
}

.software-index-card-fornb .software-index-logo {
    background:
        radial-gradient(circle at center, rgba(160, 119, 219, .15), transparent 18rem),
        linear-gradient(145deg, #f1f6f7, #faf9fc);
}

.software-index-logo::before,
.software-index-logo::after {
    position: absolute;
    border: 1px solid rgba(11, 48, 56, .08);
    border-radius: 50%;
    content: "";
}

.software-index-logo::before {
    width: 340px;
    height: 340px;
}

.software-index-logo::after {
    width: 430px;
    height: 430px;
}

.software-index-logo img,
.software-index-logo > span {
    position: relative;
    z-index: 1;
    display: grid;
    width: min(290px, 56%);
    aspect-ratio: 1;
    place-items: center;
    object-fit: contain;
    border-radius: 38px;
    padding: 1.5rem;
    color: #0d4b54;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 28px 70px rgba(11, 48, 56, .18);
    font-size: 3.5rem;
    font-weight: 900;
}

.software-index-copy {
    display: flex;
    flex-direction: column;
    padding: clamp(2rem, 4vw, 4rem);
}

.software-index-copy > header {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
}

.software-index-copy > header span,
.software-index-copy > header b {
    border-radius: 999px;
    padding: .45rem .7rem;
    color: #08766c;
    background: #e1f5ef;
    font-size: .63rem;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.software-index-copy > header b {
    color: #8d5c22;
    background: #fff0dc;
}

.software-index-copy h2 {
    margin: 1.7rem 0 .75rem;
    color: var(--showcase-ink);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.6rem, 4vw, 4rem);
    letter-spacing: -.04em;
}

.software-index-copy > p {
    margin: 0;
    color: var(--showcase-muted);
    line-height: 1.7;
}

.software-index-copy dl {
    display: grid;
    margin: 1.6rem 0;
}

.software-index-copy dl > div {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    border-top: 1px solid var(--showcase-line);
    padding: .8rem 0;
}

.software-index-copy dt {
    color: var(--showcase-muted);
    font-size: .76rem;
}

.software-index-copy dd {
    margin: 0;
    color: var(--showcase-ink);
    font-size: .8rem;
    font-weight: 900;
    text-align: right;
}

.software-index-actions {
    display: flex;
    gap: 1rem;
    align-items: center;
    margin-top: auto;
}

.software-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(360px, .72fr) minmax(0, 1.28fr);
    gap: clamp(2rem, 6vw, 7rem);
    align-items: center;
    min-height: min(700px, calc(100vh - 9rem));
    overflow: hidden;
    border-radius: 42px;
    padding: clamp(2.2rem, 5vw, 5.5rem);
    color: #fff;
    background:
        radial-gradient(circle at 8% 20%, rgba(104, 209, 178, .2), transparent 22rem),
        linear-gradient(135deg, #0c3942, #082830);
    box-shadow: 0 34px 85px rgba(7, 40, 47, .23);
}

.software-hero-fornb {
    background:
        radial-gradient(circle at 8% 20%, rgba(160, 119, 219, .2), transparent 22rem),
        linear-gradient(135deg, #15323b, #1c2734);
}

.software-logo-stage {
    position: relative;
    display: grid;
    min-height: 430px;
    place-items: center;
}

.software-logo-stage::before,
.software-logo-stage i {
    position: absolute;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    content: "";
}

.software-logo-stage::before {
    width: 360px;
    height: 360px;
}

.software-logo-stage i:nth-of-type(1) {
    width: 285px;
    height: 285px;
}

.software-logo-stage i:nth-of-type(2) {
    width: 430px;
    height: 430px;
}

.software-logo-stage i:nth-of-type(3) {
    width: 12px;
    height: 12px;
    border: 0;
    background: var(--showcase-mint);
    box-shadow: 0 0 30px var(--showcase-mint);
    animation: showcase-orbit 9s linear infinite;
}

@keyframes showcase-orbit {
    from { transform: rotate(0deg) translateX(180px) rotate(0deg); }
    to { transform: rotate(360deg) translateX(180px) rotate(-360deg); }
}

.software-logo-stage img,
.software-logo-stage > span {
    position: relative;
    z-index: 1;
    display: grid;
    width: 235px;
    height: 235px;
    place-items: center;
    object-fit: contain;
    border-radius: 38px;
    padding: 1.5rem;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 30px 70px rgba(0, 0, 0, .25);
}

.software-logo-stage > span {
    color: #0c4650;
    font-size: 4rem;
    font-weight: 900;
}

.software-hero h1 {
    color: #fff;
}

.software-hero .public-kicker {
    color: #8ee0c7;
}

.software-hero-copy > p:not(.public-kicker) {
    color: rgba(255, 255, 255, .7);
}

.software-hero .public-button-secondary {
    border-color: rgba(255, 255, 255, .28);
    color: #fff;
    background: rgba(255, 255, 255, .06);
}

.software-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.software-facts article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1.1rem;
    min-height: 190px;
    border: 1px solid var(--showcase-line);
    border-radius: 26px;
    padding: 1.5rem;
    background: rgba(255, 255, 255, .8);
}

.software-facts article > span {
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    place-items: center;
    border-radius: 14px;
    color: #076d64;
    background: #dff4ed;
    font-size: .7rem;
    font-weight: 900;
}

.software-facts small {
    color: #9b682a;
    font-size: .67rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.software-facts strong {
    display: block;
    margin: .55rem 0;
    color: var(--showcase-ink);
    font-size: 1.2rem;
}

.software-facts p {
    margin: 0;
    color: var(--showcase-muted);
    font-size: .84rem;
    line-height: 1.6;
}

.software-workflow {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
    gap: clamp(2.5rem, 7vw, 8rem);
    align-items: center;
}

.software-workflow-copy > p {
    margin: 1.2rem 0;
}

.software-workflow-copy ul {
    display: grid;
    gap: .7rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}

.software-workflow-copy li {
    border-top: 1px solid var(--showcase-line);
    padding-top: .7rem;
    color: #49686e;
}

.software-workflow-copy li::before {
    margin-right: .65rem;
    color: #078074;
    content: "+";
    font-weight: 900;
}

.software-workflow-map {
    display: grid;
    gap: .75rem;
    border: 1px solid var(--showcase-line);
    border-radius: 34px;
    padding: 1.2rem;
    background: linear-gradient(145deg, #fff, #eef7f3);
    box-shadow: 0 28px 70px rgba(11, 48, 56, .09);
}

.software-workflow-map > span {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .9rem;
    border: 1px solid rgba(11, 48, 56, .08);
    border-radius: 20px;
    padding: 1.2rem;
    background: rgba(255, 255, 255, .82);
}

.software-workflow-map b {
    grid-row: span 2;
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border-radius: 12px;
    color: #08766c;
    background: #e1f4ee;
    font-size: .68rem;
}

.software-workflow-map strong {
    color: var(--showcase-ink);
}

.software-workflow-map small {
    color: var(--showcase-muted);
}

.software-pricing {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, .75fr);
    gap: clamp(2.5rem, 7vw, 8rem);
    align-items: center;
    border-radius: 36px;
    padding: clamp(2.2rem, 5vw, 5rem);
    background:
        radial-gradient(circle at 100% 0, rgba(104, 209, 178, .16), transparent 20rem),
        #fff;
}

.software-pricing > div > p {
    margin-top: 1.2rem;
}

.software-pricing dl {
    border: 1px solid var(--showcase-line);
    border-radius: 24px;
    margin: 0;
    padding: .8rem 1.4rem;
    background: #f8fbf9;
}

/* FAQ */

.faq-hero,
.contact-page-head {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(340px, .65fr);
    gap: clamp(2.5rem, 7vw, 8rem);
    align-items: end;
    padding: clamp(2rem, 4vw, 4rem) clamp(.25rem, 3vw, 2rem);
}

.faq-hero aside {
    display: grid;
    gap: .9rem;
    border: 1px solid var(--showcase-line);
    border-radius: 26px;
    padding: 1.5rem;
    background: rgba(255, 255, 255, .8);
}

.faq-hero aside > span {
    color: #9a6729;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.faq-hero aside > strong {
    color: var(--showcase-ink);
    font-size: 1.25rem;
    line-height: 1.35;
}

.faq-layout {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: start;
}

.faq-layout > nav {
    position: sticky;
    top: 7rem;
    display: grid;
    gap: .3rem;
    border: 1px solid var(--showcase-line);
    border-radius: 22px;
    padding: .75rem;
    background: rgba(255, 255, 255, .82);
}

.faq-layout > nav a {
    border-radius: 13px;
    padding: .85rem;
    color: var(--showcase-muted);
    font-size: .8rem;
    font-weight: 800;
}

.faq-layout > nav a:hover {
    color: #076d64;
    background: #e6f5f0;
}

.faq-groups {
    display: grid;
    gap: 4rem;
}

.faq-groups section {
    scroll-margin-top: 7rem;
}

.faq-groups section > header {
    display: flex;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
}

.faq-groups section > header > span {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border-radius: 15px;
    color: #08766c;
    background: #dff4ed;
    font-weight: 900;
}

.faq-groups header small {
    color: #9a6729;
    font-size: .65rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.faq-groups h2 {
    margin: .2rem 0 0;
    color: var(--showcase-ink);
    font-size: 1.8rem;
}

.faq-groups details {
    border-top: 1px solid var(--showcase-line);
    background: transparent;
}

.faq-groups details:last-child {
    border-bottom: 1px solid var(--showcase-line);
}

.faq-groups summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: 1.4rem .2rem;
    color: var(--showcase-ink);
    cursor: pointer;
    font-size: 1rem;
    font-weight: 850;
    list-style: none;
}

.faq-groups summary::-webkit-details-marker {
    display: none;
}

.faq-groups summary i {
    position: relative;
    width: 1.2rem;
    height: 1.2rem;
}

.faq-groups summary i::before,
.faq-groups summary i::after {
    position: absolute;
    width: 12px;
    height: 2px;
    left: 3px;
    top: 8px;
    border-radius: 999px;
    background: #08766c;
    content: "";
    transition: transform .2s ease;
}

.faq-groups summary i::after {
    transform: rotate(90deg);
}

.faq-groups details[open] summary i::after {
    transform: rotate(0);
}

.faq-groups details > p {
    max-width: 900px;
    margin: -.35rem 0 0;
    padding: 0 3rem 1.5rem 0;
    color: var(--showcase-muted);
    line-height: 1.7;
}

/* Dedicated contact */

.contact-page-head {
    align-items: center;
}

.contact-page-head ol {
    display: grid;
    gap: .55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.contact-page-head li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .9rem;
    align-items: center;
    border: 1px solid var(--showcase-line);
    border-radius: 18px;
    padding: .85rem 1rem;
    background: rgba(255, 255, 255, .74);
}

.contact-page-head li > span {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    border-radius: 11px;
    color: #08766c;
    background: #dff4ed;
    font-size: .65rem;
    font-weight: 900;
}

.contact-page-head li p,
.contact-page-head li small {
    display: block;
    margin: 0;
}

.contact-page-head li small {
    margin-top: .15rem;
    color: var(--showcase-muted);
    font-size: .7rem;
}

.showcase-contact-success {
    display: flex;
    gap: 1rem;
    align-items: center;
    border: 1px solid rgba(8, 124, 112, .25);
    border-radius: 22px;
    padding: 1.25rem;
    color: #075c54;
    background: #e7f8f2;
}

.showcase-contact-success > span {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #087c70;
}

.showcase-contact-success p {
    margin: .25rem 0 0;
}

.showcase-contact-layout {
    display: grid;
    grid-template-columns: minmax(300px, .62fr) minmax(0, 1.38fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: start;
}

.showcase-contact-layout > aside {
    position: sticky;
    top: 7rem;
    display: grid;
    gap: 1.2rem;
}

.showcase-contact-layout > aside h2 {
    font-size: clamp(2.4rem, 4vw, 4rem);
}

.showcase-contact-layout > aside ul {
    display: grid;
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.showcase-contact-layout > aside li {
    border-top: 1px solid var(--showcase-line);
    padding-top: .75rem;
    color: #4b6a70;
    line-height: 1.5;
}

.showcase-contact-layout > aside li::before {
    margin-right: .6rem;
    color: #087c70;
    content: "+";
    font-weight: 900;
}

.showcase-contact-layout > aside > div {
    border-radius: 20px;
    padding: 1.2rem;
    color: #fff;
    background: #0d3942;
}

.showcase-contact-layout > aside > div p {
    margin: .45rem 0 0;
    color: rgba(255, 255, 255, .65);
    font-size: .78rem;
    line-height: 1.55;
}

.showcase-contact-form {
    min-height: 720px;
    scroll-margin-top: 6.5rem;
    border: 1px solid var(--showcase-line);
    border-radius: 34px;
    padding: clamp(1.4rem, 3vw, 2.5rem);
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 25px 65px rgba(11, 48, 56, .08);
}

.showcase-contact-progress {
    display: grid;
    grid-template-columns: auto 1fr auto 1fr auto;
    gap: .65rem;
    align-items: center;
    margin-bottom: 2rem;
}

.showcase-contact-progress span {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    border: 1px solid var(--showcase-line);
    border-radius: 50%;
    color: #789095;
    background: #fff;
    font-size: .7rem;
    font-weight: 900;
}

.showcase-contact-progress span.is-active,
.showcase-contact-progress span.is-complete {
    border-color: #087c70;
    color: #fff;
    background: #087c70;
}

.showcase-contact-progress i {
    height: 2px;
    background: #d9e3e1;
}

.showcase-contact-form fieldset {
    display: none;
    min-width: 0;
    border: 0;
    margin: 0;
    padding: 0;
}

.showcase-contact-form fieldset.is-active {
    display: block;
}

.showcase-contact-form legend {
    display: grid;
    gap: .35rem;
    width: 100%;
    margin-bottom: 1.5rem;
}

.showcase-contact-form legend small {
    color: #9a6729;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.showcase-contact-form legend strong {
    color: var(--showcase-ink);
    font-size: 1.6rem;
}

.showcase-contact-choice,
.showcase-contact-products {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.showcase-contact-products {
    margin-top: 1.2rem;
}

.showcase-contact-choice label,
.showcase-contact-products label {
    display: block;
    cursor: pointer;
}

.showcase-contact-choice input,
.showcase-contact-products input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.showcase-contact-choice label > span,
.showcase-contact-products label > span {
    display: grid;
    min-height: 86px;
    align-content: center;
    border: 1px solid var(--showcase-line);
    border-radius: 17px;
    padding: 1rem;
    background: #fbfcfb;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.showcase-contact-choice input:checked + span,
.showcase-contact-products input:checked + span {
    border-color: #087c70;
    background: #eaf8f3;
    box-shadow: inset 0 0 0 1px #087c70;
}

.showcase-contact-choice small,
.showcase-contact-products small {
    margin-top: .3rem;
    color: var(--showcase-muted);
    font-size: .7rem;
}

.showcase-contact-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
}

.showcase-contact-fields > label {
    display: grid;
    gap: .45rem;
    min-width: 0;
}

.showcase-contact-fields > label > span {
    color: #49676d;
    font-size: .75rem;
    font-weight: 800;
}

.showcase-contact-fields .is-wide,
.showcase-consent {
    grid-column: 1 / -1;
}

.showcase-contact-fields input:not([type="checkbox"]),
.showcase-contact-fields textarea {
    width: 100%;
    min-height: 48px;
    border: 1px solid rgba(11, 48, 56, .15);
    border-radius: 13px;
    padding: .8rem .9rem;
    color: var(--showcase-ink);
    background: #fff;
}

.showcase-contact-fields textarea {
    min-height: 100px;
    resize: vertical;
}

.showcase-consent {
    display: flex !important;
    grid-template-columns: none !important;
    gap: .7rem !important;
    align-items: center;
    border-radius: 15px;
    padding: 1rem;
    background: #f2f7f5;
}

.showcase-consent input {
    width: 1.1rem;
    height: 1.1rem;
    accent-color: #087c70;
}

.showcase-contact-review {
    display: grid;
    gap: .3rem;
    border-radius: 17px;
    margin-top: 1rem;
    padding: 1rem;
    color: #fff;
    background: #0d3942;
}

.showcase-contact-review span {
    color: #91dcca;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.showcase-contact-form fieldset > footer {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: flex-end;
    border-top: 1px solid var(--showcase-line);
    margin-top: 1.5rem;
    padding-top: 1.2rem;
}

.showcase-contact-form fieldset > footer > span {
    margin-right: auto;
    color: var(--showcase-muted);
    font-size: .72rem;
}

@media (max-width: 1280px) {
    .public-showcase-body .page-content {
        width: min(1180px, calc(100% - 2.5rem));
    }

    .showcase-hero {
        grid-template-columns: minmax(0, 1fr) minmax(380px, .9fr);
    }

    .showcase-hero h1,
    .software-hero h1 {
        font-size: clamp(3.25rem, 5.6vw, 5.2rem);
    }

    .showcase-process-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 1120px) {
    .showcase-offer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1180px) {
    .topbar {
        position: relative;
    }

    .public-menu-toggle {
        display: grid;
        grid-template-columns: repeat(3, 18px) auto;
        gap: 4px;
        align-items: center;
        border: 1px solid rgba(11, 48, 56, .13);
        border-radius: 13px;
        padding: .65rem .8rem;
        color: #17434b;
        background: #fff;
    }

    .public-menu-toggle span {
        grid-column: 1 / 4;
        width: 18px;
        height: 2px;
        border-radius: 999px;
        background: #17434b;
    }

    .public-menu-toggle span:nth-child(2) {
        grid-row: 2;
    }

    .public-menu-toggle span:nth-child(3) {
        grid-row: 3;
    }

    .public-menu-toggle b {
        grid-column: 4;
        grid-row: 1 / 4;
        margin-left: .35rem;
        font-size: .72rem;
    }

    .topbar .public-topnav {
        position: absolute;
        z-index: 40;
        display: none;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .45rem;
        width: min(560px, calc(100vw - 2rem));
        right: 0;
        top: calc(100% + .6rem);
        border: 1px solid rgba(11, 48, 56, .12);
        border-radius: 22px;
        padding: .75rem;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 25px 70px rgba(11, 48, 56, .2);
    }

    .topbar .public-topnav.is-open {
        display: grid;
    }

    .topbar .public-topnav a {
        display: flex !important;
        min-height: 46px;
        justify-content: flex-start;
        border-radius: 13px;
        padding: .75rem;
    }

    .topbar .public-topnav .public-login-link {
        grid-column: 1 / -1;
        justify-content: center;
    }

    .showcase-hero,
    .showcase-role-section,
    .showcase-simulator,
    .software-hero,
    .software-workflow,
    .software-pricing,
    .faq-hero,
    .contact-page-head,
    .showcase-contact-layout {
        grid-template-columns: 1fr;
    }

    .showcase-hero {
        min-height: 0;
    }

    .showcase-hero-visual {
        min-height: 420px;
    }

    .showcase-hero-visual img {
        min-height: 420px;
    }

    .showcase-role-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .software-logo-stage {
        min-height: 370px;
    }

    .showcase-contact-layout > aside,
    .faq-layout > nav {
        position: static;
    }

    .faq-layout {
        grid-template-columns: 1fr;
    }

    .faq-layout > nav {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .showcase-footer {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .showcase-footer-brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .public-showcase-body .page-content {
        width: calc(100% - 1rem);
        gap: 3.5rem;
        padding-top: .8rem;
    }

    .showcase-hero,
    .software-hero {
        border-radius: 28px;
        padding: 1.4rem;
    }

    .showcase-hero h1,
    .faq-hero h1,
    .contact-page-head h1,
    .software-hero h1 {
        font-size: clamp(2.8rem, 15vw, 4rem);
    }

    .showcase-hero-visual,
    .showcase-hero-visual img {
        min-height: 310px;
    }

    .showcase-heading {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .showcase-heading h2,
    .showcase-role-intro h2,
    .software-workflow h2,
    .software-pricing h2,
    .showcase-contact-layout > aside h2,
    .showcase-simulator h2 {
        font-size: clamp(2.3rem, 12vw, 3.3rem);
    }

    .showcase-process-grid,
    .showcase-role-list,
    .showcase-offer-grid,
    .showcase-option-columns,
    .software-facts,
    .showcase-contact-choice,
    .showcase-contact-products,
    .showcase-contact-fields {
        grid-template-columns: 1fr;
    }

    .showcase-process-grid li {
        min-height: 0;
    }

    .showcase-role-section,
    .showcase-simulator,
    .software-pricing {
        border-radius: 28px;
        padding: 1.4rem;
    }

    .showcase-role-list article {
        min-height: 0;
    }

    .showcase-connected-line {
        grid-template-columns: 1fr;
    }

    .showcase-connected-line > i {
        transform: rotate(90deg);
        text-align: center;
    }

    .showcase-final-cta {
        display: grid;
        border-radius: 26px;
        padding: 1.5rem;
    }

    .showcase-final-cta .public-button {
        width: 100%;
    }

    .showcase-option-columns article {
        grid-template-columns: 1fr auto;
    }

    .showcase-option-columns article > span {
        grid-column: 1 / -1;
    }

    .showcase-option-columns article small {
        white-space: normal;
    }

    .software-logo-stage {
        min-height: 300px;
    }

    .software-logo-stage::before {
        width: 255px;
        height: 255px;
    }

    .software-logo-stage i:nth-of-type(1) {
        width: 210px;
        height: 210px;
    }

    .software-logo-stage i:nth-of-type(2) {
        width: 290px;
        height: 290px;
    }

    .software-logo-stage i:nth-of-type(3) {
        animation: none;
        transform: translateX(130px);
    }

    .software-logo-stage img,
    .software-logo-stage > span {
        width: 175px;
        height: 175px;
        border-radius: 28px;
        padding: 1rem;
    }

    .faq-hero,
    .contact-page-head {
        padding: 1.4rem .5rem;
    }

    .faq-layout > nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .faq-groups {
        gap: 3rem;
    }

    .showcase-contact-form {
        min-height: 0;
        border-radius: 25px;
        padding: 1rem;
    }

    .showcase-contact-fields .is-wide,
    .showcase-consent {
        grid-column: auto;
    }

    .showcase-contact-form fieldset > footer {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .showcase-contact-form fieldset > footer > span {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .showcase-contact-form fieldset > footer .public-button {
        width: 100%;
    }

    .showcase-footer {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 2.5rem .5rem .5rem;
    }

    .showcase-footer-brand {
        grid-column: 1 / -1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .software-logo-stage i:nth-of-type(3) {
        animation: none;
    }

    .showcase-hero-visual img,
    .showcase-process-grid li,
    .showcase-connected-line > a {
        transition: none;
    }
}

@media (max-width: 1100px) {
    .public-hero {
        grid-template-columns: 1fr;
    }

    .public-workflow-layout,
    .public-pricing-composer {
        grid-template-columns: 1fr;
    }

    .public-workflow-scene {
        position: relative;
        top: auto;
    }

    .public-live-canvas {
        width: auto;
        margin-top: 0;
    }

    .public-role-layout {
        grid-template-columns: 170px minmax(0, 1fr);
    }

    .public-product-lab {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 780px) {
    .public-body .page-shell {
        width: min(100% - 1rem, 1280px);
    }

    .public-body .topbar {
        min-height: 60px;
        padding-block: .5rem;
    }

    .public-commercial-heading {
        align-items: flex-start;
        padding: 1.1rem;
    }

    .public-commercial-heading .public-text-link {
        width: 100%;
        justify-content: space-between;
    }

    .public-body .brand {
        gap: .55rem;
        font-size: 1rem;
    }

    .public-body .brand-mark {
        width: 2.2rem;
        height: 2.2rem;
    }

    .public-topnav .public-login-link {
        padding: .62rem .9rem;
    }

    .public-body .page-content {
        gap: 1.75rem;
    }

    .public-hero {
        border-radius: 22px;
    }

    .public-hero-copy {
        padding: 1.6rem 1.15rem 1.35rem;
    }

    .public-hero h1 {
        font-size: clamp(2rem, 10vw, 2.35rem);
        line-height: 1.04;
    }

    .public-hero-lead {
        margin-top: 1rem;
        font-size: .98rem;
        line-height: 1.55;
    }

    .public-hero-actions {
        display: grid;
        margin-top: 1.25rem;
    }

    .public-proof-row {
        display: grid;
        gap: .55rem;
        margin-top: 1.25rem;
    }

    .public-live-canvas {
        margin: 0 .75rem .75rem;
        border-radius: 18px 10px 18px 10px;
    }

    .public-live-stack {
        padding: .65rem;
    }

    .public-live-stack article {
        min-height: 50px;
    }

    .public-live-canvas footer {
        display: none;
    }

    .public-workflow h2,
    .public-role-map h2,
    .public-product-lab h2,
    .public-evidence-ledger h2,
    .public-section-heading h2,
    .public-contact h2 {
        font-size: 2rem;
    }

    .public-workflow {
        gap: 1.15rem;
    }

    .public-workflow-scene {
        min-height: 330px;
        padding: 1.25rem;
    }

    .public-workflow-scene h3 {
        font-size: 1.85rem;
    }

    .public-workflow-steps {
        gap: .55rem;
    }

    .public-workflow-steps article {
        grid-template-columns: 2.35rem 1fr;
        min-height: 0;
        padding: .95rem;
    }

    .public-workflow-steps article > span {
        width: 2.2rem;
        height: 2.2rem;
    }

    .public-configured-details summary {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: .2rem .75rem;
    }

    .public-configured-details summary small {
        grid-column: 1;
        grid-row: 2;
    }

    .public-configured-details summary::after {
        grid-column: 2;
        grid-row: 1 / 3;
    }

    .public-role-map {
        gap: 1.15rem;
        padding: 1.25rem;
    }

    .public-role-switcher {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .public-role-node {
        display: grid;
        grid-template-columns: 1fr;
        justify-items: center;
        gap: .35rem;
        min-height: 74px;
        text-align: center;
    }

    .public-role-node span {
        width: 1.8rem;
        height: 1.8rem;
        grid-row: auto;
    }

    .public-role-node small {
        display: none;
    }

    .public-capture-shell {
        min-height: 360px;
    }

    .public-role-readout {
        display: none;
    }

    .public-product-lab {
        gap: 1.4rem;
        padding: 1.25rem;
    }

    .public-lab-stage {
        min-height: 360px;
    }

    .public-lab-product {
        width: min(245px, 72%);
    }

    .public-composer-result {
        min-height: 0;
    }

    .public-evidence-ledger {
        padding-block: 1.7rem;
    }

    .public-contact {
        grid-template-columns: 1fr;
        gap: 1.4rem;
    }

    .public-contact-copy {
        position: static;
    }

    .public-contact-form-card {
        border-radius: 22px;
        padding: 1rem;
    }
}

/* Final request-flow overrides must follow the presentation balance rules. */
.public-contact {
    grid-template-columns: 1fr;
    gap: 1rem;
}

.public-contact-copy {
    position: static;
    top: auto;
    grid-template-columns: minmax(320px, .9fr) minmax(0, 1.1fr);
    gap: 1.5rem;
    align-items: end;
    border: 1px solid rgba(18,51,59,.1);
    border-radius: 24px;
    padding: 1.35rem 1.5rem;
    background: linear-gradient(125deg, #f8fcfb, #edf7f4);
}

.public-contact-outcomes {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
    margin: 0;
}

.public-contact-outcomes li {
    min-height: 74px;
    border: 1px solid rgba(18,51,59,.09);
    border-radius: 13px;
    padding: .7rem;
    background: rgba(255,255,255,.7);
}

.public-contact-form-card {
    border-radius: 24px;
    padding: 1.25rem;
}

.public-wizard-progress {
    grid-template-columns: auto 1fr auto 1fr auto;
}

.public-request-option {
    min-height: 58px;
    padding: .58rem .65rem;
}

.public-request-review {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-request-review > div.is-products {
    grid-column: auto;
}

@media (max-width: 1100px) {
    .public-contact-copy,
    .public-request-products-layout,
    .public-request-details-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 780px) {
    .public-contact-outcomes,
    .public-formula-choice-grid,
    .public-request-products-layout .public-request-option-grid,
    .public-request-products-layout .is-standalone .public-request-option-grid,
    .public-request-review {
        grid-template-columns: 1fr;
    }

    .public-contact-outcomes li {
        min-height: 0;
    }

    .public-request-review > div.is-products {
        grid-column: auto;
    }
}

/* Final portal precedence: these rules intentionally follow every legacy block. */
body.school-public-body .school-entry-preview {
    overflow: visible;
    border: 0;
    background: rgba(248, 251, 250, .96);
    box-shadow:
        0 35px 85px rgba(16, 60, 69, .16),
        0 0 0 1px rgba(16, 60, 69, .11);
}

body.school-public-body .school-entry-preview header {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    border-radius: 30px 30px 0 0;
    padding: 1rem 1.25rem;
}

body.school-public-body .school-entry-preview header span {
    color: rgba(255, 255, 255, .78);
}

body.school-public-body .school-entry-help {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1.35rem;
    padding: 1.4rem 1.5rem;
}

body.login-body .page-shell {
    width: min(1120px, calc(100% - 2.4rem));
    min-height: 100vh;
    padding: 1.15rem 0;
}

body.login-body .page-content {
    display: block;
    width: 100%;
}

body.login-body .login-stage {
    width: 100%;
    min-height: min(640px, calc(100vh - 72px));
}

@media (max-width: 880px) {
    body.school-public-body .school-entry-help {
        grid-template-columns: auto 1fr;
    }

    body.school-public-body .school-entry-help > a {
        grid-column: 1 / -1;
    }

    body.login-body .page-shell {
        width: min(680px, calc(100% - 2rem));
        padding: 1rem 0;
    }

    body.login-body .login-stage {
        min-height: 0;
    }
}

@media (max-width: 700px) {
    body.gateway-body .topbar,
    body.school-public-body .topbar {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    body.school-public-body .school-entry-preview header {
        border-radius: 22px 22px 0 0;
    }

    body.school-public-body .school-entry-help {
        grid-template-columns: 1fr;
    }

    body.school-public-body .school-entry-help > a {
        grid-column: auto;
    }

    body.login-body .page-shell {
        width: min(100% - 1rem, 680px);
        padding: .5rem 0;
    }
}

@media (min-width: 881px) and (max-height: 760px) {
    body.login-body .page-shell {
        padding: .65rem 0;
    }

    body.login-body .login-stage {
        min-height: calc(100vh - 54px);
    }

    .login-story {
        padding: 1.45rem 2.1rem;
    }

    .login-story-copy {
        margin-top: 1.45rem;
    }

    .login-story-window {
        margin-bottom: .7rem;
    }

    .login-stage .simple-login-card {
        padding: 1.4rem 2.7rem;
    }

    .login-stage .simple-login-head {
        margin-bottom: .8rem;
    }

    .login-stage .simple-login-form {
        gap: .62rem;
    }

    .login-stage .field-input,
    .login-stage .simple-field input {
        min-height: 2.8rem;
        padding-block: .65rem;
    }

    .login-stage .simple-login-button {
        min-height: 2.8rem;
    }

    .login-stage .demo-accesses {
        margin-top: .65rem;
        padding-top: .65rem;
    }

    .login-stage .simple-login-help {
        margin-top: .45rem;
    }

    .login-stage .simple-login-switch {
        margin-top: .5rem;
        padding-top: .5rem;
    }
}

/* Public platform homepage */
.platform-home-body {
    --platform-deep: #0d3942;
    --platform-ink: #163f48;
    --platform-teal: #0b8779;
    --platform-mint: #69d4b5;
    --platform-sand: #e79a36;
    --platform-cream: #fff4e3;
    min-height: 100vh;
    overflow-x: clip;
    color: var(--platform-ink);
    background:
        radial-gradient(circle at 4% 2%, rgba(231, 154, 54, .2), transparent 29rem),
        radial-gradient(circle at 96% 13%, rgba(11, 135, 121, .14), transparent 34rem),
        #f5f8f5;
}

.platform-home-body .page-shell {
    width: min(1500px, calc(100% - 3.5rem));
}

.platform-home-body .page-content {
    display: grid;
    gap: clamp(5rem, 9vw, 9rem);
    padding-bottom: 2rem;
}

.platform-home-body .topbar {
    min-height: 84px;
    border-bottom: 1px solid rgba(13, 57, 66, .07);
}

.platform-home-body .topnav .platform-nav-school,
.platform-home-body .topnav .platform-nav-photo {
    border: 1px solid rgba(13, 57, 66, .11);
    padding-inline: 1rem;
    background: rgba(255, 255, 255, .58);
}

.platform-home-body .topnav .platform-nav-photo {
    border-color: var(--platform-deep);
    color: #fff;
    background: var(--platform-deep);
}

.platform-home-body .topnav .platform-nav-photo:hover {
    color: #fff;
    background: #082e36;
}

.platform-eyebrow {
    display: flex;
    gap: .65rem;
    align-items: center;
    margin: 0;
    color: #60797f;
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.platform-eyebrow > span {
    width: 1.7rem;
    height: 2px;
    border-radius: 999px;
    background: var(--platform-sand);
}

.platform-hero {
    display: grid;
    grid-template-columns: minmax(0, .94fr) minmax(520px, 1.06fr);
    gap: clamp(2.5rem, 6vw, 6.5rem);
    align-items: center;
    min-height: min(770px, calc(100vh - 84px));
    padding: clamp(3.2rem, 7vw, 7rem) 0 clamp(4rem, 7vw, 6.5rem);
}

.platform-hero-copy {
    position: relative;
    z-index: 4;
    animation: platformRise .65s ease both;
}

.platform-hero h1 {
    max-width: 790px;
    margin: 1rem 0 0;
    color: var(--platform-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(4rem, 7.1vw, 7.3rem);
    font-weight: 740;
    letter-spacing: -.072em;
    line-height: .88;
}

.platform-hero h1 em {
    display: block;
    color: var(--platform-teal);
    font-style: normal;
    font-weight: 620;
}

.platform-hero-lead {
    max-width: 680px;
    margin: 1.7rem 0 0;
    color: #627a80;
    font-size: 1.05rem;
    line-height: 1.72;
}

.platform-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    align-items: center;
    margin-top: 2rem;
}

.platform-primary-link,
.platform-text-link {
    display: inline-flex;
    gap: .65rem;
    min-height: 3.5rem;
    align-items: center;
    justify-content: center;
    border-radius: 15px;
    padding: .85rem 1.2rem;
    font-size: .8rem;
    font-weight: 850;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.platform-primary-link {
    min-width: 210px;
    color: #fff;
    background: var(--platform-deep);
    box-shadow: 0 16px 32px rgba(13, 57, 66, .17);
}

.platform-primary-link:hover {
    color: #fff;
    box-shadow: 0 20px 38px rgba(13, 57, 66, .22);
    transform: translateY(-2px);
}

.platform-text-link {
    color: #4d686f;
    background: transparent;
}

.platform-text-link:hover {
    color: var(--platform-teal);
    background: rgba(255,255,255,.62);
}

.platform-hero-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
    max-width: 690px;
    margin-top: clamp(2.7rem, 6vw, 5rem);
    border-top: 1px solid rgba(13, 57, 66, .1);
    padding-top: 1.1rem;
}

.platform-hero-facts span {
    display: grid;
    gap: .3rem;
    color: #506a70;
    font-size: .69rem;
    font-weight: 760;
    line-height: 1.4;
}

.platform-hero-facts b {
    color: var(--platform-sand);
    font-size: .6rem;
    letter-spacing: .12em;
}

.platform-hero-art {
    position: relative;
    min-height: 650px;
    overflow: hidden;
    border: 1px solid rgba(13, 57, 66, .09);
    border-radius: 52% 48% 45% 55% / 43% 47% 53% 57%;
    background:
        radial-gradient(circle at 50% 48%, rgba(255,255,255,.93), rgba(240,248,244,.88) 42%, rgba(222,242,235,.75) 72%, rgba(255,244,227,.68));
    box-shadow:
        0 50px 100px rgba(13, 57, 66, .12),
        inset 0 0 0 18px rgba(255,255,255,.34);
    animation: platformReveal .8s .08s ease both;
}

.platform-art-grid {
    position: absolute;
    inset: 0;
    opacity: .45;
    background:
        linear-gradient(rgba(13,57,66,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(13,57,66,.055) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(circle, #000 20%, transparent 72%);
}

.platform-orbit {
    position: absolute;
    inset: 50% auto auto 50%;
    border: 1px solid rgba(13, 57, 66, .13);
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.platform-orbit::before,
.platform-orbit::after {
    position: absolute;
    width: .72rem;
    height: .72rem;
    border: 3px solid #f1f8f4;
    border-radius: 50%;
    background: var(--platform-teal);
    box-shadow: 0 5px 16px rgba(11, 135, 121, .26);
    content: "";
}

.platform-orbit-one {
    width: 330px;
    height: 330px;
    animation: platformSpin 28s linear infinite;
}

.platform-orbit-one::before {
    left: 24px;
    top: 86px;
}

.platform-orbit-one::after {
    right: 33px;
    bottom: 70px;
    background: var(--platform-sand);
}

.platform-orbit-two {
    width: 510px;
    height: 510px;
    border-style: dashed;
    opacity: .72;
    animation: platformSpinReverse 48s linear infinite;
}

.platform-orbit-two::before {
    right: 58px;
    top: 75px;
    background: var(--platform-mint);
}

.platform-orbit-two::after {
    left: 55px;
    bottom: 80px;
}

.platform-core {
    position: absolute;
    z-index: 3;
    display: grid;
    width: 190px;
    height: 190px;
    inset: 50% auto auto 50%;
    place-content: center;
    border: 1px solid rgba(13, 57, 66, .13);
    border-radius: 42px;
    padding: 1.1rem;
    background: rgba(255,255,255,.92);
    box-shadow: 0 25px 55px rgba(13,57,66,.15);
    text-align: center;
    transform: translate(-50%, -50%) rotate(-2deg);
}

.platform-core svg {
    width: 4.6rem;
    margin: 0 auto .55rem;
    fill: none;
    stroke: var(--platform-teal);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.platform-core > span {
    color: #809195;
    font-size: .59rem;
    font-weight: 850;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.platform-core > strong {
    margin-top: .2rem;
    color: var(--platform-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: 1.25rem;
}

.platform-art-card {
    position: absolute;
    z-index: 5;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: center;
    min-width: 245px;
    border: 1px solid rgba(13, 57, 66, .11);
    border-radius: 16px;
    padding: .7rem .75rem;
    background: rgba(255,255,255,.9);
    box-shadow: 0 18px 42px rgba(13,57,66,.13);
    backdrop-filter: blur(10px);
}

.platform-art-card > i {
    display: grid;
    width: 2.3rem;
    height: 2.3rem;
    place-items: center;
    border-radius: 11px;
    color: var(--platform-teal);
    background: #e6f5f0;
}

.platform-art-card svg {
    width: 1.2rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.55;
}

.platform-art-card > span {
    display: grid;
    gap: .08rem;
}

.platform-art-card small {
    color: #8a9b9e;
    font-size: .53rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.platform-art-card b {
    color: var(--platform-deep);
    font-size: .66rem;
}

.platform-art-card > em {
    border-radius: 999px;
    padding: .3rem .43rem;
    color: #0a766b;
    background: #e8f6f2;
    font-size: .54rem;
    font-style: normal;
    font-weight: 850;
}

.platform-art-school {
    left: 4.5%;
    top: 14%;
    transform: rotate(-2deg);
    animation: platformFloat 7s ease-in-out infinite;
}

.platform-art-studio {
    right: 3%;
    top: 23%;
    transform: rotate(2deg);
    animation: platformFloat 7.8s .7s ease-in-out infinite reverse;
}

.platform-art-studio > i {
    color: #b56c1c;
    background: #fff1df;
}

.platform-art-family {
    left: 12%;
    bottom: 13%;
    transform: rotate(1deg);
    animation: platformFloat 8.2s 1.1s ease-in-out infinite;
}

.platform-art-caption {
    position: absolute;
    right: 7%;
    bottom: 8%;
    display: grid;
    gap: .45rem;
    border-radius: 14px;
    padding: .65rem .8rem;
    color: #5b7379;
    background: rgba(255,255,255,.62);
    backdrop-filter: blur(8px);
}

.platform-art-caption > span {
    width: 34%;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--platform-sand), var(--platform-teal));
}

.platform-art-caption p {
    display: flex;
    gap: .42rem;
    align-items: center;
    margin: 0;
    font-size: .52rem;
}

.platform-art-caption i {
    width: .8rem;
    height: 1px;
    background: rgba(13,57,66,.2);
}

.platform-flow {
    display: grid;
    grid-template-columns: minmax(250px, .66fr) minmax(0, 1.34fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
    border-top: 1px solid rgba(13,57,66,.1);
    border-bottom: 1px solid rgba(13,57,66,.1);
    padding: clamp(3.2rem, 6vw, 5.5rem) 0;
}

.platform-section-heading h2,
.platform-spaces-heading h2,
.platform-statement h2 {
    margin: .85rem 0 0;
    color: var(--platform-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-weight: 720;
    letter-spacing: -.045em;
}

.platform-section-heading h2 {
    max-width: 440px;
    font-size: clamp(2.4rem, 4.5vw, 4.2rem);
    line-height: .98;
}

.platform-flow-line {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.platform-flow-line::before {
    position: absolute;
    height: 1px;
    left: 4%;
    right: 4%;
    top: 1.18rem;
    background: linear-gradient(90deg, var(--platform-sand), var(--platform-teal));
    content: "";
    opacity: .4;
}

.platform-flow-line li {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 1rem;
}

.platform-flow-line li > span {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    border: 1px solid rgba(13,57,66,.12);
    border-radius: 50%;
    color: #a6661e;
    background: #fff8ed;
    box-shadow: 0 0 0 7px #f5f8f5;
    font-size: .6rem;
    font-weight: 850;
}

.platform-flow-line li:nth-child(n+3) > span {
    color: #08776c;
    background: #eaf7f3;
}

.platform-flow-line li > div {
    display: grid;
    gap: .35rem;
}

.platform-flow-line strong {
    color: var(--platform-deep);
    font-size: .8rem;
}

.platform-flow-line small {
    max-width: 190px;
    color: #74888d;
    font-size: .67rem;
    line-height: 1.5;
}

.platform-statement {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1.25fr) minmax(260px, .75fr) auto;
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: center;
    overflow: hidden;
    border-radius: 34px;
    padding: clamp(2rem, 5vw, 4.6rem);
    color: #fff;
    background:
        radial-gradient(circle at 85% 20%, rgba(105,212,181,.18), transparent 24rem),
        var(--platform-deep);
}

.platform-statement::after {
    position: absolute;
    width: 23rem;
    height: 23rem;
    right: -11rem;
    top: -12rem;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 50%;
    box-shadow: 0 0 0 4rem rgba(255,255,255,.018);
    content: "";
}

.platform-statement-number {
    display: grid;
    width: 3.5rem;
    height: 3.5rem;
    place-items: center;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 16px;
    color: #f2b762;
    background: rgba(255,255,255,.06);
    font-size: .72rem;
    font-weight: 850;
}

.platform-statement .platform-eyebrow {
    color: rgba(255,255,255,.56);
}

.platform-statement h2 {
    max-width: 730px;
    color: #fff;
    font-size: clamp(2.3rem, 4.8vw, 4.8rem);
    line-height: .96;
}

.platform-statement > p {
    position: relative;
    z-index: 1;
    margin: 0;
    color: rgba(255,255,255,.66);
    font-size: .83rem;
    line-height: 1.7;
}

.platform-statement-mark {
    position: relative;
    z-index: 2;
    display: grid;
    gap: .35rem;
}

.platform-statement-mark span {
    display: block;
    width: 1.7rem;
    height: .32rem;
    border-radius: 999px;
    background: var(--platform-mint);
}

.platform-statement-mark span:nth-child(2) {
    width: 2.5rem;
    background: #fff;
}

.platform-statement-mark span:nth-child(3) {
    width: 1rem;
    background: var(--platform-sand);
}

.platform-spaces-section {
    display: grid;
    gap: 2.3rem;
    padding-bottom: clamp(2rem, 5vw, 5rem);
}

.platform-spaces-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .5fr);
    gap: 2rem;
    align-items: end;
}

.platform-spaces-heading h2 {
    font-size: clamp(3rem, 5.5vw, 5.5rem);
    line-height: .94;
}

.platform-spaces-heading > p {
    max-width: 430px;
    margin: 0 0 .5rem auto;
    color: #6b8085;
    font-size: .88rem;
    line-height: 1.65;
}

.platform-spaces {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.platform-space {
    display: grid;
    grid-template-columns: minmax(230px, .82fr) minmax(0, 1.18fr);
    min-height: 480px;
    overflow: hidden;
    border: 1px solid rgba(13,57,66,.1);
    border-radius: 30px;
    color: var(--platform-ink);
    background: rgba(255,255,255,.85);
    box-shadow: 0 22px 60px rgba(13,57,66,.08);
    transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.platform-space:hover {
    color: var(--platform-ink);
    border-color: rgba(13,57,66,.2);
    box-shadow: 0 30px 75px rgba(13,57,66,.13);
    transform: translateY(-5px);
}

.platform-space-visual {
    position: relative;
    display: grid;
    min-width: 0;
    place-items: center;
    overflow: hidden;
}

.platform-space-school .platform-space-visual {
    background:
        linear-gradient(rgba(183,111,29,.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(183,111,29,.05) 1px, transparent 1px),
        #fff3e1;
    background-size: 32px 32px;
}

.platform-space-photo .platform-space-visual {
    background:
        linear-gradient(rgba(11,135,121,.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(11,135,121,.05) 1px, transparent 1px),
        #e9f6f2;
    background-size: 32px 32px;
}

.platform-space-index {
    position: absolute;
    left: 1.2rem;
    top: 1.2rem;
    color: #9a7b54;
    font-size: .65rem;
    font-weight: 850;
    letter-spacing: .14em;
}

.platform-space-visual > em {
    position: absolute;
    left: 1.2rem;
    bottom: 1.2rem;
    color: #7a8c8f;
    font-size: .59rem;
    font-style: normal;
    font-weight: 850;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.platform-school-scene,
.platform-camera-scene {
    position: relative;
    width: 210px;
    height: 210px;
}

.platform-school-scene::before,
.platform-camera-scene::before {
    position: absolute;
    inset: 0;
    border: 1px solid rgba(13,57,66,.11);
    border-radius: 50%;
    box-shadow:
        0 0 0 2.8rem rgba(255,255,255,.34),
        0 0 0 5.5rem rgba(255,255,255,.2);
    content: "";
}

.platform-school-roof {
    position: absolute;
    z-index: 2;
    width: 112px;
    height: 112px;
    left: 50%;
    top: 28px;
    border: 9px solid #bd721f;
    border-right: 0;
    border-bottom: 0;
    transform: translateX(-50%) rotate(45deg);
}

.platform-school-building {
    position: absolute;
    z-index: 3;
    display: flex;
    width: 130px;
    height: 92px;
    left: 50%;
    bottom: 30px;
    gap: 12px;
    align-items: flex-start;
    justify-content: center;
    border: 8px solid #bd721f;
    border-radius: 5px 5px 12px 12px;
    padding-top: 18px;
    background: #fff8ec;
    transform: translateX(-50%);
}

.platform-school-building i {
    width: 18px;
    height: 25px;
    border: 4px solid #bd721f;
    border-radius: 3px;
}

.platform-school-building i:nth-child(2) {
    height: 44px;
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
}

.platform-school-ground {
    position: absolute;
    z-index: 4;
    width: 170px;
    height: 8px;
    left: 50%;
    bottom: 20px;
    border-radius: 999px;
    background: #bd721f;
    transform: translateX(-50%);
}

.platform-camera-body {
    position: absolute;
    z-index: 3;
    width: 145px;
    height: 98px;
    left: 50%;
    top: 58px;
    border: 9px solid #087c70;
    border-radius: 18px;
    background: #f5fcfa;
    transform: translateX(-50%);
}

.platform-camera-body::before {
    position: absolute;
    width: 46px;
    height: 22px;
    left: 15px;
    top: -28px;
    border: 9px solid #087c70;
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
    content: "";
}

.platform-camera-body i {
    position: absolute;
    width: 55px;
    height: 55px;
    left: 50%;
    top: 50%;
    border: 8px solid #087c70;
    border-radius: 50%;
    background: #dff3ed;
    box-shadow: inset 0 0 0 9px #f7fcfa;
    transform: translate(-50%, -50%);
}

.platform-camera-flash {
    position: absolute;
    z-index: 4;
    width: 14px;
    height: 14px;
    right: 49px;
    top: 74px;
    border-radius: 50%;
    background: var(--platform-sand);
}

.platform-camera-ray {
    position: absolute;
    z-index: 2;
    height: 3px;
    right: 7px;
    top: 45px;
    border-radius: 999px;
    background: var(--platform-sand);
    transform-origin: right center;
}

.platform-camera-ray.ray-one {
    width: 35px;
    transform: rotate(-18deg);
}

.platform-camera-ray.ray-two {
    width: 25px;
    top: 66px;
}

.platform-camera-ray.ray-three {
    width: 31px;
    top: 86px;
    transform: rotate(17deg);
}

.platform-space-copy {
    display: flex;
    flex-direction: column;
    padding: clamp(2rem, 4vw, 3.6rem);
}

.platform-space-kicker {
    color: #a46a23;
    font-size: .64rem;
    font-weight: 850;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.platform-space-photo .platform-space-kicker {
    color: #087c70;
}

.platform-space-copy h3 {
    max-width: 420px;
    margin: 1rem 0 0;
    color: var(--platform-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2rem, 3.5vw, 3.4rem);
    font-weight: 720;
    letter-spacing: -.05em;
    line-height: .98;
}

.platform-space-copy p {
    max-width: 430px;
    margin: 1.2rem 0 0;
    color: #6d8287;
    font-size: .82rem;
    line-height: 1.7;
}

.platform-space-link {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    border-top: 1px solid rgba(13,57,66,.1);
    padding-top: 1rem;
    color: var(--platform-deep);
    font-size: .75rem;
    font-weight: 850;
}

.platform-space-link b {
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--platform-deep);
    transition: transform .2s ease;
}

.platform-space:hover .platform-space-link b {
    transform: translateX(4px);
}

.platform-footer {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 2rem;
    align-items: center;
    border-top: 1px solid rgba(13,57,66,.1);
    padding: 1.6rem 0 .5rem;
    color: #6f8388;
    font-size: .7rem;
}

.platform-footer > div {
    display: flex;
    gap: .65rem;
    align-items: center;
    color: var(--platform-deep);
}

.platform-footer .brand-mark {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    border-radius: 11px;
    color: #fff;
    background: linear-gradient(145deg, #e99a35, #d46e24);
    font-size: .65rem;
}

.platform-footer p {
    margin: 0;
    text-align: center;
}

.platform-footer > a {
    color: var(--platform-deep);
    font-weight: 800;
}

@keyframes platformRise {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes platformReveal {
    from { opacity: 0; transform: scale(.96) rotate(-1deg); }
    to { opacity: 1; transform: scale(1) rotate(0); }
}

@keyframes platformSpin {
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes platformSpinReverse {
    to { transform: translate(-50%, -50%) rotate(-360deg); }
}

@keyframes platformFloat {
    0%, 100% { translate: 0 0; }
    50% { translate: 0 -9px; }
}

@media (prefers-reduced-motion: reduce) {
    .platform-hero-copy,
    .platform-hero-art,
    .platform-orbit,
    .platform-art-card {
        animation: none;
    }
}

@media (max-width: 1160px) {
    .platform-hero {
        grid-template-columns: minmax(0, .9fr) minmax(450px, 1.1fr);
        gap: 2.5rem;
    }

    .platform-hero-art {
        min-height: 590px;
    }

    .platform-art-card {
        min-width: 215px;
    }

    .platform-space {
        grid-template-columns: minmax(190px, .72fr) minmax(0, 1.28fr);
    }
}

@media (max-width: 960px) {
    .platform-home-body .topbar {
        flex-direction: row;
        align-items: center;
    }

    .platform-home-body .topnav > a:not(.platform-nav-spaces) {
        display: none;
    }

    .platform-home-body .topnav .platform-nav-spaces {
        display: inline-flex;
        border: 1px solid var(--platform-deep);
        color: #fff;
        background: var(--platform-deep);
    }

    .platform-hero {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .platform-hero-copy {
        max-width: 820px;
        padding-top: 2rem;
    }

    .platform-hero-art {
        width: min(100%, 760px);
        min-height: 650px;
        margin: 0 auto;
    }

    .platform-flow {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .platform-flow-line {
        margin-top: 1rem;
    }

    .platform-statement {
        grid-template-columns: auto 1fr;
    }

    .platform-statement > p {
        grid-column: 2;
    }

    .platform-statement-mark {
        position: absolute;
        right: 2rem;
        bottom: 2rem;
    }

    .platform-spaces {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .platform-home-body .page-shell {
        width: min(100% - 1.2rem, 1500px);
    }

    .platform-home-body .topbar {
        min-height: 68px;
    }

    .platform-home-body .topnav .platform-nav-spaces {
        display: inline-flex;
        padding: .55rem .7rem;
        color: #fff;
        font-size: .68rem;
        background: var(--platform-deep);
    }

    .platform-home-body .page-content {
        gap: 4.5rem;
    }

    .platform-hero {
        gap: 3rem;
        padding-top: 2.5rem;
    }

    .platform-hero h1 {
        font-size: clamp(3.4rem, 17vw, 5.4rem);
    }

    .platform-hero-lead {
        font-size: .92rem;
    }

    .platform-hero-actions {
        display: grid;
    }

    .platform-primary-link,
    .platform-text-link {
        width: 100%;
    }

    .platform-hero-facts {
        grid-template-columns: 1fr;
        gap: .55rem;
        margin-top: 2.7rem;
    }

    .platform-hero-facts span {
        grid-template-columns: auto 1fr;
        gap: .65rem;
    }

    .platform-hero-art {
        min-height: 520px;
        border-radius: 32px;
    }

    .platform-orbit-one {
        width: 250px;
        height: 250px;
    }

    .platform-orbit-two {
        width: 400px;
        height: 400px;
    }

    .platform-core {
        width: 145px;
        height: 145px;
        border-radius: 32px;
    }

    .platform-core svg {
        width: 3.6rem;
    }

    .platform-art-card {
        min-width: 190px;
        padding: .55rem;
    }

    .platform-art-school {
        left: 3%;
        top: 8%;
    }

    .platform-art-studio {
        right: 2%;
        top: 29%;
    }

    .platform-art-family {
        left: 6%;
        bottom: 8%;
    }

    .platform-art-caption {
        display: none;
    }

    .platform-flow-line {
        grid-template-columns: 1fr;
        gap: 1.2rem;
    }

    .platform-flow-line::before {
        width: 1px;
        height: auto;
        left: 1.15rem;
        right: auto;
        top: 1rem;
        bottom: 1rem;
    }

    .platform-flow-line li {
        grid-template-columns: auto 1fr;
        align-items: start;
    }

    .platform-flow-line li > div {
        padding-top: .25rem;
    }

    .platform-statement {
        grid-template-columns: 1fr;
        border-radius: 26px;
    }

    .platform-statement-number {
        width: 3rem;
        height: 3rem;
    }

    .platform-statement > p {
        grid-column: auto;
    }

    .platform-statement-mark {
        display: none;
    }

    .platform-spaces-heading {
        grid-template-columns: 1fr;
    }

    .platform-spaces-heading > p {
        margin-left: 0;
    }

    .platform-space {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .platform-space-visual {
        min-height: 330px;
    }

    .platform-space-copy {
        min-height: 350px;
        padding: 1.7rem;
    }

    .platform-footer {
        grid-template-columns: 1fr auto;
    }

    .platform-footer p {
        display: none;
    }
}

@media (max-width: 430px) {
    .platform-home-body .brand > span:last-child {
        display: none;
    }

    .platform-hero-art {
        min-height: 470px;
    }

    .platform-art-card {
        min-width: 170px;
    }

    .platform-art-card b {
        font-size: .59rem;
    }

    .platform-art-card > em {
        display: none;
    }

    .platform-core {
        width: 125px;
        height: 125px;
    }

    .platform-core svg {
        width: 2.9rem;
    }

    .platform-art-studio {
        top: 31%;
    }
}

/* Visual concordance across every public page on port 8099. */
.platform-home-body .page-shell,
.school-public-body .page-shell,
.public-body .page-shell {
    width: min(1500px, calc(100% - 3rem));
}

.platform-home-body .topbar,
.school-public-body .topbar,
.public-body .topbar {
    min-height: 80px;
    padding-block: .65rem;
}

.platform-home-body .brand,
.school-public-body .brand,
.public-body .brand {
    gap: .8rem;
    color: #123b44;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: 1.02rem;
    font-weight: 750;
    letter-spacing: -.01em;
}

.platform-home-body .brand-mark,
.school-public-body .brand-mark,
.public-body .brand-mark {
    width: 2.7rem;
    height: 2.7rem;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(145deg, #e99a35, #d46e24);
    box-shadow: 0 10px 24px rgba(211, 111, 36, .2);
}

.platform-home-body .topnav,
.school-public-body .topnav,
.public-body .topnav {
    gap: .25rem;
    align-items: center;
}

.platform-home-body .topnav a,
.school-public-body .topnav a,
.public-body .topnav a {
    border-radius: 12px;
    padding: .65rem .85rem;
    font-size: .82rem;
    font-weight: 750;
}

.public-body .public-topnav .public-login-link {
    border-radius: 14px;
    padding-inline: 1rem;
}

.public-body .public-hero h1 {
    max-width: 760px;
    font-size: clamp(3rem, 4.15vw, 4.6rem);
    letter-spacing: -.045em;
    line-height: .98;
}

@media (max-width: 780px) {
    .platform-home-body .page-shell,
    .school-public-body .page-shell,
    .public-body .page-shell {
        width: min(100% - 1rem, 1500px);
    }

    .platform-home-body .topbar,
    .school-public-body .topbar,
    .public-body .topbar {
        min-height: 68px;
        padding-block: .5rem;
    }

    .platform-home-body .brand,
    .school-public-body .brand,
    .public-body .brand {
        gap: .6rem;
        font-size: .95rem;
    }

    .platform-home-body .brand-mark,
    .school-public-body .brand-mark,
    .public-body .brand-mark {
        width: 2.35rem;
        height: 2.35rem;
        border-radius: 12px;
    }

    .public-body .public-hero h1 {
        font-size: clamp(2.25rem, 10vw, 2.8rem);
        line-height: 1;
    }
}

/* Enriched public homepage */
.platform-art-production {
    right: 4%;
    bottom: 24%;
    transform: rotate(-1deg);
    animation: platformFloat 7.4s 1.6s ease-in-out infinite reverse;
}

.platform-art-production > i {
    color: #fff;
    background: var(--platform-deep);
}

.platform-art-sparks {
    position: absolute;
    right: 12%;
    top: 8%;
    display: grid;
    width: 4.5rem;
    height: 4.5rem;
    place-items: center;
    transform: rotate(16deg);
}

.platform-art-sparks span {
    position: absolute;
    width: 1.9rem;
    height: 3px;
    border-radius: 999px;
    background: var(--platform-sand);
}

.platform-art-sparks span:nth-child(1) {
    translate: 1.4rem -1.25rem;
    rotate: -36deg;
}

.platform-art-sparks span:nth-child(2) {
    width: 1.25rem;
    translate: 1.8rem .2rem;
}

.platform-art-sparks span:nth-child(3) {
    width: .8rem;
    translate: .9rem 1.35rem;
    rotate: 38deg;
    background: var(--platform-teal);
}

.platform-pulse {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: center;
    border: 1px solid rgba(13, 57, 66, .1);
    border-radius: 24px;
    padding: 1.1rem clamp(1.1rem, 3vw, 2.2rem);
    background:
        linear-gradient(90deg, rgba(255, 244, 227, .8), rgba(255, 255, 255, .88) 32%, rgba(232, 247, 242, .86));
    box-shadow: 0 18px 50px rgba(13, 57, 66, .07);
}

.platform-pulse-label {
    display: flex;
    gap: .75rem;
    align-items: center;
    white-space: nowrap;
}

.platform-pulse-label > span {
    width: .65rem;
    height: .65rem;
    border: 3px solid #fff;
    border-radius: 50%;
    background: var(--platform-sand);
    box-shadow: 0 0 0 5px rgba(231, 154, 54, .15);
}

.platform-pulse-label strong {
    color: var(--platform-deep);
    font-size: .72rem;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.platform-pulse-track {
    display: grid;
    grid-template-columns: auto 1fr auto 1fr auto 1fr auto 1fr auto;
    gap: .85rem;
    align-items: center;
}

.platform-pulse-track > span {
    display: flex;
    gap: .45rem;
    align-items: center;
    color: #526c72;
    font-size: .68rem;
    font-weight: 800;
    white-space: nowrap;
}

.platform-pulse-track b {
    color: var(--platform-teal);
    font-size: .55rem;
    letter-spacing: .08em;
}

.platform-pulse-track i {
    min-width: 1rem;
    height: 1px;
    background: linear-gradient(90deg, rgba(231, 154, 54, .42), rgba(11, 135, 121, .42));
}

.platform-bento {
    display: grid;
    grid-template-columns: minmax(0, 1.42fr) minmax(310px, .58fr);
    gap: 1rem;
}

.platform-bento-main {
    position: relative;
    display: grid;
    min-height: 590px;
    overflow: hidden;
    border: 1px solid rgba(13, 57, 66, .09);
    border-radius: 34px;
    padding: clamp(2.1rem, 4.5vw, 4.6rem);
    background:
        radial-gradient(circle at 82% 18%, rgba(231, 154, 54, .22), transparent 18rem),
        linear-gradient(135deg, #fff8ec 0%, #f8f1e6 42%, #edf7f2 100%);
    box-shadow: 0 24px 70px rgba(13, 57, 66, .08);
}

.platform-bento-main::before {
    position: absolute;
    width: 30rem;
    height: 30rem;
    right: -10rem;
    bottom: -16rem;
    border: 1px solid rgba(13, 57, 66, .08);
    border-radius: 50%;
    box-shadow:
        0 0 0 4rem rgba(255, 255, 255, .18),
        0 0 0 8rem rgba(255, 255, 255, .1);
    content: "";
}

.platform-bento-copy {
    position: relative;
    z-index: 3;
    width: min(52%, 620px);
    align-self: center;
}

.platform-bento-copy h2 {
    margin: 1rem 0 0;
    color: var(--platform-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.7rem, 4.7vw, 5rem);
    font-weight: 720;
    letter-spacing: -.055em;
    line-height: .94;
}

.platform-bento-copy > p:not(.platform-eyebrow) {
    max-width: 570px;
    margin: 1.35rem 0 0;
    color: #667d82;
    font-size: .86rem;
    line-height: 1.75;
}

.platform-bento-points {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: 1.7rem;
}

.platform-bento-points span {
    border: 1px solid rgba(13, 57, 66, .1);
    border-radius: 999px;
    padding: .55rem .72rem;
    color: #49666c;
    background: rgba(255, 255, 255, .68);
    font-size: .63rem;
    font-weight: 800;
    backdrop-filter: blur(8px);
}

.platform-photo-composition {
    position: absolute;
    z-index: 2;
    width: 46%;
    inset: 0 0 0 auto;
}

.platform-photo-sheet {
    position: absolute;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    border: 1px solid rgba(13, 57, 66, .11);
    border-radius: 24px;
    padding: .9rem;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 28px 60px rgba(13, 57, 66, .16);
}

.platform-photo-sheet-back {
    width: 205px;
    height: 275px;
    right: 8%;
    top: 7%;
    opacity: .72;
    rotate: 8deg;
}

.platform-photo-sheet-front {
    width: 260px;
    height: 355px;
    right: 20%;
    top: 22%;
    rotate: -7deg;
    animation: platformPhotoFloat 8s ease-in-out infinite;
}

.platform-photo-sheet > span {
    position: relative;
    overflow: hidden;
    border-radius: 14px;
    background:
        radial-gradient(circle at 50% 31%, #f7cfad 0 11%, transparent 11.5%),
        radial-gradient(ellipse at 50% 74%, #0f6f6b 0 31%, transparent 31.5%),
        linear-gradient(145deg, #dff2eb, #fff1df);
}

.platform-photo-sheet > span:nth-child(2n) {
    background:
        radial-gradient(circle at 50% 31%, #dba17b 0 11%, transparent 11.5%),
        radial-gradient(ellipse at 50% 74%, #de8d2a 0 31%, transparent 31.5%),
        linear-gradient(145deg, #fff0dd, #e6f5f0);
}

.platform-photo-sheet > span:nth-child(3n) {
    background:
        radial-gradient(circle at 50% 31%, #edbd91 0 11%, transparent 11.5%),
        radial-gradient(ellipse at 50% 74%, #153f48 0 31%, transparent 31.5%),
        linear-gradient(145deg, #e6f3f0, #f7e8d6);
}

.platform-photo-sheet > span::after {
    position: absolute;
    height: 3px;
    left: 16%;
    right: 16%;
    bottom: 9%;
    border-radius: 999px;
    background: rgba(13, 57, 66, .12);
    content: "";
}

.platform-photo-seal {
    position: absolute;
    z-index: 5;
    display: grid;
    width: 5.3rem;
    height: 5.3rem;
    right: 12%;
    top: 48%;
    place-items: center;
    border: 8px solid rgba(255, 255, 255, .76);
    border-radius: 50%;
    color: #fff;
    background: var(--platform-teal);
    box-shadow: 0 20px 40px rgba(11, 135, 121, .24);
    rotate: 7deg;
}

.platform-photo-seal svg {
    width: 2.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.5;
}

.platform-photo-composition > p {
    position: absolute;
    z-index: 6;
    right: 11%;
    bottom: 8%;
    margin: 0;
    color: #6d8084;
    font-size: .68rem;
    font-weight: 750;
    line-height: 1.45;
    text-align: right;
}

.platform-photo-composition > p strong {
    color: var(--platform-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: 1.25rem;
}

.platform-bento-side {
    display: grid;
    gap: 1rem;
}

.platform-bento-card {
    position: relative;
    display: flex;
    min-height: 287px;
    overflow: hidden;
    flex-direction: column;
    justify-content: space-between;
    border: 1px solid rgba(13, 57, 66, .1);
    border-radius: 30px;
    padding: clamp(1.6rem, 3vw, 2.5rem);
}

.platform-bento-index {
    font-size: .62rem;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.platform-bento-card h3 {
    max-width: 360px;
    margin: .8rem 0 0;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(1.8rem, 2.6vw, 2.7rem);
    font-weight: 720;
    letter-spacing: -.045em;
    line-height: 1;
}

.platform-bento-dark {
    color: #fff;
    background:
        radial-gradient(circle at 95% 5%, rgba(105, 212, 181, .19), transparent 14rem),
        var(--platform-deep);
    box-shadow: 0 24px 60px rgba(13, 57, 66, .15);
}

.platform-bento-dark .platform-bento-index {
    color: var(--platform-mint);
}

.platform-bento-dark p {
    max-width: 360px;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, .62);
    font-size: .72rem;
    line-height: 1.6;
}

.platform-mini-route {
    display: grid;
    grid-template-columns: auto 1fr auto 1fr auto 1fr auto;
    gap: .45rem;
    align-items: center;
    margin: 1.6rem 0 .5rem;
}

.platform-mini-route span {
    width: .78rem;
    height: .78rem;
    border: 2px solid rgba(255, 255, 255, .28);
    border-radius: 50%;
}

.platform-mini-route span.is-complete {
    border-color: var(--platform-mint);
    background: var(--platform-mint);
    box-shadow: 0 0 0 5px rgba(105, 212, 181, .09);
}

.platform-mini-route span.is-current {
    border-color: var(--platform-sand);
    background: var(--platform-sand);
    box-shadow: 0 0 0 5px rgba(231, 154, 54, .12);
}

.platform-mini-route i {
    height: 1px;
    background: rgba(255, 255, 255, .2);
}

.platform-bento-mint {
    color: var(--platform-deep);
    background:
        linear-gradient(rgba(13, 57, 66, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(13, 57, 66, .035) 1px, transparent 1px),
        #e4f5ef;
    background-size: 28px 28px;
}

.platform-bento-mint .platform-bento-index {
    color: var(--platform-teal);
}

.platform-role-symbol {
    display: flex;
    align-items: center;
}

.platform-role-symbol span {
    display: grid;
    width: 3.2rem;
    height: 3.2rem;
    place-items: center;
    border: 5px solid #e4f5ef;
    border-radius: 50%;
    color: #fff;
    background: var(--platform-teal);
    box-shadow: 0 10px 24px rgba(13, 57, 66, .12);
    font-size: .58rem;
    font-weight: 850;
    letter-spacing: .06em;
}

.platform-role-symbol span + span {
    margin-left: -.65rem;
}

.platform-role-symbol span:nth-child(2) {
    background: var(--platform-deep);
}

.platform-role-symbol span:nth-child(3) {
    background: var(--platform-sand);
}

@keyframes platformPhotoFloat {
    0%, 100% { translate: 0 0; rotate: -7deg; }
    50% { translate: 0 -10px; rotate: -5deg; }
}

@media (prefers-reduced-motion: reduce) {
    .platform-art-production,
    .platform-photo-sheet-front {
        animation: none;
    }
}

@media (max-width: 1120px) {
    .platform-pulse {
        grid-template-columns: 1fr;
    }

    .platform-bento {
        grid-template-columns: 1fr;
    }

    .platform-bento-side {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 780px) {
    .platform-art-production {
        right: 2%;
        bottom: 20%;
    }

    .platform-art-sparks {
        display: none;
    }

    .platform-pulse {
        gap: 1rem;
        border-radius: 20px;
    }

    .platform-pulse-track {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: .35rem;
    }

    .platform-pulse-track > span {
        display: grid;
        gap: .2rem;
        justify-items: center;
        font-size: .55rem;
        white-space: normal;
        text-align: center;
    }

    .platform-pulse-track i {
        display: none;
    }

    .platform-bento-main {
        min-height: 870px;
        padding: 2rem 1.45rem;
    }

    .platform-bento-copy {
        width: 100%;
        align-self: start;
    }

    .platform-bento-copy h2 {
        font-size: clamp(2.5rem, 12vw, 3.75rem);
    }

    .platform-photo-composition {
        width: 100%;
        height: 410px;
        inset: auto 0 0;
    }

    .platform-photo-sheet-back {
        right: 6%;
        top: 4%;
    }

    .platform-photo-sheet-front {
        right: 28%;
        top: 15%;
    }

    .platform-photo-seal {
        right: 17%;
        top: 43%;
    }

    .platform-bento-side {
        grid-template-columns: 1fr;
    }

    .platform-bento-card {
        min-height: 265px;
    }
}

@media (max-width: 430px) {
    .platform-art-production {
        right: 1%;
        bottom: 20%;
    }

    .platform-pulse-track > span {
        font-size: .49rem;
    }

    .platform-bento-main {
        min-height: 840px;
    }

    .platform-photo-sheet-back {
        width: 165px;
        height: 230px;
    }

    .platform-photo-sheet-front {
        width: 215px;
        height: 300px;
        right: 26%;
    }

    .platform-photo-seal {
        width: 4.5rem;
        height: 4.5rem;
        right: 9%;
    }

    .platform-photo-composition > p {
        right: 8%;
    }
}

/* Wider reading canvas and a more comfortable type scale. */
.platform-home-body .page-shell {
    width: min(1740px, calc(100% - 2rem));
}

.platform-home-body .page-content {
    gap: clamp(4.25rem, 6.5vw, 7.25rem);
}

.platform-home-body .platform-eyebrow {
    font-size: .76rem;
    letter-spacing: .14em;
}

.platform-hero-lead {
    max-width: 720px;
    font-size: 1.12rem;
}

.platform-primary-link,
.platform-text-link {
    font-size: .86rem;
}

.platform-hero-facts {
    max-width: 740px;
}

.platform-hero-facts span {
    font-size: .78rem;
}

.platform-hero-facts b {
    font-size: .68rem;
}

.platform-art-card {
    min-width: 255px;
    padding: .78rem .82rem;
}

.platform-art-card small {
    font-size: .6rem;
}

.platform-art-card b {
    font-size: .74rem;
}

.platform-art-card > em {
    font-size: .61rem;
}

.platform-pulse {
    padding-block: 1.25rem;
}

.platform-pulse-label strong {
    font-size: .78rem;
}

.platform-pulse-track > span {
    font-size: .75rem;
}

.platform-pulse-track b {
    font-size: .63rem;
}

.platform-section-heading h2 {
    max-width: 500px;
    font-size: clamp(2.65rem, 4.7vw, 4.5rem);
}

.platform-flow-line {
    gap: 1.15rem;
}

.platform-flow-line li > span {
    width: 2.65rem;
    height: 2.65rem;
    font-size: .68rem;
}

.platform-flow-line::before {
    top: 1.32rem;
}

.platform-flow-line strong {
    font-size: .9rem;
}

.platform-flow-line small {
    max-width: 220px;
    font-size: .76rem;
    line-height: 1.55;
}

.platform-bento-copy {
    width: min(54%, 670px);
}

.platform-bento-copy > p:not(.platform-eyebrow) {
    max-width: 610px;
    font-size: .95rem;
}

.platform-bento-points span {
    padding: .62rem .8rem;
    font-size: .72rem;
}

.platform-photo-composition > p {
    font-size: .75rem;
}

.platform-photo-composition > p strong {
    font-size: 1.4rem;
}

.platform-bento-index {
    font-size: .69rem;
}

.platform-bento-dark p {
    font-size: .8rem;
}

.platform-statement {
    grid-template-columns: auto minmax(0, 1.2fr) minmax(280px, .8fr);
    row-gap: 2rem;
    align-items: start;
}

.platform-statement h2 {
    max-width: 820px;
}

.platform-statement > p {
    padding-top: 1.65rem;
    font-size: .94rem;
    line-height: 1.75;
}

.platform-statement-metrics {
    position: relative;
    z-index: 2;
    display: grid;
    grid-column: 2 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid rgba(255, 255, 255, .13);
    padding-top: 1.45rem;
}

.platform-statement-metrics > span {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .75rem;
    align-items: end;
    min-width: 0;
    border-right: 1px solid rgba(255, 255, 255, .1);
    padding: .25rem clamp(1rem, 3vw, 2.4rem);
}

.platform-statement-metrics > span:first-child {
    padding-left: 0;
}

.platform-statement-metrics > span:last-child {
    border-right: 0;
}

.platform-statement-metrics strong {
    color: #fff;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.7rem, 4vw, 4rem);
    font-weight: 720;
    letter-spacing: -.06em;
    line-height: .8;
}

.platform-statement-metrics small {
    max-width: 105px;
    padding-bottom: .2rem;
    color: rgba(255, 255, 255, .62);
    font-size: .7rem;
    font-weight: 750;
    line-height: 1.35;
    text-transform: uppercase;
}

.platform-spaces-heading > p {
    max-width: 480px;
    font-size: .98rem;
}

.platform-space {
    min-height: 510px;
}

.platform-space-index {
    font-size: .74rem;
}

.platform-space-visual > em {
    font-size: .67rem;
}

.platform-space-kicker {
    font-size: .71rem;
}

.platform-space-copy p {
    max-width: 470px;
    font-size: .92rem;
}

.platform-space-link {
    font-size: .84rem;
}

.platform-footer {
    font-size: .78rem;
}

@media (min-width: 1500px) {
    .platform-hero {
        grid-template-columns: minmax(0, .88fr) minmax(660px, 1.12fr);
    }

    .platform-hero-art {
        min-height: 700px;
    }

    .platform-bento-main {
        min-height: 630px;
    }

    .platform-bento-card {
        min-height: 307px;
    }
}

@media (max-width: 1160px) {
    .platform-art-card {
        min-width: 220px;
    }

    .platform-art-card b {
        font-size: .69rem;
    }
}

@media (max-width: 960px) {
    .platform-statement {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .platform-statement > p,
    .platform-statement-metrics {
        grid-column: 2;
    }
}

@media (max-width: 780px) {
    .platform-home-body .page-shell {
        width: min(100% - 1rem, 1740px);
    }

    .platform-home-body .page-content {
        gap: 3.9rem;
    }

    .platform-home-body .platform-eyebrow {
        font-size: .69rem;
    }

    .platform-hero h1 {
        font-size: clamp(3.15rem, 15.5vw, 4.85rem);
        line-height: .9;
    }

    .platform-hero-lead {
        font-size: 1rem;
        line-height: 1.68;
    }

    .platform-primary-link,
    .platform-text-link {
        font-size: .84rem;
    }

    .platform-hero-facts span {
        font-size: .73rem;
    }

    .platform-art-card {
        min-width: 184px;
        padding: .6rem;
    }

    .platform-art-card small {
        font-size: .6rem;
    }

    .platform-art-card b {
        font-size: .68rem;
    }

    .platform-pulse-label strong {
        font-size: .72rem;
    }

    .platform-pulse-track > span {
        font-size: .625rem;
        line-height: 1.25;
    }

    .platform-pulse-track b {
        font-size: .6rem;
    }

    .platform-section-heading h2 {
        font-size: clamp(2.35rem, 11vw, 3.25rem);
    }

    .platform-flow-line strong {
        font-size: .92rem;
    }

    .platform-flow-line small {
        max-width: none;
        font-size: .79rem;
    }

    .platform-bento-main {
        min-height: 880px;
    }

    .platform-bento-copy {
        width: 100%;
    }

    .platform-bento-copy h2 {
        font-size: clamp(2.35rem, 11.5vw, 3.55rem);
    }

    .platform-bento-copy > p:not(.platform-eyebrow) {
        font-size: .91rem;
    }

    .platform-bento-points span {
        font-size: .66rem;
    }

    .platform-bento-dark p {
        font-size: .79rem;
    }

    .platform-statement {
        grid-template-columns: 1fr;
    }

    .platform-statement > p,
    .platform-statement-metrics {
        grid-column: auto;
    }

    .platform-statement > p {
        padding-top: 0;
        font-size: .9rem;
    }

    .platform-statement-metrics {
        gap: .45rem;
    }

    .platform-statement-metrics > span {
        display: grid;
        grid-template-columns: 1fr;
        gap: .3rem;
        align-items: start;
        padding: .2rem .65rem;
    }

    .platform-statement-metrics > span:first-child {
        padding-left: 0;
    }

    .platform-statement-metrics strong {
        font-size: 2.6rem;
    }

    .platform-statement-metrics small {
        font-size: .64rem;
    }

    .platform-spaces-heading > p {
        font-size: .91rem;
    }

    .platform-space {
        min-height: 0;
    }

    .platform-space-copy {
        min-height: 330px;
    }

    .platform-space-copy p {
        font-size: .9rem;
    }

    .platform-space-link {
        font-size: .8rem;
    }

    .platform-footer {
        font-size: .72rem;
    }
}

@media (max-width: 430px) {
    .platform-art-card {
        min-width: 176px;
    }

    .platform-art-card b {
        font-size: .66rem;
    }

    .platform-pulse-track > span {
        font-size: .625rem;
    }

    .platform-bento-main {
        min-height: 875px;
    }
}

/* Unified activity and software ecosystem. */
.platform-operations {
    display: grid;
    gap: 2.2rem;
}

.platform-operations-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    gap: clamp(2rem, 7vw, 8rem);
    align-items: end;
}

.platform-operations-heading h2 {
    max-width: 930px;
    margin: 1rem 0 0;
    color: var(--platform-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(3.2rem, 5.7vw, 6.2rem);
    font-weight: 720;
    letter-spacing: -.058em;
    line-height: .92;
}

.platform-operations-heading > p {
    max-width: 560px;
    margin: 0 0 .45rem auto;
    color: #647c82;
    font-size: 1rem;
    line-height: 1.75;
}

.platform-operations-layout {
    display: grid;
    grid-template-columns: minmax(560px, 1.12fr) minmax(390px, .88fr);
    gap: 1rem;
}

.platform-operations-map {
    position: relative;
    min-height: 600px;
    overflow: hidden;
    border: 1px solid rgba(13, 57, 66, .15);
    border-radius: 36px;
    background:
        radial-gradient(circle at 52% 46%, rgba(105, 212, 181, .22), transparent 20rem),
        radial-gradient(circle at 8% 0%, rgba(231, 154, 54, .16), transparent 20rem),
        linear-gradient(145deg, #0d3942, #0a4d54 62%, #0b3f48);
    box-shadow: 0 30px 80px rgba(13, 57, 66, .17);
}

.platform-operations-grid {
    position: absolute;
    inset: 0;
    opacity: .22;
    background:
        linear-gradient(rgba(255, 255, 255, .12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .12) 1px, transparent 1px);
    background-size: 38px 38px;
    mask-image: radial-gradient(circle at 50% 47%, #000 12%, transparent 74%);
}

.platform-operation-orbit {
    position: absolute;
    left: 50%;
    top: 45%;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 50%;
    translate: -50% -50%;
}

.platform-operation-orbit-one {
    width: 340px;
    height: 340px;
    box-shadow: 0 0 0 5rem rgba(255, 255, 255, .018);
}

.platform-operation-orbit-two {
    width: 510px;
    height: 510px;
    border-style: dashed;
    opacity: .6;
}

.platform-operation-ray {
    position: absolute;
    z-index: 1;
    width: 150px;
    height: 1px;
    left: 50%;
    top: 45%;
    background: linear-gradient(90deg, rgba(105, 212, 181, .7), rgba(255, 255, 255, .08));
    transform-origin: left center;
}

.platform-operation-ray::after {
    position: absolute;
    width: .55rem;
    height: .55rem;
    right: 0;
    top: 50%;
    border: 3px solid #164f57;
    border-radius: 50%;
    background: var(--platform-mint);
    box-shadow: 0 0 0 5px rgba(105, 212, 181, .1);
    content: "";
    translate: 50% -50%;
}

.platform-operation-ray.ray-school {
    rotate: -146deg;
}

.platform-operation-ray.ray-parent {
    rotate: -29deg;
}

.platform-operation-ray.ray-team {
    rotate: 145deg;
}

.platform-operation-core {
    position: absolute;
    z-index: 4;
    display: grid;
    width: 200px;
    height: 200px;
    left: 50%;
    top: 45%;
    place-content: center;
    border: 1px solid rgba(255, 255, 255, .23);
    border-radius: 42px;
    padding: 1.4rem;
    color: #fff;
    background: rgba(255, 255, 255, .1);
    box-shadow:
        0 30px 65px rgba(0, 20, 25, .22),
        inset 0 0 0 10px rgba(255, 255, 255, .035);
    text-align: center;
    backdrop-filter: blur(14px);
    translate: -50% -50%;
    animation: platformHubPulse 6s ease-in-out infinite;
}

.platform-operation-core > span {
    display: grid;
    width: 3.8rem;
    height: 3.8rem;
    margin: 0 auto .8rem;
    place-items: center;
    border-radius: 18px;
    color: var(--platform-deep);
    background: var(--platform-mint);
    box-shadow: 0 15px 32px rgba(105, 212, 181, .2);
    font-size: .9rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.platform-operation-core small {
    color: rgba(255, 255, 255, .58);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.platform-operation-core strong {
    max-width: 155px;
    margin: .35rem auto 0;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: 1.42rem;
    line-height: 1;
}

.platform-operation-node {
    position: absolute;
    z-index: 5;
    display: flex;
    min-width: 190px;
    gap: .75rem;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, .17);
    border-radius: 18px;
    padding: .75rem .85rem;
    color: #fff;
    background: rgba(255, 255, 255, .11);
    box-shadow: 0 18px 38px rgba(0, 24, 29, .18);
    backdrop-filter: blur(12px);
}

.platform-operation-node > span {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 14px;
    color: var(--platform-deep);
    background: var(--platform-mint);
}

.platform-operation-node svg,
.platform-operation-feature svg {
    width: 1.3rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.55;
}

.platform-operation-node > div {
    display: grid;
    gap: .12rem;
}

.platform-operation-node small {
    color: rgba(255, 255, 255, .52);
    font-size: .61rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.platform-operation-node strong {
    font-size: .82rem;
}

.platform-operation-school {
    left: 6%;
    top: 12%;
}

.platform-operation-parent {
    right: 5%;
    top: 18%;
    min-width: 220px;
}

.platform-operation-parent > span {
    background: #fff0da;
}

.platform-operation-team {
    left: 7%;
    bottom: 22%;
}

.platform-operation-team > span {
    color: #fff;
    background: var(--platform-sand);
}

.platform-software-dock {
    position: absolute;
    z-index: 6;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1.2fr) auto minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    left: 4%;
    right: 4%;
    bottom: 4%;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 22px;
    padding: .8rem;
    color: #fff;
    background: rgba(4, 35, 42, .62);
    box-shadow: 0 18px 45px rgba(0, 20, 25, .2);
    backdrop-filter: blur(14px);
}

.platform-software-dock > span,
.platform-software-dock > em {
    display: grid;
    gap: .12rem;
    min-width: 0;
    border-radius: 14px;
    padding: .65rem .75rem;
    background: rgba(255, 255, 255, .08);
    font-style: normal;
}

.platform-software-dock > em {
    background: rgba(105, 212, 181, .13);
}

.platform-software-dock b {
    overflow: hidden;
    font-size: .81rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.platform-software-dock small {
    color: rgba(255, 255, 255, .52);
    font-size: .59rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.platform-software-dock > i {
    color: var(--platform-mint);
    font-size: .9rem;
    font-style: normal;
}

.platform-operations-list {
    display: grid;
    gap: 1rem;
}

.platform-operation-feature {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1.2rem;
    align-items: start;
    overflow: hidden;
    border: 1px solid rgba(13, 57, 66, .1);
    border-radius: 28px;
    padding: clamp(1.5rem, 2.4vw, 2.35rem);
    background: rgba(255, 255, 255, .84);
    box-shadow: 0 18px 50px rgba(13, 57, 66, .075);
}

.platform-operation-feature::after {
    position: absolute;
    width: 8rem;
    height: 8rem;
    right: -4rem;
    bottom: -5rem;
    border: 1px solid rgba(13, 57, 66, .07);
    border-radius: 50%;
    box-shadow: 0 0 0 2.5rem rgba(13, 57, 66, .018);
    content: "";
}

.platform-operation-feature > span {
    position: relative;
    z-index: 2;
    display: grid;
    width: 3.4rem;
    height: 3.4rem;
    place-items: center;
    border-radius: 17px;
    color: #a6621c;
    background: #fff0dc;
}

.platform-operation-feature > div {
    position: relative;
    z-index: 2;
}

.platform-operation-feature small {
    color: #a66a24;
    font-size: .67rem;
    font-weight: 850;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.platform-operation-feature h3 {
    max-width: 520px;
    margin: .55rem 0 0;
    color: var(--platform-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(1.55rem, 2.4vw, 2.25rem);
    font-weight: 720;
    letter-spacing: -.04em;
    line-height: 1.02;
}

.platform-operation-feature p {
    max-width: 580px;
    margin: .75rem 0 0;
    color: #687f84;
    font-size: .82rem;
    line-height: 1.65;
}

.platform-operation-production {
    background:
        radial-gradient(circle at 100% 0%, rgba(105, 212, 181, .16), transparent 13rem),
        rgba(255, 255, 255, .87);
}

.platform-operation-production > span {
    color: #fff;
    background: var(--platform-teal);
}

.platform-operation-production small,
.platform-operation-templates small {
    color: var(--platform-teal);
}

.platform-operation-templates {
    background:
        linear-gradient(rgba(13, 57, 66, .028) 1px, transparent 1px),
        linear-gradient(90deg, rgba(13, 57, 66, .028) 1px, transparent 1px),
        #e9f6f2;
    background-size: 28px 28px;
}

.platform-operation-templates > span {
    color: var(--platform-deep);
    background: #fff;
    box-shadow: 0 12px 30px rgba(13, 57, 66, .1);
}

@keyframes platformHubPulse {
    0%, 100% { box-shadow: 0 30px 65px rgba(0, 20, 25, .22), inset 0 0 0 10px rgba(255, 255, 255, .035); }
    50% { box-shadow: 0 34px 75px rgba(0, 20, 25, .28), 0 0 0 12px rgba(105, 212, 181, .035), inset 0 0 0 10px rgba(255, 255, 255, .05); }
}

@media (prefers-reduced-motion: reduce) {
    .platform-operation-core {
        animation: none;
    }
}

@media (max-width: 1120px) {
    .platform-operations-layout {
        grid-template-columns: 1fr;
    }

    .platform-operations-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .platform-operation-feature {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .platform-operations-heading {
        grid-template-columns: 1fr;
        gap: 1.2rem;
    }

    .platform-operations-heading > p {
        max-width: 700px;
        margin-left: 0;
    }

    .platform-operations-list {
        grid-template-columns: 1fr;
    }

    .platform-operation-feature {
        grid-template-columns: auto minmax(0, 1fr);
    }
}

@media (max-width: 780px) {
    .platform-operations {
        gap: 1.5rem;
    }

    .platform-operations-heading h2 {
        font-size: clamp(2.65rem, 12.5vw, 4rem);
    }

    .platform-operations-heading > p {
        font-size: .92rem;
    }

    .platform-operations-map {
        min-height: 650px;
        border-radius: 28px;
    }

    .platform-operation-orbit {
        top: 43%;
    }

    .platform-operation-orbit-one {
        width: 255px;
        height: 255px;
    }

    .platform-operation-orbit-two {
        width: 420px;
        height: 420px;
    }

    .platform-operation-ray {
        display: none;
    }

    .platform-operation-core {
        width: 170px;
        height: 170px;
        top: 43%;
        border-radius: 35px;
    }

    .platform-operation-core > span {
        width: 3.2rem;
        height: 3.2rem;
        margin-bottom: .6rem;
        border-radius: 15px;
    }

    .platform-operation-core strong {
        font-size: 1.25rem;
    }

    .platform-operation-node {
        min-width: 154px;
        gap: .55rem;
        padding: .62rem;
    }

    .platform-operation-node > span {
        width: 2.35rem;
        height: 2.35rem;
        border-radius: 12px;
    }

    .platform-operation-node strong {
        font-size: .78rem;
    }

    .platform-operation-node small {
        font-size: .64rem;
        letter-spacing: .07em;
    }

    .platform-operation-school {
        left: 4%;
        top: 5%;
    }

    .platform-operation-parent {
        right: 4%;
        top: 16%;
        min-width: 185px;
    }

    .platform-operation-team {
        left: 4%;
        bottom: 24%;
    }

    .platform-software-dock {
        grid-template-columns: 1fr auto 1fr auto 1fr;
        gap: .35rem;
        left: 3%;
        right: 3%;
        bottom: 3%;
        padding: .55rem;
    }

    .platform-software-dock > span,
    .platform-software-dock > em {
        padding: .58rem .42rem;
    }

    .platform-software-dock b {
        font-size: .72rem;
    }

    .platform-software-dock small {
        font-size: .63rem;
        letter-spacing: .055em;
    }

    .platform-operation-feature {
        grid-template-columns: 1fr;
        gap: .9rem;
        padding: 1.5rem;
    }

    .platform-operation-feature small {
        font-size: .64rem;
    }

    .platform-operation-feature h3 {
        font-size: clamp(1.7rem, 8vw, 2.2rem);
    }

    .platform-operation-feature p {
        font-size: .88rem;
    }
}

@media (max-width: 430px) {
    .platform-operation-parent {
        right: 2%;
        min-width: 180px;
    }

    .platform-operation-school,
    .platform-operation-team {
        left: 2%;
    }

    .platform-operation-node {
        min-width: 150px;
    }

    .platform-operation-core {
        top: 44%;
    }

    .platform-operation-orbit {
        top: 44%;
    }
}

/* Keep the public interface preview stacked and readable after later responsive rules. */
@media (max-width: 780px) {
    .public-role-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .public-role-switcher {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .public-interface-capture {
        width: 100%;
        min-width: 0;
    }

    .public-capture-bar strong,
    .public-capture-bar small,
    .public-interface-capture > footer,
    .public-parent-capture header small,
    .public-parent-capture .public-capture-photos small {
        font-size: .65rem;
    }

    .public-parent-capture-route {
        gap: .25rem;
        overflow: visible;
        font-size: .67rem;
    }

    .public-parent-capture-route span b,
    .public-parent-capture .public-capture-cart small {
        font-size: .65rem;
    }

    .public-parent-capture-route > i {
        min-width: .3rem;
    }
}

/* Editorial presentation visuals: generated without people or real customer data. */
.platform-bento-main {
    grid-template-columns: minmax(330px, .78fr) minmax(420px, 1.22fr);
    gap: clamp(1.5rem, 3.2vw, 3.5rem);
    align-items: center;
    padding: clamp(1.35rem, 2.7vw, 2.6rem);
}

.platform-bento-copy {
    width: auto;
    padding-left: clamp(.4rem, 1.4vw, 1.5rem);
}

.platform-editorial-visual {
    position: relative;
    z-index: 2;
    min-width: 0;
    min-height: 520px;
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(13, 57, 66, .12);
    border-radius: 28px;
    background: #d8e5df;
    box-shadow: 0 30px 70px rgba(13, 57, 66, .15);
}

.platform-editorial-visual::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 48%, rgba(7, 35, 41, .82) 100%);
    content: "";
    pointer-events: none;
}

.platform-editorial-visual img {
    width: 100%;
    height: 100%;
    min-height: 520px;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.2, .8, .2, 1);
}

.platform-editorial-visual:hover img,
.school-editorial-story figure:hover img,
.public-studio-visual:hover img {
    transform: scale(1.025);
}

.platform-editorial-visual figcaption {
    position: absolute;
    z-index: 2;
    right: 1.45rem;
    bottom: 1.35rem;
    left: 1.45rem;
    display: grid;
    gap: .25rem;
    color: #fff;
}

.platform-editorial-visual figcaption span {
    color: #a8ddcd;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.platform-editorial-visual figcaption strong {
    max-width: 390px;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(1.55rem, 2.25vw, 2.35rem);
    line-height: 1.02;
}

.platform-editorial-badge {
    position: absolute;
    z-index: 3;
    top: 1.2rem;
    right: 1.2rem;
    display: flex;
    align-items: center;
    gap: .55rem;
    border: 1px solid rgba(255, 255, 255, .42);
    border-radius: 18px;
    padding: .65rem .85rem;
    color: #153e45;
    background: rgba(255, 255, 255, .84);
    box-shadow: 0 12px 30px rgba(13, 57, 66, .12);
    backdrop-filter: blur(14px);
}

.platform-editorial-badge span {
    color: #bd5839;
    font-family: "Bahnschrift SemiCondensed", sans-serif;
    font-size: 2.15rem;
    font-weight: 900;
    line-height: .85;
}

.platform-editorial-badge small {
    font-size: .67rem;
    font-weight: 900;
    letter-spacing: .06em;
    line-height: 1.18;
    text-transform: uppercase;
}

.school-editorial-story {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(360px, .82fr);
    min-height: 560px;
    overflow: hidden;
    border: 1px solid rgba(9, 62, 70, .12);
    border-radius: 32px;
    background: #0f4149;
    box-shadow: 0 24px 70px rgba(8, 55, 62, .12);
}

.school-editorial-story figure {
    position: relative;
    min-width: 0;
    min-height: 560px;
    margin: 0;
    overflow: hidden;
}

.school-editorial-story figure::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 62%, rgba(7, 37, 42, .72));
    content: "";
}

.school-editorial-story figure img {
    width: 100%;
    height: 100%;
    min-height: 560px;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.2, .8, .2, 1);
}

.school-editorial-story figcaption {
    position: absolute;
    z-index: 2;
    right: 1.25rem;
    bottom: 1.25rem;
    left: 1.25rem;
    display: flex;
    align-items: center;
    gap: .65rem;
    border: 1px solid rgba(255, 255, 255, .26);
    border-radius: 16px;
    padding: .8rem 1rem;
    color: #fff;
    background: rgba(7, 50, 56, .7);
    font-size: .81rem;
    font-weight: 800;
    backdrop-filter: blur(12px);
}

.school-editorial-story figcaption span {
    display: grid;
    width: 1.75rem;
    height: 1.75rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: #0f4149;
    background: #b8e5d5;
}

.school-story-copy {
    display: grid;
    align-content: center;
    padding: clamp(2rem, 4vw, 4.4rem);
    color: #eef8f5;
    background:
        radial-gradient(circle at 90% 10%, rgba(227, 160, 65, .18), transparent 17rem),
        #0f4149;
}

.school-story-copy .gateway-kicker {
    color: #a9ddcd;
}

.school-story-copy h2 {
    margin: .7rem 0 1rem;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.3rem, 3.8vw, 4rem);
    letter-spacing: -.04em;
    line-height: .96;
}

.school-story-copy > p:not(.gateway-kicker) {
    margin: 0;
    color: rgba(238, 248, 245, .72);
    font-size: .96rem;
    line-height: 1.7;
}

.school-story-copy ol {
    display: grid;
    gap: 0;
    margin: 1.6rem 0 0;
    padding: 0;
    list-style: none;
}

.school-story-copy li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .9rem;
    padding: 1rem 0;
    border-top: 1px solid rgba(255, 255, 255, .13);
}

.school-story-copy li > span {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    border-radius: 12px;
    color: #0f4149;
    background: #e4aa55;
    font-size: .7rem;
    font-weight: 900;
}

.school-story-copy li div {
    display: grid;
    gap: .25rem;
}

.school-story-copy li strong {
    font-size: .92rem;
}

.school-story-copy li small {
    color: rgba(238, 248, 245, .66);
    font-size: .77rem;
    line-height: 1.5;
}

.public-studio-story {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(410px, .82fr);
    min-height: 620px;
    overflow: hidden;
    border: 1px solid rgba(10, 57, 64, .15);
    border-radius: 34px;
    background: #0c353c;
    box-shadow: 0 26px 80px rgba(6, 43, 49, .14);
}

.public-studio-visual {
    position: relative;
    min-width: 0;
    min-height: 620px;
    margin: 0;
    overflow: hidden;
}

.public-studio-visual::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 58%, rgba(4, 29, 33, .78));
    content: "";
}

.public-studio-visual img {
    width: 100%;
    height: 100%;
    min-height: 620px;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.2, .8, .2, 1);
}

.public-studio-visual figcaption {
    position: absolute;
    z-index: 2;
    right: 1.5rem;
    bottom: 1.45rem;
    left: 1.5rem;
    display: grid;
    gap: .25rem;
    color: #fff;
}

.public-studio-visual figcaption span {
    color: #9cdbc8;
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.public-studio-visual figcaption strong {
    max-width: 560px;
    font-family: "Bahnschrift SemiCondensed", sans-serif;
    font-size: clamp(1.65rem, 2.4vw, 2.5rem);
    line-height: 1.02;
}

.public-studio-copy {
    display: grid;
    align-content: center;
    padding: clamp(2.2rem, 4.4vw, 5rem);
    color: #f2fbf8;
    background:
        radial-gradient(circle at 92% 12%, rgba(194, 93, 62, .25), transparent 18rem),
        #0c353c;
}

.public-studio-copy .public-kicker {
    color: #9cdbc8;
}

.public-studio-copy h2 {
    margin: .8rem 0 1.15rem;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.55rem, 4.2vw, 4.5rem);
    letter-spacing: -.05em;
    line-height: .93;
}

.public-studio-copy > p:not(.public-kicker) {
    margin: 0;
    color: rgba(242, 251, 248, .7);
    font-size: .96rem;
    line-height: 1.7;
}

.public-studio-route {
    display: grid;
    grid-template-columns: 1fr auto 1.25fr auto 1fr;
    gap: .5rem;
    align-items: center;
    margin-top: 1.7rem;
}

.public-studio-route span {
    display: grid;
    gap: .2rem;
    min-width: 0;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 14px;
    padding: .75rem;
    background: rgba(255, 255, 255, .06);
}

.public-studio-route b {
    color: #fff;
    font-size: .83rem;
}

.public-studio-route small {
    color: rgba(242, 251, 248, .57);
    font-size: .65rem;
    line-height: 1.25;
}

.public-studio-route i {
    color: #e1a05b;
    font-style: normal;
}

.public-studio-note {
    margin-top: 1rem;
    color: rgba(242, 251, 248, .54);
    font-size: .72rem;
    line-height: 1.45;
}

@media (max-width: 1120px) {
    .platform-bento-main {
        grid-template-columns: minmax(300px, .82fr) minmax(360px, 1.18fr);
    }

    .platform-bento-copy h2 {
        font-size: clamp(2.55rem, 4.7vw, 4rem);
    }

    .school-editorial-story,
    .public-studio-story {
        grid-template-columns: minmax(0, 1fr) minmax(350px, .78fr);
    }
}

@media (max-width: 900px) {
    .platform-bento-main,
    .school-editorial-story,
    .public-studio-story {
        grid-template-columns: minmax(0, 1fr);
    }

    .platform-bento-main {
        min-height: 0;
    }

    .platform-bento-copy {
        padding: 1.2rem .8rem .2rem;
    }

    .platform-editorial-visual,
    .platform-editorial-visual img {
        min-height: 430px;
    }

    .school-editorial-story figure,
    .school-editorial-story figure img,
    .public-studio-visual,
    .public-studio-visual img {
        min-height: 460px;
    }

    .school-story-copy,
    .public-studio-copy {
        padding: clamp(2rem, 6vw, 3.5rem);
    }
}

@media (max-width: 600px) {
    .platform-editorial-visual,
    .school-editorial-story,
    .public-studio-story {
        border-radius: 24px;
    }

    .platform-editorial-visual,
    .platform-editorial-visual img {
        min-height: 350px;
    }

    .school-editorial-story figure,
    .school-editorial-story figure img,
    .public-studio-visual,
    .public-studio-visual img {
        min-height: 330px;
    }

    .platform-editorial-visual img {
        object-position: 64% center;
    }

    .school-editorial-story figure img {
        object-position: 62% center;
    }

    .public-studio-visual img {
        object-position: 38% center;
    }

    .platform-editorial-badge {
        top: .8rem;
        right: .8rem;
    }

    .platform-editorial-visual figcaption,
    .public-studio-visual figcaption {
        right: 1rem;
        bottom: 1rem;
        left: 1rem;
    }

    .school-story-copy h2,
    .public-studio-copy h2 {
        font-size: clamp(2.25rem, 11vw, 3.2rem);
    }

    .public-studio-route {
        grid-template-columns: minmax(0, 1fr);
    }

    .public-studio-route i {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .platform-editorial-visual img,
    .school-editorial-story figure img,
    .public-studio-visual img {
        transition: none;
    }
}

/* Airier photographer presentation rhythm. */
.public-body .page-content {
    gap: clamp(4.8rem, 6.5vw, 6.6rem);
    padding-bottom: clamp(3rem, 6vw, 6rem);
}

.public-body .public-hero {
    min-height: 610px;
}

.public-body .public-hero-copy {
    padding: clamp(3rem, 5vw, 5rem);
}

.public-body .public-studio-story {
    min-height: 680px;
}

.public-body .public-studio-visual,
.public-body .public-studio-visual img {
    min-height: 680px;
}

.public-body .public-studio-copy {
    padding: clamp(3rem, 5.4vw, 6rem);
}

.public-body .public-workflow,
.public-body .public-offers,
.public-body .public-products,
.public-body .public-pricing-section,
.public-body .public-contact {
    display: grid;
    gap: clamp(2.5rem, 4vw, 4rem);
}

.public-body .public-section-heading {
    align-items: flex-start;
    padding-inline: clamp(.35rem, 2.4vw, 2.25rem);
}

.public-body .public-section-heading > div {
    max-width: 780px;
}

.public-body .public-section-heading > div > p:last-child {
    max-width: 680px;
    margin-top: 1rem;
    font-size: .98rem;
    line-height: 1.75;
}

.public-body .public-workflow-layout {
    gap: clamp(2.5rem, 5vw, 5rem);
}

.public-body .public-workflow-scene {
    min-height: 470px;
    padding: clamp(2.4rem, 4vw, 4rem);
}

.public-body .public-workflow-steps {
    gap: 1rem;
}

.public-body .public-workflow-steps article {
    min-height: 128px;
    gap: 1.1rem;
    padding: 1.45rem 1.55rem;
}

.public-body .public-configured-details {
    margin-top: .6rem;
}

.public-body .public-configured-details summary {
    padding: 1.15rem .35rem;
}

.public-body .public-role-map {
    gap: clamp(2.2rem, 4vw, 3.5rem);
    padding: clamp(3rem, 5vw, 5.5rem);
}

.public-body .public-role-map .public-section-heading {
    padding-inline: 0;
}

.public-body .public-role-layout {
    gap: clamp(1.1rem, 2.3vw, 2rem);
}

.public-body .public-role-switcher {
    gap: .9rem;
}

.public-body .public-role-node {
    min-height: 92px;
    padding: .95rem;
}

.public-body .public-role-readout {
    gap: 1rem;
    padding: 1.7rem;
}

.public-body .public-product-lab {
    gap: clamp(3rem, 6vw, 6rem);
    padding: clamp(3rem, 5.5vw, 6rem);
}

.public-body .public-product-lab-copy > p:not(.public-kicker):not(.public-lab-note) {
    max-width: 560px;
    margin-top: 1.2rem;
    font-size: .98rem;
    line-height: 1.8;
}

.public-body .public-lab-controls {
    gap: 1.35rem;
    margin-top: 2rem;
}

.public-body .public-lab-stage {
    min-height: 520px;
}

.public-body .public-commercial-heading {
    min-height: 190px;
    align-items: center;
    border-radius: 30px;
    padding: clamp(2rem, 3.5vw, 3rem);
}

.public-body .public-commercial-heading > div {
    max-width: 880px;
}

.public-body .public-commercial-heading h2 {
    margin: .45rem 0 .75rem;
}

.public-body .public-commercial-heading p:last-child {
    max-width: 760px;
    font-size: .96rem;
    line-height: 1.75;
}

.public-body .public-commercial-heading .public-text-link {
    padding: .85rem 1.15rem;
}

.public-body .public-offer-grid,
.public-body .public-product-grid {
    gap: clamp(1.35rem, 2.5vw, 2.25rem);
}

.public-body .public-offer-card {
    border-radius: 28px;
    padding: clamp(1.8rem, 2.8vw, 2.5rem);
}

.public-body .public-offer-title-row {
    margin: 1.3rem 0 .7rem;
}

.public-body .public-offer-card > p {
    line-height: 1.7;
}

.public-body .public-offer-card ul {
    gap: .72rem;
    margin-block: 1.4rem 1.7rem;
}

.public-body .public-product-card {
    border-radius: 28px;
}

.public-body .public-product-logo-column {
    padding: clamp(1.8rem, 3vw, 2.6rem);
}

.public-body .public-product-details {
    gap: 1.25rem;
    padding: clamp(1.8rem, 3vw, 2.6rem);
}

.public-body .public-product-copy {
    gap: .75rem;
}

.public-body .public-product-copy p {
    line-height: 1.7;
}

.public-body .public-pricing-composer {
    gap: 1.5rem;
    border-radius: 30px;
    padding: 1.5rem;
}

.public-body .public-composer-controls {
    padding: clamp(1.6rem, 3.2vw, 2.6rem);
}

.public-body .public-composer-result {
    padding: clamp(2rem, 3.5vw, 3rem);
}

.public-body .public-evidence-ledger {
    gap: clamp(2rem, 3.5vw, 3rem);
    padding-block: clamp(3.5rem, 5.5vw, 5.5rem);
}

.public-body .public-evidence-ledger header {
    gap: clamp(2rem, 5vw, 5rem);
}

.public-body .public-evidence-ledger li {
    min-height: 74px;
    padding-block: 1.25rem;
}

.public-body .public-contact-copy {
    gap: clamp(1.8rem, 3vw, 3rem);
    border-radius: 30px;
    padding: clamp(2rem, 3.6vw, 3.4rem);
}

.public-body .public-contact-outcomes {
    gap: 1rem;
}

.public-body .public-contact-outcomes li {
    min-height: 96px;
    padding: 1rem;
}

.public-body .public-contact-form-card {
    border-radius: 30px;
    padding: clamp(1.7rem, 3vw, 2.7rem);
}

.public-body .public-contact-form {
    gap: 1.05rem 1.25rem;
}

@media (max-width: 1100px) {
    .public-body .page-content {
        gap: clamp(4rem, 7vw, 5.5rem);
    }

    .public-body .public-hero {
        min-height: 0;
    }

    .public-body .public-studio-story,
    .public-body .public-studio-visual,
    .public-body .public-studio-visual img {
        min-height: 520px;
    }

    .public-body .public-role-node {
        min-height: 84px;
    }
}

@media (max-width: 780px) {
    .public-body .page-content {
        gap: 2.8rem;
        padding-bottom: 3rem;
    }

    .public-body .public-hero-copy {
        padding: 2rem 1.3rem 1.6rem;
    }

    .public-body .public-studio-story,
    .public-body .public-studio-visual,
    .public-body .public-studio-visual img {
        min-height: 0;
    }

    .public-body .public-studio-visual img {
        min-height: 360px;
    }

    .public-body .public-studio-copy {
        padding: 2.5rem 1.6rem;
    }

    .public-body .public-workflow,
    .public-body .public-offers,
    .public-body .public-products,
    .public-body .public-pricing-section,
    .public-body .public-contact {
        gap: 1.8rem;
    }

    .public-body .public-section-heading {
        padding-inline: .35rem;
    }

    .public-body .public-section-heading > div > p:last-child {
        margin-top: .75rem;
        font-size: .92rem;
        line-height: 1.65;
    }

    .public-body .public-workflow-layout {
        gap: 1.35rem;
    }

    .public-body .public-workflow-scene {
        min-height: 350px;
        padding: 1.5rem;
    }

    .public-body .public-workflow-steps article {
        min-height: 0;
        padding: 1.1rem;
    }

    .public-body .public-role-map,
    .public-body .public-product-lab {
        gap: 1.6rem;
        padding: 1.5rem;
    }

    .public-body .public-role-node {
        min-height: 78px;
        padding: .65rem;
    }

    .public-body .public-lab-stage {
        min-height: 380px;
    }

    .public-body .public-commercial-heading {
        min-height: 0;
        padding: 1.5rem;
    }

    .public-body .public-offer-grid,
    .public-body .public-product-grid {
        gap: 1rem;
    }

    .public-body .public-offer-card,
    .public-body .public-product-details,
    .public-body .public-product-logo-column {
        padding: 1.35rem;
    }

    .public-body .public-pricing-composer {
        gap: 1rem;
        padding: .8rem;
    }

    .public-body .public-evidence-ledger {
        padding-block: 2.6rem;
    }

    .public-body .public-contact-copy,
    .public-body .public-contact-form-card {
        padding: 1.5rem;
    }

    .public-body .public-contact-outcomes li {
        min-height: 0;
    }
}

/* Shared presentation harmony and clearer reading landmarks. */
.platform-home-body .platform-flow {
    align-items: center;
    border: 1px solid rgba(13, 57, 66, .1);
    border-radius: 32px;
    padding: clamp(2.5rem, 5vw, 4.75rem);
    background:
        radial-gradient(circle at 92% 8%, rgba(107, 208, 177, .13), transparent 22rem),
        linear-gradient(135deg, rgba(255, 250, 241, .88), rgba(244, 250, 247, .95));
    box-shadow: 0 22px 65px rgba(13, 57, 66, .06);
}

.platform-home-body .platform-flow-line {
    gap: 1rem;
}

.platform-home-body .platform-flow-line::before {
    display: none;
}

.platform-home-body .platform-flow-line li {
    min-height: 170px;
    align-content: start;
    border: 1px solid rgba(13, 57, 66, .09);
    border-radius: 20px;
    padding: 1.25rem;
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 12px 32px rgba(13, 57, 66, .045);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.platform-home-body .platform-flow-line li:hover {
    border-color: rgba(11, 135, 121, .22);
    box-shadow: 0 18px 38px rgba(13, 57, 66, .08);
    transform: translateY(-3px);
}

.platform-home-body .platform-flow-line li > span {
    box-shadow: none;
}

.platform-home-body .platform-flow-line small {
    max-width: none;
}

.platform-home-body .platform-operations-heading,
.platform-home-body .platform-spaces-heading {
    position: relative;
    padding-bottom: 1.6rem;
}

.platform-home-body .platform-operations-heading::after,
.platform-home-body .platform-spaces-heading::after {
    position: absolute;
    height: 1px;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(90deg, rgba(13, 57, 66, .18), rgba(13, 57, 66, .03));
    content: "";
}

.platform-home-body .platform-operation-feature,
.platform-home-body .platform-space {
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.platform-home-body .platform-operation-feature:hover,
.platform-home-body .platform-space:hover {
    border-color: rgba(11, 135, 121, .2);
    box-shadow: 0 24px 60px rgba(13, 57, 66, .1);
    transform: translateY(-4px);
}

.school-public-body .page-content {
    gap: clamp(3.25rem, 5.2vw, 5rem);
    padding-bottom: clamp(3rem, 5vw, 5rem);
}

.school-features-intro {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: end;
    padding: .5rem clamp(.4rem, 2vw, 1.5rem) 1.25rem;
}

.school-features-intro .gateway-kicker {
    color: #a7651d;
}

.school-features-intro h2 {
    max-width: 760px;
    margin: .7rem 0 0;
    color: var(--school-deep);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.5rem, 4vw, 4rem);
    letter-spacing: -.045em;
    line-height: .98;
}

.school-features-intro > p {
    max-width: 560px;
    margin: 0 0 .2rem auto;
    color: #637b80;
    font-size: .98rem;
    line-height: 1.75;
}

.school-public-body .school-entry-features {
    gap: 1.2rem;
}

.school-public-body .school-entry-features article {
    min-height: 275px;
    padding: 1.7rem;
}

.school-public-body .school-entry-features h2 {
    margin-top: 1.35rem;
    font-size: 1.65rem;
}

.school-public-body .school-entry-features p {
    font-size: .9rem;
    line-height: 1.65;
}

.school-public-body .school-entry-help {
    min-height: 170px;
    padding: clamp(1.8rem, 3vw, 2.6rem);
}

.school-public-body .school-entry-help h2 {
    max-width: 760px;
    font-size: clamp(1.55rem, 2.5vw, 2.25rem);
    line-height: 1.1;
}

.public-section-index {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .65rem;
    border: 1px solid rgba(18, 51, 59, .1);
    border-radius: 28px;
    padding: .8rem;
    background:
        linear-gradient(110deg, rgba(255, 249, 238, .92), rgba(246, 251, 249, .96) 48%, rgba(231, 247, 241, .92));
    box-shadow: 0 18px 48px rgba(18, 51, 59, .07);
}

.public-section-index a {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    min-height: 86px;
    border: 1px solid transparent;
    border-radius: 18px;
    padding: .8rem;
    color: #365960;
    background: rgba(255, 255, 255, .66);
    transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease;
}

.public-section-index a:hover,
.public-section-index a:focus-visible {
    border-color: rgba(8, 124, 112, .2);
    color: var(--public-deep);
    background: #fff;
    outline: none;
    transform: translateY(-2px);
}

.public-section-index a > span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 10px;
    color: #a9651d;
    background: #fff0da;
    font-size: .66rem;
    font-weight: 900;
}

.public-section-index a:nth-child(n+3) > span {
    color: #087468;
    background: #e3f5ef;
}

.public-section-index a div {
    display: grid;
    gap: .2rem;
    min-width: 0;
}

.public-section-index strong {
    font-size: .82rem;
}

.public-section-index small {
    color: #75898d;
    font-size: .66rem;
    line-height: 1.35;
}

.public-body .public-workflow,
.public-body .public-offers,
.public-body .public-products,
.public-body .public-pricing-section,
.public-body .public-contact {
    position: relative;
}

.public-body .public-workflow::before,
.public-body .public-offers::before,
.public-body .public-products::before,
.public-body .public-pricing-section::before,
.public-body .public-contact::before {
    position: absolute;
    width: 3.5rem;
    height: 3px;
    left: 0;
    top: -2.65rem;
    border-radius: 999px;
    background: linear-gradient(90deg, #d8892c, #69d4b5);
    content: "";
}

@media (max-width: 1100px) {
    .public-section-index {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .public-section-index a:nth-child(4),
    .public-section-index a:nth-child(5) {
        grid-column: span 1;
    }
}

@media (max-width: 780px) {
    .platform-home-body .platform-flow {
        padding: 1.6rem;
    }

    .platform-home-body .platform-flow-line li {
        grid-template-columns: auto minmax(0, 1fr);
        min-height: 0;
        padding: 1rem;
    }

    .platform-home-body .platform-flow-line li > div {
        padding-top: .15rem;
    }

    .school-public-body .page-content {
        gap: 2.75rem;
        padding-bottom: 3rem;
    }

    .school-features-intro {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding: .25rem .35rem .8rem;
    }

    .school-features-intro h2 {
        font-size: clamp(2.25rem, 11vw, 3.25rem);
    }

    .school-features-intro > p {
        margin-left: 0;
        font-size: .92rem;
        line-height: 1.65;
    }

    .school-public-body .school-entry-features article {
        min-height: 0;
        padding: 1.45rem;
    }

    .school-public-body .school-entry-help {
        min-height: 0;
        padding: 1.5rem;
    }

    .public-section-index {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem;
        border-radius: 22px;
        padding: .55rem;
    }

    .public-section-index a {
        grid-template-columns: 1fr;
        align-content: start;
        min-height: 102px;
        gap: .55rem;
        padding: .75rem;
    }

    .public-section-index a:last-child {
        grid-column: 1 / -1;
        grid-template-columns: auto minmax(0, 1fr);
        min-height: 72px;
        align-items: center;
    }

    .public-body .public-workflow::before,
    .public-body .public-offers::before,
    .public-body .public-products::before,
    .public-body .public-pricing-section::before,
    .public-body .public-contact::before {
        top: -1.55rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .platform-home-body .platform-flow-line li,
    .platform-home-body .platform-operation-feature,
    .platform-home-body .platform-space,
    .public-section-index a {
        transition: none;
    }
}

@media (max-width: 1280px) {
    .software-index-hero {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 980px) {
    .software-index-card {
        grid-template-columns: minmax(340px, .9fr) minmax(0, 1.1fr);
    }
}

@media (max-width: 700px) {
    .software-index-hero {
        border-radius: 28px;
        padding: 1.4rem;
    }

    .software-index-hero h1 {
        font-size: clamp(2.8rem, 15vw, 4rem);
    }

    .software-index-route {
        grid-template-columns: 1fr;
    }

    .software-index-route > span {
        min-height: 110px;
    }

    .software-index-route i {
        transform: rotate(90deg);
        text-align: center;
    }

    .software-index-card {
        grid-template-columns: 1fr;
        border-radius: 27px;
    }

    .software-index-logo {
        min-height: 330px;
        border-right: 0;
        border-bottom: 1px solid var(--showcase-line);
    }

    .software-index-logo img,
    .software-index-logo > span {
        width: 190px;
        border-radius: 28px;
        padding: 1rem;
    }

    .software-index-copy {
        padding: 1.5rem;
    }

    .software-index-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .software-index-actions .public-button {
        width: 100%;
    }
}

/* Streamlined photographer presentation v16 */

.photographer-streamlined-body .page-content {
    gap: clamp(3.8rem, 6vw, 6rem);
}

.photographer-assurance-strip {
    display: grid;
    grid-template-columns: minmax(190px, .32fr) minmax(0, 1fr);
    gap: 2rem;
    align-items: center;
    border: 1px solid var(--showcase-line);
    border-radius: 28px;
    padding: 1.5rem;
    background: rgba(255, 255, 255, .72);
}

.photographer-assurance-strip > strong {
    color: var(--showcase-ink);
    font-size: 1.15rem;
}

.photographer-assurance-strip ul {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.photographer-assurance-strip li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .55rem;
    align-items: start;
    color: #49686e;
    font-size: .78rem;
    line-height: 1.45;
}

.photographer-assurance-strip li span {
    color: #08766c;
    font-size: .68rem;
    font-weight: 900;
}

.showcase-configured-flow {
    display: grid;
    gap: 2rem;
}

.showcase-configured-flow > div {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.showcase-configured-flow article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    border: 1px solid var(--showcase-line);
    border-radius: 24px;
    padding: 1.4rem;
    background: rgba(255, 255, 255, .76);
}

.showcase-configured-flow article > span {
    display: grid;
    width: 2.3rem;
    height: 2.3rem;
    place-items: center;
    border-radius: 12px;
    color: #08766c;
    background: #dff4ed;
    font-size: .7rem;
    font-weight: 900;
}

.showcase-configured-flow article small {
    color: #98652a;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.showcase-configured-flow article h3 {
    margin: .45rem 0 .65rem;
    color: var(--showcase-ink);
    font-size: 1.2rem;
}

.showcase-configured-flow article p {
    margin: 0;
    color: var(--showcase-muted);
    font-size: .86rem;
    line-height: 1.65;
}

.showcase-configured-flow article > a {
    grid-column: 2;
    color: #08766c;
    font-weight: 900;
}

.pricing-simple-hero {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(420px, 1.05fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: center;
    border: 1px solid var(--showcase-line);
    border-radius: 36px;
    padding: clamp(2rem, 5vw, 4.5rem);
    background:
        radial-gradient(circle at 0 100%, rgba(100, 211, 177, .13), transparent 25rem),
        rgba(255, 255, 255, .76);
}

.pricing-simple-hero h1 {
    max-width: 720px;
    margin: .8rem 0 1rem;
    color: var(--showcase-ink);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(3rem, 5vw, 5rem);
    letter-spacing: -.05em;
    line-height: .94;
}

.pricing-simple-hero > div > p:not(.public-kicker) {
    max-width: 650px;
    margin: 0 0 1.5rem;
    color: var(--showcase-muted);
    line-height: 1.65;
}

.pricing-rules {
    display: grid;
    gap: .7rem;
    margin: 0;
}

.pricing-rules > div {
    display: grid;
    grid-template-columns: minmax(120px, .38fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    border: 1px solid var(--showcase-line);
    border-radius: 18px;
    padding: 1rem 1.1rem;
    background: #fff;
}

.pricing-rules dt {
    color: #0a7067;
    font-weight: 900;
}

.pricing-rules dd {
    margin: 0;
    color: #4a686e;
    font-size: .86rem;
    line-height: 1.5;
}

.showcase-simulator-controls label > small {
    display: block;
    margin-top: .5rem;
    color: var(--showcase-muted);
    font-size: .72rem;
    line-height: 1.5;
}

.contact-streamlined-body .page-content {
    gap: clamp(3rem, 5vw, 5rem);
}

.contact-simple-hero {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(460px, 1.1fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: center;
    border: 1px solid var(--showcase-line);
    border-radius: 34px;
    padding: clamp(2rem, 4vw, 3.8rem);
    background:
        radial-gradient(circle at 0 100%, rgba(100, 211, 177, .13), transparent 24rem),
        rgba(255, 255, 255, .76);
}

.contact-simple-hero h1 {
    max-width: 760px;
    margin: .8rem 0 1rem;
    color: var(--showcase-ink);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(3rem, 5vw, 5.1rem);
    letter-spacing: -.05em;
    line-height: .94;
}

.contact-simple-hero > div > p:not(.public-kicker) {
    max-width: 620px;
    margin: 0;
    color: var(--showcase-muted);
    line-height: 1.65;
}

.contact-simple-steps {
    display: grid;
    gap: .65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.contact-simple-steps li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .85rem;
    align-items: center;
    border: 1px solid var(--showcase-line);
    border-radius: 17px;
    padding: .85rem 1rem;
    background: #fff;
}

.contact-simple-steps li > span {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    border-radius: 11px;
    color: #08766c;
    background: #dff4ed;
    font-size: .66rem;
    font-weight: 900;
}

.contact-simple-steps p,
.contact-simple-steps small {
    display: block;
    margin: 0;
}

.contact-simple-steps small {
    margin-top: .2rem;
    color: var(--showcase-muted);
    font-size: .72rem;
}

.contact-simple-layout {
    display: grid;
    grid-template-columns: minmax(230px, .38fr) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
}

.contact-simple-layout > header {
    position: sticky;
    top: 7rem;
}

.contact-simple-layout > header h2 {
    margin: .7rem 0 1rem;
    color: var(--showcase-ink);
    font-size: clamp(2rem, 3vw, 3.2rem);
    line-height: 1;
}

.contact-simple-layout > header > p:last-child {
    color: var(--showcase-muted);
    line-height: 1.6;
}

.contact-simple-form {
    min-height: 620px;
}

.contact-formula-choice {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-software-choice {
    display: grid;
    gap: .7rem;
    border-top: 1px solid var(--showcase-line);
    margin-top: 1.4rem;
    padding-top: 1.2rem;
}

.contact-software-choice > span {
    color: #4c686e;
    font-size: .76rem;
    font-weight: 900;
}

.contact-software-choice > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.contact-software-choice label {
    display: block;
    cursor: pointer;
}

.contact-software-choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.contact-software-choice label > span {
    display: grid;
    min-height: 74px;
    align-content: center;
    border: 1px solid var(--showcase-line);
    border-radius: 16px;
    padding: .9rem 1rem;
    background: #fbfcfb;
}

.contact-software-choice input:checked + span {
    border-color: #087c70;
    background: #eaf8f3;
    box-shadow: inset 0 0 0 1px #087c70;
}

.contact-software-choice small {
    margin-top: .25rem;
    color: var(--showcase-muted);
    font-size: .7rem;
}

@media (max-width: 1100px) {
    .photographer-assurance-strip,
    .pricing-simple-hero,
    .contact-simple-hero,
    .contact-simple-layout {
        grid-template-columns: 1fr;
    }

    .photographer-assurance-strip ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .showcase-configured-flow > div {
        grid-template-columns: 1fr;
    }

    .contact-simple-layout > header {
        position: static;
    }
}

@media (max-width: 700px) {
    .photographer-assurance-strip ul,
    .contact-formula-choice,
    .contact-software-choice > div {
        grid-template-columns: 1fr;
    }

    .pricing-simple-hero,
    .contact-simple-hero {
        border-radius: 26px;
        padding: 1.4rem;
    }

    .pricing-simple-hero h1,
    .contact-simple-hero h1 {
        font-size: clamp(2.55rem, 13vw, 3.25rem);
    }

    .pricing-rules > div {
        grid-template-columns: 1fr;
        gap: .35rem;
    }

    .contact-simple-form {
        min-height: 0;
    }
}

.showcase-option-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.showcase-option-summary > article {
    border: 1px solid var(--showcase-line);
    border-radius: 26px;
    padding: 1.5rem;
    background: rgba(255, 255, 255, .78);
}

.showcase-option-summary > article > span {
    color: #98652a;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.showcase-option-summary h3 {
    margin: .7rem 0;
    color: var(--showcase-ink);
    font-size: 1.35rem;
}

.showcase-option-summary > article > p {
    margin: 0;
    color: var(--showcase-muted);
    line-height: 1.6;
}

.showcase-module-disclosure details {
    border-top: 1px solid var(--showcase-line);
    margin-top: 1.2rem;
    padding-top: 1rem;
}

.showcase-module-disclosure summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    color: #08766c;
    font-weight: 900;
    list-style: none;
}

.showcase-module-disclosure summary::-webkit-details-marker {
    display: none;
}

.showcase-module-disclosure summary i {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    background: #dff4ed;
    font-style: normal;
    transition: transform .2s ease;
}

.showcase-module-disclosure details[open] summary i {
    transform: rotate(45deg);
}

.showcase-module-list {
    display: grid;
    gap: .55rem;
    margin-top: 1rem;
}

.showcase-module-list > div {
    display: grid;
    grid-template-columns: minmax(150px, .6fr) minmax(0, 1fr) auto;
    gap: .8rem;
    align-items: center;
    border-radius: 14px;
    padding: .8rem;
    background: #f5f8f7;
}

.showcase-module-list small {
    color: var(--showcase-muted);
    line-height: 1.45;
}

.showcase-module-list b {
    color: #0c514e;
    font-size: .78rem;
    white-space: nowrap;
}

.showcase-software-summary > div {
    display: grid;
    gap: .65rem;
    margin-top: 1.2rem;
}

.showcase-software-summary a {
    display: grid;
    gap: .35rem;
    border: 1px solid var(--showcase-line);
    border-radius: 16px;
    padding: 1rem;
    background: #fff;
}

.showcase-software-summary a strong {
    color: var(--showcase-ink);
}

.showcase-software-summary a small {
    color: var(--showcase-muted);
    line-height: 1.45;
}

.showcase-software-summary a b {
    margin-top: .35rem;
    color: #08766c;
    font-size: .78rem;
}

@media (max-width: 980px) {
    .showcase-option-summary {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .showcase-module-list > div {
        grid-template-columns: 1fr;
    }
}

/* Readability pass v18: keep supporting labels legible on large screens. */
.photographer-streamlined-body .photographer-overview-facts dt,
.photographer-streamlined-body .photographer-overview-facts small,
.photographer-streamlined-body .photographer-visual-card > span,
.photographer-streamlined-body .photographer-visual-card small,
.photographer-streamlined-body .photographer-overview-visual figcaption,
.photographer-streamlined-body .photographer-campaign-steps li > span,
.photographer-streamlined-body .photographer-campaign-steps small,
.photographer-streamlined-body .photographer-space-cards header > span,
.photographer-streamlined-body .photographer-space-cards header small,
.photographer-streamlined-body .photographer-software-route > a > span,
.photographer-streamlined-body .photographer-software-route > div > span,
.photographer-streamlined-body .photographer-software-route small,
.photographer-streamlined-body .photographer-offer-list header span,
.photographer-streamlined-body .photographer-offer-list header b,
.photographer-streamlined-body .photographer-offer-list .is-empty > span,
.photographer-streamlined-body .photographer-assurance-strip li span {
    font-size: .75rem;
}

/* Public presentation typography v19 */
.public-showcase-body .topnav a {
    font-size: .94rem;
}

.public-showcase-body main p {
    font-size: .96rem;
    line-height: 1.65;
}

.public-showcase-body main small {
    font-size: .8rem;
    line-height: 1.5;
}

.public-showcase-body main li {
    font-size: .9rem;
    line-height: 1.55;
}

.public-showcase-body main dt,
.public-showcase-body main dd {
    font-size: .88rem;
    line-height: 1.5;
}

.public-showcase-body main a,
.public-showcase-body main button,
.public-showcase-body main summary,
.public-showcase-body main label {
    font-size: .92rem;
}

.public-showcase-body main input,
.public-showcase-body main select,
.public-showcase-body main textarea {
    font-size: 1rem;
}

.public-showcase-body main .public-kicker {
    font-size: .78rem;
    line-height: 1.25;
}

.public-showcase-body .photographer-overview-lead,
.public-showcase-body .showcase-hero-copy > p:not(.public-kicker),
.public-showcase-body .pricing-simple-hero > div > p:not(.public-kicker),
.public-showcase-body .faq-hero > div > p:not(.public-kicker),
.public-showcase-body .contact-simple-hero > div > p:not(.public-kicker) {
    font-size: 1.08rem;
    line-height: 1.65;
}

.public-showcase-body .photographer-campaign-heading > p:not(.public-kicker),
.public-showcase-body .photographer-spaces-intro > p:not(.public-kicker),
.public-showcase-body .photographer-software-heading > p:not(.public-kicker),
.public-showcase-body .showcase-heading > p {
    font-size: 1rem;
    line-height: 1.65;
}

.public-showcase-body .showcase-footer p,
.public-showcase-body .showcase-footer a {
    font-size: .9rem;
    line-height: 1.55;
}

.public-showcase-body .photographer-overview-facts dt,
.public-showcase-body .photographer-overview-facts small,
.public-showcase-body .photographer-visual-card > span,
.public-showcase-body .photographer-visual-card small,
.public-showcase-body .photographer-campaign-steps li > span,
.public-showcase-body .photographer-campaign-steps small,
.public-showcase-body .photographer-space-cards header > span,
.public-showcase-body .photographer-space-cards header small,
.public-showcase-body .photographer-software-route > a > span,
.public-showcase-body .photographer-software-route > div > span,
.public-showcase-body .photographer-software-route small,
.public-showcase-body .photographer-offer-list header span,
.public-showcase-body .photographer-offer-list header b,
.public-showcase-body .photographer-assurance-strip li span,
.public-showcase-body .showcase-process-grid small,
.public-showcase-body .showcase-operation-grid small,
.public-showcase-body .faq-groups header small,
.public-showcase-body .contact-simple-steps small,
.public-showcase-body .showcase-contact-form legend small,
.public-showcase-body .showcase-contact-choice small,
.public-showcase-body .showcase-option-summary > article > span {
    font-size: .8rem;
}

.public-showcase-body .showcase-process-grid li > span,
.public-showcase-body .showcase-configured-flow article > span,
.public-showcase-body .showcase-role-list article > span,
.public-showcase-body .showcase-connected-line a > span,
.public-showcase-body .showcase-offer-card > header span,
.public-showcase-body .showcase-offer-card > header b,
.public-showcase-body .showcase-simulator-result > span,
.public-showcase-body .software-index-route b,
.public-showcase-body .software-index-copy > header span,
.public-showcase-body .software-index-copy > header b,
.public-showcase-body .faq-hero aside > span,
.public-showcase-body .contact-simple-steps li > span,
.public-showcase-body .showcase-contact-progress span,
.public-showcase-body .showcase-contact-review span,
.public-showcase-body .showcase-contact-form fieldset > footer > span {
    font-size: .8rem;
}

.public-showcase-body .software-facts article > span,
.public-showcase-body .software-workflow-map b {
    font-size: .8rem;
}

/* Gateway and school presentation typography v20 */
.platform-home-body .topnav a,
.school-public-body .topnav a {
    font-size: .94rem;
}

.platform-home-body main p,
.school-public-body main p {
    font-size: .96rem;
    line-height: 1.65;
}

.platform-home-body main small,
.school-public-body main small {
    font-size: .8rem;
    line-height: 1.5;
}

.platform-home-body main li,
.school-public-body main li {
    font-size: .9rem;
    line-height: 1.55;
}

.platform-home-body main a,
.platform-home-body main button,
.school-public-body main a,
.school-public-body main button {
    font-size: .94rem;
}

.platform-home-body main .platform-eyebrow,
.school-public-body main .gateway-kicker {
    font-size: .78rem;
    line-height: 1.25;
}

.platform-home-body .platform-hero-lead,
.school-public-body .school-entry-lead {
    font-size: 1.08rem;
    line-height: 1.65;
}

.platform-home-body .platform-art-caption p {
    font-size: .8rem;
}

.platform-home-body .platform-hero-facts b,
.platform-home-body .platform-core > span,
.platform-home-body .platform-art-card b,
.platform-home-body .platform-art-card > em,
.platform-home-body .platform-art-caption b,
.platform-home-body .platform-pulse-track b,
.platform-home-body .platform-flow-line li > span,
.platform-home-body .platform-bento-points span,
.platform-home-body .platform-editorial-visual figcaption span,
.platform-home-body .platform-bento-index,
.platform-home-body .platform-role-symbol span,
.platform-home-body .platform-statement-number,
.platform-home-body .platform-space-index,
.platform-home-body .platform-space-visual > em,
.platform-home-body .platform-space-kicker,
.platform-home-body .brand-mark {
    font-size: .8rem;
}

.school-public-body .school-entry-trust span {
    font-size: .88rem;
}

.school-public-body .school-entry-trust b,
.school-public-body .school-entry-preview header span,
.school-public-body .school-entry-preview header b,
.school-public-body .school-preview-heading span,
.school-public-body .school-preview-heading em,
.school-public-body .school-preview-progress span,
.school-public-body .school-preview-progress b,
.school-public-body .school-entry-preview li b,
.school-public-body .school-preview-note span,
.school-public-body .school-editorial-story li > span,
.school-public-body .school-feature-top > b,
.school-public-body .school-entry-code strong {
    font-size: .8rem;
}

.school-public-body .school-entry-help div > p:last-child {
    font-size: .96rem;
    line-height: 1.65;
}

.platform-home-body .platform-hero-facts > span,
.platform-home-body .platform-pulse-label strong,
.platform-home-body .platform-pulse-track > span,
.platform-home-body .platform-software-dock b,
.platform-home-body .platform-footer > div > strong,
.photographer-streamlined-body .photographer-overview-facts strong {
    font-size: .8rem;
}

/* 2Shoot commercial presentation v23 */
.software-commercial-detail {
    display: grid;
    gap: 2rem;
}

.software-commercial-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.software-commercial-grid article {
    position: relative;
    min-height: 220px;
    overflow: hidden;
    border: 1px solid var(--showcase-line);
    border-radius: 24px;
    padding: 1.45rem;
    background:
        radial-gradient(circle at 100% 0, rgba(102, 210, 178, .12), transparent 10rem),
        rgba(255, 255, 255, .82);
}

.software-commercial-grid article > span {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    border-radius: 12px;
    color: #075e58;
    background: #dff4ed;
    font-size: .8rem;
    font-weight: 900;
}

.software-commercial-grid h3 {
    margin: 1.1rem 0 .55rem;
    color: var(--showcase-ink);
    font-size: 1.22rem;
}

.software-commercial-grid p {
    margin: 0;
    color: var(--showcase-muted);
}

.software-compatibility-strip {
    display: grid;
    grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr);
    gap: 1.5rem;
    align-items: center;
    border-radius: 24px;
    padding: 1.4rem;
    color: #fff;
    background: #0b3e46;
}

.software-compatibility-strip > strong {
    font-size: 1.08rem;
    line-height: 1.45;
}

.software-compatibility-strip ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.software-compatibility-strip li {
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 12px;
    padding: .7rem .8rem;
    color: rgba(255, 255, 255, .86);
    background: rgba(255, 255, 255, .06);
}

@media (max-width: 980px) {
    .software-commercial-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .software-commercial-grid,
    .software-compatibility-strip,
    .software-compatibility-strip ul {
        grid-template-columns: 1fr;
    }

    .software-commercial-grid article {
        min-height: 0;
    }
}

/* Photographer public navigation v25 */
.public-showcase-body .photographer-public-topbar {
    gap: clamp(1rem, 2.2vw, 2rem);
    overflow: visible;
}

.photographer-public-brand {
    flex: 0 0 auto;
}

.photographer-brand-copy {
    display: grid;
    gap: .08rem;
    line-height: 1;
}

.photographer-brand-copy strong {
    color: #0b3038;
    font-size: 1.02rem;
    letter-spacing: -.02em;
}

.photographer-brand-copy small {
    color: #72868a;
    font-size: .62rem;
    font-weight: 750;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.public-showcase-body .photographer-public-topbar .public-topnav {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: .65rem;
    min-width: 0;
}

.photographer-nav-main,
.photographer-nav-actions {
    display: flex;
    align-items: center;
}

.photographer-nav-main {
    gap: .1rem;
    border: 1px solid rgba(11, 48, 56, .09);
    border-radius: 17px;
    padding: .28rem;
    background: rgba(255, 255, 255, .54);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

.photographer-nav-actions {
    gap: .42rem;
}

.public-showcase-body .photographer-public-topbar .photographer-nav-link,
.photographer-nav-dropdown > summary {
    position: relative;
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    padding: .62rem .75rem;
    color: #536d72;
    font-size: .84rem;
    font-weight: 780;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    transition: color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.public-showcase-body .photographer-public-topbar .photographer-nav-link:hover,
.public-showcase-body .photographer-public-topbar .photographer-nav-link:focus-visible,
.photographer-nav-dropdown > summary:hover,
.photographer-nav-dropdown > summary:focus-visible {
    color: #0b4b52;
    background: rgba(104, 209, 178, .12);
    outline: none;
}

.public-showcase-body .photographer-public-topbar .photographer-nav-link.is-current,
.photographer-nav-dropdown.is-current > summary {
    color: #073f47;
    background: #fff;
    box-shadow: 0 5px 16px rgba(11, 48, 56, .1), inset 0 0 0 1px rgba(11, 48, 56, .06);
}

.public-showcase-body .photographer-public-topbar .photographer-nav-link.is-current::after,
.photographer-nav-dropdown.is-current > summary::before {
    position: absolute;
    right: .75rem;
    bottom: .3rem;
    left: .75rem;
    height: 2px;
    border-radius: 999px;
    background: #64cdb0;
    content: "";
}

.photographer-nav-dropdown {
    position: relative;
}

.photographer-nav-dropdown > summary {
    gap: .48rem;
    list-style: none;
}

.photographer-nav-dropdown > summary::-webkit-details-marker {
    display: none;
}

.photographer-nav-dropdown > summary > span {
    width: .42rem;
    height: .42rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    rotate: 45deg;
    translate: 0 -.12rem;
    transition: rotate .18s ease, translate .18s ease;
}

.photographer-nav-dropdown[open] > summary > span {
    rotate: 225deg;
    translate: 0 .12rem;
}

.photographer-nav-dropdown-panel {
    position: absolute;
    z-index: 80;
    top: calc(100% + .72rem);
    left: 50%;
    display: grid;
    width: 310px;
    gap: .28rem;
    border: 1px solid rgba(11, 48, 56, .11);
    border-radius: 20px;
    padding: .62rem;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 24px 64px rgba(11, 48, 56, .19);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    translate: -50% .45rem;
    transition: opacity .16s ease, translate .16s ease, visibility .16s ease;
}

.photographer-nav-dropdown[open] .photographer-nav-dropdown-panel {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    translate: -50% 0;
}

.photographer-nav-dropdown-panel > p {
    margin: .25rem .55rem .4rem;
    color: #829397;
    font-size: .65rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.public-showcase-body .photographer-public-topbar .photographer-nav-dropdown-panel a {
    display: grid;
    grid-template-columns: 2.45rem minmax(0, 1fr);
    gap: .7rem;
    align-items: center;
    border-radius: 14px;
    padding: .64rem;
    color: #234a51;
    background: transparent;
}

.public-showcase-body .photographer-public-topbar .photographer-nav-dropdown-panel a:hover,
.public-showcase-body .photographer-public-topbar .photographer-nav-dropdown-panel a:focus-visible {
    color: #073f47;
    background: #edf7f3;
    outline: none;
}

.photographer-nav-dropdown-panel i {
    display: grid;
    width: 2.45rem;
    height: 2.45rem;
    place-items: center;
    border-radius: 11px;
    color: #0b4b52;
    background: #dff3ec;
    font-size: .67rem;
    font-style: normal;
    font-weight: 900;
    letter-spacing: -.01em;
}

.photographer-nav-dropdown-panel a:nth-of-type(2) i {
    color: #a85613;
    background: #fff0de;
}

.photographer-nav-dropdown-panel a:nth-of-type(3) i {
    color: #58459a;
    background: #eeeafc;
}

.photographer-nav-dropdown-panel a > span {
    display: grid;
    gap: .16rem;
}

.photographer-nav-dropdown-panel strong {
    font-size: .82rem;
    line-height: 1.1;
}

.photographer-nav-dropdown-panel small {
    color: #768b8f;
    font-size: .68rem;
    font-weight: 650;
    line-height: 1.2;
}

.public-showcase-body .photographer-public-topbar .photographer-contact-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(8, 124, 112, .2);
    border-radius: 14px;
    padding: .65rem .9rem;
    color: #075e58;
    background: #dff4ed;
    font-size: .78rem;
    font-weight: 850;
    white-space: nowrap;
    transition: color .18s ease, background .18s ease, transform .18s ease;
}

.public-showcase-body .photographer-public-topbar .photographer-contact-link:hover,
.public-showcase-body .photographer-public-topbar .photographer-contact-link:focus-visible,
.public-showcase-body .photographer-public-topbar .photographer-contact-link.is-current {
    color: #fff;
    background: #087c70;
    outline: none;
    transform: translateY(-1px);
}

.public-showcase-body .photographer-public-topbar .photographer-login-link {
    display: grid;
    min-height: 44px;
    align-content: center;
    justify-items: start;
    gap: .05rem;
    border-radius: 14px;
    padding: .56rem .9rem;
    color: #fff;
    background: #0b3038;
    line-height: 1;
    white-space: nowrap;
}

.photographer-login-link > span {
    font-size: .78rem;
    font-weight: 850;
}

.photographer-login-link > small {
    color: rgba(255, 255, 255, .64);
    font-size: .58rem;
    font-weight: 650;
}

.public-showcase-body .photographer-public-topbar .photographer-login-link:hover,
.public-showcase-body .photographer-public-topbar .photographer-login-link:focus-visible {
    color: #fff;
    background: #087c70;
    outline: none;
}

@media (max-width: 1200px) {
    .photographer-brand-copy small {
        display: none;
    }

    .public-showcase-body .photographer-public-topbar .public-topnav {
        gap: .4rem;
    }

    .public-showcase-body .photographer-public-topbar .photographer-nav-link,
    .photographer-nav-dropdown > summary {
        padding-inline: .62rem;
        font-size: .78rem;
    }

    .public-showcase-body .photographer-public-topbar .photographer-contact-link {
        padding-inline: .72rem;
    }
}

@media (max-width: 1180px) {
    .public-showcase-body .photographer-public-topbar {
        position: sticky;
    }

    .photographer-public-topbar .public-menu-toggle {
        display: grid;
        grid-template-columns: 18px auto;
        gap: 3px .45rem;
        min-height: 42px;
        border-radius: 14px;
        padding: .58rem .72rem;
    }

    .photographer-public-topbar .public-menu-toggle span {
        grid-column: 1;
        width: 18px;
        transition: opacity .16s ease, transform .16s ease;
    }

    .photographer-public-topbar .public-menu-toggle span:nth-child(1) {
        grid-row: 1;
    }

    .photographer-public-topbar .public-menu-toggle span:nth-child(2) {
        grid-row: 2;
    }

    .photographer-public-topbar .public-menu-toggle span:nth-child(3) {
        grid-row: 3;
    }

    .photographer-public-topbar .public-menu-toggle b {
        grid-column: 2;
        grid-row: 1 / 4;
        margin-left: 0;
        font-size: .7rem;
    }

    .photographer-public-topbar .public-menu-toggle[aria-expanded="true"] span:nth-child(1) {
        transform: translateY(5px) rotate(45deg);
    }

    .photographer-public-topbar .public-menu-toggle[aria-expanded="true"] span:nth-child(2) {
        opacity: 0;
    }

    .photographer-public-topbar .public-menu-toggle[aria-expanded="true"] span:nth-child(3) {
        transform: translateY(-5px) rotate(-45deg);
    }

    .public-showcase-body .photographer-public-topbar .public-topnav {
        position: absolute;
        z-index: 70;
        top: calc(100% + .6rem);
        right: 0;
        display: none;
        width: min(610px, calc(100vw - 1.5rem));
        max-height: calc(100vh - 6rem);
        grid-template-columns: minmax(0, 1fr);
        gap: .7rem;
        overflow-y: auto;
        border: 1px solid rgba(11, 48, 56, .12);
        border-radius: 22px;
        padding: .8rem;
        background: rgba(255, 255, 255, .99);
        box-shadow: 0 25px 70px rgba(11, 48, 56, .2);
    }

    .public-showcase-body .photographer-public-topbar .public-topnav.is-open {
        display: grid;
    }

    .photographer-nav-main {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .35rem;
        padding: .42rem;
    }

    .photographer-nav-main > .photographer-nav-link {
        justify-content: flex-start;
        min-height: 46px;
        padding: .75rem;
    }

    .photographer-nav-dropdown {
        grid-column: 1 / -1;
    }

    .photographer-nav-dropdown > summary {
        justify-content: space-between;
        min-height: 46px;
        padding: .75rem;
    }

    .photographer-nav-dropdown-panel {
        position: static;
        display: none;
        width: 100%;
        margin-top: .3rem;
        border: 0;
        border-radius: 14px;
        padding: .4rem;
        background: #f3f8f6;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        translate: none;
    }

    .photographer-nav-dropdown[open] .photographer-nav-dropdown-panel {
        display: grid;
        translate: none;
    }

    .photographer-nav-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, .82fr);
        gap: .5rem;
    }

    .public-showcase-body .photographer-public-topbar .photographer-contact-link,
    .public-showcase-body .photographer-public-topbar .photographer-login-link {
        width: 100%;
        min-height: 48px;
        justify-content: center;
        justify-items: center;
        text-align: center;
    }

    .public-showcase-body .photographer-public-topbar .photographer-login-link {
        display: grid !important;
    }
}

@media (max-width: 580px) {
    .photographer-brand-copy strong {
        font-size: .92rem;
    }

    .photographer-brand-copy small {
        display: none;
    }

    .photographer-public-topbar .public-menu-toggle b {
        display: none;
    }

    .photographer-public-topbar .public-menu-toggle {
        grid-template-columns: 18px;
        padding-inline: .72rem;
    }

    .public-showcase-body .photographer-public-topbar .public-topnav {
        width: calc(100vw - 1rem);
        right: -.25rem;
    }

    .photographer-nav-main,
    .photographer-nav-actions {
        grid-template-columns: minmax(0, 1fr);
    }

    .photographer-nav-dropdown {
        grid-column: auto;
    }

    .photographer-nav-dropdown > summary {
        justify-content: center;
    }

    .photographer-login-link > small {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .photographer-nav-dropdown-panel,
    .photographer-nav-dropdown > summary > span,
    .photographer-public-topbar .public-menu-toggle span {
        transition: none;
    }
}

/* Photographer public layout and color balance v26 */
.public-showcase-body {
    --showcase-ink: #10383f;
    --showcase-muted: #5d767b;
    --showcase-line: rgba(12, 72, 77, .13);
    --showcase-mint: #5fcfaf;
    --showcase-mint-dark: #08776d;
    --showcase-warm: #e69a39;
    --showcase-paper: #fcfdfb;
    background:
        radial-gradient(ellipse 58% 32% at -7% 10%, rgba(95, 207, 175, .18), transparent 72%),
        radial-gradient(ellipse 52% 34% at 105% 32%, rgba(230, 154, 57, .13), transparent 72%),
        linear-gradient(180deg, #f7faf7 0%, #eef4f1 48%, #f8f4ed 100%);
    background-attachment: fixed;
}

.public-showcase-body .page-shell {
    width: min(1760px, calc(100% - clamp(1.5rem, 3vw, 4rem)));
    max-width: none;
}

.public-showcase-body .page-content {
    width: 100%;
    max-width: none;
    gap: clamp(4.5rem, 6vw, 6.5rem);
    padding: clamp(2rem, 3.2vw, 3.6rem) 0 clamp(3.5rem, 6vw, 6rem);
}

.public-showcase-body .topbar {
    background: rgba(247, 250, 248, .9);
    box-shadow: 0 12px 38px rgba(15, 60, 65, .035);
}

.public-showcase-body .topbar::after {
    background: rgba(16, 73, 78, .1);
}

.public-showcase-body .photographer-overview-hero {
    grid-template-columns: minmax(0, 1.15fr) minmax(430px, .85fr);
    gap: clamp(2.5rem, 4.5vw, 5rem);
    min-height: min(740px, calc(100vh - 8rem));
    padding: clamp(2.7rem, 4.2vw, 5rem);
    background:
        radial-gradient(circle at 3% 100%, rgba(95, 207, 175, .24), transparent 25rem),
        radial-gradient(circle at 94% 0, rgba(230, 154, 57, .16), transparent 24rem),
        linear-gradient(132deg, #0b4249 0%, #0a343c 58%, #082a32 100%);
    box-shadow: 0 34px 86px rgba(8, 42, 50, .2);
}

.public-showcase-body .photographer-overview-hero h1 {
    max-width: 940px;
    font-size: clamp(3.55rem, 4.8vw, 5.75rem);
    line-height: .93;
}

.public-showcase-body .showcase-hero {
    grid-template-columns: minmax(0, 1.12fr) minmax(410px, .88fr);
    gap: clamp(2.5rem, 4.5vw, 5.25rem);
    min-height: min(690px, calc(100vh - 9rem));
    border-color: var(--showcase-line);
    padding: clamp(2.6rem, 4.2vw, 5rem);
    background:
        radial-gradient(circle at 100% 0, rgba(95, 207, 175, .1), transparent 25rem),
        linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(247, 252, 249, .95) 62%, rgba(253, 247, 238, .94));
    box-shadow: 0 28px 75px rgba(13, 59, 64, .1);
}

.public-showcase-body .showcase-hero h1,
.public-showcase-body .faq-hero h1,
.public-showcase-body .software-hero h1 {
    font-size: clamp(3.4rem, 4.75vw, 5.65rem);
    line-height: .93;
}

.public-showcase-body .pricing-simple-hero,
.public-showcase-body .contact-simple-hero,
.public-showcase-body .faq-hero {
    border: 1px solid var(--showcase-line);
    border-radius: 36px;
    background:
        radial-gradient(circle at 0 100%, rgba(95, 207, 175, .15), transparent 26rem),
        radial-gradient(circle at 100% 0, rgba(230, 154, 57, .09), transparent 24rem),
        linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(250, 252, 249, .9));
    box-shadow: 0 24px 64px rgba(13, 59, 64, .075);
}

.public-showcase-body .pricing-simple-hero {
    grid-template-columns: minmax(0, 1.02fr) minmax(420px, .98fr);
    gap: clamp(2.5rem, 4.5vw, 5rem);
    padding: clamp(2.6rem, 4.2vw, 4.7rem);
}

.public-showcase-body .contact-simple-hero {
    grid-template-columns: minmax(0, .96fr) minmax(460px, 1.04fr);
    gap: clamp(2.5rem, 4.5vw, 5rem);
    padding: clamp(2.6rem, 4vw, 4.4rem);
}

.public-showcase-body .faq-hero {
    grid-template-columns: minmax(0, 1.25fr) minmax(360px, .75fr);
    gap: clamp(2.5rem, 5vw, 6rem);
    padding: clamp(2.8rem, 4.5vw, 5.25rem);
}

.public-showcase-body .pricing-simple-hero h1,
.public-showcase-body .contact-simple-hero h1 {
    font-size: clamp(3rem, 4.25vw, 5rem);
    line-height: .95;
}

.public-showcase-body .software-index-hero {
    grid-template-columns: minmax(0, 1.08fr) minmax(500px, .92fr);
    gap: clamp(2.5rem, 4.5vw, 5.25rem);
    min-height: 590px;
    padding: clamp(2.7rem, 4.2vw, 5rem);
    background:
        radial-gradient(circle at 3% 100%, rgba(95, 207, 175, .23), transparent 24rem),
        radial-gradient(circle at 100% 0, rgba(230, 154, 57, .16), transparent 23rem),
        linear-gradient(132deg, #0c4047 0%, #0c333c 58%, #102e37 100%);
    box-shadow: 0 32px 80px rgba(7, 40, 47, .2);
}

.public-showcase-body .software-index-hero h1 {
    max-width: 820px;
    font-size: clamp(3.4rem, 4.7vw, 5.45rem);
    line-height: .94;
}

.public-showcase-body .pricing-rules > div,
.public-showcase-body .contact-simple-steps > div,
.public-showcase-body .faq-hero aside,
.public-showcase-body .software-facts article {
    border-color: rgba(12, 72, 77, .12);
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 10px 26px rgba(14, 59, 64, .045);
}

.public-showcase-body .public-button-primary {
    border-color: #51c9a8;
    color: #0b383d;
    background: #5fcfaf;
    box-shadow: 0 10px 24px rgba(27, 147, 120, .15);
}

.public-showcase-body .public-button-primary:hover,
.public-showcase-body .public-button-primary:focus-visible {
    color: #fff;
    background: #08776d;
}

.public-showcase-body .public-kicker {
    color: #0a7a70;
}

.public-showcase-body .software-index-hero .public-kicker,
.public-showcase-body .photographer-overview-hero .public-kicker,
.public-showcase-body .software-hero .public-kicker {
    color: #94e1ca;
}

@media (max-width: 1100px) {
    .public-showcase-body .photographer-overview-hero,
    .public-showcase-body .showcase-hero,
    .public-showcase-body .pricing-simple-hero,
    .public-showcase-body .contact-simple-hero,
    .public-showcase-body .faq-hero,
    .public-showcase-body .software-index-hero {
        grid-template-columns: minmax(0, 1fr);
    }

    .public-showcase-body .photographer-overview-hero,
    .public-showcase-body .showcase-hero,
    .public-showcase-body .software-index-hero {
        min-height: 0;
    }
}

@media (max-width: 780px) {
    .public-showcase-body .page-shell {
        width: calc(100% - 1rem);
    }

    .public-showcase-body .page-content {
        gap: 2.8rem;
        padding-top: .8rem;
        padding-bottom: 3rem;
    }

    .public-showcase-body .photographer-overview-hero,
    .public-showcase-body .showcase-hero,
    .public-showcase-body .pricing-simple-hero,
    .public-showcase-body .contact-simple-hero,
    .public-showcase-body .faq-hero,
    .public-showcase-body .software-index-hero {
        border-radius: 26px;
        padding: 1.4rem;
    }

    .public-showcase-body .photographer-overview-hero h1,
    .public-showcase-body .showcase-hero h1,
    .public-showcase-body .faq-hero h1,
    .public-showcase-body .software-hero h1,
    .public-showcase-body .software-index-hero h1,
    .public-showcase-body .pricing-simple-hero h1,
    .public-showcase-body .contact-simple-hero h1 {
        font-size: clamp(2.55rem, 12.5vw, 3.35rem);
        line-height: .96;
    }
}

/* General landing and cross-space navigation v31 */
.landing-v31-body {
    --landing-ink: #0b333a;
    --landing-muted: #577176;
    --landing-line: rgba(11, 66, 73, .13);
    --landing-paper: #fbfcf9;
    --landing-mint: #61cfb0;
    --landing-mint-dark: #08786e;
    --landing-amber: #e59a3b;
    --landing-deep: #0b4148;
    background:
        radial-gradient(circle at 4% 7%, rgba(229, 154, 59, .17), transparent 27rem),
        radial-gradient(circle at 96% 24%, rgba(97, 207, 176, .18), transparent 34rem),
        linear-gradient(180deg, #f6faf6 0%, #edf4f0 52%, #f8f4ed 100%);
    background-attachment: fixed;
}

.landing-v31-body .page-shell,
.school-public-body .page-shell {
    width: min(1760px, calc(100% - clamp(1.5rem, 3vw, 4rem)));
    max-width: none;
}

.landing-v31-body .page-content {
    display: grid;
    gap: clamp(4.5rem, 7vw, 7.5rem);
    padding: clamp(1rem, 2vw, 2rem) 0 2rem;
}

.landing-v31-body .topbar,
.school-public-body .topbar {
    position: sticky;
    z-index: 100;
    top: 0;
    min-height: 78px;
    border-bottom: 1px solid rgba(11, 65, 72, .09);
    background: rgba(248, 251, 248, .9);
    box-shadow: 0 12px 32px rgba(10, 55, 61, .035);
    backdrop-filter: blur(18px);
}

.landing-v31-body .public-topnav,
.school-public-body .public-topnav {
    display: flex;
    flex: 1 1 auto;
    justify-content: flex-end;
    gap: .7rem;
}

.landing-nav-main,
.landing-nav-actions {
    display: flex;
    align-items: center;
}

.landing-nav-main {
    gap: .12rem;
    border: 1px solid rgba(11, 65, 72, .09);
    border-radius: 17px;
    padding: .28rem;
    background: rgba(255, 255, 255, .58);
}

.landing-nav-actions {
    gap: .42rem;
}

.platform-home-body .topnav .landing-nav-link,
.school-public-body .topnav .landing-nav-link {
    position: relative;
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    padding: .65rem .82rem;
    color: #526d72;
    background: transparent;
    font-size: .84rem;
    font-weight: 800;
    white-space: nowrap;
}

.platform-home-body .topnav .landing-nav-link:hover,
.platform-home-body .topnav .landing-nav-link:focus-visible,
.school-public-body .topnav .landing-nav-link:hover,
.school-public-body .topnav .landing-nav-link:focus-visible {
    color: #0a5055;
    background: rgba(97, 207, 176, .13);
    outline: none;
}

.platform-home-body .topnav .landing-nav-link.is-current,
.school-public-body .topnav .landing-nav-link.is-current {
    color: #073e45;
    background: #fff;
    box-shadow: 0 5px 15px rgba(11, 65, 72, .09), inset 0 0 0 1px rgba(11, 65, 72, .05);
}

.platform-home-body .topnav .landing-nav-link.is-current::after,
.school-public-body .topnav .landing-nav-link.is-current::after {
    position: absolute;
    right: .8rem;
    bottom: .3rem;
    left: .8rem;
    height: 2px;
    border-radius: 999px;
    background: var(--landing-mint, #61cfb0);
    content: "";
}

.platform-home-body .topnav .landing-login,
.school-public-body .topnav .landing-login {
    display: grid;
    min-height: 46px;
    align-content: center;
    gap: .08rem;
    border: 1px solid rgba(11, 65, 72, .12);
    border-radius: 14px;
    padding: .55rem .9rem;
    line-height: 1;
    white-space: nowrap;
}

.landing-login span {
    font-size: .78rem;
    font-weight: 850;
}

.landing-login small {
    font-size: .62rem;
    font-weight: 650;
}

.platform-home-body .topnav .landing-login-school,
.school-public-body .topnav .landing-login-school {
    color: #784312;
    border-color: rgba(229, 154, 59, .28);
    background: #fff4e5;
}

.landing-login-school small {
    color: #9d734d;
}

.platform-home-body .topnav .landing-login-parent {
    color: #8d3b27;
    border-color: rgba(189, 87, 55, .25);
    background: #fff0eb;
}

.landing-login-parent small {
    color: #a86857;
}

.platform-home-body .topnav .landing-login-photo {
    color: #fff;
    border-color: #0b4148;
    background: #0b4148;
}

.landing-login-photo small {
    color: rgba(255, 255, 255, .66);
}

.platform-home-body .topnav .landing-login:hover,
.platform-home-body .topnav .landing-login:focus-visible,
.school-public-body .topnav .landing-login:hover,
.school-public-body .topnav .landing-login:focus-visible {
    color: #fff;
    border-color: #08786e;
    background: #08786e;
    outline: none;
    transform: translateY(-1px);
}

.landing-v31-hero {
    display: grid;
    grid-template-columns: minmax(0, .94fr) minmax(540px, 1.06fr);
    min-height: min(760px, calc(100vh - 8rem));
    overflow: hidden;
    border: 1px solid var(--landing-line);
    border-radius: 38px;
    background: rgba(252, 253, 250, .91);
    box-shadow: 0 32px 84px rgba(8, 53, 59, .13);
}

.landing-v31-hero-copy {
    position: relative;
    z-index: 2;
    display: grid;
    align-content: center;
    gap: 1.5rem;
    padding: clamp(2.6rem, 5vw, 6rem);
    background:
        radial-gradient(circle at 0 100%, rgba(97, 207, 176, .18), transparent 24rem),
        linear-gradient(135deg, rgba(253, 254, 251, .98), rgba(247, 252, 248, .94));
}

.landing-v31-kicker {
    display: flex;
    gap: .7rem;
    align-items: center;
    margin: 0;
    color: #08786e;
    font-size: .78rem !important;
    font-weight: 900;
    letter-spacing: .13em;
    line-height: 1.2 !important;
    text-transform: uppercase;
}

.landing-v31-kicker > span {
    width: 2rem;
    height: 2px;
    border-radius: 999px;
    background: var(--landing-amber);
}

.landing-v31-hero h1 {
    max-width: 850px;
    margin: 0;
    color: var(--landing-ink);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(3.7rem, 5.2vw, 6.3rem);
    font-weight: 850;
    letter-spacing: -.055em;
    line-height: .92;
}

.landing-v31-hero h1 em {
    display: block;
    margin-top: .14em;
    color: var(--landing-mint-dark);
    font-style: normal;
    font-weight: 600;
}

.landing-v31-lead {
    max-width: 720px;
    margin: 0;
    color: var(--landing-muted);
    font-size: clamp(1.04rem, 1.25vw, 1.24rem) !important;
    line-height: 1.68 !important;
}

.landing-v31-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .72rem;
}

.platform-home-body main .landing-v31-button {
    display: inline-flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: .85rem;
    border: 1px solid rgba(11, 65, 72, .14);
    border-radius: 15px;
    padding: .82rem 1.15rem;
    font-size: .92rem;
    font-weight: 850;
}

.landing-v31-button.is-primary {
    color: #fff;
    border-color: var(--landing-deep);
    background: var(--landing-deep);
    box-shadow: 0 14px 30px rgba(11, 65, 72, .17);
}

.landing-v31-button.is-secondary {
    color: #29555a;
    background: rgba(255, 255, 255, .7);
}

.landing-v31-button:hover,
.landing-v31-button:focus-visible {
    color: #fff;
    border-color: var(--landing-mint-dark);
    background: var(--landing-mint-dark);
    outline: none;
    transform: translateY(-2px);
}

.landing-v31-proof {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
    max-width: 690px;
    border-top: 1px solid var(--landing-line);
    padding-top: 1.15rem;
}

.landing-v31-proof span {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .55rem;
    align-items: center;
}

.landing-v31-proof strong {
    color: var(--landing-amber);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: 1.4rem;
}

.landing-v31-proof small {
    color: #60797d;
    font-size: .78rem !important;
    font-weight: 750;
    line-height: 1.25 !important;
}

.landing-v31-hero-visual {
    position: relative;
    min-height: 650px;
    margin: 0;
    overflow: hidden;
    background: #dce8e2;
}

.landing-v31-hero-visual::after {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(249, 252, 248, .2), transparent 28%),
        linear-gradient(180deg, transparent 45%, rgba(7, 44, 51, .58) 100%);
    content: "";
}

.landing-v31-hero-visual > img {
    width: 100%;
    height: 100%;
    min-height: 650px;
    object-fit: cover;
    object-position: center;
    filter: saturate(.84) contrast(.97);
}

.landing-v31-hero-visual figcaption {
    position: absolute;
    z-index: 3;
    right: clamp(1.3rem, 3vw, 3rem);
    bottom: clamp(1.4rem, 3vw, 3rem);
    left: clamp(1.3rem, 3vw, 3rem);
    display: grid;
    gap: .3rem;
    color: #fff;
}

.landing-v31-hero-visual figcaption span {
    font-size: .74rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.landing-v31-hero-visual figcaption strong {
    max-width: 520px;
    font-size: clamp(1.45rem, 2vw, 2.25rem);
    line-height: 1.16;
}

.landing-v31-visual-label {
    position: absolute;
    z-index: 4;
    display: grid;
    grid-template-columns: 2.5rem auto;
    gap: .65rem;
    align-items: center;
    min-width: 190px;
    border: 1px solid rgba(255, 255, 255, .56);
    border-radius: 16px;
    padding: .62rem .72rem;
    color: #153e44;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 18px 40px rgba(7, 44, 51, .16);
    backdrop-filter: blur(12px);
}

.landing-v31-visual-label i {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border-radius: 12px;
    color: #fff;
    background: var(--landing-deep);
    font-size: .7rem;
    font-style: normal;
    font-weight: 900;
}

.landing-v31-visual-label span {
    display: grid;
    gap: .12rem;
}

.landing-v31-visual-label small {
    color: #6b8084;
    font-size: .68rem !important;
    font-weight: 750;
    line-height: 1.1 !important;
}

.landing-v31-visual-label strong {
    font-size: .8rem;
}

.landing-v31-visual-label.is-school {
    top: 12%;
    left: 7%;
}

.landing-v31-visual-label.is-school i {
    background: var(--landing-amber);
}

.landing-v31-visual-label.is-family {
    top: 31%;
    right: 7%;
}

.landing-v31-visual-label.is-family i {
    background: var(--landing-mint-dark);
}

.landing-v31-visual-label.is-studio {
    top: 52%;
    left: 10%;
}

.landing-v31-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .65fr);
    gap: 2rem;
    align-items: end;
}

.landing-v31-section-head > div {
    display: grid;
    gap: .75rem;
}

.landing-v31-section-head h2 {
    max-width: 920px;
    margin: 0;
    color: var(--landing-ink);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.7rem, 4vw, 4.7rem);
    letter-spacing: -.045em;
    line-height: .96;
}

.landing-v31-section-head > p {
    max-width: 580px;
    margin: 0 0 .15rem;
    color: var(--landing-muted);
    font-size: 1rem !important;
    line-height: 1.65 !important;
}

.landing-v31-spaces,
.landing-v31-tools {
    display: grid;
    gap: 2rem;
}

.landing-v31-space-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.1rem;
}

.landing-v31-space-card {
    position: relative;
    display: grid;
    min-height: 470px;
    align-content: space-between;
    gap: 2rem;
    overflow: hidden;
    border: 1px solid var(--landing-line);
    border-radius: 30px;
    padding: clamp(1.6rem, 3vw, 3rem);
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 20px 52px rgba(9, 54, 60, .075);
}

.landing-v31-space-card::before {
    position: absolute;
    width: 22rem;
    height: 22rem;
    border-radius: 50%;
    pointer-events: none;
    content: "";
    filter: blur(1px);
}

.landing-v31-space-card.is-school::before {
    top: -11rem;
    right: -7rem;
    background: rgba(229, 154, 59, .16);
}

.landing-v31-space-card.is-parent::before {
    top: -10rem;
    left: -7rem;
    background: rgba(204, 92, 51, .13);
}

.landing-v31-space-card.is-photo::before {
    right: -7rem;
    bottom: -11rem;
    background: rgba(97, 207, 176, .2);
}

.landing-v31-space-top,
.landing-v31-space-card > div {
    position: relative;
    z-index: 1;
}

.landing-v31-space-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.landing-v31-space-icon {
    display: grid;
    width: 3.6rem;
    height: 3.6rem;
    place-items: center;
    border-radius: 17px;
    color: #fff;
    background: var(--landing-deep);
}

.landing-v31-space-card.is-school .landing-v31-space-icon {
    background: var(--landing-amber);
}

.landing-v31-space-card.is-parent .landing-v31-space-icon {
    background: #bd5737;
}

.landing-v31-space-icon svg {
    width: 1.65rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
}

.landing-v31-space-number {
    color: rgba(11, 65, 72, .17);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: 3.2rem;
    font-weight: 900;
    line-height: 1;
}

.landing-v31-space-card p {
    margin: 0 0 .55rem;
    color: var(--landing-mint-dark);
    font-size: .78rem !important;
    font-weight: 900;
    letter-spacing: .11em;
    line-height: 1.2 !important;
    text-transform: uppercase;
}

.landing-v31-space-card.is-school p {
    color: #aa651f;
}

.landing-v31-space-card.is-parent p {
    color: #a8482f;
}

.landing-v31-space-card h3 {
    max-width: 660px;
    margin: 0;
    color: var(--landing-ink);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2rem, 2.9vw, 3.2rem);
    letter-spacing: -.035em;
    line-height: 1.02;
}

.landing-v31-space-card ul {
    display: grid;
    gap: .65rem;
    margin: 1.35rem 0 0;
    padding: 0;
    list-style: none;
}

.landing-v31-space-card li {
    position: relative;
    padding-left: 1.55rem;
    color: #5b7479;
    font-size: .94rem !important;
}

.landing-v31-space-card li::before {
    position: absolute;
    top: .45em;
    left: .1rem;
    width: .62rem;
    height: .62rem;
    border-radius: 50%;
    background: var(--landing-mint);
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .74);
    content: "";
}

.landing-v31-space-card.is-school li::before {
    background: var(--landing-amber);
}

.landing-v31-space-card.is-parent li::before {
    background: #d86e4d;
}

.landing-v31-space-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    align-items: center;
}

.platform-home-body main .landing-v31-space-actions a {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--landing-line);
    border-radius: 14px;
    padding: .75rem 1rem;
    color: #31575c;
    background: rgba(255, 255, 255, .68);
    font-size: .88rem;
    font-weight: 850;
}

.platform-home-body main .landing-v31-space-actions .landing-v31-space-main {
    gap: .7rem;
    color: #fff;
    border-color: var(--landing-deep);
    background: var(--landing-deep);
}

.landing-v31-space-card.is-school .landing-v31-space-main {
    border-color: #c7792c !important;
    background: #c7792c !important;
}

.landing-v31-space-card.is-parent .landing-v31-space-main {
    border-color: #bd5737 !important;
    background: #bd5737 !important;
}

.landing-v31-space-actions a:hover,
.landing-v31-space-actions a:focus-visible {
    color: #fff !important;
    border-color: var(--landing-mint-dark) !important;
    background: var(--landing-mint-dark) !important;
    outline: none;
    transform: translateY(-2px);
}

.landing-v31-journey {
    display: grid;
    gap: clamp(2.3rem, 4vw, 4rem);
    overflow: hidden;
    border-radius: 34px;
    padding: clamp(2rem, 4.5vw, 4.5rem);
    color: #fff;
    background:
        radial-gradient(circle at 0 100%, rgba(97, 207, 176, .24), transparent 29rem),
        radial-gradient(circle at 100% 0, rgba(229, 154, 59, .16), transparent 25rem),
        #0a3941;
    box-shadow: 0 28px 70px rgba(7, 43, 50, .16);
}

.landing-v31-section-head.is-light h2,
.landing-v31-section-head.is-light > p {
    color: #fff;
}

.landing-v31-section-head.is-light > p {
    color: rgba(255, 255, 255, .72);
}

.landing-v31-section-head.is-light .landing-v31-kicker {
    color: #8ee3ca;
}

.landing-v31-journey-line {
    position: relative;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.landing-v31-journey-line::before {
    position: absolute;
    top: 1.33rem;
    right: 8%;
    left: 8%;
    height: 1px;
    background: rgba(255, 255, 255, .2);
    content: "";
}

.landing-v31-journey-line li {
    position: relative;
    z-index: 1;
    display: grid;
    gap: .85rem;
    justify-items: start;
    padding-right: .4rem;
}

.landing-v31-journey-line li > span {
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 50%;
    color: #073b42;
    background: var(--landing-mint);
    box-shadow: 0 0 0 6px #0a3941;
    font-size: .76rem;
    font-weight: 900;
}

.landing-v31-journey-line li:nth-child(5) > span {
    color: #5e350c;
    background: var(--landing-amber);
}

.landing-v31-journey-line li > div {
    display: grid;
    gap: .28rem;
}

.landing-v31-journey-line strong {
    font-size: 1rem;
}

.landing-v31-journey-line small {
    max-width: 185px;
    color: rgba(255, 255, 255, .64);
    font-size: .78rem !important;
    line-height: 1.45 !important;
}

.landing-v31-tool-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.landing-v31-tool {
    position: relative;
    display: grid;
    grid-template-columns: 3.35rem minmax(0, 1fr);
    gap: 1rem;
    min-height: 245px;
    align-content: start;
    border: 1px solid var(--landing-line);
    border-radius: 25px;
    padding: 1.5rem;
    background: rgba(255, 255, 255, .84);
    box-shadow: 0 15px 40px rgba(10, 55, 61, .06);
}

.landing-v31-tool-mark {
    display: grid;
    width: 3.35rem;
    height: 3.35rem;
    place-items: center;
    border-radius: 15px;
    color: #fff;
    background: var(--landing-deep);
    font-size: .82rem;
    font-weight: 900;
}

.landing-v31-tool.is-family .landing-v31-tool-mark {
    background: var(--landing-mint-dark);
}

.landing-v31-tool.is-production .landing-v31-tool-mark {
    background: var(--landing-amber);
}

.landing-v31-tool > div {
    display: grid;
    gap: .35rem;
}

.landing-v31-tool small {
    color: #73878b;
    font-size: .72rem !important;
    font-weight: 850;
    letter-spacing: .09em;
    line-height: 1.2 !important;
    text-transform: uppercase;
}

.landing-v31-tool h3 {
    margin: 0;
    color: var(--landing-ink);
    font-size: 1.42rem;
}

.landing-v31-tool p {
    margin: .4rem 0 0;
    color: var(--landing-muted);
    font-size: .92rem !important;
    line-height: 1.62 !important;
}

.landing-v31-tool-stage {
    position: absolute;
    right: 1.35rem;
    bottom: 1.25rem;
    border-radius: 999px;
    padding: .38rem .65rem;
    color: #527076;
    background: #eef5f1;
    font-size: .7rem;
    font-weight: 850;
}

.landing-v31-final {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(560px, 1.2fr);
    gap: clamp(2rem, 4vw, 5rem);
    align-items: center;
    border: 1px solid var(--landing-line);
    border-radius: 32px;
    padding: clamp(2rem, 4vw, 4rem);
    background:
        radial-gradient(circle at 0 100%, rgba(229, 154, 59, .12), transparent 20rem),
        rgba(255, 255, 255, .89);
    box-shadow: 0 22px 56px rgba(9, 54, 60, .075);
}

.landing-v31-final > div:first-child {
    display: grid;
    gap: .8rem;
}

.landing-v31-final h2 {
    margin: 0;
    color: var(--landing-ink);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.2rem, 3.2vw, 3.7rem);
    letter-spacing: -.04em;
    line-height: 1;
}

.landing-v31-final-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.platform-home-body main .landing-v31-final-actions a {
    display: grid;
    min-height: 138px;
    align-content: space-between;
    gap: 1.2rem;
    border: 1px solid var(--landing-line);
    border-radius: 20px;
    padding: 1.25rem;
    color: var(--landing-ink);
    background: #fff;
}

.landing-v31-final-actions a > span {
    color: #71858a;
    font-size: .78rem;
    font-weight: 750;
}

.landing-v31-final-actions a > strong {
    display: flex;
    gap: .7rem;
    align-items: center;
    justify-content: space-between;
    font-size: 1rem;
}

.landing-v31-final-actions b {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    background: rgba(11, 65, 72, .08);
}

.landing-v31-final-actions .landing-v31-final-photo {
    color: #fff;
    border-color: var(--landing-deep);
    background: var(--landing-deep);
}

.landing-v31-final-actions .landing-v31-final-parent {
    color: #fff;
    border-color: #bd5737;
    background: #bd5737;
}

.landing-v31-final-parent > span {
    color: rgba(255, 255, 255, .76) !important;
}

.landing-v31-final-parent b {
    background: rgba(255, 255, 255, .14);
}

.landing-v31-final-photo > span {
    color: rgba(255, 255, 255, .7) !important;
}

.landing-v31-final-photo b {
    background: rgba(255, 255, 255, .12);
}

.landing-v31-final-actions a:hover,
.landing-v31-final-actions a:focus-visible {
    color: #fff;
    border-color: var(--landing-mint-dark);
    background: var(--landing-mint-dark);
    outline: none;
    transform: translateY(-3px);
}

.landing-v31-footer {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1.4rem;
    align-items: center;
    border-top: 1px solid var(--landing-line);
    padding: 1.5rem .2rem 0;
}

.landing-v31-footer > a:first-child {
    display: flex;
    gap: .7rem;
    align-items: center;
    color: var(--landing-ink);
}

.landing-v31-footer p {
    margin: 0;
    color: #71858a;
    font-size: .82rem !important;
}

.landing-v31-footer > a:last-child {
    color: #3d6267;
    font-size: .8rem !important;
    font-weight: 800;
}

@media (max-width: 1260px) {
    .landing-v31-hero {
        grid-template-columns: minmax(0, .92fr) minmax(470px, 1.08fr);
    }

    .landing-v31-hero h1 {
        font-size: clamp(3.35rem, 5vw, 5.2rem);
    }

    .landing-nav-anchor {
        display: none !important;
    }
}

@media (max-width: 1180px) {
    .landing-v31-body .public-menu-toggle,
    .school-public-body .public-menu-toggle {
        display: grid;
    }

    .landing-v31-body .topbar .public-topnav,
    .school-public-body .topbar .public-topnav {
        position: absolute;
        z-index: 70;
        top: calc(100% + .6rem);
        right: 0;
        display: none;
        width: min(620px, calc(100vw - 1.5rem));
        max-height: calc(100vh - 6rem);
        grid-template-columns: minmax(0, 1fr);
        gap: .65rem;
        overflow-y: auto;
        border: 1px solid rgba(11, 65, 72, .12);
        border-radius: 22px;
        padding: .8rem;
        background: rgba(255, 255, 255, .99);
        box-shadow: 0 25px 70px rgba(11, 65, 72, .2);
    }

    .landing-v31-body .topbar .public-topnav.is-open,
    .school-public-body .topbar .public-topnav.is-open {
        display: grid;
    }

    .landing-nav-main,
    .landing-nav-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .42rem;
    }

    .landing-nav-main {
        padding: .42rem;
    }

    .platform-home-body .topnav .landing-nav-link,
    .school-public-body .topnav .landing-nav-link,
    .platform-home-body .topnav .landing-login,
    .school-public-body .topnav .landing-login {
        display: grid !important;
        width: 100%;
        min-height: 48px;
        justify-content: center;
        justify-items: center;
        text-align: center;
    }

    .landing-v31-hero {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
    }

    .landing-v31-hero-copy {
        min-height: 620px;
    }

    .landing-v31-hero-visual,
    .landing-v31-hero-visual > img {
        min-height: 590px;
    }

    .landing-v31-final {
        grid-template-columns: minmax(0, 1fr);
    }

    .landing-v31-space-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .landing-v31-space-card.is-parent {
        grid-column: 1 / -1;
        min-height: 390px;
    }
}

@media (max-width: 900px) {
    .landing-v31-body .page-shell,
    .school-public-body .page-shell {
        width: calc(100% - 1rem);
    }

    .landing-v31-body .page-content {
        gap: 3.5rem;
        padding-top: .5rem;
    }

    .landing-v31-section-head,
    .landing-v31-space-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .landing-v31-space-card.is-parent {
        grid-column: auto;
    }

    .landing-v31-space-card {
        min-height: 0;
    }

    .landing-v31-journey-line {
        grid-template-columns: minmax(0, 1fr);
        gap: .65rem;
    }

    .landing-v31-journey-line::before {
        top: 1rem;
        bottom: 1rem;
        left: 1.32rem;
        width: 1px;
        height: auto;
    }

    .landing-v31-journey-line li {
        grid-template-columns: 2.7rem minmax(0, 1fr);
        gap: 1rem;
        align-items: center;
    }

    .landing-v31-journey-line small {
        max-width: none;
    }

    .landing-v31-tool-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .landing-v31-tool {
        min-height: 190px;
    }
}

@media (max-width: 620px) {
    .landing-v31-body .topbar,
    .school-public-body .topbar {
        min-height: 68px;
    }

    .landing-nav-main,
    .landing-nav-actions {
        grid-template-columns: minmax(0, 1fr);
    }

    .landing-v31-hero {
        border-radius: 25px;
    }

    .landing-v31-hero-copy {
        min-height: 0;
        gap: 1.15rem;
        padding: 1.45rem;
    }

    .landing-v31-hero h1 {
        font-size: clamp(2.65rem, 13.5vw, 3.55rem);
        line-height: .94;
    }

    .landing-v31-actions,
    .landing-v31-actions a {
        width: 100%;
    }

    .landing-v31-proof {
        grid-template-columns: minmax(0, 1fr);
        gap: .75rem;
    }

    .landing-v31-hero-visual,
    .landing-v31-hero-visual > img {
        min-height: 470px;
    }

    .landing-v31-visual-label {
        min-width: 165px;
        grid-template-columns: 2.15rem auto;
    }

    .landing-v31-visual-label i {
        width: 2.15rem;
        height: 2.15rem;
    }

    .landing-v31-visual-label.is-school {
        top: 7%;
        left: 4%;
    }

    .landing-v31-visual-label.is-family {
        top: 27%;
        right: 4%;
    }

    .landing-v31-visual-label.is-studio {
        top: 48%;
        left: 5%;
    }

    .landing-v31-section-head h2 {
        font-size: clamp(2.35rem, 11vw, 3.2rem);
    }

    .landing-v31-space-card,
    .landing-v31-journey,
    .landing-v31-final {
        border-radius: 24px;
        padding: 1.35rem;
    }

    .landing-v31-space-actions,
    .landing-v31-space-actions a {
        width: 100%;
    }

    .landing-v31-tool {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
        padding-bottom: 4rem;
    }

    .landing-v31-final-actions {
        grid-template-columns: minmax(0, 1fr);
    }

    .platform-home-body main .landing-v31-final-actions a {
        min-height: 118px;
    }

    .landing-v31-footer {
        grid-template-columns: minmax(0, 1fr);
        justify-items: start;
    }
}

/* Balanced public presentation canvas v43 */
:root {
    --public-canvas-max: 1480px;
    --public-section-max: 1400px;
}

.landing-v31-body .page-shell,
.school-public-body .page-shell,
.public-showcase-body .page-shell {
    width: min(var(--public-canvas-max), calc(100% - clamp(1.5rem, 3vw, 3.5rem)));
    max-width: none;
}

.landing-v31-body .page-content > section,
.landing-v31-body .page-content > footer,
.school-public-body .page-content > section,
.school-public-body .page-content > footer,
.public-showcase-body .page-content > section,
.public-showcase-body .page-content > footer {
    width: 100%;
    max-width: var(--public-section-max);
    margin-inline: auto;
}

.landing-v31-body .page-content > .landing-v31-hero,
.school-public-body .page-content > .school-entry-hero,
.public-showcase-body .page-content > .photographer-overview-hero,
.public-showcase-body .page-content > .showcase-hero,
.public-showcase-body .page-content > .pricing-simple-hero,
.public-showcase-body .page-content > .contact-simple-hero,
.public-showcase-body .page-content > .faq-hero,
.public-showcase-body .page-content > .software-index-hero,
.public-showcase-body .page-content > .software-hero {
    max-width: var(--public-canvas-max);
}

@media (min-width: 1600px) {
    .landing-v31-hero h1 {
        font-size: 5.2rem;
    }

    .public-showcase-body .photographer-overview-hero h1 {
        font-size: 5rem;
    }

    .public-showcase-body .showcase-hero h1,
    .public-showcase-body .faq-hero h1,
    .public-showcase-body .software-hero h1,
    .public-showcase-body .software-index-hero h1 {
        font-size: 4.9rem;
    }

    .public-showcase-body .pricing-simple-hero h1,
    .public-showcase-body .contact-simple-hero h1 {
        font-size: 4.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .landing-v31-button,
    .landing-v31-space-actions a,
    .landing-v31-final-actions a,
    .landing-login {
        transition: none;
    }
}

/* School partner contact request v32 */
.school-entry-actions {
    grid-template-columns: auto auto minmax(180px, 1fr);
    gap: .65rem;
}

.school-entry-actions .school-partner-shortcut {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(11, 72, 78, .16);
    border-radius: 14px;
    padding: .75rem 1rem;
    color: #174d53;
    background: rgba(255, 255, 255, .76);
    font-size: .86rem;
    font-weight: 850;
    text-align: center;
}

.school-entry-actions .school-partner-shortcut:hover,
.school-entry-actions .school-partner-shortcut:focus-visible {
    color: #fff;
    border-color: #08786e;
    background: #08786e;
    outline: none;
    transform: translateY(-2px);
}

.school-partner-contact {
    display: grid;
    grid-template-columns: minmax(330px, .72fr) minmax(620px, 1.28fr);
    gap: clamp(1.4rem, 3.5vw, 4rem);
    align-items: start;
    scroll-margin-top: 100px;
    border: 1px solid rgba(12, 72, 77, .13);
    border-radius: 34px;
    padding: clamp(1.5rem, 3.7vw, 4rem);
    background:
        radial-gradient(circle at 0 100%, rgba(229, 154, 59, .14), transparent 24rem),
        radial-gradient(circle at 100% 0, rgba(97, 207, 176, .15), transparent 28rem),
        rgba(250, 252, 249, .94);
    box-shadow: 0 28px 70px rgba(11, 57, 63, .1);
}

.school-partner-copy {
    position: sticky;
    top: 110px;
    display: grid;
    gap: 1rem;
}

.school-partner-copy > h2 {
    max-width: 650px;
    margin: 0;
    color: #0b3d44;
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.6rem, 4vw, 4.35rem);
    letter-spacing: -.045em;
    line-height: .98;
}

.school-partner-copy > p:not(.gateway-kicker):not(.school-partner-note) {
    max-width: 610px;
    margin: 0;
    color: #5f777c;
    font-size: .98rem;
    line-height: 1.72;
}

.school-partner-copy > ol {
    display: grid;
    gap: .6rem;
    margin: .4rem 0 0;
    padding: 0;
    list-style: none;
}

.school-partner-copy > ol li {
    display: grid;
    grid-template-columns: 2.55rem minmax(0, 1fr);
    gap: .8rem;
    align-items: center;
    border: 1px solid rgba(12, 72, 77, .1);
    border-radius: 16px;
    padding: .75rem;
    background: rgba(255, 255, 255, .68);
}

.school-partner-copy > ol li > span {
    display: grid;
    width: 2.55rem;
    height: 2.55rem;
    place-items: center;
    border-radius: 12px;
    color: #80501c;
    background: #fff0db;
    font-size: .72rem;
    font-weight: 900;
}

.school-partner-copy > ol li:nth-child(n+2) > span {
    color: #086f66;
    background: #e2f5ef;
}

.school-partner-copy > ol li > div {
    display: grid;
    gap: .12rem;
}

.school-partner-copy > ol strong {
    color: #143e45;
    font-size: .88rem;
}

.school-partner-copy > ol small {
    color: #71858a;
    font-size: .76rem;
    line-height: 1.42;
}

.school-partner-note {
    display: grid;
    grid-template-columns: 1.8rem minmax(0, 1fr);
    gap: .7rem;
    align-items: center;
    margin: .35rem 0 0;
    border-radius: 15px;
    padding: .75rem;
    color: #526f74;
    background: rgba(11, 120, 110, .07);
    font-size: .8rem !important;
    line-height: 1.45 !important;
}

.school-partner-note > span {
    display: grid;
    width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #08786e;
    font-size: .72rem;
    font-weight: 900;
}

.school-partner-form-card {
    overflow: hidden;
    border: 1px solid rgba(12, 72, 77, .12);
    border-radius: 27px;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 20px 52px rgba(11, 57, 63, .09);
}

.school-partner-form-card > header {
    display: grid;
    gap: .28rem;
    border-bottom: 1px solid rgba(12, 72, 77, .1);
    padding: 1.35rem 1.45rem 1.15rem;
    background: linear-gradient(135deg, #f8fcf9, #eef8f4);
}

.school-partner-form-card > header > p {
    margin: 0;
    color: #08786e;
    font-size: .72rem !important;
    font-weight: 900;
    letter-spacing: .1em;
    line-height: 1.2 !important;
    text-transform: uppercase;
}

.school-partner-form-card > header > h3 {
    margin: 0;
    color: #0b3d44;
    font-size: 1.4rem;
    line-height: 1.2;
}

.school-partner-form-card > header > span {
    color: #73878b;
    font-size: .74rem;
}

.school-partner-form {
    display: grid;
    gap: 1rem;
    padding: 1.35rem 1.45rem 1.45rem;
}

.school-partner-form fieldset {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
    margin: 0;
    border: 0;
    padding: 0;
}

.school-partner-form fieldset + fieldset {
    border-top: 1px solid rgba(12, 72, 77, .1);
    padding-top: 1rem;
}

.school-partner-form legend {
    grid-column: 1 / -1;
    width: 100%;
    margin: 0;
    padding: 0 0 .15rem;
    color: #2d555b;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.school-partner-form label:not(.school-partner-consent) {
    display: grid;
    gap: .38rem;
    align-content: start;
}

.school-partner-form label.is-wide {
    grid-column: 1 / -1;
}

.school-partner-form label > span {
    color: #405f65;
    font-size: .76rem;
    font-weight: 800;
}

.school-partner-input {
    width: 100%;
    min-height: 46px;
    border: 1px solid #d4e0dd;
    border-radius: 12px;
    padding: .72rem .78rem;
    color: #173d43;
    background: #fbfdfc;
    font: inherit;
    font-size: .86rem;
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

textarea.school-partner-input {
    min-height: 106px;
    resize: vertical;
    line-height: 1.5;
}

select.school-partner-input {
    cursor: pointer;
}

.school-partner-input:focus {
    border-color: #0b897c;
    background: #fff;
    outline: none;
    box-shadow: 0 0 0 3px rgba(11, 137, 124, .1);
}

.school-partner-input::placeholder {
    color: #9aabad;
}

.school-partner-form .errorlist {
    margin: 0;
    padding: 0;
    color: #b0443b;
    font-size: .72rem;
    font-weight: 750;
    list-style: none;
}

.school-partner-form-errors {
    border: 1px solid #efc3be;
    border-radius: 12px;
    padding: .75rem;
    color: #9f3d35;
    background: #fff3f1;
}

.school-partner-form-errors .errorlist {
    color: inherit;
}

.school-partner-consent {
    display: grid;
    grid-template-columns: 1.15rem minmax(0, 1fr);
    gap: .7rem;
    align-items: start;
    border: 1px solid rgba(12, 72, 77, .1);
    border-radius: 14px;
    padding: .8rem;
    background: #f7faf8;
    cursor: pointer;
}

.school-partner-consent input {
    width: 1.15rem;
    height: 1.15rem;
    margin: .05rem 0 0;
    accent-color: #08786e;
}

.school-partner-consent > span {
    font-size: .78rem !important;
    line-height: 1.48 !important;
}

.school-partner-consent .errorlist {
    grid-column: 2;
}

.school-partner-form > button {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    border: 0;
    border-radius: 14px;
    padding: .8rem 1rem;
    color: #fff;
    background: #0b4148;
    box-shadow: 0 12px 28px rgba(11, 65, 72, .15);
    font-size: .9rem;
    font-weight: 850;
    cursor: pointer;
}

.school-partner-form > button:hover,
.school-partner-form > button:focus-visible {
    background: #08786e;
    outline: none;
    transform: translateY(-2px);
}

.school-partner-privacy {
    margin: -.25rem 0 0;
    color: #819397;
    font-size: .7rem !important;
    line-height: 1.45 !important;
    text-align: center;
}

.school-partner-success {
    display: grid;
    grid-template-columns: 4rem minmax(0, 1fr);
    gap: 1.25rem;
    min-height: 430px;
    align-content: center;
    align-items: start;
    padding: clamp(2rem, 5vw, 4.5rem);
    background:
        radial-gradient(circle at 100% 0, rgba(97, 207, 176, .22), transparent 20rem),
        #f7fbf8;
}

.school-partner-success > span {
    display: grid;
    width: 4rem;
    height: 4rem;
    place-items: center;
    border-radius: 20px;
    color: #fff;
    background: #08786e;
    box-shadow: 0 14px 30px rgba(8, 120, 110, .2);
    font-size: 1.35rem;
    font-weight: 900;
}

.school-partner-success > div {
    display: grid;
    gap: .55rem;
}

.school-partner-success p {
    margin: 0;
    color: #60797e;
    font-size: .88rem !important;
    line-height: 1.6 !important;
}

.school-partner-success > div > p:first-child {
    color: #08786e;
    font-size: .74rem !important;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.school-partner-success h3 {
    margin: 0;
    color: #0b3d44;
    font-size: clamp(1.55rem, 2.4vw, 2.25rem);
    line-height: 1.14;
}

@media (max-width: 1120px) {
    .school-entry-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .school-entry-actions > span {
        grid-column: 1 / -1;
    }

    .school-partner-contact {
        grid-template-columns: minmax(0, 1fr);
    }

    .school-partner-copy {
        position: static;
        grid-template-columns: minmax(0, .9fr) minmax(380px, 1.1fr);
        gap: 1rem 2rem;
        align-items: start;
    }

    .school-partner-copy > .gateway-kicker,
    .school-partner-copy > h2,
    .school-partner-copy > p {
        grid-column: 1;
    }

    .school-partner-copy > ol {
        grid-column: 2;
        grid-row: 1 / span 4;
        margin: 0;
    }
}

@media (max-width: 760px) {
    .school-entry-actions,
    .school-partner-form fieldset,
    .school-partner-copy {
        grid-template-columns: minmax(0, 1fr);
    }

    .school-entry-actions > span,
    .school-partner-copy > .gateway-kicker,
    .school-partner-copy > h2,
    .school-partner-copy > p,
    .school-partner-copy > ol {
        grid-column: 1;
    }

    .school-partner-copy > ol {
        grid-row: auto;
    }

    .school-partner-contact {
        gap: 1.4rem;
        border-radius: 25px;
        padding: 1.15rem;
    }

    .school-partner-copy > h2 {
        font-size: clamp(2.35rem, 11vw, 3.2rem);
    }

    .school-partner-form-card {
        border-radius: 20px;
    }

    .school-partner-form-card > header,
    .school-partner-form {
        padding: 1.05rem;
    }

    .school-partner-form label.is-wide {
        grid-column: 1;
    }

    .school-partner-success {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
        padding: 1.5rem;
    }
}

/* Floating public navigation v33 */
.landing-v31-body .topbar,
.school-public-body .topbar,
.public-showcase-body .topbar {
    top: .65rem;
    min-height: 0;
    margin-bottom: .65rem;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.landing-v31-body .topbar::after,
.school-public-body .topbar::after,
.public-showcase-body .topbar::after {
    display: none;
}

.landing-v31-body .brand,
.school-public-body .brand,
.public-showcase-body .photographer-public-brand {
    min-height: 56px;
    border: 1px solid rgba(11, 65, 72, .11);
    border-radius: 18px;
    padding: .38rem .82rem .38rem .4rem;
    background: rgba(250, 252, 249, .88);
    box-shadow: 0 12px 30px rgba(10, 55, 61, .08);
    backdrop-filter: blur(18px);
}

.landing-v31-body .landing-nav-main,
.school-public-body .landing-nav-main,
.public-showcase-body .photographer-nav-main {
    border-color: rgba(11, 65, 72, .11);
    background: rgba(250, 252, 249, .88);
    box-shadow:
        0 12px 30px rgba(10, 55, 61, .08),
        inset 0 1px 0 rgba(255, 255, 255, .92);
    backdrop-filter: blur(18px);
}

.landing-v31-body .landing-login,
.school-public-body .landing-login,
.public-showcase-body .photographer-contact-link,
.public-showcase-body .photographer-login-link {
    box-shadow: 0 12px 28px rgba(10, 55, 61, .09);
}

.landing-v31-body .page-content,
.school-public-body .page-content,
.public-showcase-body .page-content {
    position: relative;
    z-index: 1;
}

@media (max-width: 1180px) {
    .landing-v31-body .topbar,
    .school-public-body .topbar,
    .public-showcase-body .photographer-public-topbar {
        min-height: 56px;
    }

    .landing-v31-body .public-menu-toggle,
    .school-public-body .public-menu-toggle,
    .public-showcase-body .public-menu-toggle {
        border: 1px solid rgba(11, 65, 72, .11);
        background: rgba(250, 252, 249, .9);
        box-shadow: 0 12px 28px rgba(10, 55, 61, .08);
        backdrop-filter: blur(18px);
    }
}

@media (max-width: 620px) {
    .landing-v31-body .topbar,
    .school-public-body .topbar,
    .public-showcase-body .photographer-public-topbar {
        top: .35rem;
        min-height: 50px;
        margin-bottom: .45rem;
    }

    .landing-v31-body .brand,
    .school-public-body .brand,
    .public-showcase-body .photographer-public-brand {
        min-height: 50px;
        border-radius: 15px;
        padding: .3rem .58rem .3rem .32rem;
    }

    .landing-v31-body .brand-mark,
    .school-public-body .brand-mark,
    .public-showcase-body .brand-mark {
        width: 2.35rem;
        height: 2.35rem;
        border-radius: 12px;
    }
}

/* Context-specific presentation photography v34 */
.photo-backdrop-platform {
    --showcase-photo: url("/static/portal/media/presentation-platform-v34.webp");
    --showcase-photo-position: center 52%;
}

.photo-backdrop-school-preparation {
    --showcase-photo: url("/static/portal/media/presentation-school-preparation-v34.webp");
    --showcase-photo-position: center 48%;
}

.photo-backdrop-photographer {
    --showcase-photo: url("/static/portal/media/presentation-photographer-v34.webp");
    --showcase-photo-position: center 50%;
}

.photo-backdrop-production {
    --showcase-photo: url("/static/portal/media/presentation-production-v34.webp");
    --showcase-photo-position: center 50%;
}

.photo-backdrop-consultation {
    --showcase-photo: url("/static/portal/media/presentation-consultation-v34.webp");
    --showcase-photo-position: center 48%;
}

.school-public-body,
.faq-showcase-body {
    --showcase-hero-photo: url("/static/portal/media/presentation-school-preparation-v34.webp");
}

.pricing-showcase-body,
.contact-streamlined-body {
    --showcase-hero-photo: url("/static/portal/media/presentation-consultation-v34.webp");
}

.software-showcase-body,
.software-detail-fornb {
    --showcase-hero-photo: url("/static/portal/media/presentation-production-v34.webp");
}

.software-detail-2shoot {
    --showcase-photo: url("/static/portal/media/presentation-photographer-v34.webp");
    --showcase-hero-photo: url("/static/portal/media/presentation-photographer-v34.webp");
}

.solution-showcase-body {
    --showcase-hero-photo: url("/static/portal/media/presentation-platform-v34.webp");
}

.solution-showcase-body .showcase-hero::after {
    background:
        linear-gradient(90deg, rgba(252, 253, 251, .98) 0%, rgba(248, 251, 248, .88) 48%, rgba(247, 250, 247, .26) 100%),
        var(--showcase-hero-photo);
    background-position: center, center 52%;
    background-size: cover;
}

.landing-v31-hero-visual > img,
.school-entry-visual > img,
.photographer-overview-visual > img,
.showcase-hero-visual > img,
.photographer-campaign-image > img {
    transition: transform .7s ease, filter .35s ease;
}

@media (hover: hover) and (pointer: fine) {
    .landing-v31-hero-visual:hover > img,
    .school-entry-visual:hover > img,
    .photographer-overview-visual:hover > img,
    .showcase-hero-visual:hover > img,
    .photographer-campaign-image:hover > img {
        transform: scale(1.018);
    }
}

@media (max-width: 760px) {
    .photo-backdrop-platform,
    .photo-backdrop-school-preparation,
    .photo-backdrop-photographer,
    .photo-backdrop-production,
    .photo-backdrop-consultation {
        --showcase-photo-position: 62% center;
    }

    .school-public-body {
        --showcase-photo-position: 56% center;
    }
}

/* Unified public backdrops and floating header v35 */
.photo-backdrop-platform {
    --page-backdrop-photo: url("/static/portal/media/presentation-consultation-v34.webp");
    --page-backdrop-position: center 48%;
}

.photo-backdrop-school-preparation {
    --page-backdrop-photo: url("/static/portal/media/presentation-platform-v34.webp");
    --page-backdrop-position: center 52%;
}

.photo-backdrop-photographer {
    --page-backdrop-photo: url("/static/portal/media/presentation-production-v34.webp");
    --page-backdrop-position: center 50%;
}

.photo-backdrop-production {
    --page-backdrop-photo: url("/static/portal/media/presentation-consultation-v34.webp");
    --page-backdrop-position: center 48%;
}

.photo-backdrop-consultation {
    --page-backdrop-photo: url("/static/portal/media/presentation-school-preparation-v34.webp");
    --page-backdrop-position: center 48%;
}

.platform-home-body::after,
.school-public-body::after,
.public-showcase-body::before {
    display: block;
    position: fixed;
    z-index: 0;
    inset: 0;
    width: auto;
    height: auto;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(246, 250, 247, .7) 0%, rgba(239, 246, 242, .8) 54%, rgba(247, 244, 237, .9) 100%),
        linear-gradient(90deg, rgba(248, 250, 247, .38), rgba(241, 248, 244, .2) 50%, rgba(248, 243, 235, .34)),
        var(--page-backdrop-photo);
    background-attachment: fixed;
    background-position: center, center, var(--page-backdrop-position);
    background-repeat: no-repeat;
    background-size: cover;
    filter: saturate(.86) contrast(.98);
    opacity: 1;
    mask-image: none;
    content: "";
}

.landing-v31-body .topbar,
.school-public-body .topbar,
.public-showcase-body .topbar,
.public-showcase-body .photographer-public-topbar {
    position: absolute;
    z-index: 120;
    top: .7rem;
    right: 0;
    left: 0;
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.landing-v31-body .page-content,
.school-public-body .page-content,
.public-showcase-body .page-content {
    padding-top: .75rem;
}

.landing-v31-body .topbar > .topnav:not(.public-topnav),
.school-public-body .topbar > .topnav:not(.public-topnav),
.public-showcase-body .topbar > .topnav:not(.public-topnav) {
    gap: .35rem;
    border: 1px solid rgba(11, 65, 72, .11);
    border-radius: 17px;
    padding: .32rem;
    background: rgba(250, 252, 249, .92);
    box-shadow: 0 12px 30px rgba(10, 55, 61, .09);
    backdrop-filter: blur(18px);
}

.landing-v31-body .topbar > .topnav:not(.public-topnav) > a,
.school-public-body .topbar > .topnav:not(.public-topnav) > a,
.public-showcase-body .topbar > .topnav:not(.public-topnav) > a {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    padding: .62rem .82rem;
}

.pricing-showcase-body .pricing-simple-hero::after,
.contact-streamlined-body .contact-simple-hero::after,
.faq-showcase-body .faq-hero::after {
    background:
        linear-gradient(90deg, rgba(252, 253, 251, .99) 0%, rgba(250, 252, 249, .96) 43%, rgba(247, 250, 247, .42) 70%, rgba(247, 250, 247, .12) 100%),
        var(--showcase-hero-photo);
    background-position: center, var(--showcase-photo-position);
    background-size: cover;
    filter: saturate(.92) contrast(1.02);
    opacity: 1;
    mask-image: none;
}

.solution-showcase-body .showcase-hero::after {
    background:
        linear-gradient(90deg, rgba(252, 253, 251, .99) 0%, rgba(248, 251, 248, .94) 44%, rgba(247, 250, 247, .35) 72%, rgba(247, 250, 247, .1) 100%),
        var(--showcase-hero-photo);
    background-position: center, center 52%;
    background-size: cover;
    filter: saturate(.92) contrast(1.02);
    opacity: 1;
    mask-image: none;
}

.software-showcase-body .software-index-hero::after,
.software-detail-body .software-hero::after {
    background:
        linear-gradient(90deg, rgba(9, 49, 57, .98) 0%, rgba(8, 44, 52, .88) 46%, rgba(8, 42, 50, .24) 76%, rgba(8, 42, 50, .08) 100%),
        var(--showcase-hero-photo);
    background-position: center, var(--showcase-photo-position);
    background-size: cover;
    filter: saturate(.94) contrast(1.04);
    opacity: 1;
    mask-image: none;
}

.photographer-overview-copy,
.photographer-overview-visual {
    animation: none;
    opacity: 1;
    transform: none;
}

@media (max-width: 1180px) {
    .landing-v31-body .topbar,
    .school-public-body .topbar,
    .public-showcase-body .topbar,
    .public-showcase-body .photographer-public-topbar {
        position: absolute;
        top: .55rem;
    }
}

@media (max-width: 780px) {
    .platform-home-body::after,
    .school-public-body::after,
    .public-showcase-body::before {
        inset: 0;
        opacity: 1;
        background-position: center, center, 62% center;
    }

    .landing-v31-body .page-content,
    .school-public-body .page-content,
    .public-showcase-body .page-content {
        padding-top: .45rem;
    }

    .photographer-overview-body .photographer-overview-copy {
        padding-top: 4.5rem;
    }

    .public-showcase-body .pricing-simple-hero,
    .public-showcase-body .contact-simple-hero,
    .public-showcase-body .faq-hero,
    .public-showcase-body .showcase-hero,
    .public-showcase-body .software-index-hero,
    .public-showcase-body .software-hero {
        padding-top: 5.25rem;
    }

    .pricing-showcase-body .pricing-simple-hero::after,
    .contact-streamlined-body .contact-simple-hero::after,
    .faq-showcase-body .faq-hero::after,
    .solution-showcase-body .showcase-hero::after {
        background:
            linear-gradient(180deg, rgba(252, 253, 251, .98) 0%, rgba(250, 252, 249, .94) 52%, rgba(247, 250, 247, .3) 78%, rgba(247, 250, 247, .1) 100%),
            var(--showcase-hero-photo);
        background-position: center, 62% center;
        background-size: cover;
    }

    .software-showcase-body .software-index-hero::after,
    .software-detail-body .software-hero::after {
        background:
            linear-gradient(180deg, rgba(9, 49, 57, .98) 0%, rgba(8, 44, 52, .88) 56%, rgba(8, 42, 50, .2) 82%, rgba(8, 42, 50, .06) 100%),
            var(--showcase-hero-photo);
        background-position: center, 62% center;
        background-size: cover;
    }
}

/* Login identities v37: a dedicated photographic background for each portal. */
body.login-body-school {
    background:
        linear-gradient(105deg, rgba(12, 49, 58, .38) 0%, rgba(12, 49, 58, .08) 44%, rgba(250, 247, 239, .72) 100%),
        url("/static/portal/media/login-school-v35.webp") center / cover fixed no-repeat;
}

body.login-body-professional {
    background:
        linear-gradient(105deg, rgba(6, 30, 36, .36) 0%, rgba(6, 30, 36, .22) 48%, rgba(8, 35, 41, .52) 100%),
        url("/static/portal/media/login-professional-v35.webp") center / cover fixed no-repeat;
}

body.login-body .page-shell {
    position: relative;
    z-index: 0;
}

body.login-body .simple-login-back {
    color: #fff;
    text-shadow: 0 1px 12px rgba(5, 29, 35, .58);
}

body.login-body .login-stage {
    border-color: rgba(255, 255, 255, .38);
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 32px 100px rgba(5, 29, 35, .28);
    backdrop-filter: blur(10px);
}

body.login-body .login-story-school {
    background:
        linear-gradient(180deg, rgba(10, 46, 54, .58), rgba(10, 46, 54, .88)),
        url("/static/portal/media/login-school-v35.webp") left center / cover no-repeat;
}

body.login-body .login-story-professional {
    background:
        linear-gradient(180deg, rgba(5, 31, 37, .5), rgba(5, 31, 37, .9)),
        url("/static/portal/media/login-professional-v35.webp") left center / cover no-repeat;
}

body.login-body .simple-login-card {
    background: rgba(255, 255, 255, .96);
}

@media (max-width: 700px) {
    body.login-body-school,
    body.login-body-professional {
        background-attachment: scroll;
        background-position: 35% center;
    }

    body.login-body .login-stage {
        backdrop-filter: none;
    }
}
/* Parent presentation v38 */
.parent-public-body {
    --parent-coral: #bd5737;
    --parent-coral-dark: #8f3d27;
    --parent-coral-soft: #fff0eb;
    --parent-teal: #0b6664;
    --parent-ink: #173b3e;
}

.parent-public-body .parent-public-brand {
    color: var(--parent-ink);
}

.parent-public-brand .parent-brand-copy {
    display: grid;
    gap: .06rem;
}

.parent-public-brand .parent-brand-copy strong {
    font-size: .88rem;
}

.parent-public-brand .parent-brand-copy small {
    color: #9b6759;
    font-size: .62rem;
    font-weight: 750;
}

.parent-entry-hero {
    background:
        radial-gradient(circle at 92% 8%, rgba(189, 87, 55, .14), transparent 23rem),
        linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(255, 248, 244, .94));
}

.parent-entry-hero::before {
    background: rgba(189, 87, 55, .72);
}

.parent-entry-hero .gateway-kicker,
.parent-entry-hero .school-entry-back,
.parent-public-body .school-editorial-story .gateway-kicker,
.parent-public-body .school-entry-features .gateway-kicker,
.parent-public-body .school-entry-help .gateway-kicker,
.parent-trust-section .gateway-kicker {
    color: var(--parent-coral-dark);
}

.parent-entry-button {
    color: #fff !important;
    border-color: var(--parent-coral) !important;
    background: var(--parent-coral) !important;
    box-shadow: 0 14px 28px rgba(189, 87, 55, .22);
}

.parent-entry-button:hover,
.parent-entry-button:focus-visible {
    border-color: var(--parent-coral-dark) !important;
    background: var(--parent-coral-dark) !important;
}

.parent-entry-preview {
    border-color: rgba(189, 87, 55, .18) !important;
    background: rgba(255, 255, 255, .96) !important;
}

.parent-entry-preview header {
    border-bottom-color: rgba(189, 87, 55, .12) !important;
}

.parent-entry-preview header i {
    background: var(--parent-coral) !important;
}

.parent-entry-preview header b {
    color: var(--parent-coral-dark);
    background: var(--parent-coral-soft);
}

.parent-preview-student {
    display: grid;
    gap: .25rem;
    border-radius: 18px;
    padding: 1rem 1.1rem;
    color: #fff;
    background:
        radial-gradient(circle at 100% 0, rgba(255, 255, 255, .18), transparent 8rem),
        var(--parent-teal);
}

.parent-preview-student span,
.parent-preview-student small {
    color: rgba(255, 255, 255, .72);
    font-size: .7rem;
    font-weight: 750;
}

.parent-preview-student strong {
    font-size: 1.22rem;
}

.parent-preview-gallery {
    display: grid;
    grid-template-columns: 1.25fr repeat(2, minmax(0, .8fr));
    gap: .65rem;
}

.parent-preview-gallery > span {
    display: grid;
    min-height: 118px;
    align-content: end;
    overflow: hidden;
    border: 1px solid rgba(23, 59, 62, .1);
    border-radius: 15px;
    padding: .65rem;
    background: #f2ebe6;
}

.parent-preview-gallery > span i {
    display: block;
    width: 54%;
    height: 58px;
    margin: 0 auto .45rem;
    border-radius: 28px 28px 12px 12px;
    background:
        radial-gradient(circle at 50% 30%, #d6b6a4 0 18%, transparent 19%),
        linear-gradient(135deg, #356267, #183d41);
}

.parent-preview-gallery > span:not(.is-main) i {
    width: 72%;
    background:
        radial-gradient(circle at 30% 42%, #d6b6a4 0 12%, transparent 13%),
        radial-gradient(circle at 55% 42%, #d6b6a4 0 12%, transparent 13%),
        radial-gradient(circle at 77% 42%, #d6b6a4 0 12%, transparent 13%),
        linear-gradient(135deg, #8fa6a3, #526d70);
}

.parent-preview-gallery b {
    color: #34565a;
    font-size: .66rem;
}

.parent-preview-order {
    display: flex;
    gap: .8rem;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid rgba(23, 59, 62, .1);
    padding-top: .9rem;
}

.parent-preview-order > div {
    display: grid;
    gap: .15rem;
}

.parent-preview-order span {
    color: #75888a;
    font-size: .65rem;
}

.parent-preview-order strong {
    color: var(--parent-ink);
    font-size: .85rem;
}

.parent-preview-order > b {
    border-radius: 12px;
    padding: .72rem .8rem;
    color: #fff;
    background: var(--parent-coral);
    font-size: .66rem;
}

.parent-editorial-story figure {
    background: #dfd5ce;
}

.parent-editorial-story figcaption span,
.parent-public-body .school-story-copy li > span,
.parent-public-body .school-feature-top > b,
.parent-public-body .school-entry-code strong {
    color: var(--parent-coral-dark);
}

.parent-public-body .school-entry-features article::after {
    background: rgba(189, 87, 55, .12);
}

.parent-feature-icon {
    color: #fff !important;
    background: var(--parent-coral) !important;
}

.parent-trust-section {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
    border: 1px solid rgba(11, 102, 100, .12);
    border-radius: 30px;
    padding: clamp(2rem, 5vw, 4.5rem);
    background:
        radial-gradient(circle at 100% 0, rgba(189, 87, 55, .12), transparent 24rem),
        #f7fbf8;
}

.parent-trust-section h2 {
    max-width: 700px;
    margin: .5rem 0 1rem;
    color: var(--parent-ink);
    font-family: "Bahnschrift SemiCondensed", "Aptos Display", sans-serif;
    font-size: clamp(2.3rem, 4vw, 4.4rem);
    letter-spacing: -.04em;
    line-height: .98;
}

.parent-trust-section p {
    max-width: 720px;
    margin: 0;
    color: #657c7e;
    line-height: 1.7;
}

.parent-trust-section ul {
    display: grid;
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.parent-trust-section li {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    border: 1px solid rgba(11, 102, 100, .1);
    border-radius: 15px;
    padding: .85rem 1rem;
    color: #34585b;
    background: rgba(255, 255, 255, .78);
    font-size: .9rem;
    font-weight: 750;
}

.parent-trust-section li span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--parent-teal);
}

.parent-entry-code {
    border-color: rgba(189, 87, 55, .22) !important;
    background: var(--parent-coral-soft) !important;
}

.parent-entry-code span {
    color: #9b6759 !important;
}

.parent-entry-help > a {
    color: #fff !important;
    border-color: var(--parent-coral) !important;
    background: var(--parent-coral) !important;
}

@media (max-width: 980px) {
    .parent-trust-section {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 700px) {
    .parent-preview-gallery {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .parent-preview-order {
        align-items: stretch;
        flex-direction: column;
    }

    .parent-preview-order > b {
        text-align: center;
    }
}

/* Unique presentation photography v39 */
.platform-home-body {
    --page-backdrop-photo: url("/static/portal/media/presentation-consultation-v34.webp");
}

.parent-public-body {
    --page-backdrop-photo: url("/static/portal/media/parent-backdrop-v39.webp");
    --page-backdrop-position: center 52%;
    --showcase-hero-photo: url("/static/portal/media/parent-hero-v39.webp");
    --showcase-photo-position: center 50%;
}

body.school-public-body:not(.parent-public-body) {
    --page-backdrop-photo: url("/static/portal/media/presentation-school.webp");
    --page-backdrop-position: center 50%;
    --showcase-hero-photo: url("/static/portal/media/school-hero-preparation-v58.webp");
    --showcase-photo-position: center 48%;
}

.photographer-overview-body {
    --page-backdrop-photo: url("/static/portal/media/presentation-production-v34.webp");
}

.solution-showcase-body {
    --page-backdrop-photo: url("/static/portal/media/presentation-studio.webp");
    --page-backdrop-position: center 48%;
    --showcase-hero-photo: url("/static/portal/media/solution-hero-v39.webp");
}

.pricing-showcase-body {
    --page-backdrop-photo: url("/static/portal/media/offers-backdrop-v39.webp");
    --page-backdrop-position: center 48%;
    --showcase-hero-photo: url("/static/portal/media/offers-hero-v39.webp");
    --showcase-photo-position: center 50%;
}

.software-showcase-body {
    --page-backdrop-photo: url("/static/portal/media/software-index-backdrop-v39.webp");
    --page-backdrop-position: center 50%;
    --showcase-hero-photo: url("/static/portal/media/software-index-hero-v39.webp");
    --showcase-photo-position: center 50%;
}

.software-detail-2shoot {
    --page-backdrop-photo: url("/static/portal/media/2shoot-backdrop-v39.webp");
    --page-backdrop-position: center 50%;
    --showcase-hero-photo: url("/static/portal/media/2shoot-hero-v39.webp");
    --showcase-photo-position: center 50%;
}

.software-detail-fornb {
    --page-backdrop-photo: url("/static/portal/media/fornb-backdrop-v39.webp");
    --page-backdrop-position: center 50%;
    --showcase-hero-photo: url("/static/portal/media/fornb-hero-v39.webp");
    --showcase-photo-position: center 50%;
}

.faq-showcase-body {
    --page-backdrop-photo: url("/static/portal/media/faq-backdrop-v39.webp");
    --page-backdrop-position: center 48%;
    --showcase-hero-photo: url("/static/portal/media/faq-hero-v39.webp");
    --showcase-photo-position: center 50%;
}

.contact-streamlined-body {
    --page-backdrop-photo: url("/static/portal/media/contact-backdrop-v39.webp");
    --page-backdrop-position: center 50%;
    --showcase-hero-photo: url("/static/portal/media/contact-hero-v39.webp");
    --showcase-photo-position: center 50%;
}

body.login-body .login-story-school {
    background:
        linear-gradient(180deg, rgba(10, 46, 54, .52), rgba(10, 46, 54, .86)),
        url("/static/portal/media/login-school-panel-v39.webp") center / cover no-repeat;
}

body.login-body .login-story-professional {
    background:
        linear-gradient(180deg, rgba(5, 31, 37, .46), rgba(5, 31, 37, .88)),
        url("/static/portal/media/login-professional-panel-v39.webp") center / cover no-repeat;
}

/* Stable navigation and first-render optimizations v40 */
:root {
    --public-header-height: 70px;
}

html {
    scroll-padding-top: calc(var(--public-header-height) + 1rem);
}

.landing-v31-body .topbar,
.school-public-body .topbar,
.public-showcase-body .topbar,
.public-showcase-body .photographer-public-topbar {
    position: sticky;
    isolation: isolate;
    z-index: 500;
    top: 0;
    width: 100%;
    min-height: var(--public-header-height);
    margin: 0 0 .75rem;
    padding: .5rem 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.landing-v31-body .topbar::before,
.school-public-body .topbar::before,
.public-showcase-body .topbar::before,
.public-showcase-body .photographer-public-topbar::before {
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    border-bottom: 1px solid rgba(11, 65, 72, .11);
    background: rgba(248, 251, 248, .96);
    box-shadow: 0 10px 30px rgba(10, 55, 61, .07);
    backdrop-filter: blur(16px);
    transform: translateX(-50%);
    content: "";
}

.landing-v31-body .brand,
.school-public-body .brand,
.public-showcase-body .photographer-public-brand,
.landing-v31-body .landing-nav-main,
.school-public-body .landing-nav-main,
.public-showcase-body .photographer-nav-main {
    border-color: transparent;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.landing-v31-body .page-content,
.school-public-body .page-content,
.public-showcase-body .page-content {
    padding-top: .25rem;
}

@supports (content-visibility: auto) {
    .landing-v31-body .page-content > section:not(:first-child),
    .school-public-body .page-content > section:not(:first-child),
    .public-showcase-body .page-content > section:not(:first-child) {
        content-visibility: auto;
        contain-intrinsic-size: auto 760px;
    }
}

@media (max-width: 1180px) {
    .landing-v31-body .topbar,
    .school-public-body .topbar,
    .public-showcase-body .topbar,
    .public-showcase-body .photographer-public-topbar {
        position: sticky;
        top: 0;
        min-height: 64px;
        margin-bottom: .55rem;
        padding: .4rem 0;
    }

    .landing-v31-body .topbar .public-topnav,
    .school-public-body .topbar .public-topnav,
    .public-showcase-body .photographer-public-topbar .public-topnav {
        top: calc(100% + .35rem);
        max-height: calc(100dvh - 78px);
    }
}

@media (max-width: 780px) {
    :root {
        --public-header-height: 60px;
    }

    .landing-v31-body .topbar,
    .school-public-body .topbar,
    .public-showcase-body .topbar,
    .public-showcase-body .photographer-public-topbar {
        min-height: var(--public-header-height);
        margin-bottom: .4rem;
    }

    .platform-home-body::after,
    .school-public-body::after,
    .public-showcase-body::before {
        position: absolute;
        background:
            radial-gradient(circle at 10% 5%, rgba(95, 207, 175, .16), transparent 20rem),
            radial-gradient(circle at 90% 28%, rgba(230, 154, 57, .12), transparent 22rem),
            linear-gradient(180deg, #f7faf7 0%, #eef4f1 58%, #f8f4ed 100%);
        background-attachment: scroll;
        filter: none;
    }

    .landing-v31-body .page-content,
    .school-public-body .page-content,
    .public-showcase-body .page-content {
        padding-top: 0;
    }
}

@media (max-width: 480px) {
    .landing-v31-body .public-menu-toggle b,
    .school-public-body .public-menu-toggle b,
    .public-showcase-body .public-menu-toggle b {
        display: none;
    }

    .landing-v31-body .public-menu-toggle,
    .school-public-body .public-menu-toggle,
    .public-showcase-body .public-menu-toggle {
        grid-template-columns: 18px;
        min-width: 44px;
        min-height: 44px;
        place-content: center;
        padding: .55rem;
    }
}

/* Responsive navigation and intrinsic sizing fixes v41 */
.landing-v31-body .topbar::before,
.school-public-body .topbar::before,
.public-showcase-body .topbar::before,
.public-showcase-body .photographer-public-topbar::before {
    right: 0;
    left: 0;
    width: auto;
    background: rgba(248, 251, 248, .96);
    box-shadow: 0 0 0 100vmax rgba(248, 251, 248, .96);
    clip-path: inset(0 -100vmax);
    transform: none;
}

.landing-v31-body .page-content,
.school-public-body .page-content,
.public-showcase-body .page-content,
.landing-v31-body .page-content > *,
.school-public-body .page-content > *,
.public-showcase-body .page-content > * {
    min-width: 0;
}

@media (max-width: 900px) {
    .landing-v31-body .topbar,
    .school-public-body .topbar,
    .public-showcase-body .topbar,
    .public-showcase-body .photographer-public-topbar {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: space-between;
    }

    .landing-v31-body .page-content > *,
    .school-public-body .page-content > *,
    .public-showcase-body .page-content > * {
        width: 100%;
        max-width: 100%;
    }

    .landing-v31-hero,
    .landing-v31-hero > *,
    .landing-v31-hero-copy > *,
    .landing-v31-actions,
    .landing-v31-proof,
    .landing-v31-section-head,
    .landing-v31-space-grid,
    .landing-v31-tool-grid,
    .landing-v31-final-actions {
        min-width: 0;
        max-width: 100%;
    }
}

@media (max-width: 620px) {
    .landing-v31-body .topbar,
    .school-public-body .topbar,
    .public-showcase-body .topbar,
    .public-showcase-body .photographer-public-topbar {
        flex-wrap: nowrap;
    }

    .landing-v31-body .topbar > .topnav:not(.public-topnav),
    .school-public-body .topbar > .topnav:not(.public-topnav),
    .public-showcase-body .topbar > .topnav:not(.public-topnav) {
        width: auto;
        min-width: 0;
        flex-wrap: nowrap;
        gap: .2rem;
        padding: .2rem;
    }

    .landing-v31-body .topbar > .topnav:not(.public-topnav) > a,
    .school-public-body .topbar > .topnav:not(.public-topnav) > a,
    .public-showcase-body .topbar > .topnav:not(.public-topnav) > a {
        min-height: 40px;
        padding: .5rem .58rem;
        font-size: .7rem;
        white-space: nowrap;
    }

    .landing-v31-hero,
    .landing-v31-spaces,
    .landing-v31-journey,
    .landing-v31-tools,
    .landing-v31-final,
    .landing-v31-footer {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .landing-v31-hero-copy,
    .landing-v31-hero-visual,
    .landing-v31-hero-visual > img,
    .landing-v31-actions,
    .landing-v31-proof {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }
}

/* Keep the Errailium palette authoritative after legacy presentation rules. */
:root {
    --ink: #10213d;
    --muted: #667187;
    --paper: #fbf8f1;
    --line: rgba(7, 26, 56, .13);
    --amber: #d8a43a;
    --teal: #163b6d;
    --coral: #a96c13;
}

.public-body,
.public-showcase-body {
    --public-ink: #10213d;
    --public-deep: #071a38;
    --public-teal: #163b6d;
    --public-mint: #d8a43a;
    --public-sand: #efd28e;
    --public-paper: #fbf8f1;
    --showcase-ink: #10213d;
    --showcase-muted: #667187;
    --showcase-line: rgba(7, 26, 56, .13);
    --showcase-mint: #d8a43a;
    --showcase-mint-dark: #163b6d;
    --showcase-warm: #a96c13;
    --showcase-paper: #fbf8f1;
}

.platform-home-body {
    --platform-deep: #071a38;
    --platform-ink: #10213d;
    --platform-teal: #163b6d;
    --platform-mint: #d8a43a;
    --platform-sand: #a96c13;
    --platform-cream: #f7edda;
    --landing-ink: #10213d;
    --landing-muted: #667187;
    --landing-line: rgba(7, 26, 56, .13);
    --landing-paper: #fbf8f1;
    --landing-mint: #d8a43a;
    --landing-mint-dark: #163b6d;
    --landing-amber: #a96c13;
    --landing-deep: #071a38;
}

.school-public-body {
    --school-deep: #071a38;
    --school-gold: #d8a43a;
}

.parent-public-body {
    --parent-coral: #a96c13;
    --parent-coral-dark: #81500c;
    --parent-coral-soft: #f7edda;
    --parent-teal: #163b6d;
    --parent-ink: #10213d;
}

.brand-copy strong { color: #071a38; }
.brand-copy small { color: #a96c13; }

.landing-v31-body .topbar::before,
.school-public-body .topbar::before,
.public-showcase-body .topbar::before,
.public-showcase-body .photographer-public-topbar::before {
    border-bottom-color: rgba(7, 26, 56, .12);
    background: rgba(251, 248, 241, .96);
    box-shadow: 0 10px 34px rgba(7, 26, 56, .08);
}

.landing-v31-journey,
.landing-v31-final {
    background:
        radial-gradient(circle at 88% 10%, rgba(216, 164, 58, .2), transparent 25rem),
        linear-gradient(145deg, #102b52, #071a38);
}

.platform-home-body .topnav .landing-nav-link:hover,
.platform-home-body .topnav .landing-nav-link:focus-visible,
.school-public-body .topnav .landing-nav-link:hover,
.school-public-body .topnav .landing-nav-link:focus-visible,
.public-showcase-body .photographer-public-topbar .photographer-nav-link:hover,
.public-showcase-body .photographer-public-topbar .photographer-nav-link:focus-visible,
.photographer-nav-dropdown > summary:hover,
.photographer-nav-dropdown > summary:focus-visible {
    color: #071a38;
    background: #f7edda;
}

.platform-home-body .topnav .landing-nav-link.is-current,
.school-public-body .topnav .landing-nav-link.is-current,
.public-showcase-body .photographer-public-topbar .photographer-nav-link.is-current,
.photographer-nav-dropdown.is-current > summary {
    color: #071a38;
    background: #fff;
    box-shadow: 0 5px 16px rgba(7, 26, 56, .11), inset 0 0 0 1px rgba(7, 26, 56, .07);
}

.platform-home-body .topnav .landing-nav-link.is-current::after,
.school-public-body .topnav .landing-nav-link.is-current::after,
.public-showcase-body .photographer-public-topbar .photographer-nav-link.is-current::after,
.photographer-nav-dropdown.is-current > summary::before {
    background: #d8a43a;
}

.platform-home-body .topnav .landing-login-parent,
.school-public-body .topnav .landing-login-parent {
    color: #81500c;
    border-color: rgba(216, 164, 58, .3);
    background: #f7edda;
}

.platform-home-body .topnav .landing-login-school,
.school-public-body .topnav .landing-login-school {
    color: #624315;
    border-color: rgba(216, 164, 58, .3);
    background: #fff9ee;
}

.platform-home-body .topnav .landing-login-photo,
.public-showcase-body .photographer-public-topbar .photographer-login-link {
    color: #fff;
    border-color: #071a38;
    background: #071a38;
}

.platform-home-body .topnav .landing-login:hover,
.platform-home-body .topnav .landing-login:focus-visible,
.school-public-body .topnav .landing-login:hover,
.school-public-body .topnav .landing-login:focus-visible,
.public-showcase-body .photographer-public-topbar .photographer-login-link:hover,
.public-showcase-body .photographer-public-topbar .photographer-login-link:focus-visible {
    color: #071a38;
    border-color: #d8a43a;
    background: #d8a43a;
}

.landing-v31-kicker,
.public-showcase-body .photographer-overview-hero .public-kicker,
.public-showcase-body .software-index-hero .public-kicker,
.public-showcase-body .software-hero .public-kicker {
    color: #d8a43a;
}

.landing-v31-section-head.is-light .landing-v31-kicker,
.photographer-overview-facts dt,
.photographer-visual-card > span {
    color: #edcf86;
}

.public-showcase-body .photographer-overview-hero {
    background:
        radial-gradient(circle at 3% 100%, rgba(216, 164, 58, .18), transparent 25rem),
        radial-gradient(circle at 94% 0, rgba(255, 255, 255, .08), transparent 24rem),
        linear-gradient(132deg, #173b6d 0%, #0d294f 58%, #071a38 100%);
    box-shadow: 0 34px 86px rgba(7, 26, 56, .24);
}

.photographer-overview-visual {
    background: #0b2242;
}

.photographer-overview-visual::after {
    background: linear-gradient(180deg, rgba(7, 26, 56, .05), rgba(7, 26, 56, .64));
}

.photographer-visual-card {
    border-color: rgba(216, 164, 58, .25);
    background: rgba(7, 26, 56, .82);
}

.school-entry-trust b {
    background: #163b6d;
}

@media (max-width: 430px) {
    .platform-home-body .brand > .brand-copy:last-child {
        display: grid !important;
    }
}

.public-showcase-body .public-kicker {
    color: #a96c13;
}

.public-showcase-body .software-index-hero .public-kicker,
.public-showcase-body .software-hero .public-kicker,
.public-showcase-body .photographer-overview-hero .public-kicker,
.public-showcase-body .showcase-role-section .public-kicker,
.public-showcase-body .showcase-simulator .public-kicker {
    color: #edcf86;
}

.public-showcase-body .software-index-hero,
.public-showcase-body .software-hero {
    background:
        radial-gradient(circle at 3% 100%, rgba(216, 164, 58, .18), transparent 24rem),
        radial-gradient(circle at 100% 0, rgba(255, 255, 255, .08), transparent 23rem),
        linear-gradient(132deg, #173b6d 0%, #0d294f 58%, #071a38 100%);
}

.public-showcase-body .software-index-hero::after,
.public-showcase-body .software-hero::after {
    background:
        linear-gradient(90deg, rgba(7, 26, 56, .98) 0%, rgba(13, 41, 79, .9) 46%, rgba(7, 26, 56, .28) 76%, rgba(7, 26, 56, .1) 100%),
        var(--showcase-hero-photo);
    background-position: center, var(--showcase-photo-position, center);
    background-size: cover;
}

.showcase-offer-card.is-featured {
    border-color: rgba(216, 164, 58, .55);
    background:
        radial-gradient(circle at 100% 0, rgba(216, 164, 58, .15), transparent 13rem),
        #f5f8fc;
}

.showcase-offer-card.is-featured header b,
.software-index-copy header b {
    color: #624315;
    background: #f7edda;
}

.contact-simple-steps li > span,
.showcase-contact-progress span.is-active,
.showcase-contact-progress span.is-complete {
    color: #fff;
    border-color: #163b6d;
    background: #163b6d;
}

.showcase-contact-progress i {
    background: rgba(22, 59, 109, .18);
}

.contact-formula-choice label:has(input:checked),
.contact-software-choice label:has(input:checked),
.public-formula-choice.is-selected,
.public-request-option.is-selected {
    border-color: #163b6d;
    background: #e9eef5;
    box-shadow: 0 0 0 3px rgba(22, 59, 109, .08);
}

.public-formula-choice.is-selected > span::after,
.public-request-option.is-selected > span::after {
    border-color: #163b6d;
    background: #163b6d;
}

/* Final Errailium color audit: remove the remaining legacy teal hierarchy. */
.school-public-body {
    color: #10213d;
    background:
        radial-gradient(circle at 0% 0%, rgba(216, 164, 58, .2), transparent 29rem),
        radial-gradient(circle at 100% 40%, rgba(22, 59, 109, .12), transparent 32rem),
        #f7f5ef;
}

.school-entry-hero h1,
.school-public-body h2,
.parent-public-body h2 {
    color: #071a38;
}

.school-entry-lead,
.school-entry-back,
.public-showcase-body .photographer-public-topbar .photographer-nav-link,
.photographer-nav-dropdown > summary,
.public-showcase-body .photographer-nav-dropdown-panel small {
    color: #667187;
}

.public-showcase-body .photographer-nav-dropdown-panel a {
    color: #163b6d;
}

.public-showcase-body .photographer-nav-dropdown-panel a:hover,
.public-showcase-body .photographer-nav-dropdown-panel a:focus-visible {
    color: #071a38;
    background: #f7edda;
}

.pricing-rules dt,
.software-index-route b,
.software-index-hero .public-kicker,
.showcase-role-section .public-kicker,
.showcase-role-section .public-text-link {
    color: #edcf86;
}

.pricing-rules dt {
    color: #163b6d;
}

.pricing-rules dd {
    color: #667187;
}

.showcase-role-section {
    background:
        radial-gradient(circle at 8% 100%, rgba(216, 164, 58, .2), transparent 23rem),
        linear-gradient(135deg, #102b52, #071a38);
    box-shadow: 0 34px 80px rgba(7, 26, 56, .22);
}

.login-body {
    --login-school: #d8a43a;
    --login-teal: #163b6d;
    --login-deep: #071a38;
    color: #10213d;
}

.login-body-school {
    background:
        radial-gradient(circle at 0% 0%, rgba(216, 164, 58, .22), transparent 36rem),
        radial-gradient(circle at 100% 100%, rgba(22, 59, 109, .12), transparent 36rem),
        #f7f5ef;
}

.login-body-professional {
    background:
        radial-gradient(circle at 0% 100%, rgba(22, 59, 109, .18), transparent 38rem),
        radial-gradient(circle at 100% 0%, rgba(216, 164, 58, .12), transparent 38rem),
        #f3f5f8;
}

.login-story-professional .login-story-copy .eyebrow,
.login-story-professional .login-story-foot,
.login-story-professional .login-role-card > i {
    color: #edcf86;
}

.login-role-card.is-photographer,
.login-role-card > i {
    border-color: rgba(22, 59, 109, .16);
    background: #edf1f7;
}

/* Unified Errailium component palette v48. */
:root {
    --errailium-navy: #071a38;
    --errailium-blue: #163b6d;
    --errailium-ink: #10213d;
    --errailium-muted: #667187;
    --errailium-gold: #d8a43a;
    --errailium-gold-dark: #a96c13;
    --errailium-ivory: #fbf8f1;
    --errailium-gold-soft: #f7edda;
    --errailium-blue-soft: #edf1f7;
    --errailium-line: rgba(7, 26, 56, .13);
    --errailium-shadow: rgba(7, 26, 56, .09);
}

.platform-home-body::after,
.school-public-body::after,
.public-showcase-body::before {
    background:
        radial-gradient(circle at 5% 2%, rgba(216, 164, 58, .14), transparent 28rem),
        radial-gradient(circle at 96% 30%, rgba(22, 59, 109, .1), transparent 34rem),
        linear-gradient(180deg, #fbf8f1 0%, #f3f5f8 58%, #fbf8f1 100%);
}

.platform-home-body .landing-nav-link,
.school-public-body .landing-nav-link,
.public-showcase-body .photographer-nav-link,
.public-showcase-body .photographer-nav-dropdown > summary {
    color: var(--errailium-muted);
}

/* Home */
.landing-v31-button.is-secondary,
.platform-home-body main .landing-v31-space-actions a {
    color: var(--errailium-blue);
    border-color: var(--errailium-line);
    background: rgba(255, 255, 255, .86);
}

.landing-v31-proof small,
.landing-v31-visual-label small,
.landing-v31-space-card li,
.landing-v31-tool small,
.landing-v31-tool-stage {
    color: var(--errailium-muted);
}

.landing-v31-hero-visual {
    background: var(--errailium-blue-soft);
}

.landing-v31-hero-visual::after {
    background:
        linear-gradient(90deg, rgba(251, 248, 241, .2), transparent 28%),
        linear-gradient(180deg, transparent 45%, rgba(7, 26, 56, .68) 100%);
}

.landing-v31-visual-label {
    color: var(--errailium-ink);
    border-color: rgba(255, 255, 255, .72);
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 18px 40px var(--errailium-shadow);
}

.landing-v31-visual-label.is-family i,
.landing-v31-space-card.is-photo .landing-v31-space-icon,
.landing-v31-tool.is-family .landing-v31-tool-mark {
    background: var(--errailium-blue);
}

.landing-v31-visual-label.is-school i,
.landing-v31-space-card.is-school .landing-v31-space-icon,
.landing-v31-tool.is-production .landing-v31-tool-mark {
    color: var(--errailium-navy);
    background: var(--errailium-gold);
}

.landing-v31-space-card,
.landing-v31-tool,
.landing-v31-final {
    border-color: var(--errailium-line);
    background-color: rgba(255, 255, 255, .9);
    box-shadow: 0 20px 52px var(--errailium-shadow);
}

.landing-v31-space-card.is-school::before,
.landing-v31-space-card.is-parent::before {
    background: rgba(216, 164, 58, .14);
}

.landing-v31-space-card.is-photo::before {
    background: rgba(22, 59, 109, .12);
}

.landing-v31-space-number {
    color: rgba(7, 26, 56, .15);
}

.landing-v31-space-card p,
.landing-v31-space-card.is-school p,
.landing-v31-space-card.is-parent p {
    color: var(--errailium-gold-dark);
}

.landing-v31-space-card li::before,
.landing-v31-space-card.is-school li::before,
.landing-v31-space-card.is-parent li::before {
    background: var(--errailium-gold);
}

.landing-v31-space-card.is-school .landing-v31-space-main,
.landing-v31-space-card.is-parent .landing-v31-space-main {
    border-color: var(--errailium-gold-dark) !important;
    background: var(--errailium-gold-dark) !important;
}

.landing-v31-section-head.is-light .landing-v31-kicker {
    color: #edcf86;
}

.landing-v31-journey-line li > span {
    color: var(--errailium-navy);
    border-color: rgba(216, 164, 58, .42);
    background: var(--errailium-gold);
    box-shadow: 0 0 0 6px var(--errailium-navy);
}

.landing-v31-tool-stage {
    background: var(--errailium-blue-soft);
}

/* School and parent pages */
.school-entry-back,
.school-entry-lead,
.school-entry-preview,
.school-entry-features p,
.school-features-intro > p,
.school-partner-copy > p,
.school-partner-copy li small,
.parent-trust-section p,
.parent-trust-section li {
    color: var(--errailium-muted);
}

.school-entry-hero,
.school-entry-preview,
.school-entry-features article,
.school-partner-form-card,
.parent-trust-section article {
    border-color: var(--errailium-line);
    background-color: rgba(255, 255, 255, .88);
    box-shadow: 0 20px 54px var(--errailium-shadow);
}

.school-entry-trust b,
.school-preview-progress > i span,
.school-preview-note span,
.school-partner-note span,
.school-partner-copy li > span {
    color: #fff;
    background: var(--errailium-blue);
}

.school-preview-heading span,
.school-preview-progress span,
.school-preview-progress b,
.school-entry-preview li small,
.school-entry-preview li b,
.school-preview-note,
.school-partner-form-card header span,
.school-partner-privacy {
    color: var(--errailium-muted);
}

.school-preview-heading em,
.school-partner-form-card header p,
.school-partner-copy .gateway-kicker,
.school-features-intro .gateway-kicker {
    color: var(--errailium-gold-dark);
}

.school-editorial-story,
.school-story-copy {
    color: #fff;
    border-color: rgba(216, 164, 58, .2);
    background:
        radial-gradient(circle at 90% 10%, rgba(216, 164, 58, .18), transparent 18rem),
        linear-gradient(145deg, #102b52, var(--errailium-navy));
    box-shadow: 0 26px 70px rgba(7, 26, 56, .2);
}

.school-editorial-story figure::after {
    background: linear-gradient(180deg, transparent 60%, rgba(7, 26, 56, .76));
}

.school-editorial-story figcaption {
    background: rgba(7, 26, 56, .78);
}

.school-editorial-story figcaption span,
.school-story-copy li > span {
    color: var(--errailium-navy);
    background: var(--errailium-gold);
}

.school-story-copy .gateway-kicker {
    color: #edcf86;
}

.school-story-copy > p:not(.gateway-kicker),
.school-story-copy li small {
    color: rgba(255, 255, 255, .72);
}

.school-story-copy li {
    border-top-color: rgba(255, 255, 255, .15);
}

.school-feature-icon {
    color: var(--errailium-gold-dark);
    background: var(--errailium-gold-soft);
}

.school-feature-top > b {
    color: var(--errailium-blue);
}

.school-partner-contact,
.school-partner-copy li,
.school-partner-form-card fieldset,
.school-partner-consent {
    border-color: var(--errailium-line);
}

.school-partner-shortcut,
.school-partner-form-card legend {
    color: var(--errailium-blue);
}

.school-partner-input,
.login-stage .field-input {
    color: var(--errailium-ink);
    border-color: var(--errailium-line);
    background: #fff;
}

.school-partner-input:focus,
.login-stage .field-input:focus {
    border-color: var(--errailium-blue);
    outline-color: rgba(22, 59, 109, .12);
}

/* Shared photographer presentation components */
.public-showcase-body .public-text-link,
.showcase-module-disclosure summary,
.showcase-module-list b,
.showcase-software-summary a b,
.showcase-option-columns article b,
.showcase-option-columns article a,
.software-index-actions .public-text-link {
    color: var(--errailium-blue);
}

.photographer-campaign-steps li > span,
.photographer-space-cards header > span,
.photographer-software-route > a > span,
.photographer-software-route > div > span,
.showcase-process-grid li > span,
.showcase-configured-flow article > span,
.software-facts article > span,
.software-commercial-grid article > span,
.faq-groups header > span {
    color: var(--errailium-blue);
    background: var(--errailium-blue-soft);
}

.photographer-campaign-steps li:nth-child(2n) > span,
.showcase-process-grid li:nth-child(3n+2) > span,
.showcase-configured-flow article:nth-child(2n) > span {
    color: var(--errailium-gold-dark);
    background: var(--errailium-gold-soft);
}

.photographer-campaign-steps li,
.photographer-space-cards article,
.photographer-software-route > a,
.photographer-software-route > div,
.showcase-process-grid li,
.showcase-configured-flow article,
.showcase-connected-line > a,
.showcase-offer-card,
.showcase-module-disclosure,
.showcase-software-summary,
.software-facts article,
.software-commercial-grid article,
.faq-groups details,
.faq-layout > nav,
.contact-simple-steps > div,
.showcase-contact-form {
    border-color: var(--errailium-line);
    box-shadow: 0 18px 48px var(--errailium-shadow);
}

.photographer-campaign-steps p,
.photographer-space-cards p,
.photographer-space-cards li,
.photographer-software-route p,
.showcase-offer-card li,
.software-workflow-copy li,
.software-index-copy dt,
.software-facts p,
.faq-groups details p {
    color: var(--errailium-muted);
}

.photographer-offer-list .is-featured,
.showcase-offer-card.is-featured {
    border-color: rgba(216, 164, 58, .5);
    background:
        radial-gradient(circle at 100% 0, rgba(216, 164, 58, .14), transparent 16rem),
        #f7f9fc;
    box-shadow: 0 24px 62px rgba(7, 26, 56, .11);
}

.photographer-offer-list .is-featured b,
.showcase-offer-card > header b,
.software-index-copy > header b {
    color: var(--errailium-gold-dark);
    background: var(--errailium-gold-soft);
}

.showcase-process-grid li::after {
    background: rgba(22, 59, 109, .07);
}

.showcase-process-grid li:nth-child(3n+2)::after {
    background: rgba(216, 164, 58, .1);
}

.showcase-process-grid li:hover,
.showcase-connected-line > a:hover {
    border-color: rgba(22, 59, 109, .26);
    box-shadow: 0 22px 55px rgba(7, 26, 56, .11);
}

.showcase-role-list article > span {
    color: var(--errailium-navy);
    background: var(--errailium-gold);
}

.showcase-role-section .public-text-link,
.showcase-simulator .public-kicker,
.showcase-simulator-result > span,
.software-index-route b,
.software-hero .public-kicker {
    color: #edcf86;
}

.showcase-connected-line > a {
    background: linear-gradient(145deg, #fff, var(--errailium-blue-soft));
}

.showcase-connected-line > i {
    color: var(--errailium-muted);
}

.showcase-final-cta {
    border-color: var(--errailium-line);
    background:
        radial-gradient(circle at 95% 5%, rgba(216, 164, 58, .18), transparent 18rem),
        var(--errailium-ivory);
}

.showcase-footer a:hover {
    color: var(--errailium-blue);
}

/* Offers */
.showcase-offer-card li::before,
.showcase-option-summary > article > span,
.showcase-module-disclosure summary i,
.showcase-software-summary a b {
    color: var(--errailium-blue);
}

.showcase-module-disclosure details,
.showcase-module-list > div,
.showcase-software-summary a {
    border-color: var(--errailium-line);
}

.showcase-simulator {
    background:
        radial-gradient(circle at 2% 100%, rgba(216, 164, 58, .2), transparent 22rem),
        linear-gradient(135deg, #102b52, var(--errailium-navy));
    box-shadow: 0 34px 80px rgba(7, 26, 56, .22);
}

.showcase-simulator-controls select {
    border-color: rgba(255, 255, 255, .18);
    background: #163b6d;
}

.showcase-simulator-controls input[type="range"] {
    accent-color: var(--errailium-gold);
}

/* Software */
.software-index-card {
    border-color: var(--errailium-line);
    box-shadow: 0 24px 65px var(--errailium-shadow);
}

.software-index-copy > header span,
.software-workflow-map b {
    color: var(--errailium-blue);
}

.software-workflow-map > span,
.software-pricing,
.software-commercial-grid article {
    border-color: var(--errailium-line);
}

.software-workflow-map b {
    background: var(--errailium-blue-soft);
}

.software-compatibility-strip {
    background:
        radial-gradient(circle at 95% 0, rgba(216, 164, 58, .16), transparent 18rem),
        linear-gradient(135deg, #163b6d, var(--errailium-navy));
}

/* FAQ and contact */
.faq-hero aside,
.faq-layout > nav,
.faq-groups details,
.contact-simple-steps > div,
.showcase-contact-form {
    border-color: var(--errailium-line);
}

.faq-groups header > span,
.contact-simple-steps li > span {
    color: #fff;
    background: var(--errailium-blue);
}

.faq-layout > nav a,
.faq-groups summary i {
    color: var(--errailium-blue);
}

.showcase-contact-progress span {
    color: var(--errailium-muted);
    border-color: var(--errailium-line);
    background: #fff;
}

.showcase-contact-progress span.is-active,
.showcase-contact-progress span.is-complete {
    color: #fff;
    border-color: var(--errailium-blue);
    background: var(--errailium-blue);
}

.showcase-contact-fields label > span,
.showcase-contact-review span,
.showcase-contact-form fieldset > footer > span {
    color: var(--errailium-muted);
}

/* Login */
body.login-body .login-story-school {
    background:
        linear-gradient(180deg, rgba(7, 26, 56, .54), rgba(7, 26, 56, .9)),
        url("/static/portal/media/login-school-panel-v39.webp") center / cover no-repeat;
}

body.login-body .login-story-professional {
    background:
        linear-gradient(180deg, rgba(7, 26, 56, .5), rgba(7, 26, 56, .92)),
        url("/static/portal/media/login-professional-panel-v39.webp") center / cover no-repeat;
}

.login-story-window,
.login-role-card {
    color: var(--errailium-ink);
    border-color: var(--errailium-line);
}

.login-story-window-head {
    color: var(--errailium-muted);
    background: var(--errailium-blue-soft);
}

.login-story-school-status {
    background: var(--errailium-gold-soft);
}

.login-story-school-status span,
.login-story-school-status em {
    color: var(--errailium-gold-dark);
}

.login-story-line > i,
.login-story-line > strong {
    color: var(--errailium-blue);
}

.login-story-line.is-active > i,
.login-story-line.is-active > strong {
    color: #fff;
    background: var(--errailium-blue);
}

.login-role-card,
.login-role-card.is-photographer {
    background: #f7f8fb;
}

.login-role-card > i,
.login-role-card.is-photographer > i {
    color: var(--errailium-blue);
    background: var(--errailium-blue-soft);
}

.login-role-card small,
.login-role-card em,
.simple-login-card label,
.simple-login-switch {
    color: var(--errailium-muted);
}

.simple-login-card .eyebrow,
.simple-login-switch a {
    color: var(--errailium-blue);
}

.simple-parent-access {
    color: var(--errailium-gold-dark);
    border-color: rgba(216, 164, 58, .28);
    background: var(--errailium-gold-soft);
}

/* Resolve higher-specificity legacy component colors. */
.brand,
.brand-emblem {
    color: var(--errailium-navy);
}

.platform-home-body .topnav .landing-nav-link,
.school-public-body .topnav .landing-nav-link {
    color: var(--errailium-muted);
}

.platform-home-body .topnav .landing-nav-link:hover,
.platform-home-body .topnav .landing-nav-link:focus-visible,
.school-public-body .topnav .landing-nav-link:hover,
.school-public-body .topnav .landing-nav-link:focus-visible {
    color: var(--errailium-blue);
    background: var(--errailium-blue-soft);
}

.platform-home-body .topnav .landing-nav-link.is-current,
.school-public-body .topnav .landing-nav-link.is-current {
    color: var(--errailium-navy);
}

.platform-home-body .topnav .landing-nav-link.is-current::after,
.school-public-body .topnav .landing-nav-link.is-current::after {
    background: var(--errailium-gold);
}

.landing-v31-footer a {
    color: var(--errailium-muted);
}

.landing-v31-space-card strong b {
    color: var(--errailium-blue);
    background: var(--errailium-blue-soft);
}

.school-public-body .school-entry-trust span,
.parent-public-body .school-entry-trust span {
    color: var(--errailium-muted);
    border-color: var(--errailium-line);
    background: rgba(255, 255, 255, .76);
}

.school-public-body .school-partner-shortcut,
.parent-public-body .school-partner-shortcut {
    color: var(--errailium-blue);
}

.school-public-body .school-entry-preview header i {
    background: var(--errailium-gold);
    box-shadow: 0 0 0 .32rem rgba(216, 164, 58, .14);
}

.school-public-body .school-preview-heading em {
    color: var(--errailium-gold-dark);
    background: var(--errailium-gold-soft);
}

.school-public-body .school-preview-progress > div b,
.parent-public-body .parent-preview-gallery b {
    color: var(--errailium-ink);
}

.school-public-body .school-preview-progress > i {
    background: var(--errailium-blue-soft);
}

.school-public-body .school-partner-copy li > span {
    color: #fff;
    background: var(--errailium-blue);
}

.school-public-body .school-partner-copy li strong,
.school-public-body .school-partner-form-card > header > h3 {
    color: var(--errailium-ink);
}

.school-public-body .school-partner-note {
    border-color: rgba(216, 164, 58, .24);
    background: var(--errailium-gold-soft);
}

.school-public-body .school-partner-form-card > header {
    border-color: var(--errailium-line);
    background: linear-gradient(135deg, #fff, var(--errailium-blue-soft));
}

.school-public-body .school-partner-form-card > header > p {
    color: var(--errailium-gold-dark);
}

.school-public-body .school-partner-form label > span,
.school-public-body .school-partner-consent > span {
    color: var(--errailium-muted);
}

.school-public-body .school-partner-form > button {
    background: var(--errailium-blue);
    box-shadow: 0 12px 28px rgba(7, 26, 56, .15);
}

.school-public-body .school-partner-form > button:hover,
.school-public-body .school-partner-form > button:focus-visible {
    background: var(--errailium-navy);
}

.school-public-body .school-partner-consent input {
    accent-color: var(--errailium-blue);
}

.public-showcase-body .photographer-overview-visual > i {
    background: var(--errailium-gold);
}

.public-showcase-body .photographer-campaign-image,
.public-showcase-body .showcase-hero-visual {
    background-color: var(--errailium-blue-soft);
}

.public-showcase-body .photographer-space-cards article.is-studio {
    background:
        radial-gradient(circle at 100% 0, rgba(216, 164, 58, .18), transparent 15rem),
        var(--errailium-navy);
}

.public-showcase-body .photographer-space-cards .is-studio header small,
.public-showcase-body .photographer-software-route small {
    color: #edcf86;
}

.public-showcase-body .photographer-space-cards article > a,
.public-showcase-body .photographer-offer-list article > a {
    color: var(--errailium-blue);
}

.public-showcase-body .showcase-module-disclosure > i {
    color: #fff;
    background: var(--errailium-blue);
}

.public-showcase-body .software-index-copy > header > span {
    color: var(--errailium-blue);
    background: var(--errailium-blue-soft);
}

.public-showcase-body .software-index-logo > span {
    color: var(--errailium-navy);
}

.public-showcase-body .faq-groups header > span {
    color: #fff;
    background: var(--errailium-blue);
}

.public-showcase-body .contact-software-choice > span {
    color: var(--errailium-muted);
}

body.login-body .login-story-foot > span {
    background: var(--errailium-gold);
}

body.login-body .login-stage .simple-login-card-professional .simple-login-head .eyebrow {
    color: var(--errailium-blue);
}

body.login-body .login-stage .simple-field > label {
    color: var(--errailium-muted);
}

body.login-body .login-stage .field-input {
    color: var(--errailium-ink);
}

.platform-home-body .landing-v31-final-actions .landing-v31-final-school strong b {
    color: var(--errailium-blue);
    background: var(--errailium-blue-soft);
}

.platform-home-body .landing-v31-footer a {
    color: var(--errailium-muted);
}

.school-public-body .school-partner-copy ol li > span {
    color: #fff;
    background: var(--errailium-blue);
}

.public-showcase-body .photographer-overview-visual figcaption > i {
    background: var(--errailium-gold);
}

.public-showcase-body .showcase-option-summary > article.showcase-module-disclosure summary > i {
    color: #fff;
    background: var(--errailium-blue);
}

.public-showcase-body .software-hero .software-logo-stage > span {
    color: var(--errailium-navy);
}

/* Contrast pass for small labels and dark callouts. */
:root {
    --errailium-muted: #5f6b82;
    --errailium-gold-dark: #945707;
    --muted: #5f6b82;
    --coral: #945707;
}

.public-body,
.public-showcase-body {
    --public-warm: #945707;
    --showcase-muted: #5f6b82;
    --showcase-warm: #945707;
}

.platform-home-body {
    --landing-muted: #5f6b82;
    --landing-amber: #945707;
}

.parent-public-body {
    --parent-coral: #945707;
    --parent-coral-dark: #81500c;
}

.landing-login-parent small,
.landing-login-school small {
    color: var(--errailium-gold-dark);
}

.platform-home-body .landing-v31-journey .landing-v31-journey-line li > span,
.school-public-body .school-entry-preview li.is-complete > span,
.parent-public-body .parent-trust-section li > span {
    color: var(--errailium-navy);
}

.school-public-body .school-entry-help h2,
.parent-public-body .school-entry-help h2 {
    color: #fff;
}

.school-public-body .school-entry-help .gateway-kicker,
.parent-public-body .school-entry-help .gateway-kicker {
    color: #edcf86;
}

.school-public-body .school-entry-help div > p:last-child,
.parent-public-body .school-entry-help div > p:last-child {
    color: rgba(255, 255, 255, .76);
}

.parent-public-body .school-entry-code > span {
    color: var(--errailium-gold-dark);
}

body.login-body .login-story-window-head b {
    color: var(--errailium-ink);
}

body.login-body .simple-parent-access > span,
body.login-body .simple-parent-access > strong,
body.login-body .simple-parent-access > i {
    color: var(--errailium-gold-dark);
}

.brand-copy,
.public-menu-toggle {
    color: var(--errailium-navy);
}

.public-menu-toggle > span {
    background: var(--errailium-navy);
}

.public-showcase-body .software-index-logo {
    display: grid;
}

.public-showcase-body .software-index-logo > img,
.public-showcase-body .software-index-logo > .software-index-logo-fallback {
    grid-area: 1 / 1;
}

.public-showcase-body .software-index-logo > .software-index-logo-fallback {
    z-index: 0;
    align-self: center;
    justify-self: center;
    color: var(--errailium-navy);
}

.public-showcase-body .software-index-logo > img {
    position: relative;
    z-index: 1;
    opacity: 0;
    transition: opacity .18s ease;
}

.public-showcase-body .software-index-logo > img.is-ready {
    opacity: 1;
}

body.platform-home-body .brand,
body.school-public-body .brand,
body.public-showcase-body .brand,
.public-showcase-body .software-index-logo > img {
    color: var(--errailium-navy);
}

/* Readability audit v54: keep small copy and dark-panel text fully legible. */
.brand-copy small {
    color: #81500c;
}

.platform-home-body .landing-v31-kicker,
.school-public-body .school-entry-hero .gateway-kicker,
.parent-public-body .school-entry-hero .gateway-kicker,
.school-public-body .school-features-intro .gateway-kicker,
.parent-public-body .school-features-intro .gateway-kicker,
.school-public-body .school-partner-copy > .gateway-kicker,
.public-showcase-body .public-kicker {
    color: #81500c;
}

.platform-home-body .landing-v31-section-head.is-light .landing-v31-kicker,
.school-public-body .school-story-copy .gateway-kicker,
.parent-public-body .school-story-copy .gateway-kicker,
.public-showcase-body .photographer-overview-hero .public-kicker,
.public-showcase-body .software-index-hero .public-kicker,
.public-showcase-body .software-hero .public-kicker,
.public-showcase-body .showcase-role-section .public-kicker,
.public-showcase-body .showcase-simulator .public-kicker {
    color: #edcf86;
}

.school-public-body .school-story-copy h2,
.parent-public-body .school-story-copy h2 {
    color: #fff;
}

.school-public-body .school-entry-actions > span,
.parent-public-body .school-entry-actions > span,
.school-public-body .school-entry-features article > small,
.parent-public-body .school-entry-features article > small,
.parent-public-body .parent-preview-order span {
    color: #536078;
}

.school-public-body .school-entry-actions > span,
.parent-public-body .school-entry-actions > span {
    font-size: .78rem;
}

.school-public-body .school-entry-features article > small,
.parent-public-body .school-entry-features article > small {
    font-size: .72rem;
    letter-spacing: .075em;
}

.parent-public-body .parent-preview-order span {
    font-size: .72rem;
}

.parent-public-body .parent-trust-section li > span {
    color: #fff;
    background: var(--errailium-blue);
}

.platform-home-body .landing-v31-journey .landing-v31-journey-line li:nth-child(5) > span {
    color: var(--errailium-navy);
    background: var(--errailium-gold);
}

.public-showcase-body .photographer-final-contact .public-text-link {
    color: #f2d58c;
}

.public-showcase-body .photographer-final-contact > div > p:not(.public-kicker) {
    color: rgba(255, 255, 255, .8);
}

.public-showcase-body .showcase-footer-brand p {
    color: rgba(255, 255, 255, .74);
}

.public-showcase-body .showcase-footer a:not(.brand) {
    color: rgba(255, 255, 255, .82);
}

.public-showcase-body .showcase-footer a:not(.brand):hover,
.public-showcase-body .showcase-footer a:not(.brand):focus-visible {
    color: #fff;
}

.platform-home-body .landing-v31-footer p,
.platform-home-body .landing-v31-footer a,
.platform-home-body .landing-v31-final-school > span {
    color: #536078;
}

.platform-home-body .landing-v31-final .landing-v31-kicker {
    color: #edcf86;
}

.platform-home-body .landing-v31-final h2 {
    color: #fff;
}

.platform-home-body main .landing-v31-final-actions .landing-v31-final-parent {
    color: var(--errailium-navy);
    border-color: var(--errailium-gold);
    background: var(--errailium-gold);
}

.platform-home-body main .landing-v31-final-actions .landing-v31-final-parent > span {
    color: #624315 !important;
}

.platform-home-body main .landing-v31-final-actions .landing-v31-final-photo {
    color: #fff;
    border-color: var(--errailium-blue);
    background: var(--errailium-blue);
}

.platform-home-body main .landing-v31-final-actions .landing-v31-final-photo > span {
    color: rgba(255, 255, 255, .8) !important;
}

.platform-home-body .landing-v31-journey-line small,
.public-showcase-body .photographer-overview-facts small,
.public-showcase-body .photographer-visual-card small,
.public-showcase-body .photographer-space-cards .is-studio p,
.public-showcase-body .software-index-route small,
.public-showcase-body .showcase-simulator-controls label > small,
.public-showcase-body .showcase-simulator-controls > p:not(.public-kicker),
.public-showcase-body .showcase-simulator-result > div small,
.public-showcase-body .showcase-simulator-result p,
.public-showcase-body .showcase-simulator-result dt {
    color: rgba(255, 255, 255, .76);
}

.school-public-body .school-entry-code strong,
body.login-body .login-story-brand small,
body.login-body .login-story-foot {
    color: rgba(255, 255, 255, .76);
}

.public-showcase-body .photographer-login-link small {
    color: rgba(255, 255, 255, .82);
}

.public-showcase-body .photographer-software-route > i,
.public-showcase-body .software-index-route > i {
    color: rgba(255, 255, 255, .72);
}
