<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/* functional components */
/* $Id: 02_components.css 96 2019-07-26 13:52:16Z fuchsm $ */

/** header **/

body &gt; header {
    display: flex;
    align-content: center;
    justify-items: flex-end;
    padding: 8px 0;
    background: var(--dark);
    color: var(--light);

}
body &gt; header &gt; p {
    color: var(--light);
    padding: 3px 0;
}
body &gt; header &gt; p &gt; a:hover {
    text-decoration: underline;
}

body &gt; header &gt; * {
    grid-column: 2/-2;
}

/** nav **/

body &gt; nav {
    grid-template-areas: ". logo logo nav nav nav nav nav nav nav nav nav nav .";
    align-items: center;
}

body &gt; nav h1 {
    grid-area: logo;
    margin-left:6em;
    display:block; 
}
body &gt; nav img {
    grid-area: logo;
    width: 56px;
    height: 56px;
    padding: 16px 0;
}

body &gt; nav &gt; ul {
    justify-self: end;
    grid-area: nav;
    display: grid;
    align-items: center;
    justify-items: flex-end;
}
body &gt; nav &gt; ul &gt; li &gt; a {
    display: block;
    padding: 16px 0 16px var(--nav-horizontal-padding);
}


body &gt; nav &gt; ul &gt; li &gt; a {
    color: var(--gray);
}
body &gt; nav &gt; ul &gt; li &gt; a.active {
    color: var(--dark);
}
body &gt; nav &gt; ul &gt; li &gt; a:hover {
    color: var(--dark);
}


@media (min-width: 480px) {
    body &gt; nav &gt; ul {
        grid: ". . ." auto 
              ". . ." auto
              / auto;
    }
    body &gt; nav &gt; ul &gt; li:nth-of-type(3n+1) &gt; a {
        padding: 16px var(--nav-horizontal-padding);
    }
    body &gt; nav &gt; ul &gt; li:nth-of-type(3n+2) &gt; a {
        padding: 16px var(--nav-horizontal-padding);
    }
}

@media (min-width: 768px) {
    body &gt; nav &gt; ul {
        grid: ". . . . . ." auto
        / auto;
    }
    body &gt; nav &gt; ul &gt; li:nth-of-type(3) &gt; a {
        padding: 16px var(--nav-horizontal-padding);
    }
    body &gt; nav &gt; ul &gt; li:last-of-type&gt; a {
        padding-right: 0;
    }
}

/** banner **/

section.banner {
    background: var(--dark);
    color: var(--light);    
    padding: 24px 0;
    background-size: cover;
    align-items: end;
    grid-template-rows: 1fr auto;
}
section.banner &gt; * {
    grid-column: 2/-2;
}
section.banner &gt; h1 {
    text-align: left;
    border: none;
}

@media (min-height: 512px) {
    section.banner {
        min-height: 384px;
    }
}

/* joint styling for sections */

body &gt; main &gt; section {
    position: relative;
    padding: var(--default-section-vertical-padding) 0 0 0;
}

body &gt; main {
    margin-bottom: var(--default-section-vertical-padding);
}

body &gt; main &gt; section &gt; h1 {
    padding-bottom: 8px;
    margin-bottom: 40px;
    border-bottom: 2px solid var(--light);
    padding-right: 72px; /* width of the more-link */
}

body &gt; main &gt; section a.more-link {
    position: absolute;
    top: var(--default-section-vertical-padding); 
    right: 0;
    background: var(--light);
    color: var(--dark);
    border-radius: var(--default-border-radius);
    padding: 4px 8px;
    width: 64px; /*check with padding*/
}

/* joint styling for articles */


body &gt; main &gt; section article h1,
body &gt; main &gt; section.card-text-list ul.games-list h1 {
    grid-area: h1;
}

body &gt; main &gt; section article h2,
body &gt; main &gt; section.card-text-list ul.games-list h2 {
    grid-area: h2;
}

body &gt; main &gt; section article img,
body &gt; main &gt; section.card-text-list ul.games-list img {
    grid-area: img;
    object-fit: cover;
    margin-bottom: 4px;
}

/* card-list */

