davideisinger.com

My personal website
Log | Files | Refs | README

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 }