.home-page {
    background: var(--color-cream);
    background-image: radial-gradient(rgb(23 43 58 / .045) 1px, transparent 1px);
    background-size: 9px 9px
}

.home-page .section {
    position: relative
}

.home-hero {
    padding: var(--space-10) 0 var(--section-space);
    overflow: hidden
}

.home-hero__grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-5);
    align-items: end
}

.home-hero__copy {
    grid-column: 1 / span 5;
    min-width: 0;
    position: relative;
    z-index: 2
}

.home-hero__copy h1 {
    max-width: 10ch
}

.home-hero__lead {
    max-width: 49ch;
    font-size: var(--text-lead);
    line-height: var(--leading-lead)
}

.home-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    align-items: center
}

.home-hero__actions>* {
    min-width: 0
}

.home-hero__region {
    margin-top: var(--space-5);
    font-size: var(--text-small);
    font-weight: 700
}

.home-hero__media {
    grid-column: 7 / span 6;
    min-width: 0;
    position: relative;
    margin: 0;
    z-index: 1
}

.home-hero__media::before {
    position: absolute;
    z-index: -1;
    right: -12px;
    bottom: -12px;
    width: 100%;
    height: 100%;
    background: var(--color-tomato-red);
    content: ""
}

.home-hero__media img {
    width: 100%;
    aspect-ratio: 4/5;
    object-fit: cover;
    object-position: 72% center;
    border: 2px solid var(--color-ink-navy)
}

.home-hero__number {
    z-index: 0;
    right: 38%;
    top: 14%;
    color: rgb(36 92 255 / .18);
    font-family: var(--font-heading);
    font-size: clamp(8rem, 17vw, 16rem);
    line-height: .78
}

.home-formats__intro {
    display: grid;
    grid-template-columns: 5fr 4fr;
    gap: calc(var(--space-5) * 2);
    align-items: end;
    margin-bottom: var(--space-8)
}

.home-formats__intro>* {
    min-width: 0
}

.home-formats__intro>p {
    max-width: 48ch
}

.home-formats__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-5);
    align-items: start
}

.home-format {
    display: flex;
    min-width: 0;
    min-height: 23rem;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4);
    padding: var(--space-5);
    border: 1px solid var(--color-ink-navy);
    box-shadow: var(--shadow-offset);
    color: var(--color-ink-navy);
    text-decoration: none;
    transition: transform var(--transition-standard), box-shadow var(--transition-standard)
}

.home-format>* {
    min-width: 0;
    margin: 0
}

.home-format:nth-child(2) {
    margin-top: var(--space-6)
}

.home-format:nth-child(3) {
    margin-top: var(--space-3)
}

.home-format:nth-child(4) {
    margin-top: var(--space-8)
}

.home-format:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-offset-strong);
    color: var(--color-ink-navy)
}

.home-format--blue {
    background: var(--color-electric-blue)
}

.home-format--red {
    background: var(--color-tomato-red);
    color: var(--color-paper-white)
}

.home-format--teal {
    background: var(--color-deep-teal);
    color: var(--color-paper-white)
}

.home-format--cream {
    background: var(--color-paper-white)
}

.home-format h3 {
    color: inherit
}

.home-format__number {
    font-family: var(--font-heading);
    font-size: 4rem;
    line-height: .8
}

.home-format__subtitle {
    font-weight: 700;
    line-height: 1.2
}

.home-format>span:last-child {
    margin-top: auto;
    font-size: var(--text-small);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: .18em
}

.home-services__wrap {
    position: relative
}

.home-services__heading {
    position: relative;
    display: grid;
    grid-template-columns: 5fr 1fr;
    gap: var(--space-4);
    align-items: end;
    margin-bottom: var(--space-8)
}

.home-services__heading>* {
    min-width: 0
}

.home-services__heading .display-number {
    right: 0;
    bottom: 0;
    color: rgb(36 92 255 / .28)
}

.home-services__heading h2 {
    max-width: 12ch
}

.home-services__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-5)
}

.home-service {
    display: flex;
    min-width: 0;
    min-height: 20rem;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-5);
    border: 1px solid var(--color-ink-navy);
    box-shadow: var(--shadow-offset);
    transition: transform var(--transition-standard)
}

.home-service>* {
    min-width: 0;
    margin: 0
}

.home-service:hover {
    transform: translateY(-4px)
}