body &gt; main &gt; section.card-list ul {
    display: grid;
    grid-gap: var(--inner-grid-vertical-gap) var(--inner-grid-horizontal-gap);
    gap: var(--inner-grid-vertical-gap) var(--inner-grid-horizontal-gap);
}

body &gt; main &gt; section.card-list article {
    display: grid;
    grid: "img" auto
          "h2" auto
          "h1" auto
          / auto;
}


body &gt; main &gt; section.card-list article &gt; img,
body &gt; main &gt; section.card-text-list &gt; ul &gt; li article.card &gt; img,
body &gt; main &gt; section.card-text-list &gt; ul &gt; li  ul  img  
{
    border-radius: var(--default-border-radius);
    height: 128px;
}

@media (min-width: 480px) {
    body &gt; main &gt; section.card-list ul{
        grid: ". ." auto
             / 1fr 1fr; 
    }
}
@media (min-width: 768px) {
    body &gt; main &gt; section.card-list ul{
        grid: ". . . "
            / 1fr 1fr 1fr; 
    }
}
@media (min-width: 1024px) {
    body &gt; main &gt; section.card-list ul{
        grid: ". . . ." auto
             / 1fr 1fr 1fr 1fr; 
    }
}

/* card-list person cards */


body &gt; main &gt; section.card-list.person-cards article {
    background: var(--dark);
    color: var(--light);
    border-radius: var(--default-border-radius);

}
body &gt; main &gt; section.card-list.person-cards article &gt; img {
    height: 192px;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
body &gt; main &gt; section.card-list.person-cards article &gt; *:not(img) {
    margin: 8px;
}
/* 
@media (min-width: 1024px) {
    body &gt; main &gt; section.card-list.person-cards &gt; ul{
        grid: ". . . . . ." 
             / 1fr 1fr 1fr 1fr 1fr 1fr; 
    }
} */

/* card-list featured */


body &gt; main &gt; section.card-list.featured ul {
    display: grid;
    grid: "featured" auto
           "." auto
          / 1fr;
    gap: var(--inner-grid-horizontal-gap) var(--inner-grid-horizontal-gap);
    grid-gap: var(--inner-grid-horizontal-gap) var(--inner-grid-horizontal-gap);
    justify-items: flex-start;
    align-items: flex-start;
}

body &gt; main &gt; section.card-list.featured ul li:first-of-type {
    grid-area: featured;
}

body &gt; main &gt; section.card-list.featured ul li:first-of-type article,
body &gt; main &gt; section.card-text-list &gt; ul &gt; li &gt; article.card {
    background-color: var(--dark);
    color: var(--light);
    border-radius: var(--default-border-radius);
    height: 100%;
    justify-self: stretch;
    display: grid;
    grid: "img" 1fr
          "h2" auto
          "h1" auto
          "." auto
          / auto;
}

body &gt; main &gt; section.card-list.featured ul li:first-of-type article &gt; img,
body &gt; main &gt; section.card-text-list &gt; ul &gt; li &gt; article.card &gt; img {
    background-color: var(--dark);
    color: var(--light);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

body &gt; main &gt; section.card-list.featured ul li:first-of-type article &gt; img {
    height: 100%;
}

body &gt; main &gt; section.card-text-list &gt; ul &gt; li &gt; article.card &gt; img {
    height: 192px;
}

body &gt; main &gt; section.card-list.featured ul li:first-of-type article &gt; *:not(img),
body &gt; main &gt; section.card-text-list &gt; ul &gt; li &gt; article.card &gt; *:not(img) {
    margin-left: 16px;
    margin-right: 16px;
}
body &gt; main &gt; section.card-list.featured ul li:first-of-type article &gt; *:not(img):last-child,
body &gt; main &gt; section.card-text-list &gt; ul &gt; li &gt; article.card &gt; *:not(img):last-child {
    margin-bottom: 16px;
}

body &gt; main &gt; section.card-text-list &gt; ul &gt; li {
    padding-top: var(--default-grid-column-gap);
}
body &gt; main &gt; section.card-text-list &gt; ul &gt; li &gt; ul.games-list &gt; li {
    padding-top: var(--inner-grid-horizontal-gap);
}

body &gt; main &gt; section.card-list.featured ul li:nth-of-type(1n+2) article,
body &gt; main &gt; section.card-text-list &gt; ul &gt; li &gt; ul.games-list &gt; li article {
    display: grid;
    grid: "img h2" auto
          "img h1" 1fr
          / 88px 1fr;
}
body &gt; main &gt; section.card-list.featured ul li:nth-of-type(1n+2) article &gt; img,
body &gt; main &gt; section.card-text-list &gt; ul &gt; li &gt; ul.games-list &gt; li article &gt; img {
    width: 72px;
    height: 72px;
}
body &gt; main &gt; section.card-list.featured ul li:nth-of-type(1n+2) article &gt; h2,
body &gt; main &gt; section.card-text-list &gt; ul &gt; li &gt; ul.games-list &gt; li article &gt; h2 {
    margin-top: 0;
}
 body &gt; main &gt; section.card-list.featured ul li:nth-of-type(1n+2) article &gt; h1,
 body &gt; main &gt; section.card-text-list &gt; ul &gt; li &gt; ul.games-list &gt; li article &gt; h1 {
    min-height: 0;
    margin-bottom: 0;
    padding-bottom: 4px;
 }

 body &gt; main &gt; section.card-list.featured ul li:nth-of-type(1n+2) article p {
     display: none;
 }
 body &gt; main &gt; section.card-text-list &gt; ul &gt; li &gt; ul.games-list &gt; li article &gt; p {
    grid-column: 2/-1;
 } 
@media (min-width: 480px) {
    body &gt; main &gt; section.card-list.featured ul{
        grid: "featured ." auto
              "featured ." auto
              "featured ." auto
              "featured ." auto
              / 1fr 1fr;
    }
}

/* card-text-list 
 * note: some elements (e.g. the card) are styled above in order to keep the styling
 * consistent
 */

 section.card-text-list &gt; ul {
    display: grid;
    grid: "." auto
        / auto;
    grid-gap: var(--default-grid-column-gap);
    gap: var(--default-grid-column-gap);
    
}
section.card-text-list &gt; ul &gt; li {
    display: grid;
    grid: "card" auto
          "text" auto
          "games-list" auto
          / auto;
    grid-column-gap: var(--inner-grid-horizontal-gap);
}
section.card-text-list &gt; ul &gt; li &gt; article.card {
    grid-area: card;
}
section.card-text-list &gt; ul &gt; li &gt; article.card &gt; dl {
    display: grid;
    grid: "." auto
        / auto 1fr;
    grid-column-gap: 24px;
    grid-row-gap: 8px;
    column-gap: 24px;
    row-gap: 8px;
}
section.card-text-list &gt; ul &gt; li &gt; article.card &gt; dl &gt; dt {
    grid-column: 1/2;
    font-weight: 600;
}
section.card-text-list &gt; ul &gt; li &gt; article.card &gt; dl &gt; dd {
    grid-column: 1/2;
    padding-left: 4ex;
}

section.card-text-list &gt; ul &gt; li &gt; article.text {
    grid-area: text;
}
section.card-text-list &gt; ul &gt; li &gt; article.text p {
    margin-bottom: 0.5em;
}
section.card-text-list &gt; ul &gt; li &gt; ul.games-list {
    grid-area: games-list;
    display: grid;
    grid: "."
        / 1fr;
    grid-gap: var(--inner-grid-horizontal-gap) var(--inner-grid-horizontal-gap);
    gap:      var(--inner-grid-horizontal-gap) var(--inner-grid-horizontal-gap);
}

@media (min-width: 480px) {
    section.card-text-list &gt; ul &gt; li &gt; article.card &gt; dl {
        display: grid;
        grid: ". ." auto
            / auto 1fr;
        grid-column-gap: 24px;
        grid-row-gap: 16px;
    }

    section.card-text-list &gt; ul &gt; li &gt; article.card &gt; dl &gt; dd {
        grid-column: 2/3;
        padding-left: inherit;
    }

}

@media (min-width: 768px) {
    section.card-text-list &gt; ul &gt; li {
        display: grid;
        grid: "card   text"        1fr
              "card   games-list" auto
              / 320px 1fr;
    }
}

@media (min-width: 1024px) {
    section.card-text-list &gt; ul &gt; li &gt; ul.games-list {
        grid: ". . ." auto
            / 1fr 1fr 1fr;
    }
}

/*would be nice to arrange very wide research into 2-column grid:

 hovever, interacts badly with lower-hierarchy grid entries and becomes too wide.

/* @media (min-width: 1920px) {    
    section.card-text-list &gt; ul {
        display: grid;
        grid: ". ." auto
            / 1fr 1fr;
    }    
    section.card-text-list &gt; ul &gt; li &gt; ul.games-list {
        grid: ". . ."
            / 1fr 1fr;
    }
} */

/* calendar-list */

body &gt; main &gt; section.calendar-list &gt; ul {
    display: grid;
    grid-gap: 8px;
    gap: 8px;    
}

body &gt; main &gt; section.calendar-list li a {
    display: grid;
    grid: "time-box ." auto
          / auto 1fr;
    grid-gap: var(--inner-grid-vertical-gap) var(--inner-grid-horizontal-gap);
    gap: var(--inner-grid-vertical-gap) var(--inner-grid-horizontal-gap);
    align-items: center;
}

body &gt; main &gt; section.calendar-list li a:hover {
    background-color: var(--light);
    border-radius: var(--default-border-radius);
}


body &gt; main &gt; section.calendar-list li a time {
    grid-area: time-box;
    background-color: var(--light);
    border-radius: var(--default-border-radius);
    width: 36px;
    height: 36px;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    text-align: center;
    padding: 8px;
}

/* text list */

body &gt; main &gt; section.text li {
    list-style-type: circle;
    margin: 1ex 0 0 1ex;
}

/* footer */

body &gt; footer {
    color: var(--light);
    background: var(--dark);
    grid: ". logo        logo logo   logo   logo   logo   filler filler filler filler . . ." auto
            ". footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line . " auto
            / repeat(14, auto);
    align-items: flex-start;
    padding-bottom: 16px;
}

body &gt; footer &gt; img {
    grid-area: logo;
    width: 96px;
    height: 96px;
    padding-top: 16px;
}

body &gt; footer &gt; .footer-filler {
    grid-area: filler;
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
}
body &gt; footer &gt; .footer-filler &gt; section {
    padding: 8px;
}
body &gt; footer &gt; .footer-filler &gt; section &gt; h1 {
    text-transform: uppercase;
}

body &gt; footer &gt; .footer-line {
    grid-area: footer-line;
}

body &gt; footer &gt; .footer-line &gt; ul {
    justify-self: end;
    grid-area: nav;
    display: flex;
    justify-content: flex-start;
    flex-direction: column;
}
body &gt; footer &gt; .footer-line &gt; ul &gt; li {
    padding: 4px 8px;
}

body &gt; footer &gt; .footer-filler p {
    white-space: pre-line;
}

@media (min-width: 480px) {
    body &gt; footer {
        grid-template-areas: ". logo logo filler filler filler filler filler filler filler filler filler filler ."
        ". footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line . ";

    }

}

@media (min-width: 768px) {
    body &gt; footer {
        grid-template-areas: ". logo logo filler filler filler filler filler filler filler filler . . ."
        ". footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line footer-line . ";

    }
    body &gt; footer &gt; .footer-filler {
        flex-direction: row;
    }
    body &gt; footer &gt; .footer-line &gt; ul {
        flex-direction: row;
        }
    body &gt; footer &gt; .footer-line &gt; ul &gt; li:first-of-type {
        padding-left: 0;
    }
    body &gt; footer &gt; .footer-line &gt; ul &gt; li:last-of-type {
        flex-grow: 1;
        text-align: right;
    }
}

.overlayboxes {
    max-width: 15em;
    display: block;
    right: 0;
    top: 2em;
}
.overlayboxes a{
    color: white;
 }
.redboxoverlay {
    text-align: center;
    background: #e51433;
    margin-bottom: 1em;
    padding: 1em;

}
.redboxoverlay h1 {
    font-weight: 600;
}
@media (min-width: 480px) {
    .overlayboxes {
        position: absolute;
    }
}</pre></body></html>