2026-09-23 22:48:26 +02:00
|
|
|
:root {
|
|
|
|
|
color-scheme: light dark;
|
2026-09-23 16:25:59 -07:00
|
|
|
|
|
|
|
|
--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));
|
2026-09-23 22:48:26 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 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 */
|
|
|
|
|
}
|
|
|
|
|
|
2026-09-23 16:25:59 -07:00
|
|
|
#root, #__next {
|
|
|
|
|
isolation: isolate; /* 10. Create a root stacking context */
|
2026-09-23 22:48:26 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@media (prefers-reduced-motion: no-preference) {
|
|
|
|
|
html {
|
|
|
|
|
interpolate-size: allow-keywords; /* 3. Enable keyword animations */
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-09-23 16:25:59 -07:00
|
|
|
html,
|
2026-09-23 22:48:26 +02:00
|
|
|
body {
|
2026-09-23 16:25:59 -07:00
|
|
|
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;
|
2026-09-23 22:48:26 +02:00
|
|
|
line-height: 1.5; /* 4. Increase line-height */
|
|
|
|
|
-webkit-font-smoothing: antialiased; /* 5. Improve text rendering */
|
|
|
|
|
}
|
|
|
|
|
|
2026-09-23 16:25:59 -07:00
|
|
|
main {
|
|
|
|
|
padding: 1rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
section + section {
|
|
|
|
|
margin-top: 4rem;;
|
|
|
|
|
}
|
|
|
|
|
|
2026-09-23 22:48:26 +02:00
|
|
|
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 */
|
|
|
|
|
}
|
|
|
|
|
|
2026-09-23 16:25:59 -07:00
|
|
|
p:last-child {
|
|
|
|
|
margin-bottom: 0;
|
|
|
|
|
}
|
|
|
|
|
p {
|
|
|
|
|
line-height: 1.5;
|
|
|
|
|
}
|
|
|
|
|
p + p {
|
|
|
|
|
margin-top: 2rem;
|
|
|
|
|
}
|
|
|
|
|
|
2026-09-23 22:48:26 +02:00
|
|
|
h1, h2, h3, h4, h5, h6 {
|
|
|
|
|
text-wrap: balance; /* 9. Improve line wrapping */
|
|
|
|
|
}
|
|
|
|
|
|
2026-09-23 16:25:59 -07:00
|
|
|
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;
|
2026-09-23 22:48:26 +02:00
|
|
|
}
|