html, body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

* {
    box-sizing: border-box;
}

body {
    font-family: "Geist", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
}

::selection {
    background: #2EC4CE;
    color: #fff;
}

[data-reveal] {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .7s ease-out, transform .7s cubic-bezier(.2,.7,.3,1);
}

[data-reveal].is-in {
    opacity: 1;
    transform: translateY(0);
}

.back-link {
    position: fixed;
    bottom: 20px;
    left: 20px;
    z-index: 50;
    font-family: "Geist Mono", ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(0,0,0,0.6);
    text-decoration: none;
    background: rgba(255,255,255,0.86);
    backdrop-filter: blur(10px);
    padding: 9px 14px;
    border-radius: 999px;
    border: 1px solid rgba(0,0,0,0.08);
    box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}

.back-link:hover {
    color: #000;
    background: #fff;
}

.carousel-track::-webkit-scrollbar {
    display: none;
}

.carousel-arrow:not(:disabled):hover {
    background: rgba(0,0,0,0.04);
}

@media (min-width: 601px) and (max-width: 900px) {
    .mb-carousel-card { flex-basis: clamp(360px, 68vw, 500px) !important; }
}

@media (max-width: 600px) {
    .mb-nav { display: none !important; }
    .mb-pad { padding-left: 20px !important; padding-right: 20px !important; }
    .mb-hero { padding: 28px 20px 20px !important; }
    .mb-hero-stage { padding: 12px 0 36px !important; }
    .mb-hero-wash { width: 280px !important; height: 280px !important; }
    .mb-hero-windmill { width: 240px !important; height: 240px !important; }
    .mb-hero-windmill svg { width: 100% !important; height: 100% !important; }
    .mb-hero-ticks { gap: 18px !important; bottom: 8px !important; font-size: 9px !important; letter-spacing: 0.14em !important; }
    .mb-hide-on-mobile { display: none !important; }
    .mb-h1 { margin-top: 24px !important; font-size: clamp(34px, 9vw, 44px) !important; }
    .mb-tag { margin-top: 22px !important; letter-spacing: 0.18em !important; }
    .mb-divider { padding: 28px 20px 8px !important; }
    .mb-divider-label { font-size: clamp(28px, 8vw, 36px) !important; }
    .mb-products { padding: 36px 20px 16px !important; }

    .mb-product-row {
        grid-template-columns: 1fr !important;
        gap: 44px !important;
        padding: 40px 0 !important;
    }

    .mb-product-text { order: 2 !important; padding: 0 !important; }
    .mb-product-visual { order: 1 !important; }
    .mb-product-name { font-size: clamp(36px, 10vw, 48px) !important; }
    .mb-product-tag { font-size: 18px !important; }
    .mb-product-blurb { font-size: 14px !important; margin-bottom: 24px !important; }
    .mb-carousel-header { padding: 0 20px !important; }
    .mb-carousel-track { padding: 24px 20px !important; scroll-padding-left: 20px !important; }
    .mb-carousel-card { flex-basis: 78vw !important; padding-right: 16px !important; }
    .mb-carousel-fade-l, .mb-carousel-fade-r { width: 24px !important; }
    .mb-contact { padding: 40px 20px 32px !important; }
    .mb-contact-row { gap: 24px !important; }
    .mb-contact-email { font-size: clamp(22px, 6.5vw, 30px) !important; }
    .mb-contact-aside { font-size: 14px !important; }

    .mb-footer {
        padding: 20px !important;
        flex-wrap: wrap !important;
        gap: 12px !important;
        margin-top: 48px !important;
    }
}
