@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@100..900&family=Space+Mono:wght@400;700&display=swap");

:root {
    --hypersquare-site-max-width: 2000px;
    --hypersquare-breakpoint-tablet: 1200px;
    --hypersquare-breakpoint-mobile: 800px;

    /* Backgrounds */
    --color-bg-deep: #000000;
    --color-bg-main: #18161d;
    --color-bg-subtle: #171717;
    --color-bg-raised: #17161a;
    --color-bg-surface: #191919;
    --color-bg-control: #1b1a20;
    --color-bg-hover: #2c2c2a;

    /* Text */
    --color-text-heading: #ffffff;
    --color-text-main: #f5f5f5;
    --color-text-body: #d2d2d2;
    --color-text-emphasis: #f4f4f4;
    --color-text-soft: #d8d8d8;
    --color-text-muted: #aaaaaa;
    --color-text-subtle: #8e8e8e;
    --color-text-placeholder: #888888;
    --color-text-disabled: #777777;
    --color-text-hover: #ffffff;
    --color-text-link: #ffffff;
    --color-text-link-hover: #ffffff;
    --color-text-translucent: rgba(255, 255, 255, 0.85);

    /* Borders */
    --color-border-main: #2d2d2d;
    --color-border-soft: #222222;
    --color-border-control: #333333;
    --color-border-muted: #444444;
    --color-border-hover: #4a4a4a;
    --color-border-emphasis: #555555;

    /* Brand */
    --color-primary-main: rgba(86, 0, 255, 1);
    --color-primary-deep: rgba(60, 0, 139, 1);
    --color-primary-soft: rgba(139, 73, 255, 1);
    --color-primary-hover: rgb(106, 0, 255);
    --color-primary-muted: rgb(143, 139, 255);

    --color-secondary-main: rgba(255, 118, 12, 1);
    --color-secondary-deep: rgba(234, 64, 0, 1);
    --color-secondary-soft: rgba(255, 176, 71, 1);
    --color-secondary-hover: rgba(255, 140, 41, 1);
    --color-secondary-muted: rgba(213, 111, 32, 1);

    /* Overlays */
    --color-overlay-soft: rgba(255, 255, 255, 0.014);
    --color-overlay-faint: rgba(255, 255, 255, 0.006);
    --color-overlay-border: rgba(255, 255, 255, 0.022);

    /* Global buttons */
    --hypersquare-button-height: 48px;
    --hypersquare-button-padding-inline: 18px;
    --hypersquare-button-radius: 999px;
    --hypersquare-button-gap: 7px;
    --hypersquare-button-font-size: 15px;
    --hypersquare-transition-duration: 480ms;
    --hypersquare-transition-easing: cubic-bezier(0.22, 1, 0.36, 1);
}

html {
    box-sizing: border-box;
    background: #000;
}

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

html,
body {
    margin: 0;
    padding: 0;
    min-height: 100%;
    background: #000;
}

body {
    color: var(--color-text-main);
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
}

button, .hypersquare-button {
    user-select: none;
    span{
        user-select: none;
    }
}


/* Global Hypersquare button definition. Menu-bar controls use the same base. */
.hypersquare-site .hypersquare-button,
.hypersquare-site .ccm-block-button a {
    appearance: none;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--hypersquare-button-height);
    gap: var(--hypersquare-button-gap);
    padding: 0 var(--hypersquare-button-padding-inline);
    border: 0;
    border-radius: var(--hypersquare-button-radius);
    background: var(--color-primary-main);
    color: var(--color-text-heading) !important;
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
    font-size: var(--hypersquare-button-font-size);
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.045em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),
                color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),
                border-color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),
                opacity var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),
                transform var(--hypersquare-transition-duration) var(--hypersquare-transition-easing);
}

.hypersquare-site .hypersquare-button:hover,
.hypersquare-site .hypersquare-button:focus-visible,
.hypersquare-site .ccm-block-button a:hover,
.hypersquare-site .ccm-block-button a:focus-visible {
    background: var(--color-primary-hover);
    color: var(--color-text-heading) !important;
}

.hypersquare-site .hypersquare-button--icon {
    width: var(--hypersquare-button-height);
    min-width: var(--hypersquare-button-height);
    padding: 0;
}

/* Global Hypersquare site canvas. */
body > .hypersquare-site {
    --hypersquare-menu-edge: 18px;
    --hypersquare-menu-control-size: 48px;
    --hypersquare-menu-toolbar-offset: 0px;
    --hypersquare-menu-open-duration-current: 480ms;

    display: block;
    width: min(100%, var(--hypersquare-site-max-width)) !important;
    max-width: var(--hypersquare-site-max-width) !important;
    min-height: 100vh;
    margin-left: auto !important;
    margin-right: auto !important;
    background: #0e0e10;

    /*
     * Make the capped site canvas the reference for container query units.
     * 1cqw = 1% of the actual Hypersquare site width, so values stop growing
     * once the site reaches --hypersquare-site-max-width.
     */
    container-type: inline-size;
    container-name: hypersquare-site;
}

.hypersquare-main {
    width: 100%;
    max-width: 100%;
    min-height: 100vh;
    color: var(--color-text-body);
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
    font-size: clamp(16px, 0.95cqw, 19px);
    font-weight: 400;
    line-height: 1.65;
}

/* ================================================================
 * Hypersquare page layout + copy system
 * Space Mono owns hierarchy; Montserrat owns readable copy.
 * ================================================================ */
.hypersquare-main--page {
    padding-top: calc(
        var(--hypersquare-menu-toolbar-offset)
        + var(--hypersquare-menu-edge)
        + var(--hypersquare-menu-control-size)
        + clamp(40px, 3cqw, 72px)
    );
    padding-bottom: clamp(80px, 8cqw, 160px);
}

.hypersquare-page-shell {
    width: 100%;
    padding-inline: clamp(20px, 4cqw, 80px);
}

.hypersquare-page-shell--contained {
    width: 100%;
    max-width: var(--hypersquare-site-max-width);
    margin-inline: auto;
}

/* Hypersquare entity pages use the full site canvas. Individual entity blocks
 * own their internal breathing room; full-bleed blocks such as the hero and
 * integrated CTA can therefore reach the site max-width edges. */
.hypersquare-page-shell--entity {
    padding-inline: 0;
}

/* Entity hero begins at the site canvas edge; the fixed navigation overlays it. */
.hypersquare-main--entity {
    padding-top: 0;
}

.hypersquare-main h1,
.hypersquare-main h2,
.hypersquare-main h3,
.hypersquare-main h4,
.hypersquare-main h5,
.hypersquare-main h6 {
    margin: 0;
    color: var(--color-text-heading);
    font-family: 'Space Mono', 'Courier New', monospace;
    font-weight: 700;
    line-height: 0.98;
    text-transform: uppercase;
    text-wrap: balance;
}

.hypersquare-main h1 {
    font-size: clamp(44px, 4.5cqw, 90px);
    letter-spacing: -0.055em;
}

.hypersquare-main h2 {
    font-size: clamp(34px, 3.3cqw, 66px);
    letter-spacing: -0.05em;
}

.hypersquare-main h3 {
    font-size: clamp(28px, 2.5cqw, 50px);
    letter-spacing: -0.045em;
}

.hypersquare-main h4 {
    font-size: clamp(23px, 1.9cqw, 38px);
    letter-spacing: -0.04em;
}

.hypersquare-main h5 {
    font-size: clamp(19px, 1.45cqw, 29px);
    letter-spacing: -0.03em;
}

.hypersquare-main h6 {
    font-size: clamp(16px, 1.05cqw, 21px);
    letter-spacing: -0.02em;
}

.hypersquare-main p,
.hypersquare-main ul,
.hypersquare-main ol,
.hypersquare-main blockquote {
    margin: 0;
}

.hypersquare-main p,
.hypersquare-main li {
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
    font-size: inherit;
    line-height: inherit;
}

.hypersquare-main strong,
.hypersquare-main b {
    color: var(--color-text-emphasis);
    font-weight: 700;
}

.hypersquare-main a {
    color: var(--color-text-link);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.16em;
}

.hypersquare-main a:hover,
.hypersquare-main a:focus-visible {
    color: var(--color-primary-soft);
}

.hypersquare-main blockquote {
    max-width: 46em;
    padding-left: 1.25em;
    border-left: 3px solid var(--color-primary-main);
    color: var(--color-text-soft);
    font-size: 1.15em;
    font-weight: 500;
}

.hypersquare-main hr {
    margin: clamp(48px, 5cqw, 96px) 0;
    border: 0;
    border-top: 1px solid var(--color-border-main);
}

@media (max-width: 800px) {
    .hypersquare-main--page {
        padding-top: calc(
            var(--hypersquare-menu-toolbar-offset)
            + var(--hypersquare-menu-edge)
            + var(--hypersquare-menu-control-size)
            + 32px
        );
        padding-bottom: 88px;
    }

    .hypersquare-page-shell {
        padding-inline: 18px;
    }

    .hypersquare-main--entity {
        padding-top: 0;
    }

    .hypersquare-page-shell--entity {
        padding-inline: 0;
    }

    .hypersquare-main h1 {
        letter-spacing: -0.05em;
    }
}

/* Global Hypersquare copyright overlay.
 * CSS-generated so it does not depend on cached footer markup. */
.hypersquare-footer {
    display: none !important;
}

body::after {
    content: "© Hypersquare Design";
    position: fixed;
    right: max(18px, calc((100vw - var(--hypersquare-site-max-width)) / 2 + 18px));
    bottom: 16px;
    z-index: 2147483646;
    color: var(--color-text-translucent);
    text-shadow: 0 0 2px #000;
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    line-height: 1;
    letter-spacing: 0.1em;
    white-space: nowrap;
    pointer-events: none;
}


@media (max-width: 800px) {
    body::after {
        right: 14px;
        bottom: 14px;
        font-size: 10px;
    }
}

/* ================================================================
 * Hypersquare mega menu
 * Shared MMDB markup, Hypersquare-only presentation.
 * ================================================================ */

body.hypersquare-mega-menu-scroll-lock {
    overflow: hidden;
}

/* Sitewide icon, managed through Concrete's Header Site Title Global Area. */
.hypersquare-site .hypersquare-site-logo {
    position: fixed;
    top: calc(var(--hypersquare-menu-edge) + var(--hypersquare-menu-toolbar-offset) - 9px);
    left: max(
        calc(var(--hypersquare-menu-edge) - 3px),
        calc((100vw - var(--hypersquare-site-max-width)) / 2 + var(--hypersquare-menu-edge) - 3px)
    );
    z-index: 2147483002;
    display: grid;
    place-items: center;
    width: var(--hypersquare-menu-control-size);
    min-width: var(--hypersquare-menu-control-size);
    height: var(--hypersquare-menu-control-size);
    min-height: var(--hypersquare-menu-control-size);
    pointer-events: auto;
    transition:
        transform var(--hypersquare-menu-open-duration-current) cubic-bezier(0.22, 1, 0.36, 1),
        opacity calc(var(--hypersquare-menu-open-duration-current) * 0.7) ease;
}

.hypersquare-site .hypersquare-site-logo .ccm-area,
.hypersquare-site .hypersquare-site-logo .ccm-block,
.hypersquare-site .hypersquare-site-logo .ccm-block-edit,
.hypersquare-site .hypersquare-site-logo a,
.hypersquare-site .hypersquare-site-logo picture {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}

.hypersquare-site .hypersquare-site-logo img,
.hypersquare-site .hypersquare-site-logo .ccm-image-block {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    object-fit: contain;
    filter: drop-shadow(0 2px 8px color-mix(in srgb, var(--color-bg-deep) 80%, transparent));
}

body.ccm-edit-mode .hypersquare-site .hypersquare-site-logo,
body.ccm-toolbar-visible.ccm-edit-mode .hypersquare-site .hypersquare-site-logo {
    z-index: 100;
}

.hypersquare-site .hypersquare-site-logo.is-mmdb-menu-hidden {
    transform: translateY(calc(-100% - 36px));
    opacity: 0;
    pointer-events: none;
}

.hypersquare-site .mmdb-mega-menu {
    --hypersquare-menu-edge: 18px;
    --hypersquare-menu-control-size: 48px;
    --hypersquare-menu-toolbar-offset: 0px;
    --mmdb-hover-x: 50%;
    --mmdb-hover-y: 50%;
    --mmdb-mega-menu-tile-radius: 16px;

    position: fixed;
    inset: 0;
    z-index: 2147483000;
    pointer-events: none;
}

.hypersquare-site .mmdb-mega-menu__closed-bar {
    position: fixed;
    top: calc(var(--hypersquare-menu-edge) + var(--hypersquare-menu-toolbar-offset));
    left: max(var(--hypersquare-menu-edge), calc((100vw - var(--hypersquare-site-max-width)) / 2 + var(--hypersquare-menu-edge)));
    right: max(var(--hypersquare-menu-edge), calc((100vw - var(--hypersquare-site-max-width)) / 2 + var(--hypersquare-menu-edge)));
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    pointer-events: none;
}

.hypersquare-site .mmdb-mega-menu__closed-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    pointer-events: auto;
}

.hypersquare-site .mmdb-mega-menu__hamburger {
    position: relative;
    display: grid;
    place-items: center;
    width: var(--hypersquare-menu-control-size);
    min-width: var(--hypersquare-menu-control-size);
    height: var(--hypersquare-menu-control-size);
    min-height: var(--hypersquare-menu-control-size);
    padding: 0;
    flex: 0 0 auto;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-bg-deep) 80%, transparent);
    color: var(--color-text-main);
    cursor: pointer;
    transition: background-color 160ms ease;
}

.hypersquare-site .mmdb-mega-menu__hamburger:hover,
.hypersquare-site .mmdb-mega-menu__hamburger:focus-visible {
    background: var(--color-bg-hover);
}

.hypersquare-site .mmdb-mega-menu__hamburger:focus-visible {
    outline: 1px solid var(--color-border-hover);
    outline-offset: 2px;
}

.hypersquare-site .mmdb-mega-menu__hamburger-lines {
    position: relative;
    display: block;
    width: 23px;
    height: 18px;
}

.hypersquare-site .mmdb-mega-menu__hamburger-lines > span {
    position: absolute;
    top: 50%;
    left: 10%;
    display: block;
    width: 80%;
    height: 2.25px;
    border-radius: 999px;
    background: currentColor;
    transform-origin: center;
    transition: transform 250ms cubic-bezier(0.22, 1, 0.36, 1), opacity 140ms ease;
}

