@media(max-width:950px) {
    .menu-button {
        display: grid
    }

    .main-nav {
        display: none;
        position: absolute;
        top: 67px;
        left: 18px;
        right: 18px;
        padding: 12px;
        background: #fff;
        border: 1px solid var(--line);
        border-radius: 12px;
        box-shadow: var(--shadow);
        flex-direction: column;
        align-items: stretch;
        gap: 2px
    }

    .main-nav.open {
        display: flex
    }

    .main-nav a {
        padding: 11px 12px
    }

    .hero {
        grid-template-columns: 1fr
    }

    .topology-window {
        max-width: 680px;
        width: 100%;
        justify-self: center;
        transform: none
    }

    .intro {
        grid-template-columns: 1fr;
        gap: 20px
    }

    .intro-copy {
        padding-top: 0
    }

    .feature-grid,
    .team-grid,
    .roadmap-grid {
        grid-template-columns: 1fr 1fr
    }

    .section-heading {
        align-items: start;
        flex-direction: column
    }

    .path-grid {
        grid-template-columns: 1fr
    }

    .playground-shell {
        grid-template-columns: 150px 1fr;
        grid-template-rows: auto auto auto
    }

    .property-panel {
        grid-column: 1/3;
        border-left: 0;
        border-top: 1px solid #29374e;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 12px
    }

    .development-note {
        margin-top: 0
    }

    .output-panel {
        grid-column: 1/3
    }

    .docs-layout {
        grid-template-columns: 220px minmax(0, 1fr);
        gap: 35px
    }

    .site-footer {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 12px
    }

    .site-footer .brand {
        justify-content: center
    }

    .site-footer p:nth-child(2),
    .site-footer p:last-child {
        text-align: center
    }
}

@media(max-width:620px) {
    .site-header {
        height: 68px
    }

    .section {
        padding: 78px 22px
    }

    .hero {
        padding: 65px 22px
    }

    .button-row {
        flex-direction: column
    }

    .hero-stats {
        justify-content: space-between;
        gap: 10px
    }

    .hero-stats span {
        display: flex;
        flex-direction: column
    }

    .topology-window {
        height: 375px
    }

    .device {
        transform: scale(.8)
    }

    .router,
    .switch {
        left: calc(50% - 52px)
    }

    .client-a {
        left: 1%
    }

    .client-b {
        right: 1%
    }

    .feature-grid,
    .team-grid,
    .roadmap-grid {
        grid-template-columns: 1fr
    }

    .path-card {
        padding: 30px;
        min-height: 310px
    }

    .page-hero {
        padding: 68px 22px 38px
    }

    .playground-shell {
        margin: 0 12px 70px;
        display: block
    }

    .tool-panel {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 7px
    }

    .tool-panel .panel-label,
    .tool-panel .panel-hint {
        grid-column: 1/4
    }

    .device-tool {
        margin: 0;
        justify-content: center
    }

    .workspace {
        min-height: 420px
    }

    .property-panel {
        display: block
    }

    .output-panel {
        min-height: 180px
    }

    .docs-layout {
        display: block;
        padding: 35px 22px 80px
    }

    .docs-sidebar {
        position: static;
        max-height: none;
        padding: 0 0 35px
    }

    .docs-sidebar nav {
        display: grid;
        grid-template-columns: 1fr 1fr
    }

    .docs-sidebar nav p {
        grid-column: 1/3
    }

    .docs-content h2 {
        margin-top: 55px
    }
}