main { display: grid; grid-template-columns: 3fr 2fr; grid-template-rows: auto 1fr; } main > .bio-title { grid-column: 1; grid-row: 1; } main > .bio-title > * { margin: 0; } h1.name { text-transform: uppercase; font-size: xx-large; color: var(--emph1-color); } h2.instrument { font-weight: normal; font-size: x-large; color: var(--emph2-color); } .bio { grid-column: 1; grid-row: 2; margin-right: 0.5em; } .bio dt, .bio dd { display: inline; } .bio dt { font-weight: 600; color: var(--emph2-color); } .bio dd { margin-left: 0; } .bio dl { margin-top: 0.2em; margin-bottom: 0.2em; } main > img { display: block; grid-column: 2; grid-row: 1 / -1; width: 100%; background-size: cover; } @media (min-width: 80em) { /* CSS 2 appendix D: the vertical margin for h1 should be .67em, with * font-size 2em. */ main { --main-top-margin: 1.33em; } main > .bio-title { margin: var(--main-top-margin) 0; } main > img { margin-top: var(--main-top-margin); position: sticky; top: 2em; } } @media (max-width: 80em) { main { grid-template-columns: 3fr 2fr; grid-template-rows: auto auto; align-items: center; justify-items: center; } main > .bio-title { grid-column: 1; grid-row: 1; text-align: center; } main > img { grid-column: 2; grid-row: 1; } main > .bio { grid-column: 1 / -1; grid-row: 2; } } @media (max-width: 40em) { main > .bio-title > h1 { font-size: 1.2em; } main > .bio-title > h2 { font-size: 1.2em; } }