.hypersquare-site .mmdb-mega-menu__hamburger-lines > span:nth-child(1) { transform: translateY(-7.575px); }
.hypersquare-site .mmdb-mega-menu__hamburger-lines > span:nth-child(2) { transform: translateY(-1.275px); }
.hypersquare-site .mmdb-mega-menu__hamburger-lines > span:nth-child(3) { transform: translateY(5.025px); }
.hypersquare-site .mmdb-mega-menu.is-open .mmdb-mega-menu__hamburger-lines > span:nth-child(1) { transform: translateY(-1.275px) rotate(45deg); }
.hypersquare-site .mmdb-mega-menu.is-open .mmdb-mega-menu__hamburger-lines > span:nth-child(2) { transform: translateY(-1.275px) scaleX(0); opacity: 0; }
.hypersquare-site .mmdb-mega-menu.is-open .mmdb-mega-menu__hamburger-lines > span:nth-child(3) { transform: translateY(-1.275px) rotate(-45deg); }

.hypersquare-site .mmdb-mega-menu__build-button {
    --mmdb-hover-x: 50%;
    --mmdb-hover-y: 50%;
    isolation: isolate;
    overflow: hidden;
    min-height: var(--hypersquare-menu-control-size);
    transition: transform var(--mmdb-mega-menu-open-duration, 480ms) cubic-bezier(0.22, 1, 0.36, 1), opacity calc(var(--mmdb-mega-menu-open-duration, 480ms) * 0.58) ease;
}

.hypersquare-site .mmdb-soft-hover-primary::before,
.hypersquare-site .mmdb-mega-menu__tile.has-hover-effect:not(.mmdb-soft-hover-primary)::before,
.hypersquare-site .mmdb-mega-menu__social-link::before {
    content: "";
    position: absolute;
    z-index: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity 260ms ease;
}