.home-service h3 {
    color: inherit
}

.home-service__english {
    font-weight: 700;
    line-height: 1.25
}

.home-service--paper {
    background: var(--color-paper-white)
}

.home-service--red {
    background: var(--color-tomato-red);
    color: var(--color-paper-white)
}

.home-service--teal {
    background: var(--color-deep-teal);
    color: var(--color-paper-white)
}

.home-service--blue {
    background: var(--color-electric-blue)
}

.home-services__outro {
    max-width: 54ch;
    margin: var(--space-7) 0 0;
    font-size: var(--text-lead);
    line-height: var(--leading-lead)
}

.home-services__outro a {
    color: inherit;
    font-weight: 700
}

.home-casino__grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-5);
    align-items: start
}

.home-casino__grid>* {
    min-width: 0
}

.home-casino__main {
    grid-column: 1 / span 5;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    padding: var(--space-6);
    background: var(--color-paper-white);
    color: var(--color-ink-navy);
    border: 1px solid var(--color-paper-white)
}

.home-casino__main>* {
    margin: 0
}

.home-casino__main h2 {
    max-width: 11ch
}

.home-casino__main p {
    max-width: 56ch
}

.home-casino__media {
    grid-column: 6 / span 7;
    margin: 0
}

.home-casino__media img {
    width: 100%;
    aspect-ratio: 3/2;
    object-fit: cover;
    object-position: 70% center;
    border: 2px solid var(--color-mustard-yellow)
}

.home-casino__detail {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-5);
    border: 1px solid var(--color-paper-white)
}

.home-casino__detail>* {
    margin: 0
}

.home-casino__detail h3 {
    color: inherit
}

.home-casino__detail p {
    max-width: 38ch
}

.home-casino__detail--tables {
    grid-column: 1 / span 3;
    background: var(--color-mustard-yellow);
    color: var(--color-ink-navy)
}

.home-casino__detail--hosts {
    grid-column: 4 / span 4;
    background: var(--color-paper-white);
    color: var(--color-ink-navy)
}

.home-casino__ending {
    grid-column: 8 / span 5;
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-5);
    padding-top: var(--space-4)
}

.home-casino__ending>* {
    margin: 0
}

.home-casino__ending p {
    max-width: 40ch
}

.home-process__top {
    display: grid;
    grid-template-columns: 8fr 4fr;
    gap: var(--space-5);
    align-items: end;
    margin-bottom: var(--space-8)
}

.home-process__top>* {
    min-width: 0
}

.home-process__top h2 {
    color: var(--color-paper-white);
    max-width: 14ch
}

.home-process__top div {
    color: var(--color-mustard-yellow);
    font-family: var(--font-heading);
    font-size: clamp(6rem, 14vw, 13rem);
    line-height: .7;
    text-align: right
}

.home-process__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-5)
}

.home-process__grid article {
    display: flex;
    min-width: 0;
    min-height: 19rem;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-5);
    border: 1px solid var(--color-ink-navy);
    color: var(--color-ink-navy)
}

.home-process__grid article>* {
    margin: 0
}

.home-process__grid article:nth-child(1) {
    background: var(--color-paper-white)
}

.home-process__grid article:nth-child(2) {
    background: var(--color-electric-blue)
}

.home-process__grid article:nth-child(3) {
    background: var(--color-cream)
}

.home-process__grid article:nth-child(4) {
    background: var(--color-mustard-yellow)
}

.home-process__grid span {
    font-family: var(--font-heading);
    font-size: 3.4rem;
    line-height: .8
}

.home-portfolio__intro {
    max-width: 55ch;
    margin-bottom: var(--space-8)
}

.home-portfolio__grid {
    display: grid;
    grid-template-columns: 7fr 4fr;
    gap: var(--space-5);
    align-items: start
}

.home-portfolio__grid>* {
    min-width: 0
}

.home-case {
    border: 1px solid var(--color-ink-navy);
    background: var(--color-paper-white);
    box-shadow: var(--shadow-offset);
    transition: transform var(--transition-standard)
}

.home-case:hover {
    transform: translateY(-4px)
}

.home-case img {
    width: 100%;
    object-fit: cover
}

.home-case>div {
    padding: var(--space-5)
}

.home-case--lead {
    grid-column: 1
}

.home-case--lead img {
    aspect-ratio: 3/2
}

.home-case--small {
    grid-column: 2
}

