:root {
    --bg: #0c0d0d;
    --ink: #fff;
    --text: #f9f4ec;
    --muted: #d8d1c7;
    --accent: #9bc16a;
    --pink: #ee6191;
    --card: #050505;
    --line: rgba(255, 255, 255, .22)
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: "Winky Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif
}

a {
    color: inherit
}

.tt-page {
    overflow: hidden
}

.tt-hero {
    position: relative;
    min-height: 705px;
    padding: 28px clamp(22px, 7vw, 108px) 50px;
    display: flex;
    flex-direction: column;
    justify-content: space-between
}

.tt-hero-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, .82) 0%, rgba(0, 0, 0, .56) 35%, rgba(0, 0, 0, .28) 70%, rgba(0, 0, 0, .55) 100%), linear-gradient(0deg, rgba(12, 13, 13, 1) 0%, rgba(12, 13, 13, 0) 28%), url('images/hero-hot-tub-party.jpeg') center top/cover no-repeat;
    z-index: 0
}

.tt-header,
.tt-hero-content {
    position: relative;
    z-index: 2
}

.tt-logo {
    width: 145px;
    height: auto;
	filter: invert(1) drop-shadow(0 12px 18px rgba(0, 0, 0, .55));
}

.tt-hero-content {
    display: grid;
    grid-template-columns: minmax(300px, 1fr) minmax(310px, 450px);
    gap: clamp(24px, 8vw, 120px);
    align-items: end;
    max-width: 1180px;
    width: 100%;
    margin: 0 auto
}

.tt-copy h1 {
    font-size: clamp(4.1rem, 8vw, 7.7rem);
    line-height: .83;
    margin: 0 0 12px;
    letter-spacing: -.045em;
    text-transform: uppercase;
    font-weight: 400;
    text-shadow: 0 5px 22px rgba(0, 0, 0, .4)
}

.tt-sub {
    font-size: clamp(1.75rem, 3vw, 2.8rem);
    color: var(--accent);
    font-style: italic;
    margin: 0 0 26px
}

.tt-lead {
    font-size: clamp(1.1rem, 1.5vw, 1.33rem);
    line-height: 1.55;
    max-width: 520px;
    margin: 0
}

.tt-signup-card {
    background: rgba(0, 0, 0, .86);
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 11px;
    padding: 30px clamp(20px, 3vw, 36px);
    text-align: center;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .45)
}

.tt-signup-card h2,
.tt-epic h2,
.tt-pink-copy h2 {
    font-size: clamp(1.75rem, 3vw, 2.6rem);
    text-transform: uppercase;
    margin: 0;
    font-weight: 900;
    letter-spacing: .02em
}

.tt-wave {
    height: 11px;
    width: 115px;
    margin: 12px auto 22px;
    background: radial-gradient(16px 7px at 8px 6px, transparent 7px, var(--accent) 7.5px 9px, transparent 9.5px) repeat-x;
    background-size: 24px 11px
}

.tt-signup-card p {
    font-size: 1.06rem;
    line-height: 1.45;
    margin: 0 0 20px
}

.tt-signup-card input {
    width: 100%;
    border: 0;
    border-radius: 6px;
    padding: 16px 17px;
    font: inherit;
    margin-bottom: 14px
}

.tt-signup-card button,
.tt-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    border: 0;
    border-radius: 6px;
    background: var(--accent);
    color: white;
    font: inherit;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 16px 20px;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 13px 26px rgba(0, 0, 0, .22)
}

.tt-signup-card small {
    display: block;
    margin-top: 16px;
    color: var(--muted)
}

.tt-hidden-label {
    position: absolute;
    clip: rect(1px, 1px, 1px, 1px)
}

.tt-alert {
    background: #e7ffe9;
    color: #174b1d;
    border-radius: 8px;
    padding: 10px 12px;
    font-weight: 900;
    margin: 0 0 13px
}

.tt-alert-error {
    background: #ffe2e2;
    color: #6e1717
}

.tt-divider {
    height: 16px;
    background: radial-gradient(23px 10px at 11px 12px, transparent 9px, var(--accent) 9.5px 13px, transparent 13.5px) repeat-x;
    background-size: 42px 16px;
    margin-top: -9px;
    position: relative;
    z-index: 4
}

