:root {
--paper: #e9e4d8;
--ink: #1e2440;
--brass: #7a5a16;
--brass-ink: #d6b25c;
--muted: #5a5648;
--paper-muted: #c9c3b4;
--hairline: #d9d2c2;
--hairline-ink: #3a4160;
--font-display: 'Gloock', 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', Georgia, serif;
--font-body: 'Spectral', 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', Georgia, serif;
--size-display-1: clamp(40px, 4.2vw + 24px, 64px);
--size-display-2: clamp(30px, 2vw + 22px, 40px);
--size-display-3: clamp(24px, 1vw + 20px, 28px);
--size-body: 18px;
--size-small: 16px;
--measure: 62ch;
--s1: 8px;
--s2: 16px;
--s3: 24px;
--s4: 40px;
--s5: 64px;
--s6: 104px;
--s7: 160px;
--gutter: 24px;
}
@media (max-width: 400px) {
:root { --gutter: 16px; }
}
@font-face {
font-family: 'Gloock';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('fonts/gloock-400.woff2') format('woff2');
}
@font-face {
font-family: 'Spectral';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('fonts/spectral-400.woff2') format('woff2');
}
@font-face {
font-family: 'Spectral';
font-style: italic;
font-weight: 400;
font-display: swap;
src: url('fonts/spectral-400i.woff2') format('woff2');
}
@font-face {
font-family: 'Spectral';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('fonts/spectral-600.woff2') format('woff2');
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
scroll-behavior: smooth;
}
body,
h1, h2, h3, h4,
p, figure, blockquote,
dl, dd, ul, ol {
margin: 0;
}
body {
min-height: 100vh;
background: var(--paper);
color: var(--ink);
font-family: var(--font-body);
font-size: var(--size-body);
line-height: 1.6;
font-kerning: normal;
text-rendering: optimizeLegibility;
}
h1, h2, h3 {
font-family: var(--font-display);
font-weight: 400;
overflow-wrap: break-word;
text-wrap: balance;
}
h1 {
font-size: var(--size-display-1);
line-height: 1.05;
letter-spacing: -0.01em;
}
h2 {
font-size: var(--size-display-2);
line-height: 1.1;
}
h3 {
font-size: var(--size-display-3);
line-height: 1.2;
}
p, li, dd, figcaption {
overflow-wrap: break-word;
text-wrap: pretty;
}
em, i { font-style: italic; }
strong, b { font-weight: 600; }
small, .small { font-size: var(--size-small); }
.muted { color: var(--muted); }
a {
color: currentColor;
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 0.15em;
text-decoration-skip-ink: auto;
}
a:hover {
text-decoration-thickness: 2px;
}
img {
display: block;
max-width: 100%;
height: auto;
}
button, input, select, textarea {
font: inherit;
color: inherit;
}
button {
cursor: pointer;
}
:focus-visible {
outline: 2px solid var(--brass);
outline-offset: 3px;
}
:focus:not(:focus-visible) {
outline: none;
}
::selection {
background: var(--brass);
color: var(--paper);
}
[id] {
scroll-margin-block-start: var(--s3);
}
.skip {
position: absolute;
top: var(--s2);
left: var(--gutter);
z-index: 10;
padding: var(--s1) var(--s2);
background: var(--ink);
color: var(--paper);
text-decoration: none;
transform: translateY(calc(-100% - var(--s3)));
}
.skip:focus {
transform: none;
}
.visually-hidden {
position: absolute !important;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0 0 0 0);
clip-path: inset(50%);
white-space: nowrap;
border: 0;
}
[hidden] {
display: none !important;
}
@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
*,
*::before,
*::after {
transition-duration: 0s !important;
transition-delay: 0s !important;
}
}
.wrap {
box-sizing: content-box;
max-width: 1120px;
padding-inline: var(--gutter);
}
@media (min-width: 960px) {
.wrap { padding-inline: var(--s5); }
}
@media (min-width: 1280px) {
.wrap { padding-inline: var(--s6); }
}
.cols {
display: grid;
grid-template-columns: minmax(0, 1fr);
row-gap: var(--s4);
align-items: start;
}
.col {
max-width: var(--measure);
min-width: 0;
}
.rail {
min-width: 0;
}
@media (min-width: 960px) {
.cols {
grid-template-columns: minmax(0, var(--measure)) minmax(240px, 1fr);
column-gap: var(--s5);
}
}
.flow > * + * {
margin-block-start: var(--s2);
}
.flow > h1 + * {
margin-block-start: var(--s3);
}
.section-title {
margin-block-end: var(--s4);
}
.section {
margin-block-start: var(--s5);
}
@media (min-width: 768px) {
.section { margin-block-start: var(--s6); }
}
.masthead-inner {
display: flex;
flex-wrap: wrap;
align-items: baseline;
justify-content: space-between;
gap: var(--s1) var(--s3);
padding-block: var(--s3);
}
.wordmark {
font-family: var(--font-display);
font-size: var(--size-display-3);
line-height: 1.2;
text-decoration: none;
}
.wordmark:hover {
text-decoration: underline;
text-decoration-thickness: 1px;
}
.masthead-nav ul {
display: flex;
flex-wrap: wrap;
gap: var(--s1) var(--s3);
padding: 0;
list-style: none;
font-size: var(--size-small);
}
.hero {
padding-block-start: var(--s4);
}
.hero-rail {
width: clamp(220px, 30vw, 320px);
}
.hero-rail > * {
display: block;
width: 100%;
height: auto;
}
.hero-rail svg {
width: 100%;
height: auto;
}
.hero-rail .mark {
width: 100%;
height: auto;
}
.hero-rail .mark svg {
height: auto;
}
@media (min-width: 960px) {
.hero {
padding-block-start: var(--s5);
}
.hero-copy {
grid-column: 1;
grid-row: 1;
}
.hero-rail {
grid-column: 2;
grid-row: 1;
justify-self: start;
width: 100%;
max-width: 320px;
margin-block-start: var(--s1);
}
}
.keyline {
color: var(--brass);
font-size: var(--size-display-3);
font-style: italic;
line-height: 1.3;
}
.keyline::before {
content: '';
display: block;
width: 64px;
height: 2px;
margin-block: var(--s3) var(--s2);
background: var(--brass);
}
.lead {
margin-block-start: var(--s3);
}
.actions {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--s2) var(--s3);
margin-block-start: var(--s4);
}
.button {
display: inline-block;
padding: var(--s2) var(--s3);
border: 0;
border-radius: 2px;
background: var(--brass);
color: var(--paper);
font-weight: 600;
font-size: calc(var(--size-body) + 1px);
line-height: 1.2;
text-decoration: none;
transition: background-color 120ms ease, transform 80ms ease;
}
.button:hover,
.button:focus-visible {
background: var(--ink);
color: var(--paper);
}
.button:active {
transform: translateY(1px);
}
.plays {
display: grid;
gap: var(--s4);
}
.play {
min-width: 0;
max-width: var(--measure);
}
.play h3 {
margin-block-end: var(--s2);
}
@media (min-width: 960px) {
.plays {
grid-template-columns: repeat(3, minmax(0, 1fr));
column-gap: var(--s4);
}
}
@media (min-width: 1280px) {
.plays { column-gap: var(--s5); }
}
.doors-grid {
display: grid;
row-gap: var(--s4);
}
.doors-entry {
min-width: 0;
}
.doors-entry h3 {
margin-block-end: var(--s2);
}
.doors-entry p {
max-width: var(--measure);
}
.nobr {
white-space: nowrap;
}
@media (min-width: 960px) {
.doors-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
column-gap: var(--s5);
}
}
.band-ink {
padding-block: var(--s6);
background: var(--ink);
color: var(--paper);
}
.band-ink a {
color: inherit;
}
.band-ink :focus-visible,
.on-ink:focus-visible {
outline-color: var(--brass-ink);
}
.band-ink ::selection {
background: var(--brass-ink);
color: var(--ink);
}
.on-ink {
color: var(--paper);
}
.band-ink .muted,
.on-ink .muted,
.muted.on-ink {
color: var(--paper-muted);
}
.band-ink .brass,
.brass.on-ink {
color: var(--brass-ink);
}
.band-ink .button,
.button.on-ink {
background: var(--brass-ink);
color: var(--ink);
}
.band-ink .button:hover,
.band-ink .button:focus-visible,
.button.on-ink:hover,
.button.on-ink:focus-visible {
background: var(--paper);
color: var(--ink);
}
.band-ink hr,
.band-ink .rule {
border-color: var(--hairline-ink);
}
.pilot-intro {
max-width: var(--measure);
}
.figures {
display: grid;
row-gap: var(--s4);
margin-block-start: var(--s5);
}
.figure-row {
margin: 0;
}
.figure {
display: block;
font-family: var(--font-display);
font-size: var(--size-display-2);
line-height: 1.1;
font-variant-numeric: lining-nums;
}
.figure-text {
display: block;
max-width: var(--measure);
}
@media (min-width: 768px) {
.figures {
grid-template-columns: max-content minmax(0, 1fr);
column-gap: var(--s4);
row-gap: var(--s3);
align-items: baseline;
}
.figure-row {
display: contents;
}
}
.boundary {
max-width: var(--measure);
margin-block-start: var(--s5);
padding-block-start: var(--s3);
border-top: 1px solid var(--hairline-ink);
color: var(--paper);
font-size: var(--size-body);
}
.demo-frame {
position: relative;
display: grid;
max-width: 880px;
aspect-ratio: 16 / 9;
border: 1px solid var(--hairline);
background: var(--paper);
color: var(--ink);
}
.demo-frame[data-state='ready'],
.demo-frame[data-state='live'] {
border: 0;
background: var(--ink);
color: var(--paper);
}
.demo-slate {
display: grid;
place-self: center;
justify-items: center;
gap: var(--s2);
max-width: 100%;
padding: var(--s1) var(--s2);
text-align: center;
}
.demo-slate-mark {
width: clamp(96px, 18vw, 220px);
height: auto;
opacity: 0.5;
}
.demo-note {
max-width: var(--measure);
margin: 0;
color: var(--ink);
font-size: var(--size-body);
font-style: italic;
}
@media (min-width: 768px) {
.demo-slate {
gap: var(--s3);
padding: var(--s3);
}
}
.demo-poster {
position: absolute;
inset: 0;
display: grid;
width: 100%;
height: 100%;
place-content: center;
justify-items: center;
gap: var(--s2);
padding: 0;
border: 0;
background: var(--ink);
color: var(--paper);
}
.demo-ring {
display: block;
width: var(--s5);
height: var(--s5);
border: 2px solid var(--brass-ink);
border-radius: 50%;
transition: background-color 120ms ease;
}
.demo-play {
font-weight: 600;
}
.demo-poster:hover .demo-ring,
.demo-poster:focus-visible .demo-ring {
background: var(--brass-ink);
}
.demo-poster:hover .demo-play {
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 0.15em;
}
.demo-poster:focus-visible {
outline-color: var(--brass-ink);
outline-offset: -4px;
}
.demo-frame iframe {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
border: 0;
}
.demo-caption {
max-width: var(--measure);
margin-block-start: var(--s2);
color: var(--muted);
font-size: var(--size-small);
}
.founder-figure {
margin: 0;
}
.founder-figure img {
width: 100%;
max-width: 320px;
}
@media (min-width: 960px) {
.founder-figure {
justify-self: start;
margin-block-start: var(--s1);
}
}
.founder-links {
display: flex;
flex-wrap: wrap;
gap: var(--s1) var(--s3);
}
.email {
font-weight: 600;
white-space: nowrap;
}
.copy {
position: relative;
display: inline-block;
vertical-align: baseline;
margin-inline-start: var(--s1);
padding: 0 var(--s2);
border: 1px solid var(--ink);
border-radius: 2px;
background: none;
color: var(--ink);
font-size: var(--size-small);
line-height: 2;
transition: background-color 120ms ease, color 120ms ease;
}
.copy::after {
content: '';
position: absolute;
inset: -6px -4px;
}
.copy:hover,
.copy:focus-visible,
.copy[data-copied] {
background: var(--ink);
color: var(--paper);
}
.band-ink .copy,
.copy.on-ink {
border-color: var(--paper);
color: var(--paper);
}
.band-ink .copy:hover,
.band-ink .copy:focus-visible,
.band-ink .copy[data-copied] {
background: var(--paper);
color: var(--ink);
}
.footer {
margin-block-start: var(--s6);
padding-block: var(--s4) var(--s5);
border-top: 1px solid var(--hairline);
}
.footer-links {
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: var(--s1) var(--s2);
padding: 0;
list-style: none;
font-size: var(--size-small);
}
.footer-links .dot {
color: var(--muted);
}
.colophon {
max-width: var(--measure);
margin-block-start: var(--s3);
color: var(--muted);
font-size: var(--size-small);
}
.mark {
display: block;
width: 320px;
height: 320px;
margin: 0;
padding: 0;
border: 0;
border-radius: 50%;
background: transparent;
color: var(--ink);
font: inherit;
line-height: 0;
cursor: pointer;
-webkit-appearance: none;
appearance: none;
-webkit-tap-highlight-color: transparent;
-webkit-user-select: none;
user-select: none;
touch-action: manipulation;
}
@media (max-width: 400px) {
.mark {
width: 220px;
height: 220px;
}
}
.on-ink .mark {
color: var(--paper);
}
.mark[aria-disabled='true'] {
cursor: default;
}
.mark:focus {
outline: none;
}
.mark:focus-visible {
outline: 2px solid var(--brass);
outline-offset: 3px;
}
.on-ink .mark:focus-visible {
outline-color: var(--brass-ink);
}
.mark svg {
display: block;
width: 100%;
height: 100%;
overflow: visible;
}
.mark .mark-seal-disc,
.mark .mark-glint {
fill: var(--brass);
}
.mark .mark-collar {
stroke: var(--brass);
}
.on-ink .mark .mark-seal-disc,
.on-ink .mark .mark-glint {
fill: var(--brass-ink);
}
.on-ink .mark .mark-collar {
stroke: var(--brass-ink);
}
.mark .mark-seal {
opacity: 0;
transform: scale(0.3);
}
.mark .mark-seal,
.mark .mark-dot,
.mark .mark-glint,
.mark .mark-pool {
transform-box: fill-box;
transform-origin: 50% 50%;
}
.mark .mark-pool {
transform-origin: 50% 100%;
}
@keyframes mark-draw {
from { stroke-dashoffset: 1; }
to { stroke-dashoffset: 0; }
}
@keyframes mark-fade {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes mark-pop {
from { opacity: 0; transform: scale(0.2); }
60% { opacity: 1; transform: scale(1.25); }
to { opacity: 1; transform: scale(1); }
}
@keyframes mark-seal-in {
from { opacity: 0; transform: scale(0.6); }
to { opacity: 1; transform: scale(1); }
}
@keyframes mark-seal-open {
from { opacity: 1; transform: scale(1); }
70% { opacity: 1; }
to { opacity: 0; transform: scale(0.3); }
}
@keyframes mark-shimmer {
0%, 100% { opacity: 1; }
35% { opacity: 0.55; }
60% { opacity: 0.9; }
80% { opacity: 0.65; }
}
@keyframes mark-breathe {
0%, 100% { transform: scaleY(1); }
50% { transform: scaleY(1.05); }
}
@keyframes mark-glimmer {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.7; transform: scale(0.85); }
}
.mark.is-playing .mark-arc,
.mark.is-playing .mark-tick,
.mark.is-playing .mark-ring,
.mark.is-playing .mark-glass,
.mark.is-playing .mark-thread {
stroke-dasharray: 1;
}
.mark.is-playing .mark-arc {
animation: mark-draw 0.75s cubic-bezier(0.4, 0, 0.2, 1) both;
}
.mark.is-playing .mark-arc:nth-child(2) { animation-delay: 0.12s; }
.mark.is-playing .mark-arc:nth-child(3) { animation-delay: 0.24s; }
.mark.is-playing .mark-arc:nth-child(4) { animation-delay: 0.36s; }
.mark.is-playing .mark-tick {
animation: mark-draw 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0.5s both;
}
.mark.is-playing .mark-tick:nth-child(2) { animation-delay: 0.545s; }
.mark.is-playing .mark-tick:nth-child(3) { animation-delay: 0.59s; }
.mark.is-playing .mark-tick:nth-child(4) { animation-delay: 0.635s; }
.mark.is-playing .mark-tick:nth-child(5) { animation-delay: 0.68s; }
.mark.is-playing .mark-tick:nth-child(6) { animation-delay: 0.725s; }
.mark.is-playing .mark-tick:nth-child(7) { animation-delay: 0.77s; }
.mark.is-playing .mark-tick:nth-child(8) { animation-delay: 0.815s; }
.mark.is-playing .mark-tick:nth-child(9) { animation-delay: 0.86s; }
.mark.is-playing .mark-tick:nth-child(10) { animation-delay: 0.905s; }
.mark.is-playing .mark-tick:nth-child(11) { animation-delay: 0.95s; }
.mark.is-playing .mark-tick-index {
animation-duration: 0.4s;
animation-delay: 1s;
}
.mark.is-playing .mark-ring {
animation: mark-draw 0.7s cubic-bezier(0.4, 0, 0.2, 1) 0.85s both;
}
.mark.is-playing .mark-dot {
animation: mark-pop 0.35s cubic-bezier(0.2, 0.8, 0.3, 1) 1.2s both;
}
.mark.is-playing .mark-dot + .mark-dot { animation-delay: 1.3s; }
.mark.is-playing .mark-dot + .mark-dot + .mark-dot { animation-delay: 1.4s; }
.mark.is-playing .mark-seal {
animation:
mark-seal-in 0.35s cubic-bezier(0.2, 0.8, 0.3, 1) 1.45s both,
mark-seal-open 0.4s cubic-bezier(0.6, 0, 0.8, 0.4) 1.9s forwards;
}
.mark.is-playing .mark-collar {
animation: mark-fade 0.3s ease-out 2s both;
}
.mark.is-playing .mark-glass {
animation: mark-draw 0.6s cubic-bezier(0.4, 0, 0.2, 1) 2.2s both;
}
.mark.is-playing .mark-plate {
animation-duration: 0.4s;
}
.mark.is-playing .mark-ink {
animation: mark-fade 0.5s ease-out 2.5s both;
}
.mark.is-playing .mark-thread {
animation:
mark-draw 0.7s cubic-bezier(0.5, 0, 1, 0.6) 2.85s both,
mark-shimmer 8s ease-in-out 3.9s infinite;
}
.mark.is-playing .mark-pool {
animation:
mark-fade 0.5s ease-out 3.3s both,
mark-breathe 8s ease-in-out 3.9s infinite;
}
.mark.is-playing .mark-glint {
animation:
mark-pop 0.35s cubic-bezier(0.2, 0.8, 0.3, 1) 3.5s both,
mark-glimmer 8s ease-in-out 3.9s infinite;
}
@media (prefers-reduced-motion: reduce) {
.mark.is-playing .mark-arc,
.mark.is-playing .mark-tick,
.mark.is-playing .mark-ring,
.mark.is-playing .mark-dot,
.mark.is-playing .mark-seal,
.mark.is-playing .mark-collar,
.mark.is-playing .mark-glass,
.mark.is-playing .mark-ink,
.mark.is-playing .mark-thread,
.mark.is-playing .mark-pool,
.mark.is-playing .mark-glint {
animation: none;
stroke-dasharray: none;
}
}
.qa-body {
max-width: var(--measure);
font-family: var(--font-body);
font-size: var(--size-body);
line-height: 1.6;
color: var(--ink);
}
.qa-note {
margin: 0 0 var(--s1);
color: var(--muted);
}
.qa-note-small {
margin: 0 0 var(--s3);
color: var(--muted);
font-size: var(--size-small);
line-height: 1.5;
}
.qa-return {
margin: 0 0 var(--s2);
color: var(--ink);
font-style: italic;
}
.qa-return[hidden] {
display: none;
}
.qa-slip {
position: relative;
margin: 0 0 var(--s4);
padding: var(--s3);
border: 1px solid var(--hairline);
background: var(--paper);
}
.qa-staple {
position: absolute;
top: -9px;
left: 12px;
width: 22px;
height: 16px;
color: var(--brass);
transform: rotate(-38deg);
pointer-events: none;
}
.qa-slip-text {
margin: 0;
font-style: italic;
color: var(--ink);
}
.qa-slip-text p {
margin: 0;
padding-left: 1em;
text-indent: -1em;
}
.qa-source {
margin: var(--s2) 0 0;
font-size: var(--size-small);
color: var(--muted);
}
.qa-name {
font-weight: 600;
font-style: normal;
color: var(--ink);
}
.qa-lead {
margin: 0 0 var(--s1);
color: var(--ink);
}
.qa-list {
margin: 0;
padding: 0;
list-style: none;
border-top: 1px solid var(--hairline);
}
.qa-item {
margin: 0;
border-bottom: 1px solid var(--hairline);
}
.qa-summary {
display: grid;
grid-template-columns: var(--s3) minmax(0, 1fr);
padding: var(--s2) 0;
list-style: none;
cursor: pointer;
color: var(--ink);
}
.qa-summary::-webkit-details-marker {
display: none;
}
.qa-summary::marker {
content: '';
}
.qa-summary::before,
.qa-ask::before {
content: '\203A';
content: '\203A' / '';
display: inline-block;
color: var(--brass);
font-style: normal;
transition: transform 160ms ease-out;
}
.qa-summary:hover::before,
.qa-summary:focus-visible::before,
.qa-ask:hover::before,
.qa-ask:focus-visible::before {
transform: translateX(3px);
}
.qa-summary:focus {
outline: none;
}
.qa-summary:focus-visible {
outline: 2px solid var(--brass);
outline-offset: 3px;
}
.qa-q[hidden] {
display: none;
}
.qa-reply {
margin: 0 0 var(--s3);
padding-left: calc(var(--s3) - 2px);
border-left: 2px solid var(--brass);
color: var(--ink);
}
.qa-reply[hidden] {
display: none;
}
.qa-q[open] .qa-reply {
animation: qa-reveal 220ms ease-out;
}
@keyframes qa-reveal {
from {
opacity: 0;
transform: translateY(-2px);
}
to {
opacity: 1;
transform: none;
}
}
.qa-ask {
display: grid;
grid-template-columns: var(--s3) minmax(0, 1fr) auto;
align-items: baseline;
width: 100%;
min-height: 44px;
margin: 0;
padding: var(--s2) 0;
border: 0;
border-radius: 0;
background: none;
color: var(--ink);
font-family: var(--font-body);
font-size: var(--size-body);
font-weight: 400;
font-style: normal;
line-height: 1.6;
text-align: left;
cursor: pointer;
-webkit-appearance: none;
appearance: none;
}
.qa-ask-text {
min-width: 0;
text-decoration: none;
}
.qa-ask:hover .qa-ask-text,
.qa-ask:focus-visible .qa-ask-text {
text-decoration: underline;
text-decoration-color: var(--brass);
text-decoration-thickness: 1px;
text-underline-offset: 0.15em;
text-decoration-skip-ink: auto;
}
.qa-ask:focus {
outline: none;
}
.qa-ask:focus-visible {
outline: 2px solid var(--brass);
outline-offset: 3px;
}
.qa-ask[aria-disabled='true'] {
cursor: progress;
color: var(--muted);
}
.qa-ask[aria-disabled='true'] .qa-ask-text {
text-decoration: none;
}
.qa-ask[aria-disabled='true']::before {
transform: none;
}
.qa-ask-note {
margin-left: var(--s2);
color: var(--muted);
font-size: var(--size-small);
font-style: italic;
white-space: nowrap;
}
@media (max-width: 479px) {
.qa-ask-note {
grid-column: 2;
margin-left: 0;
}
}
.qa-form {
margin: var(--s4) 0 0;
}
.qa-form[hidden] {
display: none;
}
.qa-form-label {
display: block;
margin: 0 0 var(--s1);
color: var(--ink);
}
.qa-form-row {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: var(--s2);
align-items: stretch;
}
@media (min-width: 480px) {
.qa-form-row {
grid-template-columns: minmax(0, 1fr) auto;
}
}
.qa-input {
box-sizing: border-box;
width: 100%;
min-width: 0;
margin: 0;
padding: var(--s2);
font-family: var(--font-body);
font-size: var(--size-body);
line-height: 1.2;
color: var(--ink);
background: var(--paper);
border: 1px solid var(--ink);
border-radius: 0;
-webkit-appearance: none;
appearance: none;
}
.qa-input:focus-visible {
outline: 2px solid var(--brass);
outline-offset: 3px;
}
.qa-input[aria-invalid='true'] {
box-shadow: inset 3px 0 0 var(--brass);
}
.qa-send {
box-sizing: border-box;
margin: 0;
padding: var(--s2) var(--s3);
font-family: var(--font-body);
font-size: var(--size-body);
font-weight: 600;
line-height: 1.2;
color: var(--paper);
background: var(--brass);
border: 1px solid var(--brass);
border-radius: 0;
cursor: pointer;
white-space: nowrap;
-webkit-appearance: none;
appearance: none;
}
@media (prefers-reduced-motion: no-preference) {
.qa-send {
transition: background-color 120ms ease-out, border-color 120ms ease-out;
}
}
.qa-send:hover,
.qa-send:active {
color: var(--paper);
background: var(--ink);
border-color: var(--ink);
}
.qa-send:focus-visible {
outline: 2px solid var(--brass);
outline-offset: 3px;
}
.qa-send[aria-disabled='true'] {
cursor: progress;
color: var(--paper);
background: var(--brass);
border-color: var(--brass);
}
.qa-answer {
margin: 0;
}
.qa-answer[hidden] {
display: none;
}
.qa-answer:not([data-qa-state='idle']) {
margin-top: var(--s3);
}
.qa-answer-q {
margin: 0 0 var(--s1);
color: var(--muted);
font-style: italic;
}
.qa-answer-q::before {
content: '\2014\00A0';
content: '\2014\00A0' / '';
}
.qa-answer[data-qa-state='idle'] .qa-answer-q,
.qa-answer[data-qa-state='note'] .qa-answer-q {
display: none;
}
.qa-answer-text {
margin: 0;
padding-left: calc(var(--s3) - 2px);
border-left: 2px solid var(--brass);
color: var(--ink);
}
.qa-answer-text:focus {
outline: none;
}
.qa-answer-text:focus-visible {
outline: 2px solid var(--brass);
outline-offset: 3px;
}
.qa-answer[data-qa-state='thinking'] .qa-answer-text {
color: var(--muted);
font-style: italic;
border-left-color: var(--hairline);
}
.qa-answer[data-qa-state='reply'] .qa-answer-text {
animation: qa-reveal 220ms ease-out;
}
.qa-dots span {
display: inline-block;
animation: qa-pulse 1.8s ease-in-out infinite;
}
.qa-dots span:nth-child(2) {
animation-delay: 300ms;
}
.qa-dots span:nth-child(3) {
animation-delay: 600ms;
}
@keyframes qa-pulse {
0%,
100% {
opacity: 0.2;
}
50% {
opacity: 1;
}
}
.qa-sr {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0 0 0 0);
clip-path: inset(50%);
white-space: nowrap;
border: 0;
}
@media (prefers-reduced-motion: reduce) {
.qa-summary::before,
.qa-ask::before {
transition: none;
}
.qa-summary:hover::before,
.qa-summary:focus-visible::before,
.qa-ask:hover::before,
.qa-ask:focus-visible::before {
transform: none;
}
.qa-q[open] .qa-reply,
.qa-answer[data-qa-state='reply'] .qa-answer-text {
animation: none;
}
.qa-dots span {
animation: none;
opacity: 1;
}
}
.signup {
max-width: var(--measure);
}
.signup-heading {
font-family: var(--font-display);
font-weight: 400;
font-size: var(--size-display-2);
line-height: 1.1;
color: var(--ink);
margin: 0 0 var(--s3);
}
.signup-form {
position: relative;
margin: 0;
}
.signup-label {
display: block;
font-family: var(--font-body);
font-size: var(--size-small);
line-height: 1.5;
color: var(--ink);
margin: 0 0 var(--s1);
}
.signup-row {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: var(--s2);
align-items: stretch;
}
@media (min-width: 480px) {
.signup-row {
grid-template-columns: minmax(0, 1fr) auto;
}
}
.signup-input {
box-sizing: border-box;
width: 100%;
min-width: 0;
margin: 0;
padding: var(--s2);
font-family: var(--font-body);
font-size: var(--size-body);
line-height: 1.2;
color: var(--ink);
background: var(--paper);
border: 1px solid var(--ink);
border-radius: 0;
-webkit-appearance: none;
appearance: none;
}
.signup-input:focus-visible {
outline: 2px solid var(--brass);
outline-offset: 3px;
}
.signup-input[aria-invalid='true'] {
box-shadow: inset 3px 0 0 var(--brass);
}
.signup-button {
box-sizing: border-box;
margin: 0;
padding: var(--s2) var(--s3);
font-family: var(--font-body);
font-size: var(--size-body);
font-weight: 600;
line-height: 1.2;
color: var(--paper);
background: var(--brass);
border: 1px solid var(--brass);
border-radius: 0;
cursor: pointer;
white-space: nowrap;
-webkit-appearance: none;
appearance: none;
}
@media (prefers-reduced-motion: no-preference) {
.signup-button {
transition: background-color 120ms ease-out, border-color 120ms ease-out;
}
}
.signup-button:hover,
.signup-button:active {
color: var(--paper);
background: var(--ink);
border-color: var(--ink);
}
.signup-button:focus-visible {
outline: 2px solid var(--brass);
outline-offset: 3px;
}
.signup-button[aria-disabled='true'] {
cursor: progress;
color: var(--paper);
background: var(--brass);
border-color: var(--brass);
}
.signup-note {
font-family: var(--font-body);
font-size: var(--size-small);
line-height: 1.5;
color: var(--muted);
margin: var(--s2) 0 0;
}
.signup-message {
font-family: var(--font-body);
font-size: var(--size-body);
line-height: 1.6;
color: var(--ink);
margin: var(--s2) 0 0;
}
.signup-message:empty {
margin: 0;
}
.signup-message-error,
.signup-noscript {
color: var(--ink);
border-left: 2px solid var(--brass);
padding-left: var(--s2);
}
.signup-noscript {
font-family: var(--font-body);
font-size: var(--size-body);
line-height: 1.6;
margin: var(--s2) 0 0;
}
.signup-trap {
position: absolute;
left: -10000px;
top: auto;
width: 1px;
height: 1px;
overflow: hidden;
}