.home-case--small img {
    aspect-ratio: 3/2
}

.home-case--gala {
    margin-top: var(--space-6)
}

.home-case h3 {
    margin-bottom: var(--space-4)
}

.home-case dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
    margin: 0 0 var(--space-4)
}

.home-case dl>div {
    min-width: 0
}

.home-case dt {
    font-size: var(--text-micro);
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase
}

.home-case dd {
    margin: 0;
    font-size: var(--text-small);
    line-height: 1.35
}

.home-case p {
    max-width: 48ch
}

.home-portfolio__cta {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-5);
    margin-top: var(--space-7)
}

.home-portfolio__cta>* {
    min-width: 0;
    margin: 0
}

.home-gallery__intro {
    max-width: 48ch;
    margin-bottom: var(--space-7)
}

.home-gallery__tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2)
}

.home-gallery__tags span {
    display: inline-flex;
    min-height: 1.75rem;
    align-items: center;
    padding: .3rem .55rem;
    border: 1px solid var(--color-ink-navy);
    border-radius: var(--radius-pill);
    font-size: var(--text-micro);
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase
}

.home-gallery__dominant {
    width: 58.333%;
    margin-left: auto;
    margin-bottom: var(--space-5);
    border: 1px solid var(--color-ink-navy);
    background: var(--color-paper-white);
    box-shadow: var(--shadow-offset)
}

.home-gallery__dominant img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover
}

.home-gallery__dominant p {
    margin: 0;
    padding: var(--space-3);
    font-size: var(--text-small);
    font-weight: 700
}

.home-gallery__rail {
    display: grid;
    grid-template-columns: 4fr 3fr;
    gap: var(--space-5);
    width: 75%;
    align-items: start
}

.home-gallery__rail>* {
    min-width: 0;
    margin: 0
}

.home-gallery__rail figure {
    border: 1px solid var(--color-ink-navy);
    background: var(--color-paper-white);
    box-shadow: var(--shadow-offset);
    transition: transform var(--transition-standard)
}

.home-gallery__rail figure:hover {
    transform: translateY(-4px) rotate(-1deg)
}

.home-gallery__rail img {
    width: 100%;
    aspect-ratio: 4/5;
    object-fit: cover
}

.home-gallery__rail figcaption {
    margin: 0;
    padding: var(--space-3);
    color: var(--color-ink-navy)
}

.home-why__statement {
    max-width: 25ch;
    margin-bottom: var(--space-8)
}

.home-why__statement h2 {
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    line-height: .98
}

.home-why__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    border-top: 1px solid var(--color-line-ink)
}

.home-why__list article {
    display: grid;
    grid-template-columns: 2fr 4fr 6fr;
    gap: var(--space-5);
    min-width: 0;
    padding: var(--space-5) 0;
    border-bottom: 1px solid var(--color-line-ink)
}

.home-why__list article>* {
    min-width: 0;
    margin: 0
}

.home-why__list span {
    color: var(--color-electric-blue);
    font-family: var(--font-heading);
    font-size: 2rem;
    line-height: 1
}

.home-why__list p {
    max-width: 54ch
}

.home-business__grid {
    display: grid;
    grid-template-columns: 5fr 5fr;
    gap: calc(var(--space-5) * 2);
    align-items: start
}

.home-business__grid>* {
    min-width: 0
}

.home-business__copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-5)
}

.home-business__copy>* {
    margin: 0
}

.home-business__copy h2 {
    max-width: 11ch
}

.home-business__copy p {
    max-width: 54ch
}

.home-business__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid rgb(255 249 237 / .7)
}

.home-business__list article {
    min-width: 0;
    padding: var(--space-4) 0;
    border-bottom: 1px solid rgb(255 249 237 / .7)
}

.home-business__list article:nth-child(odd) {
    padding-right: var(--space-5)
}

.home-business__list article:nth-child(even) {
    padding-left: var(--space-5);
    border-left: 1px solid rgb(255 249 237 / .7)
}

.home-business__list h3 {
    color: var(--color-paper-white);
    margin-bottom: var(--space-2);
    font-size: 1.3rem
}

.home-business__list p {
    margin: 0;
    font-size: var(--text-small);
    line-height: var(--leading-small)
}

.home-timeline__intro {
    max-width: 50ch;
    margin-bottom: var(--space-7)
}

