:root { color-scheme: light dark; --font-family: "Atkinson Hyperlegible Next", sans-serif; /* Theme colors */ --color-light: #fbe8fd; --color-dark: #110526; --color-pink-dark: #741189; --color-pink-light: #d972ef; --color-purple-dark: #421397; --color-purple-light: #9d6ff4; --color-blue-dark: #1243a7; --color-blue-light: #6586ea; /* light/dark mode resolved colors */ --color-bg: light-dark(var(--color-light), var(--color-dark)); --color-text: light-dark(var(--color-dark), var(--color-light)); --color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light)); --color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light)); --color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light)); } /* numbered components are from https://www.joshwcomeau.com/css/custom-css-reset/ */ *, *::before, *::after { box-sizing: border-box; /* 1. Use a more-intuitive box-sizing model */ } #root, #__next { isolation: isolate; /* 10. Create a root stacking context */ } @media (prefers-reduced-motion: no-preference) { html { interpolate-size: allow-keywords; /* 3. Enable keyword animations */ } } html, body { padding: 0; margin: 0 auto; font-family: var(--font-family); color: var(--color-text); background-color: var(--color-bg); } html { overflow-y: scroll; } body { max-width: 40rem; line-height: 1.5; /* 4. Increase line-height */ -webkit-font-smoothing: antialiased; /* 5. Improve text rendering */ } main { padding: 1rem; } section + section { margin-top: 4rem;; } img, picture, video, canvas, svg { display: block; /* 6. Improve media defaults */ max-width: 100%; /* 6. Improve media defaults */ height: auto; /* 6. Improve media defaults */ } input, button, textarea, select { font: inherit; /* 7. Inherit fonts for form controls */ } p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; /* 8. Avoid text overflows */ } p { text-wrap: pretty; /* 9. Improve line wrapping */ } p:last-child { margin-bottom: 0; } p { line-height: 1.5; } p + p { margin-top: 2rem; } h1, h2, h3, h4, h5, h6 { text-wrap: balance; /* 9. Improve line wrapping */ } h1 { font-size: 2.5rem; margin-top: 0; } h2 { font-size: 1.9rem; padding-bottom: .1rem; border-bottom: .1rem solid var(--color-pink); } h3 { font-size: 1.5rem; padding-bottom: .05rem; border-bottom: .05rem solid var(--color-pink); } h4 { font-size: 1.2rem; } li { line-height: 1.5; } .long-items li + li { margin-top: .75rem; } a { color: var(--color-text); text-decoration-thickness: .2rem; text-decoration-color: var(--color-blue); border-radius: .1rem; outline-offset: .1rem; } a:visited { text-decoration-color: var(--color-purple); } a:hover, a:active { text-decoration-color: var(--color-pink); } a:focus-visible { text-decoration: none; outline: .15rem solid var(--color-pink); } a.ha { color: var(--color-pink); outline-offset: 0; } span.ha-placeholder { opacity: .55; } /* https://www.a11yproject.com/posts/how-to-hide-content/ */ .visually-hidden:not(:focus):not(:active) { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; } /* name coloration */ .brand { color: var(--color-pink); font-weight: bold; } /* provider pronouns */ .pronouns::after { content: ")" / ""; } .pronouns::before { content: "(pronouns: " / "pronouns: "; } .pronouns { color: var(--color-text); opacity: .75; font-size: .8em; } /* location spans */ .location::before { content: "📍 " / "is based out of "; } .online::before { content: "🌐 " / "is "; } .location, .online { margin: 0; text-align: right; color: var(--color-text); font-size: 1rem; font-weight: bold; } /* Posts list */ .providerlist { padding: 0; } .providerlist-item { display: flex; flex-wrap: wrap; align-items: baseline; margin-bottom: 1rem; } .providerlist-item + .providerlist-item { border-top: .1rem dotted; margin-top: 2.25rem; padding-top: 1.5rem; } .providerlist-link { font-size: 1.35rem; /* 19px /16 */ font-weight: 700; flex-basis: 100%; border-bottom: .05rem solid var(--color-pink); text-decoration: none; color: var(--color-blue); display: inline-flex; align-items: baseline; column-gap: .5rem; flex-flow: row wrap; } .providerlist-link:visited { color: var(--color-purple); } .providerlist-link:hover, .providerlist-link:active { color: var(--color-pink); } .providerlist-link:focus-visible { border-bottom-color: var(--color-bg); } .providerlist-link .location, .providerlist-link .online { flex-grow: 5; } .providerlist-item-active .providerlist-link { font-weight: bold; } /* Tags */ .post-tag { display: inline-block; font-style: italic; } /* Tags list */ .taglist { display: inline-flex; flex-wrap: wrap; column-gap: .5rem; list-style: none; padding: 0; margin: 0; } /* related providers section on provider pages */ .related-providers { border-top: .1rem dotted; padding-top: 1rem; margin-top: 4rem; } /* services page */ .service-list { display: flex; flex-flow: row wrap; padding-left: 0; column-gap: 1rem; row-gap: 2rem; margin-top: 3rem; } .service { list-style: none; } .service a { border: .1rem dotted; padding: .5rem; border-radius: .75rem; } .service a:focus-visible { border-color: var(--color-bg); } /* post metadata */ .post-metadata { display: flex; flex-flow: column nowrap; align-items: flex-end; gap: .5rem; } .post-time { font-size: .9rem; opacity: .75; margin: 0; } @media (max-width: 500px) { .post-metadata .taglist { justify-content: flex-end; } } /* provider contact info */ .contacts { text-align: center; padding: 0; } .contacts li { list-style: none; } .contacts li + li { padding-top: .75rem; } /* team page specific */ .team-contact { display: block; text-align: center; }