@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

body {background: #f0f3f5;}

* {
    font-family: 'Poppins', sans-serif;
    color: #333;
    box-sizing: border-box;
    margin: 0; padding: 0;
}

p {line-height: 1.7rem;}

a {
    text-decoration: none;
    color: steelblue;
}

img {display: block;}

main > img {
    margin: 3rem auto 1rem;
    width: 30vw;
}



/* HEADER */

header {
    position: fixed;
    top: 0;
    z-index: 99;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: 5rem;
    padding: 1.2rem 3rem;
    background: lightsteelblue;
}

header h1 a {
    color: #f0f3f5;
    font-size: 1.5rem;
    text-align: center;
}


/* Menu */

nav input {display: none;}

nav i {
    color: #f0f3f5;
    cursor: pointer;
}

.menu {
    position: fixed;
    display: flex;
    flex-direction: column;
    justify-content: center;
    top: 5rem; right: 0;
    width: 30vw;
    height: calc(100vh - 5rem);
    margin-right: -75vw;
    background: #f0f3f5;
    border-left: 0.4rem solid lightsteelblue;
    transition: 0.25s ease-in-out;
}

.menu li {
    list-style: none;
    padding: 1.5rem 2rem;
    transition: 0.25s ease-in-out;
}

.menu li::before {
    content: "";
    display: block;
    position: absolute;
    left: -0.9rem;
    background: #f0f3f5;
    width: 0.8rem; height: 0.8rem;
    border: 0.4rem solid lightsteelblue;
    border-radius: 50%;
}

.menu li:last-child::before {display: none;}

.menu a {
    color: #333;
    transition: 0.25s ease-in-out;}

nav input:checked + .menu {margin-right: 0;}

.menu li:hover a {
    color: lightsteelblue;
    font-weight: 700;
}

/* Scroll Progress bar */

.bar {
    width: 100vw; height: .3rem;
    position: absolute;
    top: 5rem; left: 0;
}

#progress {
    height: 100%;
    background: steelblue;
}



/* MAIN */

main {
    width: 70vw;
    margin: 7rem auto;
}

main h2 {
    color: steelblue;
    font-size: 2rem;
    margin: 0 10vw 2rem;
    padding-top: 10rem;
}

main h3 {
    font-size: 1.5rem;
    margin: 0 10vw 2rem;
}

main > p {margin: 3rem 10vw;}

.caption {
    color: grey;
    font-weight: 300;
    margin: 1rem 10vw 3rem;
    text-align: center;
}

/* Browser window: WWW (1991) */

.www {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 500px;
    width: 30vw; 
    margin: 3rem auto 1rem;
    border: 2px solid;
}

.www .top,
.www .bottom {
    display: flex;
    padding: 2px;
    justify-content: space-between;
    align-items: center;
    height: 30px;
    background-color: lightgrey;
    border: 2px solid white;
    border-left: 2px solid white;
    border-right: 2px solid grey;
    border-bottom: 2px solid grey;
    outline: 2px solid;
}

.www .top a {color: #333;}

.www .window, 
.www .x-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 1.3rem; height: 1.3rem;
    border-top: 2px solid white;
    border-left: 2px solid white;
    border-right: 2px solid grey;
    border-bottom: 2px solid grey;
}

.www .window:hover,
.www .x-btn:hover {
    border-top: 2px solid grey;
    border-left: 2px solid grey;
    border-right: 2px solid white;
    border-bottom: 2px solid white;
}

.www .w-icon {
    width: .8rem; height: .8rem;
    border: 2px solid;
    border-top: 5px solid;
}

.www .main {flex: 1; background: white;}
.www .main img {width: 100%;}
.www .bottom {height: 10px;}



/* Gallery */

.gallery {
    display: flex;
    flex-flow: row wrap;
    align-items: flex-start;
    margin: auto;
}

.gallery figure {
    flex: 0 0 33.3333%;
    margin: 0;
    padding: 0.5rem;
    position: relative;
}

.gallery img {width: 100%;}

.gallery figcaption,
.gallery a {
    color: transparent;
    position: absolute;
    top: 0.5rem; bottom: 0.5rem;
    left: 0.5rem; right: 0.5rem;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    transition: all 0.5s ease-in-out;
}

.gallery figcaption:hover,
.gallery a:hover {
    background: rgba(70, 130, 180, 0.8);
    color: white;
}



/* Browser Window: IE4 (1997) */

.ie4 {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 500px;
    width: 30vw;
    margin: 3rem auto 1rem;
    background: lightgrey;
    border: 3px solid white;
    border-bottom: 3px solid;
    border-right: 3px solid;
}

.ie4 .title {
    display: flex;
    padding: 5px;
    justify-content: space-between;
    align-items: center;
    height: 30px;
    background: #0C00A1;
}

.ie4 .title-r {
    display: flex;
    flex-flow: row nowrap;
}

.ie4 .btn {
    background: lightgrey;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 1.3rem; height: 1.3rem;
    margin: auto 2px;
    border-top: 2px solid white;
    border-left: 2px solid white;
    border-right: 2px solid grey;
    border-bottom: 2px solid grey;
}

.ie4 .btn:hover {
    border-top: 2px solid grey;
    border-left: 2px solid grey;
    border-right: 2px solid white;
    border-bottom: 2px solid white;
}

.ie4 .title a, .ie4 .title p {color: white;}
.ie4 .address a {color: #333;}

.ie4 .setting, .ie4 .address {
    display: flex;
    margin: 2px 2px 1px;
    padding: 2px 5px;
    border-top: 2px solid white;
    border-left: 2px solid white;
    border-right: 2px solid grey;
    border-bottom: 2px solid grey;
}

.ie4 .setting::before,
.ie4 .address::before {
    content: "";
    border-top: 2px solid white;
    border-left: 2px solid white;
    border-right: 2px solid grey;
    border-bottom: 2px solid grey;
}

.ie4 .setting span,
.ie4 .address span {margin: auto 1rem;}

.ie4 .address .txt {
    background: white;
    display: flex;
    justify-content: space-between;
    width: 85%;
    padding-left: 5px;
    border-top: 2px solid;
    border-left: 2px solid;
    border-right: 2px solid grey;
    border-bottom: 2px solid grey;
}

.ie4 .main {
    width: auto; height: 100%;
    margin: 1px 2px;
    border-top: 2px solid;
    border-left: 2px solid;
    border-right: 2px solid grey;
    border-bottom: 2px solid grey;
}

.ie4 img {width: 100%;}
.ie4 iframe {width: 100%; height: 100%;}

.ie4 .bottom {
    width: 100%; height: 10px;
    border-top: 2px solid grey;
    border-left: 2px solid grey;
    border-right: 2px solid white;
    border-bottom: 2px solid white;
}





/* FOOTER */

footer {
    width: 100%;
    height: 5rem;
    text-align: center;
}



/* MEDIA QUERY */

@media (max-width: 1280px) {
    header i {font-size: 1.3rem;}
    .menu {width: 50vw;}

    main {width: 90vw;}
    main > img {width: 50vw;}
    .www, .ie4 {width: 50vw;}

    .gallery {flex-flow: row wrap;}
    .gallery figure {flex: 0 0 50%;}
}

@media (max-width: 767px) {
    .menu {
        width: 75vw;
        margin-right: -100vw;
    }

    main {width: 100vw;}
    main > img {width: inherit;}
    .www, .ie4 {width: 90%;}

    .gallery {
        flex-flow: column wrap;
        width: 100%;
    }
    .gallery figure {
        flex: 0 0 100%;
        width: 100%;
    }
    .gallery figure img {width: 100%;}
}