.home-timeline__rail {
    display: flex;
    min-width: 0;
    gap: var(--space-3);
    overflow-x: auto;
    padding-bottom: var(--space-4);
    scroll-snap-type: x mandatory
}

.home-timeline__rail article {
    display: flex;
    min-width: 0;
    flex: 1 1 0;
    flex-direction: column;
    gap: var(--space-3);
    scroll-snap-align: start
}

.home-timeline__rail article>* {
    margin: 0
}

.home-timeline__strip {
    overflow: hidden;
    margin-bottom: var(--space-5);
    border: 1px solid var(--color-ink-navy)
}

.home-timeline__strip img {
    display: block;
    width: 100%;
    height: clamp(11rem, 30vw, 20rem);
    object-fit: cover;
    object-position: center
}

.home-timeline__rail span {
    font-family: var(--font-heading);
    font-size: 1.7rem;
    line-height: 1
}

.home-timeline__rail h3 {
    font-size: 1.15rem;
    margin: 0
}

.home-timeline__rail p {
    font-size: var(--text-small);
    line-height: var(--leading-small)
}

.home-timeline__outro {
    max-width: 58ch;
    margin: var(--space-6) 0 0;
    padding: var(--space-4);
    background: var(--color-paper-white);
    font-size: var(--text-lead);
    line-height: var(--leading-lead)
}

.home-faq__grid {
    display: grid;
    grid-template-columns: 4fr 7fr;
    gap: calc(var(--space-5) * 2)
}

.home-faq__grid>* {
    min-width: 0
}

.home-faq__intro p:not(.eyebrow) {
    max-width: 50ch
}

.home-faq__items {
    display: flex;
    flex-direction: column;
    gap: var(--space-3)
}

.home-faq__items article {
    min-width: 0;
    border: 1px solid var(--color-line-ink);
    background: var(--color-paper-white)
}

.home-faq__items button {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 3.25rem;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border: 0;
    background: transparent;
    color: var(--color-ink-navy);
    font-weight: 700;
    text-align: left
}

.home-faq__items button span {
    flex: 0 0 auto;
    color: var(--color-electric-blue);
    font-size: 1.7rem;
    line-height: 1
}

.home-faq__items article>div {
    padding: 0 var(--space-4) var(--space-4)
}

.home-faq__items article>div p {
    max-width: 64ch;
    margin: 0
}

.home-contact {
    padding: var(--section-space) 0;
    background: var(--color-ink-navy)
}

.home-contact__scene {
    position: relative;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    min-height: 33rem;
    align-items: end;
    overflow: hidden
}

.home-contact__scene>img {
    grid-column: 1 / -1;
    grid-row: 1;
    width: 100%;
    height: 100%;
    min-height: 33rem;
    object-fit: cover;
    object-position: 75% center
}

.home-contact__panel {
    grid-column: 1 / span 5;
    grid-row: 1;
    z-index: 1;
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-5);
    margin: var(--space-6);
    padding: var(--space-6);
    background: rgb(7 90 90 / .94);
    color: var(--color-paper-white)
}

.home-contact__panel>* {
    margin: 0
}

.home-contact__panel h2 {
    color: var(--color-paper-white);
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    line-height: .95
}

.home-contact__panel p {
    max-width: 52ch
}

.home-page a:focus-visible,
.home-page button:focus-visible {
    outline: 2px solid var(--color-electric-blue);
    outline-offset: 3px;
    box-shadow: var(--focus-ring)
}

@media(max-width:68.75rem) {
    .home-hero__grid {
        grid-template-columns: repeat(6, minmax(0, 1fr))
    }

    .home-hero__copy {
        grid-column: 1 / span 3
    }

    .home-hero__media {
        grid-column: 4 / span 3
    }

    .home-hero__number {
        right: 45%;
        font-size: 9rem
    }

    .home-formats__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .home-format:nth-child(n) {
        margin-top: 0
    }

    .home-services__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .home-process__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .home-portfolio__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .home-case--lead {
        grid-column: 1 / -1
    }

    .home-case--gala {
        margin-top: 0
    }

    .home-timeline__rail article {
        flex: 0 0 14rem
    }

    .home-timeline__rail {
        margin-right: calc(var(--container-gutter) * -1);
        padding-right: var(--container-gutter)
    }

    .home-faq__grid {
        grid-template-columns: 1fr;
        gap: var(--space-7)
    }
}

