:root { --tangerine: #F7A278; --orange: #c94c10; --champagne: #FDE4D8; --dusty-champagne: #EFC6B8; --charcoal: #626262; --emoji-picker-rounding: 6px; --image-max-size: 324px; } *, *::before, *::after { box-sizing: border-box; } html { font-size: 62.5%; line-height: 1.5; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; } body { background: var(--champagne); font-size: 1.6rem; line-height: 1.4; max-width: 768px; margin-inline: auto; padding: 2.4rem 1.2rem; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; } .mt { margin-block-start: 1.6rem; } .mb { margin-block-end: 1.6rem; } .small { font-size: 1.4rem; } .subtle { color: var(--charcoal); } .messages { margin-block-end: 1.6rem; display: grid; row-gap: .8rem; font-size: 1.5rem; } .messages li.success::before { content: "✅ "; } .messages li.error::before { content: "❌ "; } .messages li.info::before { content: "ℹ️ "; } button.logout { border: none; outline: none; background: none; display: inline; font-size: 1.6rem; cursor: pointer; padding: 0; } a, button.logout { color: var(--orange); font-weight: bold; text-decoration: none; text-decoration-skip-ink: none; text-underline-offset: 2px; } a:hover, button.logout:hover { text-decoration: wavy underline; } .profile h2 { font-size: 1.8rem; font-weight: bold; color: var(--orange); } .avatar { border-radius: 8px; } aside .avatar { max-width: 100%; } dl { display: grid; grid-template-columns: 1fr 1fr; row-gap: 1.2rem; column-gap: 1.8rem; } dl > div { display: grid; } dl dt { font-size: 1.4rem; font-weight: bold; color: var(--charcoal); } dl > .double { grid-column: 1 / span 2; } form .errors { font-size: 1.5rem; display: grid; margin-block-end: .8rem; } form .errors::before { content: "fix these and we're good to go:"; font-size: 1.4rem; color: var(--charcoal); margin-block-end: .4rem; } form .errors li::before { content: "❌ "; } form .errors li { text-transform: lowercase; } form:not(.logout) { display: grid; row-gap: .8rem; } form.auth { max-width: 378px; } form .field { display: grid; row-gap: .4rem; } form .field .field-button { display: grid; grid-template-columns: 1fr auto; column-gap: .8rem; } form .checkbox { display: grid; grid-template-columns: auto 1fr; align-items: flex-start; column-gap: .8rem; } form .field .help { color: var(--charcoal); font-size: 1.4rem; } form input:not([name$="-clear"]), form select { width: 100%; } form textarea { height: 6ch; resize: vertical; } form input[type=text], form input[type=password], form input[type=email], form textarea, form select { padding: .2rem; font-size: 1.6rem; border: 1px solid var(--charcoal); border-radius: 3px; background: var(--champagne); } form input[type=text]:focus, form input[type=password]:focus, form input[type=email]:focus, form textarea:focus, form select:focus { background: white; outline: 2px solid var(--tangerine); } form .emoji-picker { display: grid; row-gap: .2rem; margin-block-end: .8rem; } form .emoji-picker details:first-of-type summary { border-top-right-radius: var(--emoji-picker-rounding); border-top-left-radius: var(--emoji-picker-rounding); } form .emoji-picker details:last-of-type:not([open]) summary { border-bottom-right-radius: var(--emoji-picker-rounding); border-bottom-left-radius: var(--emoji-picker-rounding); } form .emoji-picker details summary { background: var(--dusty-champagne); font-size: 1.4rem; padding: .4rem .6rem; user-select: none; cursor: default; } form .emoji-picker ul { display: grid; grid-template-columns: repeat(5, 1fr); column-gap: .2rem; row-gap: .2rem; } form .emoji-picker ul li label { padding: .3rem; } form .emoji-picker ul li input[type=radio] { display: none; } form .emoji-picker ul li input[type=radio]:checked + label { outline: 3px solid var(--tangerine); border-radius: 50%; } form button[type=submit]:not(.logout) { padding: .4rem .6rem; font-size: 1.5rem; background: var(--tangerine); border: 1px solid var(--orange); outline: none; border-radius: 4px; } header { display: grid; margin-block-end: 2.4rem; } header h1 { font-weight: bold; font-size: 2.4rem; } header h1 sup { vertical-align: super; font-size: 1.4rem; font-weight: normal; } header nav ul { display: flex; flex-flow: row wrap; align-items: center; column-gap: 1.2rem; row-gap: .8rem; } .grid-content { display: grid; row-gap: 1.2rem; } .grid-content main { display: grid; row-gap: 1.8rem; } .grid-content main article { padding: .8rem 1.8rem; border-left: 4px solid var(--tangerine); word-break: break-word; display: grid; grid-template-columns: auto 1fr; column-gap: 1.2rem; } .grid-content main article .image { grid-column: 1 / span 2; margin-block-end: 1rem; } .grid-content main article .image img { max-width: 100%; max-height: var(--image-max-size); border-radius: 8px; } .grid-content main article .emoji { font-size: 2rem; padding-top: .8rem; } .grid-content main article .body { display: grid; row-gap: .2rem; } .grid-content main article .body .metadata { font-size: 1.4rem; color: var(--charcoal); } .grid-content main article .body .recipe { margin-block-start: .4rem; } .grid-content main article .body .recipe summary { font-size: 1.4rem; cursor: default; user-select: none; } .grid-content main article .body .recipe ol { font-size: 1.5rem; list-style: decimal; margin-block-start: 1rem; padding-inline-start: 3.4rem; border-left: 2px solid var(--tangerine); } .block { max-width: 528px; display: grid; row-gap: .8rem; } .block h2 { font-size: 2rem; font-weight: bold; } .block h3 { font-size: 1.8rem; font-weight: bold; margin-block-start: 1.2rem; } .block ul, .block ol { padding-inline-start: 3.2rem; display: grid; row-gap: .4rem; } .block ul { list-style: disc; } .block ol { list-style: decimal; } .block strong { font-weight: bold; } .block em { font-style: italic; } footer { margin-block-start: 1.8rem; } footer nav ul { display: flex; flex-flow: row wrap; align-items: center; justify-content: center; column-gap: 1.2rem; } footer nav ul li a { font-size: 1.4rem; color: var(--charcoal); } footer nav ul li a:hover { color: var(--orange); } @media(min-width: 768px) { body { padding: 4rem 1.2rem 2.4rem 1.2rem; } header { grid-template-columns: auto 1fr; column-gap: 2.4rem; align-items: center; } header nav ul { justify-content: flex-end; } .grid-content { grid-template-columns: 214px 1fr; column-gap: 2.4rem; row-gap: 0; align-items: flex-start; } .grid-content main article .image img { max-width: var(--image-max-size); } }