style.css (8144B)
1 @charset "UTF-8"; 2 body { 3 margin: 8px; 4 font-family: "courier", monospace; 5 font-size: 18px; 6 padding: 50px; 7 line-height: 1.5em; 8 background-color: #f6f6f6; 9 color: #333; 10 } 11 12 @media only screen and (max-width: 800px) { 13 body { 14 -webkit-text-size-adjust: 100%; 15 font-size: 16px; 16 } 17 } 18 19 @media only screen and (max-width: 600px) { 20 body { 21 padding: 10px; 22 } 23 } 24 25 h1, 26 h2, 27 h3 { 28 font-size: 1em; 29 margin: 1em 0; 30 } 31 32 h1 span, 33 h2 span, 34 h3 span { 35 color: #aaa; 36 } 37 38 h3 { 39 color: #aaa; 40 } 41 42 a { 43 color: #00a; 44 text-underline-offset: 2px; 45 } 46 47 header > h1 { 48 margin: 1em 0; 49 } 50 51 hr { 52 border: 0; 53 border-top: 2px solid #ddd; 54 } 55 56 ul { 57 list-style: none; 58 padding: 0 0 0 2ch; 59 position: relative; 60 } 61 62 ul > li::before { 63 color: #aaa; 64 content: "∗"; 65 left: 0ch; 66 position: absolute; 67 } 68 69 ol { 70 margin: 0; 71 padding: 0; 72 counter-reset: item; 73 } 74 75 ol li { 76 counter-increment: item; 77 display: table; 78 table-layout: fixed; 79 width: 100%; 80 } 81 82 ol li::before { 83 content: counter(item) "."; 84 display: table-cell; 85 padding-right: 1ch; 86 white-space: nowrap; 87 width: 3ch; 88 } 89 90 ol + a.footnote-backref { 91 margin-left: -1ch; 92 } 93 94 blockquote { 95 border-left: 1ch solid #ddd; 96 font-style: italic; 97 margin: 0; 98 padding-left: 1ch; 99 } 100 101 blockquote em { 102 font-style: normal; 103 } 104 105 header, 106 #content, 107 footer { 108 max-width: 800px; 109 } 110 111 footer { 112 color: #aaa; 113 text-align: center; 114 } 115 116 footer hr { 117 margin-bottom: 12px; 118 } 119 120 @media only screen and (max-width: 600px) { 121 footer { 122 text-align: left; 123 } 124 footer a { 125 display: block; 126 } 127 footer .mobile-hidden { 128 display: none; 129 } 130 } 131 132 sup { 133 line-height: 0; 134 font-size: 0.8em; 135 } 136 137 .nowrap { 138 white-space: nowrap; 139 } 140 141 .references, 142 .footnotes { 143 font-size: 0.8em; 144 } 145 146 .references h3, 147 .footnotes h3 { 148 margin-bottom: 0; 149 } 150 151 .references ul, 152 .footnotes ul { 153 margin-top: 0.5em; 154 } 155 156 /* IMAGES */ 157 figure { 158 margin: 0; 159 } 160 161 .captioned-image { 162 margin: 1em 0; 163 } 164 165 .captioned-image > a { 166 display: block; 167 line-height: 0; 168 } 169 170 .captioned-image figcaption { 171 margin-top: 0.5em; 172 font-size: 0.8em; 173 font-style: italic; 174 line-height: 1.5; 175 } 176 177 img { 178 mix-blend-mode: multiply; 179 width: 100%; 180 height: auto; 181 } 182 183 img.inline { 184 width: auto; 185 vertical-align: middle; 186 } 187 188 p:has(img) { 189 display: flex; 190 gap: 1em; 191 margin-block-start: 1em; 192 margin-block-end: 1em; 193 align-items: center; 194 } 195 196 p:has(img) a { 197 line-height: 0; 198 } 199 200 a:has(> img.float-right) { 201 display: block; 202 float: right; 203 width: 50%; 204 margin: 0 0 1em 1.5em; 205 line-height: 0; 206 } 207 208 @media only screen and (max-width: 600px) { 209 a:has(> img.float-right) { 210 float: none; 211 width: 100%; 212 margin: 1em 0; 213 } 214 } 215 216 /* CODE */ 217 code { 218 background-color: #ddd; 219 border-radius: 3px; 220 font-family: "courier", monospace; 221 padding: 1px 1ch; 222 } 223 224 .highlight, 225 pre { 226 overflow: auto; 227 } 228 229 .highlight code, 230 pre code { 231 background: none; 232 padding: 0; 233 border-radius: 0; 234 } 235 236 pre { 237 background-color: #2e3440; 238 color: #d8dee9; 239 margin: 0; 240 padding: 1ch 1ch; 241 border-radius: 3px; 242 } 243 244 /* HOMEPAGE INTRO */ 245 .home-intro { 246 display: grid; 247 grid-template-areas: "name" "bio" "about"; 248 margin-top: 1em; 249 margin-bottom: 0; 250 } 251 252 .home-intro + #content > hr:first-child, 253 .home-intro + #content > section:first-child > hr:first-child { 254 margin-top: 0; 255 } 256 257 .home-intro.home-intro-with-music { 258 grid-template-columns: minmax(0, 1fr) 330px; 259 grid-template-areas: "name music-heading" "bio music" "about more-music"; 260 } 261 262 .home-intro.home-intro-with-music .home-name, 263 .home-intro.home-intro-with-music .home-bio, 264 .home-intro.home-intro-with-music .home-about { 265 padding-right: 26px; 266 } 267 268 .home-intro h1 { 269 grid-area: name; 270 margin: 0; 271 padding-bottom: 14px; 272 } 273 274 .home-intro p { 275 margin: 0; 276 } 277 278 .home-intro .home-bio { 279 grid-area: bio; 280 padding-bottom: 10px; 281 } 282 283 .home-intro .home-about, 284 .home-intro .more-music { 285 font-size: 14px; 286 padding-bottom: 20px; 287 } 288 289 .home-intro .home-about { 290 grid-area: about; 291 display: flex; 292 flex-wrap: wrap; 293 gap: 8px 24px; 294 } 295 296 .home-intro .home-about a { 297 white-space: nowrap; 298 } 299 300 .home-intro .more-music { 301 grid-area: more-music; 302 } 303 304 .home-music-cell { 305 border-left: 2px solid #ddd; 306 padding-left: 26px; 307 min-width: 0; 308 } 309 310 .home-music-heading { 311 grid-area: music-heading; 312 color: #666; 313 font-size: 13px; 314 font-weight: normal; 315 letter-spacing: 1.1px; 316 line-height: 28.8px; 317 text-transform: uppercase; 318 margin: 0; 319 padding-top: 4px; 320 padding-bottom: 10px; 321 } 322 323 .home-music { 324 grid-area: music; 325 padding-bottom: 18px; 326 } 327 328 .home-music .track-title { 329 font-size: inherit; 330 font-weight: bold; 331 margin-bottom: 4px; 332 } 333 334 .home-music .track-source { 335 color: #666; 336 font-size: 14px; 337 line-height: 1.5; 338 margin-bottom: 16px; 339 } 340 341 .home-music audio { 342 display: block; 343 width: 100%; 344 min-width: 0; 345 height: 42px; 346 } 347 348 @media only screen and (max-width: 800px) { 349 .home-intro { 350 margin-bottom: 26px; 351 } 352 .home-intro.home-intro-with-music { 353 grid-template-columns: 1fr; 354 grid-template-areas: "name" "bio" "about" "music-heading" "music" "more-music"; 355 } 356 .home-intro.home-intro-with-music .home-name, 357 .home-intro.home-intro-with-music .home-bio, 358 .home-intro.home-intro-with-music .home-about { 359 padding-right: 0; 360 } 361 .home-intro .home-about, 362 .home-intro .more-music { 363 padding-bottom: 0; 364 } 365 .home-music-cell { 366 border-left: 0; 367 padding-left: 0; 368 } 369 .home-music-heading { 370 border-top: 2px solid #ddd; 371 padding-top: 20px; 372 margin-top: 26px; 373 } 374 } 375 376 /* AUDIO */ 377 .track-toggle { 378 flex: 0 0 96px; 379 display: inline-grid; 380 grid-template-columns: 1.25em 1fr; 381 align-items: center; 382 column-gap: 0; 383 box-sizing: border-box; 384 width: 96px; 385 text-align: center; 386 padding: 8px 12px; 387 border: 1px solid #ccc; 388 border-radius: 4px; 389 background: #eee; 390 color: #00a; 391 font: inherit; 392 font-size: 14px; 393 cursor: pointer; 394 } 395 396 .track-toggle .track-toggle-icon { 397 text-align: center; 398 line-height: 1; 399 } 400 401 .track-toggle:hover { 402 background: #e3e3e3; 403 } 404 405 .track-toggle:focus-visible { 406 outline: 2px solid #00a; 407 outline-offset: 3px; 408 } 409 410 .track-playback { 411 display: block; 412 color: #666; 413 font-size: 14px; 414 font-variant-numeric: tabular-nums; 415 text-align: right; 416 white-space: nowrap; 417 /* Preserve the text baseline before a timestamp appears. */ 418 } 419 420 .track-playback:empty::before { 421 content: "\00a0"; 422 } 423 424 .music-track { 425 align-items: center; 426 display: flex; 427 gap: 2ch; 428 padding: 1ch 0; 429 } 430 431 .music-track > div { 432 flex: 1; 433 min-width: 0; 434 } 435 436 .music-track .track-heading { 437 display: grid; 438 grid-template-columns: minmax(0, 1fr) 13ch; 439 align-items: baseline; 440 column-gap: 1ch; 441 } 442 443 .music-track .track-title { 444 font-weight: bold; 445 margin: 0; 446 } 447 448 .music-track .track-source { 449 color: #666; 450 font-size: 14px; 451 line-height: 1.5; 452 margin: 0; 453 } 454 455 @media only screen and (max-width: 600px) { 456 .music-track { 457 display: block; 458 } 459 .music-track .track-toggle { 460 margin-bottom: 1ch; 461 } 462 .music-track audio { 463 padding-bottom: 1ch; 464 } 465 } 466 467 audio::-webkit-media-controls-panel { 468 background-color: rgba(0, 0, 0, 0.05); 469 } 470 471 @media print { 472 body { 473 background-color: white; 474 font-size: 18px; 475 padding: 0; 476 } 477 @page { 478 size: a5; 479 margin: 1in 0.8in; 480 } 481 footer { 482 display: none; 483 } 484 .home-intro.home-intro-with-music { 485 grid-template-columns: minmax(0, 1fr); 486 grid-template-areas: "name" "bio" "about"; 487 } 488 .home-intro.home-intro-with-music .home-music-cell { 489 display: none; 490 } 491 .home-intro.home-intro-with-music .home-name, 492 .home-intro.home-intro-with-music .home-bio, 493 .home-intro.home-intro-with-music .home-about { 494 padding-right: 0; 495 } 496 h2, 497 h3, 498 hr { 499 page-break-after: avoid; 500 } 501 blockquote, 502 li { 503 page-break-inside: avoid; 504 } 505 #content { 506 max-width: none; 507 } 508 .page-break { 509 page-break-after: always; 510 } 511 a.footnote-backref { 512 display: none; 513 } 514 code { 515 background: none; 516 border-radius: 0; 517 padding: 0; 518 } 519 code::before, 520 code::after { 521 content: "`"; 522 } 523 ol p { 524 display: inline; 525 } 526 } 527 528 .visually-hidden { 529 position: absolute; 530 width: 1px; 531 height: 1px; 532 padding: 0; 533 overflow: hidden; 534 clip-path: inset(50%); 535 white-space: nowrap; 536 } 537 538 #content:focus { 539 outline: none; 540 }