.hypersquare-site .mmdb-soft-hover-primary::before {
    inset: -35%;
    background: radial-gradient(circle at var(--mmdb-hover-x) var(--mmdb-hover-y), var(--color-primary-hover) 0%, var(--color-primary-hover) 31%, transparent 68%);
    transform: scale(0.9);
    transition: opacity 280ms ease, transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.hypersquare-site .mmdb-mega-menu__build-button > * { position: relative; z-index: 1; }
.hypersquare-site .mmdb-mega-menu__build-button.is-disabled { cursor: default; opacity: 0.68; }
.hypersquare-site .mmdb-mega-menu__build-button[href]:hover,
.hypersquare-site .mmdb-mega-menu__build-button[href]:focus-visible {
    background:var(--color-primary-main) !important;
    color:var(--color-text-heading) !important;
}
.hypersquare-site .mmdb-mega-menu.is-open .mmdb-mega-menu__build-button { transform: translateY(calc(-100% - 36px)); opacity: 0; pointer-events: none; }

.hypersquare-site .mmdb-mega-menu__build-icon {
    display: block;
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    fill: currentColor;
    object-fit: contain;
}

.hypersquare-site .mmdb-mega-menu__build-icon--fallback {
    fill: currentColor;
}

.hypersquare-site .mmdb-mega-menu__panel {
    position: fixed;
    top: var(--hypersquare-menu-toolbar-offset);
    z-index: 2;
    width: var(--mmdb-mega-menu-width, 100%);
    max-width: min(100vw, var(--hypersquare-site-max-width));
    height: calc(100vh - var(--hypersquare-menu-toolbar-offset));
    max-height: calc(100vh - var(--hypersquare-menu-toolbar-offset));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    scrollbar-gutter: stable;
    background: var(--color-bg-main);
    color: var(--color-text-main);
    opacity: 0;
    visibility: hidden;
    transform: translateY(calc(-100% - 24px));
    pointer-events: none;
    transition: transform var(--mmdb-mega-menu-open-duration, 480ms) cubic-bezier(0.22, 1, 0.36, 1), opacity var(--mmdb-mega-menu-open-duration, 480ms) ease, visibility 0s linear var(--mmdb-mega-menu-open-duration, 480ms);
}

.hypersquare-site .mmdb-mega-menu[data-menu-side="left"] .mmdb-mega-menu__panel {
    left: max(0px, calc((100vw - var(--hypersquare-site-max-width)) / 2));
    right: auto;
    margin-inline: 0;
}

.hypersquare-site .mmdb-mega-menu[data-menu-side="center"] .mmdb-mega-menu__panel {
    left: 0;
    right: 0;
    margin-inline: auto;
}

.hypersquare-site .mmdb-mega-menu[data-menu-side="right"] .mmdb-mega-menu__panel {
    left: auto;
    right: max(0px, calc((100vw - var(--hypersquare-site-max-width)) / 2));
    margin-inline: 0;
}

.hypersquare-site .mmdb-mega-menu.is-open .mmdb-mega-menu__panel {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
    transition: transform var(--mmdb-mega-menu-open-duration, 480ms) cubic-bezier(0.22, 1, 0.36, 1), opacity var(--mmdb-mega-menu-open-duration, 480ms) ease, visibility 0s;
}

.hypersquare-site .mmdb-mega-menu__panel-inner {
    display: block;
    width: 100%;
    min-width: 0;
    height: max(100%, var(--mmdb-mega-menu-min-height, 900px));
    min-height: max(100%, var(--mmdb-mega-menu-min-height, 900px));
}

.hypersquare-site .mmdb-mega-menu__grid {
    box-sizing: border-box;
    display: grid;
    width: min(100%, var(--mmdb-mega-menu-grid-max-width, 2000px), var(--hypersquare-site-max-width, 2000px));
    max-width: min(100%, var(--mmdb-mega-menu-grid-max-width, 2000px), var(--hypersquare-site-max-width, 2000px));
    min-height: 100%;
    overflow: visible;
    grid-template-columns: repeat(var(--mmdb-mega-menu-grid-columns, 3), var(--mmdb-mega-menu-tile-width-track, minmax(0, 1fr)));
    grid-template-rows: repeat(var(--mmdb-mega-menu-grid-rows, 3), var(--mmdb-mega-menu-tile-height-track, minmax(0, 1fr)));
    gap: var(--mmdb-mega-menu-tile-gap, 12px);
    padding-top: max(var(--mmdb-mega-menu-grid-padding-top, 24px), calc(var(--hypersquare-menu-edge) + var(--hypersquare-menu-control-size) + 18px));
    padding-right: var(--mmdb-mega-menu-grid-padding-right, 24px);
    padding-bottom: var(--mmdb-mega-menu-grid-padding-bottom, 24px);
    padding-left: var(--mmdb-mega-menu-grid-padding-left, 24px);
    margin-top: var(--mmdb-mega-menu-grid-margin-top, 0px);
    margin-right: var(--mmdb-mega-menu-grid-margin-right, 0px);
    margin-bottom: var(--mmdb-mega-menu-grid-margin-bottom, 0px);
    margin-left: var(--mmdb-mega-menu-grid-margin-left, 0px);
}

/* A configured grid height is a layout height, not a crop. Explicit tile-track
 * minimums may make the tracks overflow this box; the panel above is the scroll
 * container, so those minimums remain intact and the menu becomes scrollable. */
.hypersquare-site .mmdb-mega-menu__grid.has-height-limit {
    min-height: 0;
    height: var(--mmdb-mega-menu-grid-max-height);
}

/* Keep capped grids and capped tile tracks attached to the same side as the menu. */
.hypersquare-site [data-menu-side="left"] .mmdb-mega-menu__grid {
    margin-left: 0;
    margin-right: auto;
    justify-content: start;
}

.hypersquare-site [data-menu-side="center"] .mmdb-mega-menu__grid {
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
}

.hypersquare-site [data-menu-side="right"] .mmdb-mega-menu__grid {
    margin-left: auto;
    margin-right: 0;
    justify-content: end;
}

.hypersquare-site .mmdb-mega-menu__tile[hidden] {
    display: none !important;
}

.hypersquare-site .mmdb-mega-menu__tile {
    --mmdb-hover-x: 50%;
    --mmdb-hover-y: 50%;
    position: relative;
    isolation: isolate;
    display: block;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: var(--mmdb-mega-menu-tile-radius, 16px);
    background: transparent;
    color: var(--color-text-main);
    text-decoration: none;
    transform: scale(1);
    transform-origin: center;
}

.hypersquare-site .mmdb-mega-menu__tile.has-outline {
    border-color: var(--color-border-main);
    background: var(--color-overlay-faint);
}

.hypersquare-site .mmdb-mega-menu__tile.has-hover-effect:not(.mmdb-soft-hover-primary)::before {
    inset: -1px;
    background: radial-gradient(circle at var(--mmdb-hover-x) var(--mmdb-hover-y), color-mix(in srgb, var(--color-primary) 20%, transparent) 0%, var(--color-primary-glow-soft) 38%, transparent 72%);
}

.hypersquare-site .mmdb-mega-menu__tile--cta {
    border-color: transparent !important;
    background: var(--color-primary) !important;
    color: var(--color-text-heading);
}

.hypersquare-site .mmdb-mega-menu__tile--social {
    overflow: visible;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
}

.hypersquare-site .mmdb-mega-menu__tile[href]:focus-visible,
.hypersquare-site .mmdb-mega-menu__social-link:focus-visible {
    outline: 2px solid var(--color-text-heading);
    outline-offset: -3px;
}

.hypersquare-site .mmdb-mega-menu__tile-content,
.hypersquare-site .mmdb-mega-menu__media-content,
.hypersquare-site .mmdb-mega-menu__rich-content {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.hypersquare-site .mmdb-mega-menu__tile-content {
    padding: var(--mmdb-mega-menu-content-padding, 24px);
    gap: var(--mmdb-mega-menu-line-spacing, 0px);
    pointer-events: none;
}

.hypersquare-site .mmdb-mega-menu__media-content {
    align-items: center;
    justify-content: center;
    padding: var(--mmdb-mega-menu-image-padding, 0px);
    pointer-events: none;
}

.hypersquare-site .mmdb-mega-menu__image {
    display: block;
    inline-size: clamp(var(--mmdb-mega-menu-image-min-width, 0px), 100%, var(--mmdb-mega-menu-image-max-width, 100%));
    block-size: clamp(var(--mmdb-mega-menu-image-min-height, 0px), 100%, var(--mmdb-mega-menu-image-max-height, 100%));
    max-inline-size: min(100%, var(--mmdb-mega-menu-image-max-size, 100%));
    max-block-size: min(100%, var(--mmdb-mega-menu-image-max-size, 100%));
    object-fit: contain;
    object-position: var(--mmdb-mega-menu-image-object-position, center center);
}

.hypersquare-site .mmdb-mega-menu__rich-content {
    overflow: hidden;
    padding: var(--mmdb-mega-menu-rich-padding, 24px);
    pointer-events: none;
}

.hypersquare-site .mmdb-mega-menu__rich-text {
    display: block;
    min-inline-size: min(100%, var(--mmdb-mega-menu-rich-min-width, 0px));
    max-inline-size: min(100%, var(--mmdb-mega-menu-rich-max-width, 100%));
    min-block-size: min(100%, var(--mmdb-mega-menu-rich-min-height, 0px));
    max-block-size: min(100%, var(--mmdb-mega-menu-rich-max-height, 100%));
    overflow: hidden;
    color: var(--color-text-body);
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
    font-size: var(--mmdb-mega-menu-rich-font-size, clamp(12px, 1.05cqw, 32px));
    font-weight: var(--mmdb-mega-menu-rich-font-weight, 400);
    line-height: 1.45;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    pointer-events: auto;
}

.hypersquare-site .mmdb-mega-menu__rich-text > * {
    max-inline-size: 100%;
    font-size: inherit !important;
}

/* Fit mode has one authority: JS calculates one shared font size from the
 * longest explicit line. CSS only disables automatic wrapping. */
.hypersquare-site .mmdb-mega-menu__tile.is-rich-fit .mmdb-mega-menu__rich-text,
.hypersquare-site .mmdb-mega-menu__tile.is-rich-fit .mmdb-mega-menu__rich-text > * {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

.hypersquare-site .mmdb-mega-menu__rich-text p,
.hypersquare-site .mmdb-mega-menu__rich-text ul,
.hypersquare-site .mmdb-mega-menu__rich-text ol {
    margin-top: 0;
    margin-bottom: 0;
}

.hypersquare-site .mmdb-mega-menu__rich-text br {
    display: block;
    content: "";
}

.hypersquare-site .mmdb-mega-menu__rich-text a {
    color: var(--color-text-link);
}

.hypersquare-site .mmdb-mega-menu__tile-line {
    display: block;
    width: max-content;
    max-width: none;
    white-space: nowrap;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.hypersquare-site .mmdb-mega-menu__tile-line--main {
    color: inherit;
    font-family: 'Space Mono', monospace;
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.03em;
    text-transform: uppercase;
}

.hypersquare-site .mmdb-mega-menu__tile-line--side {
    color: var(--color-text-heading);
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase !important;
}

.hypersquare-site .mmdb-mega-menu__tile--cta .mmdb-mega-menu__tile-line--side {
    color: var(--color-text-heading) !important;
}

.hypersquare-site .mmdb-mega-menu__social-grid {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: repeat(var(--mmdb-social-grid-columns, 1), minmax(0, 1fr));
    grid-template-rows: repeat(var(--mmdb-social-grid-rows, 1), minmax(0, 1fr));
    grid-auto-flow: row;
    gap: var(--mmdb-mega-menu-tile-gap, 12px);
}

.hypersquare-site .mmdb-mega-menu__social-link {
    --mmdb-hover-x: 50%;
    --mmdb-hover-y: 50%;
    --mmdb-social-brand: var(--color-primary);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    place-items: center;
    min-width: 0;
    min-height: 0;
    padding: var(--mmdb-mega-menu-social-padding, 12px);
    border: 1px solid var(--color-border-main);
    border-radius: var(--mmdb-mega-menu-tile-radius, 16px);
    background: var(--color-overlay-faint);
    color: var(--color-text-heading);
    text-decoration: none;
    transition: background-color 220ms ease, border-color 220ms ease, color 220ms ease;
}

.hypersquare-site .mmdb-mega-menu__social-grid[data-social-style="icon"] .mmdb-mega-menu__social-link {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.hypersquare-site .mmdb-mega-menu__social-grid[data-social-style="icon"] .mmdb-mega-menu__social-link::before {
    display: none;
}

/* Concrete social-network handles. Unknown/custom services fall back to the
 * Hypersquare primary color rather than getting a fake brand assignment. */
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="facebook"] { --mmdb-social-brand: #1877f2; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="twitter"] { --mmdb-social-brand: #1da1f2; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="x"],
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="x-twitter"] { --mmdb-social-brand: #000000; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="instagram"] { --mmdb-social-brand: #e4405f; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="linkedin"] { --mmdb-social-brand: #0a66c2; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="youtube"] { --mmdb-social-brand: #ff0000; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="vimeo"] { --mmdb-social-brand: #1ab7ea; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="pinterest"] { --mmdb-social-brand: #e60023; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="flickr"] { --mmdb-social-brand: #ff0084; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="tumblr"] { --mmdb-social-brand: #35465c; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="github"] { --mmdb-social-brand: #181717; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="reddit"] { --mmdb-social-brand: #ff4500; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="xing"] { --mmdb-social-brand: #006567; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="tiktok"] { --mmdb-social-brand: #ff0050; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="discord"] { --mmdb-social-brand: #5865f2; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="mastodon"] { --mmdb-social-brand: #6364ff; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="behance"] { --mmdb-social-brand: #1769ff; }
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="dribbble"] { --mmdb-social-brand: #ea4c89; }

.hypersquare-site .mmdb-mega-menu__social-link::before {
    inset: -1px;
    background: radial-gradient(circle at var(--mmdb-hover-x) var(--mmdb-hover-y), color-mix(in srgb, var(--mmdb-social-brand) 34%, transparent) 0%, color-mix(in srgb, var(--mmdb-social-brand) 16%, transparent) 40%, transparent 72%);
}

.hypersquare-site .mmdb-mega-menu__social-icon {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    inline-size: var(--mmdb-mega-menu-social-icon-size, 42px);
    block-size: var(--mmdb-mega-menu-social-icon-size, 42px);
    margin: 0;
    padding: 0;
    border: 0;
    font-size: var(--mmdb-mega-menu-social-icon-size, 42px);
    line-height: 0;
}

.hypersquare-site .mmdb-mega-menu__social-icon i {
    box-sizing: border-box;
    position: relative;
    display: block !important;
    inline-size: 1em;
    block-size: 1em;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    font-size: 1em !important;
    font-style: normal;
    line-height: 1 !important;
    letter-spacing: 0;
    text-align: center;
    text-indent: 0;
    vertical-align: middle;
}

.hypersquare-site .mmdb-mega-menu__social-icon i::before {
    position: absolute;
    left: 50%;
    top: 50%;
    display: block !important;
    width: max-content !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    transform: translate(-50%, -50%);
    transform-origin: center;
}

/* Font-icon glyphs are centered by their actual pseudo-element box instead of
 * the font baseline. YouTube is especially obvious when baseline spacing leaks
 * into the icon cell. */
.hypersquare-site .mmdb-mega-menu__social-link[data-social-handle="youtube"] .mmdb-mega-menu__social-icon i::before {
    transform: translate(-50%, -52%);
}

.hypersquare-site .mmdb-mega-menu__social-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
    fill: currentColor;
}

@media (hover: hover) and (pointer: fine) {
    .hypersquare-site .mmdb-soft-hover-primary[href]:hover::before,
    .hypersquare-site .mmdb-soft-hover-primary[href]:focus-visible::before,
    .hypersquare-site .mmdb-mega-menu__tile.has-hover-effect:not(.mmdb-soft-hover-primary)[href]:hover::before,
    .hypersquare-site .mmdb-mega-menu__tile.has-hover-effect:not(.mmdb-soft-hover-primary)[href]:focus-visible::before,
    .hypersquare-site .mmdb-mega-menu__social-link[href]:hover::before,
    .hypersquare-site .mmdb-mega-menu__social-link[href]:focus-visible::before {
        opacity: 1;
    }

    .hypersquare-site .mmdb-soft-hover-primary[href]:hover::before,
    .hypersquare-site .mmdb-soft-hover-primary[href]:focus-visible::before {
        transform: scale(1);
    }

    .hypersquare-site .mmdb-mega-menu__tile.has-hover-effect[href]:hover,
    .hypersquare-site .mmdb-mega-menu__tile.has-hover-effect[href]:focus-visible {
        z-index: 4;
        border-color: var(--color-border-hover);
        background: var(--color-bg-subtle);
    }

    .hypersquare-site .mmdb-mega-menu__social-grid[data-social-style="card"] .mmdb-mega-menu__social-link[href]:hover,
    .hypersquare-site .mmdb-mega-menu__social-grid[data-social-style="card"] .mmdb-mega-menu__social-link[href]:focus-visible {
        z-index: 4;
        border-color: var(--mmdb-social-brand);
        background: var(--mmdb-social-brand);
        color: #ffffff;
    }

    .hypersquare-site .mmdb-mega-menu__social-grid[data-social-style="icon"] .mmdb-mega-menu__social-link[href]:hover,
    .hypersquare-site .mmdb-mega-menu__social-grid[data-social-style="icon"] .mmdb-mega-menu__social-link[href]:focus-visible {
        z-index: 4;
        background: transparent;
        color: var(--mmdb-social-brand);
    }

    .hypersquare-site .mmdb-mega-menu__tile--cta.has-hover-effect[href]:hover,
    .hypersquare-site .mmdb-mega-menu__tile--cta.has-hover-effect[href]:focus-visible {
        background: var(--color-primary) !important;
        border-color: transparent !important;
    }
}

/* Concrete edit-mode preview uses the same tile markup and sizing code as the live menu. */
.hypersquare-site .mmdb-mega-menu-edit-preview {
    position: relative;
    z-index: 1;
    margin: 8px;
    padding: 14px;
    border: 1px dashed var(--color-border-muted);
    border-radius: 10px;
    background: var(--color-bg-subtle);
    color: var(--color-text-main);
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
}

.hypersquare-site .mmdb-mega-menu-edit-preview__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 10px;
}

.hypersquare-site .mmdb-mega-menu-edit-preview__header span {
    color: var(--color-text-muted);
    font-size: 12px;
}

.hypersquare-site .mmdb-mega-menu-edit-preview__canvas {
    position: relative;
    min-height: 320px;
    max-height: 70vh;
    overflow: auto;
    border-radius: 8px;
    background: var(--color-bg-main);
}

.hypersquare-site .mmdb-mega-menu-edit-preview .mmdb-mega-menu__grid {
    min-height: 320px;
}

@media (max-width: 800px) {
    .hypersquare-site,
    .hypersquare-site .mmdb-mega-menu {
        --hypersquare-menu-edge: 14px;
        --hypersquare-menu-control-size: 44px;
    }

    .hypersquare-site {
        --hypersquare-button-height: 44px;
        --hypersquare-button-padding-inline: 14px;
        --hypersquare-button-font-size: 13px;
    }

    .hypersquare-site .mmdb-mega-menu__build-icon {
        width: 23px;
        height: 23px;
        flex-basis: 23px;
    }

    .hypersquare-site .mmdb-mega-menu__grid {
        padding-top: max(var(--mmdb-mega-menu-grid-padding-top, 14px), calc(var(--hypersquare-menu-edge) + var(--hypersquare-menu-control-size) + 14px));
    }
}

@media (max-width:1200px) {
    .hs-tier h3 { font-size:38px; }
    .hs-tier-copy, .hs-detail-column { font-size:14px; }
    .hypersquare-site .hs-section-heading { font-size:28px !important; }
}
@media (max-width:800px) {
    .hs-tier-block, .hs-related, .hs-detail-block { padding:36px 20px; }
    .hypersquare-site .hs-section-heading { margin-bottom:30px; font-size:24px !important; }
    .hs-tier__header { grid-template-columns:78px minmax(0,1fr); }
    .hs-tier h3 { font-size:36px; }
    .hs-tier-copy, .hs-detail-column { font-size:14px; }
    .hs-detail-toggle {
        width:42px;
        height:42px;
        display:grid;
        place-items:center;
    }
    .hs-detail-toggle svg { width:32px; height:32px; }

    .hs-detail-block:has(.hs-detail-disclosure:not(.is-open)) {
        padding-bottom:18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hypersquare-site .hypersquare-site-logo,
    .hypersquare-site .mmdb-mega-menu__build-button,
    .hypersquare-site .mmdb-mega-menu__hamburger,
    .hypersquare-site .mmdb-mega-menu__hamburger-lines > span,
    .hypersquare-site .mmdb-mega-menu__panel,
    .hypersquare-site .mmdb-mega-menu__tile,
    .hypersquare-site .mmdb-mega-menu__tile::before,
    .hypersquare-site .mmdb-mega-menu__social-link,
    .hypersquare-site .mmdb-mega-menu__social-link::before {
        transition-duration: 1ms;
    }
}

/* Hypersquare entity / offering system */
.hs-entity-hero,
.hs-tier-block,
.hs-related,
.hs-detail-block {
    width: 100%;
    min-width: 0;
}

.hs-related > h2 {
    margin: 0 0 clamp(44px, 3.2vw, 64px);
}
.hs-related__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--hs-catalog-gap, clamp(16px,1.4cqw,24px)); align-items:stretch; }
.hs-related__grid .hs-catalog-card { height:100%; }
.hs-catalog { width: min(100%, var(--hypersquare-site-max-width)); margin-inline: auto; }

.hs-entity-hero { position:relative; min-height:100svh; display:grid; align-items:center; background-color:var(--color-bg-main); background-image:var(--hs-entity-hero-image); background-position:center calc(50% + var(--hs-hero-parallax-y, 0px)); background-size:cover; background-repeat:no-repeat; background-attachment:scroll; overflow:hidden; will-change:background-position; }
.hs-entity-hero__shade { position:absolute; inset:0; background:color-mix(in srgb,var(--color-bg-main) 86%,transparent); backdrop-filter:blur(5px); }
.hs-entity-hero__content { position:relative; min-height:100svh; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr); gap:clamp(24px,5vw,80px); align-items:center; padding:clamp(72px,8vw,128px) clamp(24px,8vw,160px); }
.hs-entity-hero h1, .hs-related h2, .hs-tier-block h2, .hs-detail-block h2, .hs-ready-cta h2 { font-family:'Space Mono',monospace; font-weight:700; text-transform:uppercase; }
.hs-entity-hero h1 { margin:0; max-width:12ch; font-size:clamp(40px,3.8vw,68px); line-height:.94; letter-spacing:-.055em; }
.hs-entity-hero__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 20px; }
.hypersquare-main .hs-entity-hero__tag { display:inline-flex; align-items:center; border:1px solid var(--color-text-heading) !important; border-radius:999px; padding:4px 10px; background:transparent !important; color:var(--color-text-heading) !important; font-size:12px; font-weight:500; text-decoration:none; transition:background-color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),border-color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing); }
.hypersquare-main .hs-entity-hero__tag:hover, .hypersquare-main .hs-entity-hero__tag:focus-visible { background:color-mix(in srgb,var(--color-text-heading) 20%,transparent) !important; border-color:var(--color-text-heading) !important; color:var(--color-text-heading) !important; }
.hs-entity-hero__tag--type { text-transform:capitalize; }
.hs-entity-hero__summary { max-width: 46rem; color: var(--color-text-body); }
.hs-entity-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.hs-entity-hero__gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(12px,1.1vw,20px); width:min(100%,760px); justify-self:end; }
.hs-entity-hero__gallery-button { position:relative; appearance:none; border:0; padding:0; background:transparent; cursor:pointer; overflow:hidden; border-radius:12px; }
.hs-entity-hero__gallery-button--primary { grid-column:1 / -1; }
.hs-entity-hero__gallery img, .hs-entity-hero__gallery video { display:block; width:100%; aspect-ratio:1; object-fit:cover; border-radius:inherit; transition:transform 420ms var(--hypersquare-transition-easing); }
.hs-entity-hero__gallery-button--primary img, .hs-entity-hero__gallery-button--primary video { aspect-ratio:16 / 9; }
.hs-entity-hero__gallery-button:hover img, .hs-entity-hero__gallery-button:hover video { transform:scale(1.025); }
.hs-entity-hero__gallery-zoom { position:absolute; inset:0; z-index:2; display:grid; place-items:center; background:color-mix(in srgb,var(--color-bg-deep) 26%,transparent); opacity:0; transition:opacity var(--hypersquare-transition-duration) var(--hypersquare-transition-easing); pointer-events:none; }
.hs-entity-hero__gallery-zoom svg { width:36px; height:36px; color:var(--color-text-heading); stroke-width:2; filter:drop-shadow(0 2px 8px color-mix(in srgb,var(--color-bg-deep) 60%,transparent)); }
.hs-entity-hero__gallery-button:hover .hs-entity-hero__gallery-zoom, .hs-entity-hero__gallery-button:focus-visible .hs-entity-hero__gallery-zoom { opacity:1; }
.hs-entity-hero__gallery-placeholder { aspect-ratio:1; border-radius:12px; background:color-mix(in srgb,var(--color-text-heading) 8%,transparent); border:1px solid color-mix(in srgb,var(--color-text-heading) 10%,transparent); }
.hs-entity-hero__gallery-more { position:absolute; inset:0; z-index:3; display:grid; place-items:center; background:color-mix(in srgb,var(--color-bg-deep) 48%,transparent); color:var(--color-text-heading); font-weight:700; font-size:clamp(13px,1.1vw,18px); pointer-events:none; }

.hs-layout-stack .hs-entity-hero__content { grid-template-columns: 1fr; }