@media(max-width:60rem) {
    .home-casino__grid {
        grid-template-columns: repeat(6, minmax(0, 1fr))
    }

    .home-casino__main,
    .home-casino__media {
        grid-column: 1 / -1
    }

    .home-casino__detail--tables {
        grid-column: 1 / span 3
    }

    .home-casino__detail--hosts {
        grid-column: 4 / span 3
    }

    .home-casino__ending {
        grid-column: 1 / -1
    }

    .home-business__grid {
        grid-template-columns: 1fr;
        gap: var(--space-7)
    }

    .home-contact__panel {
        grid-column: 1 / span 6
    }

    .home-gallery__dominant {
        width: 100%;
        margin-left: 0
    }

    .home-gallery__rail {
        width: 100%
    }
}

@media(max-width:40rem) {
    .home-hero {
        padding-top: var(--space-8)
    }

    .home-hero__grid {
        grid-template-columns: 1fr;
        gap: var(--space-6)
    }

    .home-hero__copy,
    .home-hero__media {
        grid-column: 1
    }

    .home-hero__copy h1 {
        max-width: 9ch
    }

    .home-hero__lead {
        font-size: 1.25rem
    }

    .home-hero__actions {
        flex-direction: column;
        align-items: stretch
    }

    .home-hero__actions .button {
        width: 100%
    }

    .home-hero__number {
        display: none
    }

    .home-hero__media {
        margin: 0 calc(var(--container-gutter) * -1 + var(--container-gutter-tight))
    }

    .home-formats__intro {
        grid-template-columns: 1fr;
        gap: var(--space-4);
        margin-bottom: var(--space-7)
    }

    .home-formats__grid,
    .home-services__grid,
    .home-process__grid {
        grid-template-columns: 1fr
    }

    .home-format,
    .home-service,
    .home-process__grid article {
        min-height: 0
    }

    .home-services__heading {
        grid-template-columns: 1fr;
        margin-bottom: var(--space-7)
    }

    .home-services__heading .display-number {
        right: 0;
        top: -2rem;
        font-size: 7rem
    }

    .home-casino__detail--tables,
    .home-casino__detail--hosts {
        grid-column: 1 / -1
    }

    .home-process__top {
        grid-template-columns: 1fr;
        margin-bottom: var(--space-7)
    }

    .home-process__top div {
        position: absolute;
        right: var(--space-4);
        top: var(--space-6);
        opacity: .35;
        font-size: 7rem
    }

    .home-process__top h2 {
        position: relative;
        z-index: 1
    }

    .home-portfolio__grid {
        grid-template-columns: 1fr
    }

    .home-case--lead,
    .home-case--small {
        grid-column: 1
    }

    .home-case dl {
        grid-template-columns: 1fr
    }

    .home-gallery__rail {
        display: flex;
        overflow-x: auto;
        gap: var(--space-4);
        margin-right: calc(var(--container-gutter) * -1);
        padding-right: var(--container-gutter);
        scroll-snap-type: x mandatory
    }

    .home-gallery__rail figure {
        flex: 0 0 80%;
        scroll-snap-align: start
    }

    .home-why__list article {
        grid-template-columns: 1fr;
        gap: var(--space-3)
    }

    .home-business__list {
        grid-template-columns: 1fr
    }

    .home-business__list article:nth-child(n) {
        padding: var(--space-4) 0;
        border-left: 0
    }

    .home-timeline__rail {
        margin-right: calc(var(--container-gutter) * -1);
        padding-right: var(--container-gutter)
    }

    .home-timeline__rail article {
        flex-basis: 14rem
    }

    .home-faq__items button {
        font-size: 1rem
    }

    .home-contact__scene {
        grid-template-columns: 1fr;
        min-height: 0
    }

    .home-contact__scene>img {
        grid-column: 1;
        grid-row: 2;
        min-height: 0;
        aspect-ratio: 4/5;
        object-position: 75% center
    }

    .home-contact__panel {
        grid-column: 1;
        grid-row: 1;
        margin: 0;
        padding: var(--space-6);
        min-height: 0
    }

    .home-contact__panel h2 {
        font-size: clamp(2.55rem, 12vw, 3.5rem)
    }
}

@media(prefers-reduced-motion:reduce) {

    .home-format:hover,
    .home-service:hover,
    .home-case:hover,
    .home-gallery__rail figure:hover {
        transform: none
    }
}