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