Spaces:
Running
Running
File size: 14,696 Bytes
7fd9d2b 38dc7f3 bb6e5d8 38dc7f3 20b8ce4 38dc7f3 bb6e5d8 38dc7f3 fc84b66 38dc7f3 fc84b66 38dc7f3 fc84b66 38dc7f3 fc84b66 38dc7f3 fc84b66 38dc7f3 fc84b66 38dc7f3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 | /* Plainword site. Values come from the Claude Design export; colors are the brand tokens. */
@font-face {
font-family: "IBM Plex Sans";
font-style: normal;
font-weight: 100 700;
font-display: swap;
src: url("assets/fonts/ibm-plex-sans-latin.woff2") format("woff2");
}
/* Source Serif 4 is split in two so each file is served directly by the host (under 40 KB).
The site uses it at 22-64 px in weights 400 and 600, which these files cover in full. */
@font-face {
font-family: "Source Serif 4";
font-style: normal;
font-weight: 400 600;
font-display: swap;
src: url("assets/fonts/source-serif-4-core.woff2") format("woff2");
unicode-range: U+0020-007E, U+00A0, U+00B7, U+2013-2014, U+2018-2019, U+201C-201D, U+2026;
}
@font-face {
font-family: "Source Serif 4";
font-style: normal;
font-weight: 400 600;
font-display: swap;
src: url("assets/fonts/source-serif-4-ext.woff2") format("woff2");
unicode-range: U+00A1-00B6, U+00B8-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+2002, U+2009, U+200B, U+201A, U+201E, U+2022, U+2032-2033, U+2039-203A, U+2044, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
:root {
--navy: #15232D;
--offwhite: #F7F5F0;
--ink: #3D4A54;
--muted: #5C6872;
--card: #FDFCF9;
--line: #D9DDD8;
--blue: #1D5A85;
--lightblue: #8EC3E6;
--orange: #A84A12;
/* Roles. Dark mode swaps these, not the tokens above. */
--page: var(--offwhite);
--text: var(--ink);
--heading: var(--navy);
--label: var(--blue);
--link: var(--blue);
--link-hover: var(--navy);
--surface: var(--card);
--surface-2: var(--offwhite);
--rule: var(--line);
--thead: #E3EDF5;
--input: #FFFFFF;
--input-line: var(--line);
--accent: var(--orange);
--btn-bg: var(--navy);
--btn-text: var(--offwhite);
--mark-ink: var(--navy);
/* The navy bands: consent and the beta form. */
--band: var(--navy);
--band-text: var(--offwhite);
--band-soft: #C9D3DA;
--band-muted: #A9B6C0;
--band-line: #2B3B47;
--serif: "Source Serif 4", Georgia, serif;
--sans: "IBM Plex Sans", system-ui, sans-serif;
color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
:root {
--page: #15232D;
--text: #D5DDE3;
--heading: #F7F5F0;
--label: #8EC3E6;
--link: #8EC3E6;
--link-hover: #F7F5F0;
--muted: #A9B6C0;
--surface: #1B2C38;
--surface-2: #15232D;
--rule: #2F4150;
--thead: #22384A;
--input: #0F1A22;
--input-line: #3A4D5B;
--accent: #E8A06C;
--btn-bg: #F7F5F0;
--btn-text: #15232D;
--mark-ink: #F7F5F0;
--band: #0E1820;
--band-line: #2B3B47;
}
}
/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
margin: 0;
background: var(--page);
color: var(--text);
font-family: var(--sans);
font-size: 17px;
line-height: 1.55;
-webkit-font-smoothing: antialiased;
}
a { color: var(--link); }
a:hover { color: var(--link-hover); }
input, select, textarea, button { font-family: inherit; }
h1, h2, h3, p, blockquote, dl, dd, ol, ul { margin: 0; }
img { max-width: 100%; }
.wrap { max-width: 1200px; margin: 0 auto; padding-left: 16px; padding-right: 16px; }
.eyebrow { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--label); }
.head { display: flex; flex-direction: column; gap: 10px; }
.h2 { font-family: var(--serif); font-weight: 600; font-size: 40px; line-height: 1.15; color: var(--heading); }
.u { text-decoration: underline; text-underline-offset: 3px; }
/* Header */
.site-header {
max-width: 1200px; margin: 0 auto; padding: 24px 16px 0;
display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
}
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--heading); }
.brand:hover { color: var(--heading); }
.brand-word { font-weight: 600; font-size: 22px; letter-spacing: -0.01em; }
.mark { color: var(--mark-ink); flex: 0 0 auto; }
.main-nav { display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: 16px; font-weight: 500; }
.main-nav a { text-decoration: none; padding: 10px 0; }
/* 1 Hero */
.hero { padding-top: 72px; padding-bottom: 80px; display: flex; flex-wrap: wrap; align-items: center; gap: 48px; }
.hero-text { flex: 1 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.hero h1 { font-family: var(--serif); font-weight: 600; font-size: 64px; line-height: 1.05; letter-spacing: -0.015em; color: var(--heading); }
.hero-sub { font-size: 20px; line-height: 1.5; max-width: 560px; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; padding-top: 8px; }
.btn {
display: inline-flex; align-items: center; min-height: 52px; padding: 0 28px;
background: var(--btn-bg); color: var(--btn-text); border: 0; border-radius: 10px;
text-decoration: none; font-weight: 600; font-size: 17px; cursor: pointer;
}
.btn:hover { color: var(--btn-text); opacity: 0.92; }
.link-strong { font-weight: 500; font-size: 17px; text-decoration: underline; text-underline-offset: 4px; }
.hero-media { flex: 1 1 320px; min-width: 0; }
/* Phone screenshots: 390 x 844 design boards, shown at a fixed width so the text stays legible. */
.phone-shot { display: block; width: 100%; height: auto; border-radius: 28px; border: 1px solid var(--rule); background: var(--surface); box-shadow: 0 12px 32px rgba(21, 35, 45, 0.12); }
.phone-figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.phone-figure .phone-shot { max-width: 300px; }
.phone-figure figcaption { font-size: 14px; color: var(--muted); }
/* 2 Who it is for */
.band-who { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); background: var(--surface); }
.band-who .wrap { padding-top: 36px; padding-bottom: 36px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px 40px; }
.who-line { font-family: var(--serif); font-size: 22px; color: var(--heading); font-weight: 600; }
.who-list { font-size: 17px; color: var(--muted); }
/* 3 The difference */
.difference { padding-top: 88px; padding-bottom: 72px; display: flex; flex-direction: column; gap: 28px; }
.table-box { overflow-x: auto; border: 1px solid var(--rule); border-radius: 14px; background: var(--surface); }
.compare { width: 100%; min-width: 760px; border-collapse: collapse; font-size: 16px; line-height: 1.45; }
.compare thead tr { background: var(--thead); }
.compare th, .compare td { text-align: left; padding: 14px 18px; vertical-align: top; }
.compare thead th { font-weight: 600; color: var(--heading); }
.compare thead th:first-child { width: 24%; }
.compare thead th.pn { font-weight: 700; color: var(--label); }
.compare tbody tr { border-top: 1px solid var(--rule); }
.compare tbody th { font-weight: 500; color: var(--heading); }
.compare td.pn { font-weight: 500; color: var(--heading); }
.compare .col { display: none; }
.compare-today { padding-top: 0; }
/* Phones: one card per row, no sideways scroll (spec, change 1). */
@media (max-width: 719px) {
.table-box { overflow: visible; border: 0; border-radius: 0; background: transparent; }
.compare, .compare tbody, .compare tr, .compare th, .compare td { display: block; width: auto; }
.compare { min-width: 0; }
.compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.compare tbody tr { border: 1px solid var(--rule); border-radius: 14px; background: var(--surface); padding: 18px; margin-bottom: 12px; }
.compare tbody th { padding: 0 0 8px; font-size: 18px; font-weight: 600; }
.compare td { padding: 8px 0 0; }
.compare .col { display: block; font-variant-caps: all-small-caps; letter-spacing: 0.06em; font-size: 15px; font-weight: 600; color: var(--muted); }
}
/* 4 How it works */
.how { background: var(--surface); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.how .wrap { padding-top: 88px; padding-bottom: 88px; display: flex; flex-direction: column; gap: 36px; }
.steps { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.step { background: var(--surface-2); border: 1px solid var(--rule); border-radius: 16px; padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.step-head { display: flex; align-items: center; gap: 12px; }
.icon { color: var(--label); flex: 0 0 auto; }
.step p { font-size: 17px; }
/* The five session steps, each with its screen above the words. */
.steps-shots { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.steps-shots .phone-shot { max-width: 260px; align-self: center; border-radius: 24px; box-shadow: none; }
.offline-note { display: flex; align-items: center; gap: 12px; color: var(--heading); font-weight: 500; font-size: 17px; }
/* 5 Consent band */
.consent { background: var(--band); color: var(--band-text); }
.consent .wrap { padding-top: 96px; padding-bottom: 96px; display: flex; flex-direction: column; gap: 28px; }
.consent .eyebrow, .pilot .eyebrow { color: var(--lightblue); }
.consent blockquote { font-family: var(--serif); font-weight: 600; font-size: 44px; line-height: 1.2; letter-spacing: -0.01em; max-width: 1000px; color: var(--band-text); }
.consent-small { font-size: 16px; line-height: 1.5; color: var(--band-soft); max-width: 760px; }
.footnote { font-size: 15px; color: var(--muted); }
/* 6 Coming next: the Mac app */
.next { padding-top: 88px; padding-bottom: 8px; display: flex; flex-direction: column; gap: 16px; }
.next-line { font-family: var(--serif); font-size: 24px; line-height: 1.4; color: var(--heading); max-width: 900px; }
/* 8 Who is building it */
.who { padding-top: 88px; padding-bottom: 88px; display: flex; flex-wrap: wrap; gap: 40px 64px; align-items: flex-start; }
.who-head { flex: 0 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
/* Round profile photo. */
.avatar { display: block; width: 128px; height: 128px; border-radius: 50%; object-fit: cover; border: 1px solid var(--rule); background: var(--surface); }
.who-body { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 20px; font-size: 18px; line-height: 1.6; }
.evidence { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 18px 22px; border: 1px solid var(--rule); border-left: 4px solid var(--label); border-radius: 12px; background: var(--surface); }
.ev-title { font-weight: 600; font-size: 17px; color: var(--heading); }
a.ev-title { color: var(--link); text-decoration: underline; text-underline-offset: 4px; }
.ev-line { color: var(--muted); font-size: 16px; }
/* 9 Pilot form */
.pilot { background: var(--band); color: var(--band-text); }
.pilot .wrap { padding-top: 96px; padding-bottom: 96px; display: flex; flex-wrap: wrap; gap: 48px 64px; align-items: flex-start; }
.pilot-text { flex: 1 1 380px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.pilot h2 { font-family: var(--serif); font-weight: 600; font-size: 44px; line-height: 1.1; letter-spacing: -0.01em; color: var(--band-text); }
.pilot-text p { font-size: 19px; line-height: 1.55; color: var(--band-soft); max-width: 480px; }
.form-card { flex: 1 1 460px; min-width: 0; background: var(--surface); color: var(--text); border-radius: 16px; padding: 32px; }
.form-card form { display: flex; flex-direction: column; gap: 18px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field label { font-size: 15px; font-weight: 600; color: var(--heading); }
.field .optional { font-weight: 400; color: var(--muted); }
.field input, .field select, .field textarea {
min-height: 46px; padding: 0 14px; border: 1px solid var(--input-line); border-radius: 8px;
background: var(--input); font-size: 16px; color: var(--heading); width: 100%;
}
.field select { padding: 0 10px; }
.field textarea { padding: 12px 14px; resize: vertical; }
.field-pair { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 18px; }
.check { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 600; color: var(--heading); }
.check input { width: 20px; height: 20px; margin: 0; flex: 0 0 auto; accent-color: var(--blue); }
.form-card .btn { align-self: flex-start; }
.form-card .btn:disabled { opacity: 0.6; cursor: default; }
.form-note { font-size: 14px; line-height: 1.5; color: var(--muted); }
.form-status { font-size: 15px; color: var(--heading); }
.form-status:empty { display: none; }
.form-done { font-family: var(--serif); font-size: 24px; line-height: 1.35; color: var(--heading); font-weight: 600; }
/* Text for screen readers only. */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Formspree honeypot: off screen, out of the tab order. */
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
/* 10 FAQ */
.faq { padding-top: 88px; padding-bottom: 88px; display: flex; flex-direction: column; gap: 36px; }
.faq dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 28px 48px; }
.qa { display: flex; flex-direction: column; gap: 8px; padding-top: 18px; border-top: 1px solid var(--rule); }
.qa dt { font-weight: 600; font-size: 18px; color: var(--heading); }
.qa dd { font-size: 17px; }
/* 11 Footer */
.site-footer { border-top: 1px solid var(--rule); background: var(--surface); }
.site-footer .wrap { padding-top: 36px; padding-bottom: 44px; display: flex; flex-direction: column; gap: 14px; font-size: 15px; color: var(--muted); }
.footer-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.footer-name { color: var(--heading); font-weight: 500; }
.site-footer a { text-decoration: underline; text-underline-offset: 3px; }
/* privacy.html */
.page-privacy { line-height: 1.6; min-height: 100vh; display: flex; flex-direction: column; }
.page-privacy .site-header { width: 100%; }
.privacy-main { max-width: 760px; width: 100%; margin: 0 auto; padding: 72px 16px 88px; display: flex; flex-direction: column; gap: 28px; flex: 1 0 auto; }
.privacy-main h1 { font-family: var(--serif); font-weight: 600; font-size: 48px; line-height: 1.1; letter-spacing: -0.01em; color: var(--heading); }
.privacy-sections { display: flex; flex-direction: column; gap: 22px; font-size: 18px; }
.privacy-sections section { display: flex; flex-direction: column; gap: 6px; padding-top: 22px; border-top: 1px solid var(--rule); }
.privacy-sections h2 { font-size: 18px; font-weight: 600; color: var(--heading); }
|