.hs-tier-block, .hs-related, .hs-detail-block {
    --hs-section-inline-padding: clamp(28px, 3.65vw, 70px);
    padding: clamp(44px, 3.8vw, 72px) var(--hs-section-inline-padding);
}
.hs-detail-block { background: var(--color-bg-main); }
.hypersquare-site .hs-section-heading {
    margin: 0 0 clamp(44px, 3.2vw, 64px);
    font-family: 'Montserrat', Arial, Helvetica, sans-serif !important;
    font-size: clamp(26px, 1.65vw, 32px) !important;
    line-height: 1.08;
    font-weight: 800 !important;
    letter-spacing: -0.035em;
    text-transform: uppercase;
}
.hs-tier-grid, .hs-responsive-columns { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(34px,3vw,58px); }
.hs-tier { display:flex; flex-direction:column; min-width:0; height:100%; }
.hs-tier__header {
    display:grid;
    grid-template-columns: clamp(64px, 4.2vw, 82px) minmax(0,1fr);
    gap: clamp(8px, .7vw, 12px);
    align-items:center;
    min-height:92px;
}
.hs-tier__icon { width:100% !important; height:auto !important; aspect-ratio:1; object-fit:contain; }
.hs-tier__identity { min-width:0; align-self:center; }
.hs-tier__name-row { display:flex; align-items:flex-start; gap:10px; min-width:0; }
.hs-tier h3 {
    margin:0;
    font-family:'Space Mono',monospace;
    font-size:clamp(34px,2.4vw,46px);
    line-height:.9;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:-.06em;
}
.hs-tier__meta-row { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-top:5px; min-width:0; }
.hs-tier__subtitle { color:var(--color-secondary-main); font-size:11px; line-height:1; font-weight:800; text-transform:uppercase; white-space:nowrap; margin-left: 3px;}
.hs-tier__price { display:flex; align-items:baseline; gap:4px; min-width:0; white-space:nowrap; margin-left:auto; }
.hs-tier__price-prefix { color:var(--color-primary-muted); font-size:10px; line-height:1; font-weight:800; text-transform:uppercase; }
.hs-tier__price-value { color:var(--color-primary-muted); font-size:17px; line-height:1; font-weight:800; letter-spacing:-.02em; }
.hs-tier-copy {
    display:grid;
    gap:clamp(16px,1.25vw,22px);
    flex:1;
    margin:clamp(26px,1.8vw,34px) 0 clamp(34px,2.4vw,46px);
    color:var(--color-text-main);
    font-size:15px;
    line-height:1.48;
}
.hs-tier-bullet { display:grid; grid-template-columns:24px minmax(0,1fr); gap:10px; align-items:start; }
.hs-tier-bullet > svg { width:22px; height:22px; margin-top:1px; color:var(--color-secondary-main); stroke-width:2.15; }
.hs-tier-bullet p { margin:0; }
.hs-tier .hypersquare-button { align-self:center; min-height:42px; padding-inline:25px; font-size:12px; margin-top:auto; }
.hypersquare-site .alt-button {
    background: color-mix(in srgb, var(--color-text-heading) 0%, transparent) !important;
    border:1px solid var(--color-text-heading) !important;
    color:var(--color-text-heading) !important;
}
.hypersquare-site .alt-button:hover,
.hypersquare-site .alt-button:focus-visible {
    background: color-mix(in srgb, var(--color-text-heading) 20%, transparent) !important;
    border-color:var(--color-text-heading) !important;
    color:var(--color-text-heading) !important;
}
.hs-detail-summary { width:100%; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:0; border:0; background:transparent; color:inherit; cursor:pointer; text-align:left; }
.hs-detail-summary .hs-section-heading { margin:0; }
.hs-detail-toggle { flex:0 0 auto; display:grid; place-items:center; width:46px; height:46px; }
.hs-detail-toggle svg { width:36px; height:36px; stroke-width:2.4; transition:opacity var(--hypersquare-transition-duration) var(--hypersquare-transition-easing), transform var(--hypersquare-transition-duration) var(--hypersquare-transition-easing); }
.hs-detail-toggle__closed { display:block; }
.hs-detail-toggle__open { display:none; }
.hs-detail-disclosure.is-open .hs-detail-toggle__closed { display:none; }
.hs-detail-disclosure.is-open .hs-detail-toggle__open { display:block; }
.hs-detail-collapse { display:grid; grid-template-rows:0fr; opacity:0; margin-top:0; transition:grid-template-rows var(--hypersquare-transition-duration) var(--hypersquare-transition-easing), opacity var(--hypersquare-transition-duration) var(--hypersquare-transition-easing), margin-top var(--hypersquare-transition-duration) var(--hypersquare-transition-easing); }
.hs-detail-collapse__inner { min-height:0; overflow:hidden; }
.hs-detail-disclosure.is-open .hs-detail-collapse { grid-template-rows:1fr; opacity:1; margin-top:clamp(34px,2.6vw,50px); }
.hs-responsive-columns { align-items:start; }
.hs-detail-column { min-width:0; min-height:100%; display:grid; grid-template-rows:auto 1fr; color:var(--color-text-main); font-size:15px; line-height:1.5; }
.hs-detail-column__copy > :first-child { margin-top:0; }
.hs-detail-column__copy > :last-child { margin-bottom:0; }
.hs-detail-column__image { display:block; width:100%; max-width:260px; max-height:180px; object-fit:contain; }
.hs-detail-column__copy + .hs-detail-column__image { margin-top:24px; }
.hs-detail-column__image--top-left { justify-self:start; align-self:start; }
.hs-detail-column__image--top-center { justify-self:center; align-self:start; }
.hs-detail-column__image--top-right { justify-self:end; align-self:start; }
.hs-detail-column__image--middle-left { justify-self:start; align-self:center; }
.hs-detail-column__image--middle-center { justify-self:center; align-self:center; }
.hs-detail-column__image--middle-right { justify-self:end; align-self:center; }
.hs-detail-column__image--bottom-left { justify-self:start; align-self:end; }
.hs-detail-column__image--bottom-center { justify-self:center; align-self:end; }
.hs-detail-column__image--bottom-right { justify-self:end; align-self:end; }

.hs-example-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    display: grid;
    place-items: center;
    padding: clamp(16px, 4vw, 64px);
    background: color-mix(in srgb, var(--color-bg-deep) 88%, transparent);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 420ms var(--hypersquare-transition-easing), visibility 420ms var(--hypersquare-transition-easing);
}
.hs-example-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.hs-example-lightbox__content {
    width: min(1200px, 90vw);
    max-height: 86vh;
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(260px, .6fr);
    background: var(--color-bg-surface);
    border-radius: 18px;
    overflow: hidden;
    opacity: 0;
    transform: translateY(10px) scale(.985);
    transition: opacity 480ms var(--hypersquare-transition-easing), transform 480ms var(--hypersquare-transition-easing);
}
.hs-example-lightbox.is-open .hs-example-lightbox__content { opacity:1; transform:none; }
.hs-example-lightbox__content > img { width:100%; height:100%; max-height:86vh; object-fit:contain; background:var(--color-bg-deep); touch-action:none; transform-origin:center; will-change:transform; }
.hs-example-lightbox__copy { padding: clamp(24px, 4vw, 56px); }
.hs-example-lightbox [data-hs-close],
.hs-example-lightbox [data-hs-prev],
.hs-example-lightbox [data-hs-next] {
    position:absolute;
    display:grid;
    place-items:center;
    border:0;
    background:var(--color-bg-control);
    color:var(--color-text-main);
    border-radius:999px;
    cursor:pointer;
    transition: background-color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing), transform var(--hypersquare-transition-duration) var(--hypersquare-transition-easing), opacity var(--hypersquare-transition-duration) var(--hypersquare-transition-easing);
}
.hs-example-lightbox [data-hs-close] { top:24px; right:24px; width:40px; height:40px; }
.hs-example-lightbox [data-hs-prev], .hs-example-lightbox [data-hs-next] { width:50px; height:50px; }
.hs-example-lightbox [data-hs-prev] { left:24px; }
.hs-example-lightbox [data-hs-next] { right:24px; }
.hs-example-lightbox [data-hs-close] svg { width:20px; height:20px; stroke-width:2; }
.hs-example-lightbox [data-hs-prev] svg, .hs-example-lightbox [data-hs-next] svg { width:30px; height:30px; stroke-width:1.8; }
.hs-example-lightbox [data-hs-close]:hover, .hs-example-lightbox [data-hs-prev]:hover, .hs-example-lightbox [data-hs-next]:hover { background:color-mix(in srgb,var(--color-text-heading) 18%,var(--color-bg-control)); transform:scale(1.06); }
.hs-lightbox-open { overflow:hidden; }

.hs-ready-cta {
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:1fr auto;
    align-items:stretch;

    /* Full Hypersquare canvas width, even though this block lives inside the
       padded tiers section. It never exceeds the site's global max-width. */
    width:min(100vw,var(--hypersquare-site-max-width));
    max-width:var(--hypersquare-site-max-width);
    margin-top:clamp(54px,4vw,76px);
    margin-right:0;
    margin-bottom:0;
    margin-left:calc((100% - min(100vw,var(--hypersquare-site-max-width))) / 2);

    padding:0;
    min-height:clamp(170px,16vw,250px);
    /* Purple foundation. The animated colour field is composited above it. */
    background:#4b08c7;
    isolation:isolate;
}

/*
 * Animated gradient matrix.
 * Each radial field has an independently animated X/Y coordinate inside the
 * pseudo-element. This keeps every field genuinely circular while producing
 * diagonal, vertical, looping and crossing motion instead of lateral bands.
 */
@property --hs-a1x { syntax:'<percentage>'; inherits:false; initial-value:12%; }
@property --hs-a1y { syntax:'<percentage>'; inherits:false; initial-value:74%; }
@property --hs-a2x { syntax:'<percentage>'; inherits:false; initial-value:34%; }
@property --hs-a2y { syntax:'<percentage>'; inherits:false; initial-value:18%; }
@property --hs-a3x { syntax:'<percentage>'; inherits:false; initial-value:66%; }
@property --hs-a3y { syntax:'<percentage>'; inherits:false; initial-value:76%; }
@property --hs-a4x { syntax:'<percentage>'; inherits:false; initial-value:88%; }
@property --hs-a4y { syntax:'<percentage>'; inherits:false; initial-value:24%; }
@property --hs-b1x { syntax:'<percentage>'; inherits:false; initial-value:84%; }
@property --hs-b1y { syntax:'<percentage>'; inherits:false; initial-value:76%; }
@property --hs-b2x { syntax:'<percentage>'; inherits:false; initial-value:68%; }
@property --hs-b2y { syntax:'<percentage>'; inherits:false; initial-value:18%; }
@property --hs-b3x { syntax:'<percentage>'; inherits:false; initial-value:42%; }
@property --hs-b3y { syntax:'<percentage>'; inherits:false; initial-value:78%; }
@property --hs-b4x { syntax:'<percentage>'; inherits:false; initial-value:16%; }
@property --hs-b4y { syntax:'<percentage>'; inherits:false; initial-value:26%; }
@property --hs-b5x { syntax:'<percentage>'; inherits:false; initial-value:76%; }
@property --hs-b5y { syntax:'<percentage>'; inherits:false; initial-value:52%; }

/* Independent field radii. Each one breathes on its own cadence so the colour
 * masses gently expand and contract without synchronising their movement. */
@property --hs-a1r { syntax:'<length>'; inherits:false; initial-value:390px; }
@property --hs-a2r { syntax:'<length>'; inherits:false; initial-value:470px; }
@property --hs-a3r { syntax:'<length>'; inherits:false; initial-value:350px; }
@property --hs-a4r { syntax:'<length>'; inherits:false; initial-value:420px; }
@property --hs-b1r { syntax:'<length>'; inherits:false; initial-value:510px; }
@property --hs-b2r { syntax:'<length>'; inherits:false; initial-value:405px; }
@property --hs-b3r { syntax:'<length>'; inherits:false; initial-value:330px; }
@property --hs-b4r { syntax:'<length>'; inherits:false; initial-value:380px; }
@property --hs-b5r { syntax:'<length>'; inherits:false; initial-value:310px; }

.hs-ready-cta::before,
.hs-ready-cta::after {
    content:'';
    position:absolute;
    inset:-38%;
    pointer-events:none;
    background-repeat:no-repeat;
    transform:translateZ(0);
    will-change:contents;
}

.hs-ready-cta::before {
    z-index:0;
    opacity:.98;
    mix-blend-mode:screen;
    background:
        radial-gradient(circle var(--hs-a1r) at var(--hs-a1x) var(--hs-a1y), rgba(124,54,255,.96) 0%, rgba(112,42,242,.82) 24%, rgba(100,34,225,.48) 46%, rgba(155,100,255,.34) 60%, rgba(178,132,255,.22) 68%, rgba(132,74,246,.10) 76%, rgba(124,54,255,0) 86%),
        radial-gradient(circle var(--hs-a2r) at var(--hs-a2x) var(--hs-a2y), rgba(79,35,236,.92) 0%, rgba(69,27,218,.73) 26%, rgba(61,24,194,.40) 47%, rgba(113,91,255,.29) 61%, rgba(144,126,255,.18) 70%, rgba(91,65,235,.08) 78%, rgba(79,35,236,0) 87%),
        radial-gradient(circle var(--hs-a3r) at var(--hs-a3x) var(--hs-a3y), rgba(165,77,255,.72) 0%, rgba(147,57,238,.56) 25%, rgba(130,46,215,.32) 46%, rgba(198,128,255,.25) 59%, rgba(216,158,255,.16) 68%, rgba(177,98,244,.07) 77%, rgba(165,77,255,0) 87%),
        radial-gradient(circle var(--hs-a4r) at var(--hs-a4x) var(--hs-a4y), rgba(66,92,255,.64) 0%, rgba(55,76,232,.49) 27%, rgba(47,63,205,.28) 48%, rgba(112,129,255,.22) 62%, rgba(144,154,255,.14) 70%, rgba(83,101,236,.06) 78%, rgba(66,92,255,0) 88%);
    animation:
        hs-float-a1 37s linear -11s infinite,
        hs-float-a2 49s linear -31s infinite,
        hs-float-a3 43s linear -7s infinite,
        hs-float-a4 57s linear -39s infinite,
        hs-pulse-a1 19s ease-in-out -4s infinite,
        hs-pulse-a2 27s ease-in-out -18s infinite,
        hs-pulse-a3 23s ease-in-out -9s infinite,
        hs-pulse-a4 31s ease-in-out -22s infinite;
}

.hs-ready-cta::after {
    z-index:0;
    opacity:.90;
    mix-blend-mode:soft-light;
    background:
        radial-gradient(circle var(--hs-b1r) at var(--hs-b1x) var(--hs-b1y), rgba(27,5,94,.98) 0%, rgba(24,4,82,.78) 27%, rgba(20,3,70,.43) 48%, rgba(62,31,129,.31) 61%, rgba(87,53,153,.20) 69%, rgba(45,19,110,.09) 77%, rgba(27,5,94,0) 87%),
        radial-gradient(circle var(--hs-b2r) at var(--hs-b2x) var(--hs-b2y), rgba(66,15,156,.92) 0%, rgba(57,11,140,.67) 26%, rgba(49,10,120,.38) 47%, rgba(101,54,184,.29) 61%, rgba(127,79,204,.18) 70%, rgba(78,34,164,.08) 78%, rgba(66,15,156,0) 88%),
        radial-gradient(circle var(--hs-b3r) at var(--hs-b3x) var(--hs-b3y), rgba(191,64,212,.27) 0%, rgba(171,48,192,.19) 25%, rgba(148,39,168,.11) 46%, rgba(215,116,226,.095) 60%, rgba(229,145,236,.06) 69%, rgba(190,75,204,.025) 77%, rgba(191,64,212,0) 87%),
        radial-gradient(circle var(--hs-b4r) at var(--hs-b4x) var(--hs-b4y), rgba(90,66,218,.72) 0%, rgba(77,53,199,.51) 26%, rgba(65,44,174,.29) 47%, rgba(125,107,235,.23) 61%, rgba(151,137,242,.14) 70%, rgba(102,82,211,.06) 78%, rgba(90,66,218,0) 88%),
        radial-gradient(circle var(--hs-b5r) at var(--hs-b5x) var(--hs-b5y), rgba(255,126,61,.28) 0%, rgba(239,87,69,.20) 24%, rgba(220,67,88,.12) 45%, rgba(255,145,106,.105) 59%, rgba(255,174,137,.065) 68%, rgba(239,98,102,.028) 76%, rgba(235,74,91,0) 86%);
    animation:
        hs-float-b1 61s linear -17s infinite,
        hs-float-b2 47s linear -29s infinite,
        hs-float-b3 53s linear -5s infinite,
        hs-float-b4 67s linear -43s infinite,
        hs-float-b5 41s linear -23s infinite,
        hs-pulse-b1 29s ease-in-out -13s infinite,
        hs-pulse-b2 21s ease-in-out -6s infinite,
        hs-pulse-b3 25s ease-in-out -19s infinite,
        hs-pulse-b4 33s ease-in-out -24s infinite,
        hs-pulse-b5 17s ease-in-out -8s infinite;
}
.hs-ready-cta > * { position:relative; z-index:1; min-width:0; }
.hs-ready-cta.hs-layout-stack { grid-template-columns:1fr; }