.tt-epic {
    padding: 52px clamp(22px, 7vw, 108px) 34px;
    text-align: center
}

.tt-features {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    max-width: 1120px;
    margin: 34px auto 0
}

.tt-features article {
    padding: 10px clamp(16px, 3vw, 34px);
    border-right: 1px dotted rgba(255, 255, 255, .32)
}

.tt-features article:last-child {
    border-right: 0
}

.tt-icon {
    font-size: 4.6rem;
    line-height: 1;
    color: var(--accent);
    filter: saturate(.7)
}

.tt-features h3 {
    font-size: 1.55rem;
    text-transform: uppercase;
    line-height: .95;
    margin: 18px 0 12px
}

.tt-features p {
    color: var(--muted);
    line-height: 1.45;
    margin: 0;
    font-size: 1.02rem
}

.tt-pink {
    display: grid;
    grid-template-columns: minmax(320px, 560px) minmax(280px, 1fr);
    gap: clamp(30px, 6vw, 70px);
    align-items: center;
    max-width: 1120px;
    margin: 10px auto 62px;
    padding: 0 clamp(22px, 4vw, 36px)
}

.tt-polaroid {
    position: relative;
    background: #f8f4ee;
    padding: 18px 18px 48px;
    margin: 0;
    transform: rotate(-2deg);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .36)
}

.tt-polaroid:before {
    content: "";
    position: absolute;
    left: -18px;
    top: -14px;
    width: 82px;
    height: 45px;
    background: rgba(219, 206, 186, .75);
    transform: rotate(-33deg)
}

.tt-polaroid img {
    width: 100%;
    display: block;
    aspect-ratio: 16/9;
    object-fit: cover
}

.tt-polaroid figcaption {
    position: absolute;
    bottom: 14px;
    left: 0;
    right: 0;
    text-align: center;
    color: var(--accent);
    font-style: italic;
    font-size: 1.08rem
}

.tt-pink-copy h2 {
    font-size: clamp(2.3rem, 5vw, 4.15rem)
}

.tt-pink-copy h2 span {
    color: var(--pink)
}

.tt-pink-copy .tt-wave {
    margin-left: 0
}

.tt-pink-copy p {
    font-size: 1.2rem;
    line-height: 1.55;
    color: var(--text);
    max-width: 500px
}

.tt-pink-copy .tt-button {
    width: auto;
    padding-inline: 30px
}

.tt-footer {
    background: #f4efe6;
    color: #111;
    display: grid;
    grid-template-columns: 120px 1fr 160px;
    gap: 20px;
    align-items: center;
    padding: 24px clamp(22px, 7vw, 108px);
    text-align: center
}

.tt-footer-logo {
    width: 82px
}

.tt-socials {
    display: flex;
    justify-content: flex-end;
    gap: 18px;
    font-weight: 900;
    font-size: 1.7rem
}

@media(max-width:860px) {
    .tt-hero {
        min-height: 760px;
        padding-inline: 22px
    }

    .tt-logo {
        width: 108px
    }

    .tt-hero-content,
    .tt-pink {
        grid-template-columns: 1fr
    }

    .tt-signup-card {
        text-align: left
    }

    .tt-signup-card .tt-wave {
        margin-left: 0
    }

    .tt-features {
        grid-template-columns: 1fr 1fr
    }

    .tt-features article:nth-child(2) {
        border-right: 0
    }

    .tt-features article {
        border-bottom: 1px dotted rgba(255, 255, 255, .24);
        padding-block: 22px
    }

    .tt-footer {
        grid-template-columns: 1fr;
        text-align: center
    }

    .tt-footer-logo {
        margin: auto
    }

    .tt-socials {
        justify-content: center
    }

    .tt-polaroid {
        transform: none
    }
}

@media(max-width:560px) {
    .tt-hero {
        min-height: auto;
        padding-bottom: 36px
    }

    .tt-hero-content {
        margin-top: 80px
    }

    .tt-copy h1 {
        font-size: 3.6rem
    }

    .tt-features {
        grid-template-columns: 1fr
    }

    .tt-features article {
        border-right: 0
    }

    .tt-pink {
        margin-top: 20px
    }

    .tt-footer {
        padding-block: 28px
    }
}