.hs-ready-cta__text-slot,
.hs-ready-cta__button-slot {
    display:flex;
    min-width:0;
}
.hs-ready-cta__text-slot {
    justify-content:var(--hs-cta-text-justify-desktop,center);
    align-items:var(--hs-cta-text-align-desktop,center);
    padding:
        var(--hs-cta-text-pt-desktop,0)
        var(--hs-cta-text-pr-desktop,0)
        var(--hs-cta-text-pb-desktop,0)
        var(--hs-cta-text-pl-desktop,0);
}
.hs-ready-cta__button-slot {
    justify-content:var(--hs-cta-button-justify-desktop,center);
    align-items:var(--hs-cta-button-align-desktop,center);
    padding:
        var(--hs-cta-button-pt-desktop,0)
        var(--hs-cta-button-pr-desktop,0)
        var(--hs-cta-button-pb-desktop,0)
        var(--hs-cta-button-pl-desktop,0);

    /* Lets the button typography react to the actual available CTA column,
       not merely the viewport width. */
    container-type:inline-size;
}
.hs-ready-cta__headline {
    user-select: none;
    margin:0;
    width:max-content;
    max-width:100%;
    text-align:var(--hs-cta-text-text-align-desktop,center);
    font-size:clamp(32px,2.55vw,48px);
    line-height:.98;
    letter-spacing:-.05em;
}
.hypersquare-site .hs-ready-cta__button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.55em;
    box-sizing:border-box;
    width:max-content;
    min-width:0;
    min-height:58px;
    max-width:min(100%,620px);

    /* User-controlled size remains authoritative on roomy layouts. */
    padding:var(--hs-cta-button-padding,14px 40px);

    border-radius:12px;
    background:var(--color-text-heading) !important;
    color:var(--color-primary-main) !important;
    font-family:'Space Mono',monospace;

    /* Shrink only when the containing CTA column gets tight. */
    font-size:clamp(13px,4.2cqi,var(--hs-cta-button-text-size,20px)) !important;
    font-weight:700;
    line-height:var(--hs-cta-button-line-height,1);
    white-space:normal;
    overflow:hidden;
    isolation:isolate;
    transition:
        background-color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),
        color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),
        border-color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),
        opacity var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),
        transform var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),
        box-shadow var(--hypersquare-transition-duration) var(--hypersquare-transition-easing);
}
.hypersquare-site .hs-ready-cta__button:hover,
.hypersquare-site .hs-ready-cta__button:focus-visible {
    background:var(--color-text-heading) !important;
    color:var(--color-primary-main) !important;
    box-shadow:0 0 34px color-mix(in srgb,var(--color-primary-soft) 46%,transparent);
}
.hs-ready-cta__button-text {
    user-select: none;
    min-width:0;
    max-width:100%;
    white-space:pre-line;
    text-wrap:balance;
    text-align:center;
    text-transform:uppercase;
    line-height:inherit;
    color:var(--color-primary-main);
    transition:color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing);
}
.hypersquare-site .hs-ready-cta__button:hover .hs-ready-cta__button-text,
.hypersquare-site .hs-ready-cta__button:focus-visible .hs-ready-cta__button-text {
    color:var(--color-primary-soft);
    background:none;
}
.hs-ready-cta__icon-mask {
    display:block;
    width:max(1.2em, min(var(--hs-cta-button-icon-size,2.2em), 10cqi));
    height:max(1.2em, min(var(--hs-cta-button-icon-size,2.2em), 10cqi));
    flex:0 0 max(1.2em, min(var(--hs-cta-button-icon-size,2.2em), 10cqi));
    background:currentColor;
    -webkit-mask-image:var(--hs-cta-icon);
    mask-image:var(--hs-cta-icon);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-size:contain;
    mask-size:contain;
    transition:background-color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing);
}
.hs-ready-cta__button > svg {
    width:max(1.2em, min(var(--hs-cta-button-icon-size,2.2em), 10cqi));
    height:max(1.2em, min(var(--hs-cta-button-icon-size,2.2em), 10cqi));
    flex:0 0 max(1.2em, min(var(--hs-cta-button-icon-size,2.2em), 10cqi));
    color:currentColor;
    transition:color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing);
}
.hypersquare-site .hs-ready-cta__button:hover .hs-ready-cta__icon-mask,
.hypersquare-site .hs-ready-cta__button:focus-visible .hs-ready-cta__icon-mask {
    background:var(--color-primary-soft);
}
.hypersquare-site .hs-ready-cta__button:hover > svg,
.hypersquare-site .hs-ready-cta__button:focus-visible > svg {
    color:var(--color-primary-soft);
}


@keyframes hs-float-a1 {
    0%{--hs-a1x:7%;--hs-a1y:78%} 9%{--hs-a1x:18%;--hs-a1y:53%} 17%{--hs-a1x:36%;--hs-a1y:31%} 28%{--hs-a1x:61%;--hs-a1y:17%} 39%{--hs-a1x:82%;--hs-a1y:29%} 48%{--hs-a1x:91%;--hs-a1y:55%} 59%{--hs-a1x:76%;--hs-a1y:82%} 69%{--hs-a1x:51%;--hs-a1y:91%} 78%{--hs-a1x:28%;--hs-a1y:80%} 88%{--hs-a1x:12%;--hs-a1y:59%} 100%{--hs-a1x:7%;--hs-a1y:78%}
}
@keyframes hs-float-a2 {
    0%{--hs-a2x:35%;--hs-a2y:9%} 7%{--hs-a2x:55%;--hs-a2y:18%} 16%{--hs-a2x:77%;--hs-a2y:37%} 26%{--hs-a2x:88%;--hs-a2y:64%} 37%{--hs-a2x:74%;--hs-a2y:86%} 49%{--hs-a2x:48%;--hs-a2y:93%} 58%{--hs-a2x:24%;--hs-a2y:80%} 68%{--hs-a2x:10%;--hs-a2y:55%} 79%{--hs-a2x:17%;--hs-a2y:28%} 90%{--hs-a2x:32%;--hs-a2y:14%} 100%{--hs-a2x:35%;--hs-a2y:9%}
}
@keyframes hs-float-a3 {
    0%{--hs-a3x:70%;--hs-a3y:86%} 8%{--hs-a3x:86%;--hs-a3y:70%} 19%{--hs-a3x:91%;--hs-a3y:43%} 31%{--hs-a3x:77%;--hs-a3y:19%} 40%{--hs-a3x:53%;--hs-a3y:10%} 52%{--hs-a3x:29%;--hs-a3y:23%} 63%{--hs-a3x:13%;--hs-a3y:49%} 74%{--hs-a3x:22%;--hs-a3y:76%} 84%{--hs-a3x:44%;--hs-a3y:91%} 93%{--hs-a3x:63%;--hs-a3y:89%} 100%{--hs-a3x:70%;--hs-a3y:86%}
}
@keyframes hs-float-a4 {
    0%{--hs-a4x:91%;--hs-a4y:21%} 11%{--hs-a4x:74%;--hs-a4y:10%} 21%{--hs-a4x:49%;--hs-a4y:17%} 30%{--hs-a4x:26%;--hs-a4y:37%} 42%{--hs-a4x:12%;--hs-a4y:64%} 54%{--hs-a4x:28%;--hs-a4y:87%} 65%{--hs-a4x:55%;--hs-a4y:92%} 73%{--hs-a4x:78%;--hs-a4y:78%} 84%{--hs-a4x:90%;--hs-a4y:52%} 93%{--hs-a4x:86%;--hs-a4y:31%} 100%{--hs-a4x:91%;--hs-a4y:21%}
}
@keyframes hs-float-b1 {
    0%{--hs-b1x:88%;--hs-b1y:82%} 6%{--hs-b1x:71%;--hs-b1y:92%} 15%{--hs-b1x:46%;--hs-b1y:89%} 25%{--hs-b1x:23%;--hs-b1y:72%} 36%{--hs-b1x:10%;--hs-b1y:45%} 47%{--hs-b1x:18%;--hs-b1y:20%} 57%{--hs-b1x:42%;--hs-b1y:8%} 66%{--hs-b1x:68%;--hs-b1y:17%} 77%{--hs-b1x:87%;--hs-b1y:40%} 89%{--hs-b1x:94%;--hs-b1y:67%} 100%{--hs-b1x:88%;--hs-b1y:82%}
}
@keyframes hs-float-b2 {
    0%{--hs-b2x:73%;--hs-b2y:12%} 10%{--hs-b2x:89%;--hs-b2y:29%} 18%{--hs-b2x:92%;--hs-b2y:55%} 29%{--hs-b2x:79%;--hs-b2y:80%} 41%{--hs-b2x:54%;--hs-b2y:92%} 51%{--hs-b2x:29%;--hs-b2y:84%} 60%{--hs-b2x:12%;--hs-b2y:61%} 72%{--hs-b2x:15%;--hs-b2y:34%} 83%{--hs-b2x:36%;--hs-b2y:14%} 92%{--hs-b2x:58%;--hs-b2y:8%} 100%{--hs-b2x:73%;--hs-b2y:12%}
}
@keyframes hs-float-b3 {
    0%{--hs-b3x:43%;--hs-b3y:90%} 8%{--hs-b3x:22%;--hs-b3y:80%} 20%{--hs-b3x:10%;--hs-b3y:56%} 31%{--hs-b3x:18%;--hs-b3y:29%} 39%{--hs-b3x:39%;--hs-b3y:11%} 50%{--hs-b3x:66%;--hs-b3y:9%} 62%{--hs-b3x:87%;--hs-b3y:27%} 71%{--hs-b3x:93%;--hs-b3y:53%} 82%{--hs-b3x:78%;--hs-b3y:79%} 92%{--hs-b3x:56%;--hs-b3y:92%} 100%{--hs-b3x:43%;--hs-b3y:90%}
}
@keyframes hs-float-b4 {
    0%{--hs-b4x:11%;--hs-b4y:24%} 7%{--hs-b4x:25%;--hs-b4y:11%} 18%{--hs-b4x:50%;--hs-b4y:9%} 27%{--hs-b4x:75%;--hs-b4y:23%} 38%{--hs-b4x:91%;--hs-b4y:47%} 50%{--hs-b4x:86%;--hs-b4y:74%} 61%{--hs-b4x:64%;--hs-b4y:91%} 70%{--hs-b4x:38%;--hs-b4y:88%} 81%{--hs-b4x:17%;--hs-b4y:69%} 91%{--hs-b4x:8%;--hs-b4y:42%} 100%{--hs-b4x:11%;--hs-b4y:24%}
}
@keyframes hs-float-b5 {
    0%{--hs-b5x:78%;--hs-b5y:50%} 9%{--hs-b5x:68%;--hs-b5y:75%} 17%{--hs-b5x:48%;--hs-b5y:90%} 28%{--hs-b5x:23%;--hs-b5y:86%} 40%{--hs-b5x:9%;--hs-b5y:64%} 49%{--hs-b5x:13%;--hs-b5y:37%} 60%{--hs-b5x:31%;--hs-b5y:16%} 71%{--hs-b5x:57%;--hs-b5y:9%} 79%{--hs-b5x:80%;--hs-b5y:23%} 91%{--hs-b5x:91%;--hs-b5y:43%} 100%{--hs-b5x:78%;--hs-b5y:50%}
}


/* Organic breathing. The pulse ranges stay deliberately restrained so the
 * gradients swell and relax instead of visibly popping between sizes. */
@keyframes hs-pulse-a1 { 0%,100% { --hs-a1r:350px; } 32% { --hs-a1r:430px; } 67% { --hs-a1r:382px; } }
@keyframes hs-pulse-a2 { 0%,100% { --hs-a2r:430px; } 41% { --hs-a2r:535px; } 73% { --hs-a2r:468px; } }
@keyframes hs-pulse-a3 { 0%,100% { --hs-a3r:318px; } 36% { --hs-a3r:394px; } 71% { --hs-a3r:346px; } }
@keyframes hs-pulse-a4 { 0%,100% { --hs-a4r:378px; } 29% { --hs-a4r:456px; } 64% { --hs-a4r:482px; } 82% { --hs-a4r:410px; } }
@keyframes hs-pulse-b1 { 0%,100% { --hs-b1r:462px; } 38% { --hs-b1r:575px; } 76% { --hs-b1r:518px; } }
@keyframes hs-pulse-b2 { 0%,100% { --hs-b2r:366px; } 34% { --hs-b2r:446px; } 69% { --hs-b2r:418px; } }
@keyframes hs-pulse-b3 { 0%,100% { --hs-b3r:298px; } 44% { --hs-b3r:372px; } 78% { --hs-b3r:324px; } }
@keyframes hs-pulse-b4 { 0%,100% { --hs-b4r:342px; } 31% { --hs-b4r:397px; } 58% { --hs-b4r:438px; } 84% { --hs-b4r:374px; } }
@keyframes hs-pulse-b5 { 0%,100% { --hs-b5r:278px; } 37% { --hs-b5r:348px; } 72% { --hs-b5r:319px; } }


.hs-catalog {
    width: 100%;
    padding: 0 clamp(24px, 4cqw, 64px) clamp(64px, 7cqw, 120px);
}
.hs-catalog__controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: clamp(18px, 2cqw, 36px);
    border-bottom: 1px solid var(--color-border-emphasis);
}
.hs-catalog__search { min-width: 0; display: flex; align-items: center; gap: clamp(10px, 1cqw, 16px); }
.hs-catalog__search > svg { flex: 0 0 auto; }
.hs-catalog__search input { appearance:none; border:0; outline:0; background:transparent; color:var(--color-text-main); min-width:0; width:100%; padding-block:clamp(12px,1.2cqw,20px); font-family:'Space Mono',monospace; font-size:clamp(20px,2.35cqw,38px); line-height:1.1; }
.hs-catalog__search input::placeholder { color: var(--color-text-muted); }
.hs-catalog__search button { flex:0 0 auto; border:0; background:transparent; color:var(--color-text-muted); font-size:clamp(10px,.65cqw,12px); font-weight:600; text-transform:uppercase; cursor:pointer; }
.hs-catalog__toggle { display:inline-flex; align-items:center; gap:10px; font-size:clamp(10px,.65cqw,12px); font-weight:700; text-transform:uppercase; cursor:pointer; user-select:none; }
.hs-catalog__toggle-input { position:absolute; inline-size:1px; block-size:1px; opacity:0; pointer-events:none; }
.hs-catalog__toggle-track { position:relative; width:40px; height:22px; border-radius:999px; background:var(--color-border-muted); transition:background-color 160ms ease; }
.hs-catalog__toggle-track > span { position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:var(--color-text-muted); transition:transform 160ms ease,background-color 160ms ease; }
.hs-catalog__toggle-input:checked + .hs-catalog__toggle-track { background:var(--color-primary-main); }
.hs-catalog__toggle-input:checked + .hs-catalog__toggle-track > span { transform:translateX(18px); background:var(--color-text-heading); }
.hs-catalog__pills { display:flex; flex-wrap:wrap; gap:clamp(8px,.65cqw,12px); padding-block:clamp(14px,1.3cqw,22px); }
.hs-catalog__pills button { display:inline-flex; align-items:center; gap:clamp(7px,.55cqw,10px); min-height:44px; border:1px solid var(--color-text-soft); border-radius:999px; background:transparent; color:var(--color-text-main); padding:7px clamp(13px,1cqw,18px); font-family:'Space Mono',monospace; font-size:clamp(11px,3.2cqw,14px); line-height:1.02; text-align:left; cursor:pointer; transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,transform 180ms ease; }
.hs-catalog__pills button:hover { border-color:var(--color-primary-muted); background:color-mix(in srgb,var(--color-primary-muted) 18%,transparent); color:var(--color-primary-muted); }
.hs-catalog__pills button svg { flex:0 0 auto; width:clamp(19px,1.35cqw,25px); height:clamp(19px,1.35cqw,25px); }
.hs-catalog__pills button.is-active { border-color:var(--color-primary-muted); background:color-mix(in srgb,var(--color-primary-muted) 28%,transparent); color:var(--color-primary-muted); }
.hs-catalog__sort { display:flex; justify-content:flex-end; margin:clamp(10px,1.2cqw,20px) 0; }
.hs-catalog__sort button { appearance:none; display:inline-flex; align-items:center; gap:.5em; border:0; background:transparent; color:var(--color-text-main); padding:8px 0; font:inherit; font-size:clamp(10px,.7cqw,13px); font-weight:700; text-transform:uppercase; cursor:pointer; }
.hs-catalog__sort button:hover { color:var(--color-text-heading); }
.hs-catalog__sort svg { width:1.1em; height:1.1em; flex:0 0 auto; transition:transform 180ms ease; }
.hs-catalog__grid { --hs-catalog-columns:3; --hs-catalog-gap:clamp(16px,1.4cqw,24px); display:grid; grid-template-columns:repeat(var(--hs-catalog-columns),minmax(0,1fr)); grid-auto-flow:dense; gap:var(--hs-catalog-gap); align-items:stretch; transition:opacity 150ms ease,transform 180ms ease; }
.hs-catalog__grid--masonry { position:relative; display:block; }
.hs-catalog__grid--masonry .hs-catalog-card { position:absolute; inset:auto; margin:0; height:auto; will-change:transform; }
.hs-catalog__grid.is-filtering { opacity:.35; transform:translateY(4px); }
.hs-catalog__grid.is-filtered-in { animation:hs-catalog-in 180ms ease both; }
@keyframes hs-catalog-in { from { opacity:.45; transform:translateY(4px); } to { opacity:1; transform:none; } }
.hs-catalog-card { position:relative; display:flex; flex-direction:column; min-width:0; height:100%; overflow:hidden; border-radius:26px; background:var(--color-bg-main); color:var(--color-text-main); text-decoration:none; container-type:inline-size; transition:border-color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),background-color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),box-shadow var(--hypersquare-transition-duration) var(--hypersquare-transition-easing); }
.hs-catalog-card:hover { box-shadow:0 18px 42px color-mix(in srgb,var(--color-bg-deep) 62%,transparent); }
.hs-catalog-card[hidden] { display:none !important; }
.hs-catalog-card--service { border:1px solid var(--color-text-main); }
.hs-catalog-card--bundle { border:1px solid var(--color-secondary-main); }
.hs-catalog-card--featured { grid-column:span 2; display:grid; grid-template-columns:minmax(0,1.72fr) minmax(220px,.78fr); aspect-ratio:2.55/1; min-height:0; align-items:stretch; }
.hs-catalog-card__media { position:relative; width:100%; aspect-ratio:1.22/1; overflow:hidden; background:var(--color-bg-main); }
.hs-catalog-card__image { display:block; width:100%; height:100%; object-fit:cover; transform:scale(1); transition:transform var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),filter var(--hypersquare-transition-duration) var(--hypersquare-transition-easing); }
.hs-catalog-card:hover .hs-catalog-card__image { transform:scale(1.03); filter:drop-shadow(0 12px 20px color-mix(in srgb,var(--color-bg-deep) 52%,transparent)); }
.hs-catalog-card--featured > .hs-catalog-card__media { height:100%; min-height:0; aspect-ratio:auto; align-self:stretch; }
.hs-catalog-card--featured > .hs-catalog-card__media .hs-catalog-card__image { height:100%; }
.hs-catalog-card__body { position:relative; display:flex; flex-direction:column; flex:1; min-width:0; padding:clamp(24px,1.9cqw,34px); }
.hs-catalog-card h3 { margin:0; font-family:'Space Mono',monospace; font-size:clamp(18px,6.1cqw,30px); line-height:1.08; text-transform:uppercase; overflow-wrap:anywhere; }
.hs-catalog-card--featured h3 { font-size:clamp(24px,4.8cqw,38px); }
.hs-catalog-card__summary { margin-top:clamp(10px,.9cqw,16px); color:var(--color-text-body); font-size:clamp(11px,3.2cqw,14px); line-height:1.35; }
.hs-catalog-card__meta { margin:clamp(8px,.65cqw,12px) 0 0; color:var(--color-text-soft); font-size:clamp(11px,2.5cqw,13px); line-height:1.35; }
.hs-catalog-card time { margin-top:auto; padding-top:clamp(12px,1cqw,18px); align-self:flex-end; font-size:clamp(9px,2.5cqw,11px); color:var(--color-text-muted); }
.hs-catalog-card__logo + time { margin-top:0; padding-top:0; }
.hs-catalog-card__logo { width:auto; max-width:clamp(100px,10%,220px); object-fit:contain; margin-top:auto; margin-left:auto; margin-bottom:clamp(10px,.8cqw,14px); }
.hs-catalog-card__price-cluster { position:absolute; top:0; right:clamp(20px,5cqw,48px); z-index:4; display:flex; align-items:stretch; white-space:nowrap; }
.hs-catalog-card__price { display:flex; align-items:baseline; gap:.4em; background:var(--color-text-heading); color:var(--color-bg-deep); border-radius:0 0 clamp(20px,1.55cqw,30px) clamp(20px,1.55cqw,30px); padding:clamp(14px,1.05cqw,19px) clamp(20px,1.55cqw,30px); font-weight:800; text-transform:uppercase; line-height:1; }
.hs-catalog-card__price-from { font-size:clamp(9px,.58cqw,11px); font-weight:700; }
.hs-catalog-card__price-value { font-size:clamp(17px,1.2cqw,22px); font-weight:800; letter-spacing:-.02em; }
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price { min-width:clamp(168px,31cqw,232px); justify-content:center; margin-left:-10px; padding:clamp(15px,1.2cqw,21px) clamp(22px,1.7cqw,32px) clamp(15px,1.2cqw,21px) calc(clamp(22px,1.7cqw,32px) + 10px); border-radius:0 0 clamp(22px,1.7cqw,32px) 0; }
.hs-catalog-card__saving { display:flex; align-items:center; justify-content:center; position:relative; z-index:1; min-width:clamp(86px,16cqw,116px); border-radius:0 0 0 clamp(22px,1.7cqw,32px); background:var(--color-secondary-main); color:var(--color-bg-deep); padding:clamp(15px,1.2cqw,21px) calc(clamp(32px,3cqw,42px) + 10px) clamp(15px,1.2cqw,21px) clamp(12px,1.55cqw,24px); font-size:clamp(19px,1.45cqw,25px); font-weight:800; clip-path:polygon(0 0,calc(100% - 10px) 0,100% 16.66%,calc(100% - 10px) 33.33%,100% 50%,calc(100% - 10px) 66.66%,100% 83.33%,calc(100% - 10px) 100%,0 100%); margin-right: -24px; padding-right: 42px;}
.hs-catalog-card__button { align-self:flex-end; margin-top:auto; padding-top:clamp(18px,1.4cqw,24px); min-height:calc(var(--hypersquare-button-height)*.78) !important; padding-inline:calc(var(--hypersquare-button-padding-inline)*.85) !important; font-size:calc(var(--hypersquare-button-font-size)*.8) !important; }
.hypersquare-site .hs-catalog-card--service .hs-catalog-card__button,
.hypersquare-site .hs-catalog-card--bundle .hs-catalog-card__button {
    transform: translate(9px, 9px);
}
.hypersquare-site .hs-catalog-card--bundle .hs-catalog-card__button { background:var(--color-secondary-main) !important; color:var(--color-bg-deep) !important; }
.hypersquare-site .hs-catalog-card--bundle:hover .hs-catalog-card__button { background:var(--color-secondary-hover) !important; }
.hs-catalog-card--service:hover .hs-catalog-card__button { background:var(--color-primary-hover); }
.hs-catalog__grid--searching { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--hs-catalog-gap); align-items:stretch; height:auto !important; }
.hs-catalog__grid--searching .hs-catalog-card { position:relative; width:auto !important; transform:none !important; display:flex; }
.hs-catalog__grid--searching .hs-catalog-card__media { aspect-ratio:1.18/1; }
.hs-catalog__grid--searching .hs-catalog-card--featured { aspect-ratio:auto; }
.hs-catalog__grid--searching .hs-catalog-card--featured h3 { font-size:clamp(18px,6.1cqw,30px); }
@media (min-width:801px) and (max-width:1200px) { .hs-tier-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(44px,5vw,72px) clamp(34px,4vw,60px); width:min(80%,600px); margin-inline:auto; } .hs-responsive-columns { grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(44px,5vw,72px) clamp(34px,4vw,60px); } .hs-tier-block { --hs-section-inline-padding:clamp(34px,4vw,58px); } .hs-related__grid,.hs-catalog__grid { --hs-catalog-columns:2; grid-template-columns:repeat(2,minmax(0,1fr)); } .hs-entity-hero__content { grid-template-columns:1fr 1fr; } }
@media (max-width:800px) {
    .hs-entity-hero__content,.hs-ready-cta,.hs-example-lightbox__content { grid-template-columns:1fr; }
    .hs-tier-block {
        --hs-section-inline-padding: 16px;
        overflow:hidden;
        padding-top:36px;
        padding-bottom:12px;
    }
    .hs-tier-grid {
        display:flex;
        width:100%;
        gap:18px;
        overflow-x:auto;
        overscroll-behavior-inline:contain;
        scroll-snap-type:x mandatory;
        scrollbar-width:none;
        padding:0 0 8px 7%;
        scroll-padding-left:7%;
        -webkit-mask-image:linear-gradient(to right, transparent 0, #000 2%, #000 98%, transparent 100%);
        mask-image:linear-gradient(to right, transparent 0, #000 2%, #000 98%, transparent 100%);
    }
    .hs-tier-grid::-webkit-scrollbar { display:none; }
    .hs-tier {
        flex:0 0 72%;
        width:72%;
        height:auto;
        align-self:flex-start;
        scroll-snap-align:start;
        scroll-snap-stop:always;
    }
    .hs-tier > .hypersquare-button { display:flex; width:max-content; margin-inline:auto !important; align-self:center !important; }
    .hs-tier__header { grid-template-columns:64px minmax(0,1fr); gap:8px; min-height:76px; }
    .hs-tier-copy { font-size:14px; gap:14px; margin:22px 0 30px; }
    .hs-tier h3 { font-size:34px; }
    .hs-tier-bullet { grid-template-columns:22px minmax(0,1fr); gap:8px; }
    .hs-tier-bullet > svg { width:20px; height:20px; }
    .hs-ready-cta {
        width:100vw;
        max-width:100vw;
        margin-top:48px;
        margin-left:calc((100% - 100vw) / 2);
        margin-right:0;
        margin-bottom:0;
        padding:0;
        min-height:220px;
    }
    .hs-responsive-columns,.hs-related__grid { grid-template-columns:1fr; }
    .hs-catalog__grid { --hs-catalog-columns:1; grid-template-columns:1fr; }
    .hs-catalog-card--featured { grid-column:span 1; display:flex; aspect-ratio:auto; }
    .hs-catalog-card--featured > .hs-catalog-card__media { height:auto; aspect-ratio:16/9; }
    .hs-catalog__controls { grid-template-columns:1fr; }
    .hs-catalog__toggle { padding-bottom:12px; }
    .hs-example-lightbox__content { overflow-y:auto; }
    .hs-example-lightbox__content img { height:auto; }
    .hs-example-lightbox [data-hs-prev] { left:8px; }
    .hs-example-lightbox [data-hs-next] { right:8px; }
}

@media (prefers-reduced-motion: reduce) { .hs-ready-cta::before, .hs-ready-cta::after { animation: none; } }
.hs-tier-grid, .hs-responsive-columns { grid-template-columns: repeat(var(--hs-cols-desktop, 4), minmax(0, 1fr)); }
@media (max-width: 1200px) { .hs-tier-grid, .hs-responsive-columns { grid-template-columns: repeat(var(--hs-cols-tablet, 2), minmax(0, 1fr)); } }
@media (max-width: 800px) {
    .hs-responsive-columns { grid-template-columns: repeat(var(--hs-cols-mobile, 1), minmax(0, 1fr)); }
    .hs-tier-block[data-mobile-mode="grid"] .hs-tier-grid { display: grid; overflow: visible; grid-template-columns: repeat(var(--hs-cols-mobile, 1), minmax(0, 1fr)); }
}
.hs-entity-hero[data-desktop-layout="side"] .hs-entity-hero__content { grid-template-columns: minmax(0, var(--hs-split-desktop, 40%)) minmax(0, calc(100% - var(--hs-split-desktop, 40%))); }
.hs-entity-hero[data-desktop-layout="stack"] .hs-entity-hero__content { grid-template-columns: 1fr; }
@media (max-width: 1200px) {
    .hs-entity-hero[data-tablet-layout="side"] .hs-entity-hero__content { grid-template-columns: minmax(0, var(--hs-split-tablet, 40%)) minmax(0, calc(100% - var(--hs-split-tablet, 40%))); }
    .hs-entity-hero[data-tablet-layout="stack"] .hs-entity-hero__content { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
    .hs-entity-hero[data-mobile-layout="side"] .hs-entity-hero__content { grid-template-columns: minmax(0, var(--hs-split-mobile, 40%)) minmax(0, calc(100% - var(--hs-split-mobile, 40%))); }
    .hs-entity-hero[data-mobile-layout="stack"] .hs-entity-hero__content { grid-template-columns: 1fr; }
}
.hs-ready-cta[data-desktop-layout="side"] { grid-template-columns: minmax(0,var(--hs-cta-desktop,55%)) minmax(0,calc(100% - var(--hs-cta-desktop,55%))); }.hs-ready-cta[data-desktop-layout="stack"] { grid-template-columns:1fr; grid-template-rows:repeat(2,minmax(0,1fr)); }
@media (max-width: 1200px) { .hs-ready-cta[data-tablet-layout="side"] { grid-template-columns: minmax(0,var(--hs-cta-tablet,55%)) minmax(0,calc(100% - var(--hs-cta-tablet,55%))); }.hs-ready-cta[data-tablet-layout="stack"] { grid-template-columns:1fr; grid-template-rows:repeat(2,minmax(0,1fr)); } }
@media (max-width: 800px) { .hs-ready-cta[data-mobile-layout="side"] { grid-template-columns: minmax(0,var(--hs-cta-mobile,55%)) minmax(0,calc(100% - var(--hs-cta-mobile,55%))); }.hs-ready-cta[data-mobile-layout="stack"] { grid-template-columns:1fr; grid-template-rows:repeat(2,minmax(0,1fr)); } }
.hs-example-lightbox__tier { display:flex; align-items:center; gap:16px; margin-bottom:22px; }
.hs-example-lightbox__tier img { width:64px; height:64px; object-fit:contain; background:transparent !important; }
.hs-example-lightbox__tier-copy { display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
.hs-example-lightbox__tier-label { font-family:'Space Mono',monospace; font-size:clamp(24px,2vw,34px); line-height:1; font-weight:700; text-transform:uppercase; color:var(--color-text-heading); }
.hs-example-lightbox__tier-subtitle { font-family:'Montserrat',sans-serif; font-size:11px; line-height:1.15; font-weight:800; text-transform:uppercase; color:var(--color-secondary-main);}
.hypersquare-site .hypersquare-button--secondary { background: transparent; border: 1px solid var(--color-text-heading); }.hypersquare-site .hypersquare-button--primary { background: var(--color-primary-main);}
.hs-tier .hypersquare-button { align-self: center; }


/* Hypersquare hero image lightbox */
.hs-hero-lightbox { position:fixed; inset:0; z-index:2147483647; display:grid; place-items:center; padding:clamp(16px,4vw,64px); background:color-mix(in srgb,var(--color-bg-deep) 90%,transparent); opacity:0; visibility:hidden; pointer-events:none; transition:opacity 420ms var(--hypersquare-transition-easing),visibility 420ms var(--hypersquare-transition-easing); }
.hs-hero-lightbox.is-open { opacity:1; visibility:visible; pointer-events:auto; }
.hs-hero-lightbox__media { display:grid; place-items:center; width:min(92vw,var(--hypersquare-site-max-width)); max-height:88vh; opacity:0; transform:translateY(10px) scale(.985); transition:opacity 480ms var(--hypersquare-transition-easing),transform 480ms var(--hypersquare-transition-easing); }
.hs-hero-lightbox.is-open .hs-hero-lightbox__media { opacity:1; transform:none; }

.hs-hero-lightbox__stage { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; width:min(92vw,var(--hypersquare-site-max-width)); max-height:88vh; }
.hs-hero-lightbox__caption { width:min(100%,760px); justify-self:center; padding:18px 20px; border-radius:14px; background:var(--color-bg-main); color:var(--color-text-body); }
.hs-hero-lightbox__caption strong { display:block; margin-bottom:8px; font-family:'Space Mono',monospace; color:var(--color-text-heading); text-transform:uppercase; }
.hs-hero-lightbox__media img, .hs-hero-lightbox__media video { display:block; width:auto; max-width:100%; height:auto; max-height:88vh; object-fit:contain; border-radius:14px; background:transparent; }.hs-hero-lightbox__media img { touch-action:none; transform-origin:center; will-change:transform; }
.hs-hero-lightbox button { position:absolute; display:grid; place-items:center; width:48px; height:48px; padding:0; border:0; border-radius:999px; background:var(--color-bg-control); color:var(--color-text-main); cursor:pointer; transition:background-color var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),transform var(--hypersquare-transition-duration) var(--hypersquare-transition-easing); }
.hs-hero-lightbox [data-hs-hero-close] { top:24px; right:24px; width:40px; height:40px; }
.hs-hero-lightbox [data-hs-hero-prev] { left:24px; }
.hs-hero-lightbox [data-hs-hero-next] { right:24px; }
.hs-hero-lightbox button:hover { background:color-mix(in srgb,var(--color-text-heading) 18%,var(--color-bg-control)); transform:scale(1.06); }
.hs-hero-lightbox button svg { width:28px; height:28px; }
.hs-hero-lightbox [data-hs-hero-close] svg { width:20px; height:20px; }


@media (max-width: 800px) {
    .hs-entity-hero { min-height:100svh; background-attachment:scroll; }
    .hs-entity-hero__content { min-height:100svh; padding:104px 20px 44px; }
}
@media (max-width: 800px) {
    .hs-entity-hero__gallery { gap: 10px; }
    .hypersquare-site .hs-section-heading,
    .hs-related > h2 { margin-bottom: 32px; }

    .hs-related > h2 {
        margin-left:12px;
    }
}



@media (max-width:800px) {
    .hs-entity-hero h1 { font-size:clamp(34px,10vw,52px); }
    .hs-entity-hero__copy { padding-inline:8px; }
    .hs-entity-hero__gallery { width:100%; justify-self:stretch; }
    .hs-entity-hero__gallery-zoom svg { width:30px; height:30px; }
    .hs-catalog { padding-inline:8vw; }
    .hs-related { padding-inline:8vw; }
    .hs-catalog__grid, .hs-related__grid { --hs-catalog-gap:24px; gap:24px; }
    .hs-catalog-card__body { padding:20px; }
}

/* Extra breaking point for the mobile card padding */
@media (max-width:550px) {
    .hs-catalog { padding-inline:0; }
    .hs-related { padding-inline:18px; }
}

.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price-from { font-size:clamp(10px,.72cqw,12px); }
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price-value { font-size:clamp(20px,1.55cqw,26px); }


/* MMDB v0.6.48 hero buttons, bundle badge and responsive tier refinement */
.hs-entity-hero__actions .hypersquare-button {
    appearance:none;
    text-decoration:none;
}
.hs-entity-hero__actions .hypersquare-button__icon {
    width:1.2em;
    height:1.2em;
    object-fit:contain;
    flex:0 0 auto;
}
.hs-entity-hero__actions .hypersquare-button__icon-lucide {
    width:1.2em;
    height:1.2em;
    flex:0 0 1.2em;
}

.hypersquare-site .hs-entity-hero__actions .hypersquare-button--secondary {
    color:var(--color-text-heading) !important;
    border-color:var(--color-text-heading) !important;
    background:color-mix(in srgb,var(--color-text-heading) 0%,transparent) !important;
}
.hypersquare-site .hs-entity-hero__actions .hypersquare-button--secondary:hover,
.hypersquare-site .hs-entity-hero__actions .hypersquare-button--secondary:focus-visible {
    color:var(--color-text-heading) !important;
    border-color:var(--color-text-heading) !important;
    background:color-mix(in srgb,var(--color-text-heading) 20%,transparent) !important;
}

/* Bundle price cluster matches the reference hierarchy: discount first,
   compact FROM, then the dominant EUR price. */
.hs-catalog-card__price-cluster--bundle {
    right:clamp(20px,4.2cqw,42px);
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__saving {
    min-width:clamp(96px,17cqw,126px);
    padding:clamp(17px,1.35cqw,22px) calc(clamp(22px,1.65cqw,30px) + 12px) clamp(17px,1.35cqw,22px) clamp(22px,1.65cqw,30px);
    font-size:clamp(23px,1.7cqw,29px);
    line-height:1;
    border-radius:0 0 0 clamp(24px,1.8cqw,32px);
    clip-path:polygon(0 0,calc(100% - 12px) 0,100% 20%,calc(100% - 12px) 40%,100% 60%,calc(100% - 12px) 80%,100% 100%,0 100%);
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price {
    min-width:clamp(184px,33cqw,248px);
    margin-left:-12px;
    gap:.42em;
    padding:clamp(17px,1.35cqw,22px) clamp(24px,1.8cqw,34px) clamp(17px,1.35cqw,22px) calc(clamp(24px,1.8cqw,34px) + 12px);
    border-radius:0 0 clamp(24px,1.8cqw,32px) 0;
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price-from {
    font-size:clamp(9px,.62cqw,11px);
    font-weight:700;
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price-value {
    font-size:clamp(22px,1.7cqw,29px);
    font-weight:800;
}

/* Tablet: keep two tier columns readable instead of stretching them across the
   whole content width. */
@media (min-width:801px) and (max-width:1200px) {
    .hs-tier-grid {
        width:min(100%,860px);
        margin-inline:auto;
        column-gap:clamp(54px,6vw,82px);
        row-gap:clamp(52px,6vw,80px);
    }
}

/* Mobile: almost-full-width centered tiers, visible neighbor, larger inter-card
   space, and a centered examples button. */
@media (max-width:800px) {
    .hs-tier-block {
        --hs-section-inline-padding:12px;
    }

    .hs-tier-block .hs-section-heading {
        margin-left:32px;
        margin-right:32px;
    }

    .hs-tier-grid {
        width:100%;
        gap:42px;
        padding:0 0 8px 7%;
        scroll-padding-left:7%;
    }

    .hs-tier {
        flex:0 0 72%;
        width:72%;
        height:auto;
        align-self:stretch;
        scroll-snap-align:start;
    }

    .hs-tier-copy {
        flex:1 1 auto;
    }

    .hs-tier > .hypersquare-button {
        align-self:center !important;
        margin-top:auto !important;
        margin-left:auto !important;
        margin-right:auto !important;
    }

    .hypersquare-site .hs-ready-cta__button {
    margin-bottom:24px;
    }
}


@media (max-width:1200px) {
    .hs-ready-cta__text-slot {
        justify-content:var(--hs-cta-text-justify-tablet,center);
        align-items:var(--hs-cta-text-align-tablet,center);
        padding:var(--hs-cta-text-pt-tablet,0) var(--hs-cta-text-pr-tablet,0) var(--hs-cta-text-pb-tablet,0) var(--hs-cta-text-pl-tablet,0);
    }
    .hs-ready-cta__button-slot {
        justify-content:var(--hs-cta-button-justify-tablet,center);
        align-items:var(--hs-cta-button-align-tablet,center);
        padding:var(--hs-cta-button-pt-tablet,0) var(--hs-cta-button-pr-tablet,0) var(--hs-cta-button-pb-tablet,0) var(--hs-cta-button-pl-tablet,0);
    }
    .hs-ready-cta__headline { text-align:var(--hs-cta-text-text-align-tablet,center); }
}
@media (max-width:800px) {
    .hs-ready-cta__text-slot {
        justify-content:var(--hs-cta-text-justify-mobile,center);
        align-items:var(--hs-cta-text-align-mobile,center);
        padding:var(--hs-cta-text-pt-mobile,0) var(--hs-cta-text-pr-mobile,0) var(--hs-cta-text-pb-mobile,0) var(--hs-cta-text-pl-mobile,0);
    }
    .hs-ready-cta__button-slot {
        justify-content:var(--hs-cta-button-justify-mobile,center);
        align-items:var(--hs-cta-button-align-mobile,center);

        /* Structural gutter prevents a center-aligned button from ever touching
           or crossing the viewport edge. This is intentionally separate from
           the editable positioning padding. */
        padding-top:var(--hs-cta-button-pt-mobile,0);
        padding-right:max(16px,var(--hs-cta-button-pr-mobile,0));
        padding-bottom:var(--hs-cta-button-pb-mobile,0);
        padding-left:max(16px,var(--hs-cta-button-pl-mobile,0));
        box-sizing:border-box;
        width:100%;
        min-width:0;
    }

    .hs-ready-cta__button-slot .hs-ready-cta__button {
        width:max-content;
        max-width:100%;
        margin-inline:auto;
        padding:
            clamp(10px,3.2vw,14px)
            clamp(18px,5.5vw,32px);
    }
    .hs-ready-cta__headline { text-align:var(--hs-cta-text-text-align-mobile,center); }
}

#hypersquare-details-tiers, #hypersquare-related-offerings, #hypersquare-related-projects { scroll-margin-top:72px; }


/* MMDB v0.6.51 consolidated polish */

/* Hero copy breathing room + larger button icons. */
.hs-entity-hero__copy {
    padding: clamp(18px, 2.2vw, 36px);
}
.hs-entity-hero h1 {
    margin-bottom: clamp(18px, 1.6vw, 28px);
}
.hs-entity-hero__tags {
    margin: 0 0 clamp(24px, 2vw, 34px);
}
.hs-entity-hero__summary {
    line-height: 1.55;
}
.hs-entity-hero__actions {
    margin-top: clamp(30px, 2.2vw, 40px);
}
.hs-entity-hero__actions .hypersquare-button__icon,
.hs-entity-hero__actions .hypersquare-button__icon-lucide {
    width: 1.45em;
    height: 1.45em;
    flex-basis: 1.45em;
}

/* Service hero lightbox uses the same image + tier-details composition as the
   dedicated tier example lightbox. Project media stays media-only. */
.hs-hero-lightbox.has-caption .hs-hero-lightbox__stage {
    grid-template-columns: minmax(0,1.5fr) minmax(260px,.62fr);
    gap: 0;
    border-radius: 18px;
    overflow: hidden;
    background: var(--color-bg-surface);
}
.hs-hero-lightbox.has-caption .hs-hero-lightbox__media {
    width: 100%;
    height: 100%;
    max-height: 86vh;
}
.hs-hero-lightbox.has-caption .hs-hero-lightbox__media img,
.hs-hero-lightbox.has-caption .hs-hero-lightbox__media video {
    width: 100%;
    height: 100%;
    max-height: 86vh;
    object-fit: contain;
    border-radius: 0;
}
.hs-hero-lightbox.has-caption .hs-hero-lightbox__caption {
    width: 100%;
    max-width: none;
    height: 100%;
    justify-self: stretch;
    align-self: stretch;
    padding: clamp(28px,3.2vw,52px);
    border-radius: 0;
    display: flex;
    flex-direction: column;
    gap: 26px;
    justify-content: flex-start;
    background: var(--color-bg-surface);
}
.hs-hero-lightbox.has-caption .hs-example-lightbox__tier {
    margin-bottom: 0;
}
@media (max-width:800px) {
    .hs-hero-lightbox.has-caption .hs-hero-lightbox__stage {
        grid-template-columns: 1fr;
        width: min(94vw, 760px);
        max-height: 90vh;
        overflow-y: auto;
    }
    .hs-hero-lightbox.has-caption .hs-hero-lightbox__media {
        max-height: 58vh;
    }
    .hs-hero-lightbox.has-caption .hs-hero-lightbox__caption {
        min-height: 180px;
    }
}

/* The bundle badge is just two adjoining standard tabs: orange saving tab +
   the same white price tab used by services. No custom zigzag geometry. */
.hs-catalog-card__price-cluster--bundle {
    right: clamp(20px,5cqw,48px);
    gap: 0;
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__saving {
    min-width: 0;
    padding: clamp(14px,1.05cqw,19px) clamp(22px,1.55cqw,30px);
    border-radius: 0 0 0 clamp(20px,1.55cqw,30px);
    clip-path: none;
    font-size: clamp(19px,1.45cqw,25px);
    line-height: 1;
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price {
    min-width: 0;
    margin-left: 0;
    padding: clamp(14px,1.05cqw,19px) clamp(20px,1.55cqw,30px);
    border-radius: 0 0 clamp(20px,1.55cqw,30px) 0;
    gap: .4em;
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price-from {
    font-size: clamp(9px,.58cqw,11px);
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price-value {
    font-size: clamp(17px,1.2cqw,22px);
}

/* Project/client logo belongs in the card footer instead of floating midway
   through the body. */
.hs-catalog-card__footer {
    margin-top: auto;
    padding-top: clamp(14px,1.1cqw,20px);
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
}
.hs-catalog-card__footer .hs-catalog-card__logo {
    margin: 0;
    max-width: clamp(72px,7cqw,120px);
    max-height: clamp(42px,4.8cqw,74px);
}
.hs-catalog-card__footer time {
    margin: 0 0 0 auto;
    padding: 0;
}
.hs-catalog-card__logo + time {
    margin-left: auto;
}

/* MMDB v0.6.52 */

/* One canonical bundle price cluster: the price tab is exactly the standard
   service price tab; the discount is just a matching-height tab on its left. */
.hs-catalog-card__price-cluster--bundle {
    right: clamp(20px,5cqw,48px) !important;
    gap: 0 !important;
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price {
    min-width: 0 !important;
    margin-left: 0 !important;
    justify-content: flex-start !important;
    gap: .4em !important;
    padding: clamp(14px,1.05cqw,19px) clamp(20px,1.55cqw,30px) !important;
    border-radius: 0 0 clamp(20px,1.55cqw,30px) 0 !important;
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price-from {
    font-size: clamp(9px,.58cqw,11px) !important;
    font-weight: 700 !important;
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price-value {
    font-size: clamp(17px,1.2cqw,22px) !important;
    font-weight: 800 !important;
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__saving {
    min-width: 0 !important;
    padding: clamp(14px,1.05cqw,19px) 36px clamp(14px,1.05cqw,19px) 20px !important;
    border-radius: 0 0 0 clamp(20px,1.55cqw,30px) !important;
    clip-path: none !important;
    font-size: clamp(17px,1.2cqw,22px) !important;
    line-height: 1 !important;
}

/* One singleton lightbox for hero media and tier examples. */
.hs-unified-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(12px,2vw,28px);
    padding: clamp(18px,3vw,48px);
    background: color-mix(in srgb, var(--color-bg-deep) 88%, transparent);
    backdrop-filter: blur(12px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),
        visibility 0s linear var(--hypersquare-transition-duration);
}
.hs-unified-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.hs-unified-lightbox__stage {
    width: min(92vw, 1500px);
    max-height: 88vh;
    margin: auto;
    display: grid;
    grid-template-columns: minmax(0,1fr);
    background: var(--color-bg-surface);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 28px 90px rgba(0,0,0,.45);
}
.hs-unified-lightbox.has-caption .hs-unified-lightbox__stage {
    grid-template-columns: minmax(0,1.5fr) minmax(260px,.62fr);
}
.hs-unified-lightbox__media {
    min-width: 0;
    min-height: 0;
    display: grid;
    place-items: center;
    background: var(--color-bg-deep);
    overflow: hidden;
    touch-action: none;
}
.hs-unified-lightbox__media img,
.hs-unified-lightbox__media video {
    display: block;
    width: 100%;
    height: 100%;
    max-height: 88vh;
    object-fit: contain;
    transform-origin: center;
}
.hs-unified-lightbox__caption {
    padding: clamp(26px,3vw,48px);
    display: flex;
    flex-direction: column;
    gap: clamp(20px,2vw,30px);
    background: var(--color-bg-surface);
    color: var(--color-text-body);
}
.hs-unified-lightbox__tier {
    display: flex;
    align-items: center;
    gap: 16px;
}
.hs-unified-lightbox__tier img {
    width: clamp(44px,4vw,68px);
    height: clamp(44px,4vw,68px);
    object-fit: contain;
}
.hs-unified-lightbox__tier-copy {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.hs-unified-lightbox__tier-copy strong {
    font-family: 'Space Mono', monospace;
    font-size: clamp(24px,2.3vw,38px);
    line-height: 1;
    text-transform: uppercase;
}
.hs-unified-lightbox__tier-copy span {
    color: var(--color-secondary-main);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}
.hs-unified-lightbox__text {
    font-size: clamp(16px,1.15vw,20px);
    line-height: 1.45;
}
.hs-unified-lightbox__close,
.hs-unified-lightbox__prev,
.hs-unified-lightbox__next {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-bg-main) 82%, transparent);
    color: var(--color-text-heading);
    cursor: pointer;
    transition:
        background var(--hypersquare-transition-duration) var(--hypersquare-transition-easing),
        transform var(--hypersquare-transition-duration) var(--hypersquare-transition-easing);
}
.hs-unified-lightbox__close {
    position: absolute;
    top: clamp(18px,2vw,32px);
    right: clamp(18px,2vw,32px);
}
.hs-unified-lightbox__prev:hover,
.hs-unified-lightbox__next:hover,
.hs-unified-lightbox__close:hover {
    background: color-mix(in srgb, var(--color-text-heading) 18%, var(--color-bg-main));
    transform: scale(1.05);
}
.hs-unified-lightbox__prev svg,
.hs-unified-lightbox__next svg,
.hs-unified-lightbox__close svg {
    width: 24px;
    height: 24px;
}
@media (max-width:800px) {
    .hs-unified-lightbox {
        grid-template-columns: 1fr;
        padding: 14px;
    }
    .hs-unified-lightbox__prev,
    .hs-unified-lightbox__next {
        position: fixed;
        top: 50%;
        transform: translateY(-50%);
        z-index: 2;
    }
    .hs-unified-lightbox__prev { left: 10px; }
    .hs-unified-lightbox__next { right: 10px; }
    .hs-unified-lightbox__stage,
    .hs-unified-lightbox.has-caption .hs-unified-lightbox__stage {
        width: min(94vw,760px);
        max-height: 90vh;
        grid-template-columns: 1fr;
        overflow-y: auto;
    }
    .hs-unified-lightbox__media {
        min-height: 44vh;
    }
    .hs-unified-lightbox__media img,
    .hs-unified-lightbox__media video {
        max-height: 58vh;
    }
}


/* MMDB v0.6.53 */

/* Bundle uses the exact standard white price tab shape.
   The orange discount tab remains underneath/attached on the left. */
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__price {
    border-radius:
        0
        0
        clamp(20px,1.55cqw,30px)
        clamp(20px,1.55cqw,30px) !important;
    position: relative;
    z-index: 2;
}
.hs-catalog-card__price-cluster--bundle .hs-catalog-card__saving {
    position: relative;
    z-index: 1;
}

/* Unified mobile lightbox: never exceed the viewport width. */
.hs-unified-lightbox,
.hs-unified-lightbox *,
.hs-unified-lightbox *::before,
.hs-unified-lightbox *::after {
    box-sizing: border-box;
}
.hs-unified-lightbox__stage,
.hs-unified-lightbox__media,
.hs-unified-lightbox__caption {
    min-width: 0;
}
.hs-unified-lightbox__caption,
.hs-unified-lightbox__text,
.hs-unified-lightbox__tier-copy {
    overflow-wrap: anywhere;
    word-break: normal;
}

@media (max-width:800px) {
    .hs-unified-lightbox {
        width: 100vw;
        max-width: 100vw;
        padding: 12px !important;
        overflow: hidden;
    }

    .hs-unified-lightbox__stage,
    .hs-unified-lightbox.has-caption .hs-unified-lightbox__stage {
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
        min-width: 0 !important;
        margin: auto;
        grid-template-columns: minmax(0,1fr) !important;
        border-radius: 14px;
        overflow-x: hidden;
    }

    .hs-unified-lightbox__media,
    .hs-unified-lightbox__caption {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .hs-unified-lightbox__caption {
        padding: 22px 20px;
    }

    .hs-unified-lightbox__media img,
    .hs-unified-lightbox__media video {
        width: 100%;
        max-width: 100%;
        height: auto;
        max-height: 56vh;
        object-fit: contain;
    }

    .hs-unified-lightbox__prev,
    .hs-unified-lightbox__next {
        width: 42px;
        height: 42px;
    }
}


/* MMDB v0.6.55 — built from the user-supplied Hypersquare main.css */

/* Project cards: the lower content area is a real two-column structure.
   Copy gets ~75%; logo gets a dedicated ~25% cell. Date remains bottom-right. */
.hs-catalog-card__lower {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:clamp(14px,1.2cqw,22px);
    min-width:0;
}
.hs-catalog-card__lower--has-logo {
    grid-template-columns:minmax(0,35fr) minmax(100px,1fr);
}
.hs-catalog-card__copy {
    min-width:0;
}
.hs-catalog-card__logo-cell {
    display:grid;
    place-items:center;
    min-width:0;
}
.hs-catalog-card__logo {
    display:block;
    max-height:clamp(80px,20cqw,220px);
    object-fit:contain;
    margin:0 !important;
}
.hs-catalog-card__date {
    margin-top:auto !important;
    padding-top:clamp(14px,1.1cqw,20px) !important;
    align-self:flex-end;
}

/* Featured/wide cards reuse the same markup: logo occupies the free space
   below the copy and is centered at roughly 40% of its own column width. */
.hs-catalog-card--featured .hs-catalog-card__body {
    display:grid;
    grid-template-rows:1fr auto;
}
.hs-catalog-card--featured .hs-catalog-card__lower--has-logo {
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto 1fr;
    height:100%;
}
.hs-catalog-card--featured .hs-catalog-card__logo-cell {
    align-self:center;
    justify-self:center;
    width:100%;
    min-height:clamp(80px,16cqw,150px);
}
.hs-catalog-card--featured .hs-catalog-card__logo {
    width:60%;
    max-width:220px;
    max-height:220px;
}
.hs-catalog-card--featured .hs-catalog-card__date {
    justify-self:end;
}

/* Unified plain/project lightbox: media only, genuinely centered, with no
   reserved caption column or empty surface at narrower widths. */
.hs-unified-lightbox:not(.has-caption) {
    place-items:center;
}
.hs-unified-lightbox:not(.has-caption) .hs-unified-lightbox__stage {
    width:auto !important;
    max-width:min(92vw, var(--hypersquare-site-max-width)) !important;
    height:auto;
    max-height:88vh;
    grid-template-columns:minmax(0,auto) !important;
    justify-self:center;
    align-self:center;
    background:transparent;
}
.hs-unified-lightbox:not(.has-caption) .hs-unified-lightbox__media {
    width:auto;
    max-width:100%;
    height:auto;
    max-height:88vh;
    background:transparent;
    display:grid;
    place-items:center;
}
.hs-unified-lightbox:not(.has-caption) .hs-unified-lightbox__media img,
.hs-unified-lightbox:not(.has-caption) .hs-unified-lightbox__media video {
    width:auto;
    max-width:min(92vw, var(--hypersquare-site-max-width));
    height:auto;
    max-height:88vh;
    object-fit:contain;
}
@media (max-width:800px) {
    .hs-unified-lightbox:not(.has-caption) .hs-unified-lightbox__stage {
        width:auto !important;
        max-width:calc(100vw - 32px) !important;
        margin:auto;
    }
    .hs-unified-lightbox:not(.has-caption) .hs-unified-lightbox__media img,
    .hs-unified-lightbox:not(.has-caption) .hs-unified-lightbox__media video {
        max-width:calc(100vw - 32px);
        max-height:78vh;
    }
}

@media (max-width:800px) {
    /* Authoritative mobile Project Details header alignment.
       The icon is positioned against the summary row itself, so + / − stays
       optically centered with the H2 in both open and closed states. */
    .hs-detail-summary {
        position:relative;
        padding-right:50px;
    }

    .hs-detail-toggle {
        position:absolute;
        top:50%;
        right:0;
        width:42px;
        height:42px;
        display:grid;
        place-items:center;
        margin:0;
        transform:translateY(calc(-50% - 20px));
    }

    .hs-detail-toggle svg {
        width:32px;
        height:32px;
        margin:0;
    }
}
