pre { line-height: 125%; } td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight { background: #f8f8f8; } .highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ .highlight .err { border: 1px solid #FF0000 } /* Error */ .highlight .k { color: #008000; font-weight: bold } /* Keyword */ .highlight .o { color: #666666 } /* Operator */ .highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ .highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ .highlight .cp { color: #9C6500 } /* Comment.Preproc */ .highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ .highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ .highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #E40000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #008400 } /* Generic.Inserted */ .highlight .go { color: #717171 } /* Generic.Output */ .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ .highlight .gt { color: #0044DD } /* Generic.Traceback */ .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008000 } /* Keyword.Pseudo */ .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #B00040 } /* Keyword.Type */ .highlight .m { color: #666666 } /* Literal.Number */ .highlight .s { color: #BA2121 } /* Literal.String */ .highlight .na { color: #687822 } /* Name.Attribute */ .highlight .nb { color: #008000 } /* Name.Builtin */ .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ .highlight .no { color: #880000 } /* Name.Constant */ .highlight .nd { color: #AA22FF } /* Name.Decorator */ .highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ .highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0000FF } /* Name.Function */ .highlight .nl { color: #767600 } /* Name.Label */ .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #19177C } /* Name.Variable */ .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #666666 } /* Literal.Number.Bin */ .highlight .mf { color: #666666 } /* Literal.Number.Float */ .highlight .mh { color: #666666 } /* Literal.Number.Hex */ .highlight .mi { color: #666666 } /* Literal.Number.Integer */ .highlight .mo { color: #666666 } /* Literal.Number.Oct */ .highlight .sa { color: #BA2121 } /* Literal.String.Affix */ .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ .highlight .sc { color: #BA2121 } /* Literal.String.Char */ .highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ .highlight .s2 { color: #BA2121 } /* Literal.String.Double */ .highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ .highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ .highlight .sx { color: #008000 } /* Literal.String.Other */ .highlight .sr { color: #A45A77 } /* Literal.String.Regex */ .highlight .s1 { color: #BA2121 } /* Literal.String.Single */ .highlight .ss { color: #19177C } /* Literal.String.Symbol */ .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0000FF } /* Name.Function.Magic */ .highlight .vc { color: #19177C } /* Name.Variable.Class */ .highlight .vg { color: #19177C } /* Name.Variable.Global */ .highlight .vi { color: #19177C } /* Name.Variable.Instance */ .highlight .vm { color: #19177C } /* Name.Variable.Magic */ .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ :root { --primary: #d38305; --serif: "Merriweather", "Georgia", serif; --sans-serif: sans-serif; --mono: "IBM Plex Mono", monospace; } * { box-sizing: border-box; } body { margin: 0 auto; padding: 0; color: black; font-family: var(--sans-serif); } hr { border: 0 none; background: var(--primary); height: 1px; } h1, h2, h3, h4, h5, h6 { font-weight: normal; font-family: var(--serif); } h1 { font-size: 2.2rem; margin: 1rem 0 .5rem 0; } h2 { font-size: 1rem; line-height: 1.1rem; margin: 0; padding-top: 50px; margin-bottom: -10px; } h2.fp-h2 { font-size: 1.5rem; } h3 { font-size: 1.5rem; line-height: 1.6rem; } h3.fp-h3 { font-size: 1.2rem; margin-bottom: 0; } h4 { font-size: 1.3rem; } p + h2, p + h3, p + h4, p + h5, p + h6, pre + h2, pre + h3, pre + h4, pre + h5, pre + h6, ul + h2, ul + h3, ul + h4, ul + h5, ul + h6, ul + h2, ol + h3, ol + h4, ol + h5, ol + h6{ margin-top: 50px; } p, li, .post p a, .post li a, p a, li a { font-family: var(--serif); line-height: 1.75rem; } p, li { color: #334; } p a, li a { color: #369; } .post a { text-decoration: none; border-bottom: 1px solid #aaa; } li p { margin-top: 0; padding-bottom: 5px; } p:last-child, li:last-child { margin-bottom: 0; } a { text-decoration: none; color: var(--primary); } p a, li a { text-decoration: underline; } blockquote:before { display: block; content: '“'; position: absolute; top: 15px; left: 15px; font-size: 50px; color: var(--primary); } blockquote { position: relative; background: #efefef; padding: 1px 15px 15px 45px; font-size: .9rem; margin: 0; } .code-caption { font-size: .8rem; color: #777; display: block; margin-bottom: -1.5em; } img { width: 640px; max-width: 100%; } img.profile { max-width: 100%; height: 200px; width: auto; } .banner { background: black; color: white; display: block; padding: 15px 0; } .banner a { color: white; } .row { display: flex; align-items: center; } .container { width: 650px; max-width: 100%; margin: 0 auto; padding: 0 15px; display: flex; justify-content: space-between; } .container > * { width: 100%; } header .container > div { padding-bottom: 15px; } header .notes { font-size: .8rem; color: #777; } header .container { padding: 30px 15px 0 15px; } .tagline { font-size: 14px; padding: 15px 0; } .subscribe { flex: 1; text-align: right; } .subscribe a { font-size: .8rem; border: 1px solid var(--primary); padding: 5px 10px; border-radius: 2px; } .subscribe a.fancy { color: #06D6A0; margin-left: 10px; background: rgb(6,214,160); background: linear-gradient(90deg, rgba(6,214,160,1) 35%, rgba(27,154,170,1) 100%); border: 0; position: relative; } .subscribe a.fancy:after { background: white; position: absolute; top: 2px; left: 2px; bottom: 2px; right: 2px; content: 'Subscribe'; padding: 3px 8px; color: #1B9AAA; } aside { padding: 15px; padding-top: 0; background: honeydew; border: 1px solid #eee; } aside p { line-height: initial; } .highlight { overflow: auto; padding: 1.5rem; max-height: 500px; border: 1px solid #ddd; background: white; width: 800px; margin-left: -100px; } .highlight .err { border: 0 !important; } .highlight pre { margin: 0; } p code, li code { background: #f0f0f0; } table, p code, li code, .highlight pre { font-family: var(--mono); font-size: .95rem; line-height: 1.35rem; } table { overflow-x: auto; max-width: 100%; display: block; width: fit-content; } table.nocode { font-family: var(--sans-serif); } .title { color: #333; margin: 0; padding: 0; line-height: initial; } .subtitle { color: #555; font-variant: small-caps; font-weight: 500; } .realsubtitle { font-family: var(--serif); font-size: 1.2rem; margin-bottom: 15px; } .tags { padding-bottom: 5px; font-family: var(--sans-serif); } .tag { display: inline-block; margin-right: 10px; margin-bottom: 5px; padding: 3px 5px; background: #f1f0e8; color: #777; font-size: .8rem; } .about img { height: 125px; width: 125px; } .summary { font-family: var(--serif); } .summary > a { color: #333; } .summary .tags { padding: 5px 0; } .fp-project, .summary { margin-bottom: 30px; } .summary-subtitle { color: #333; font-size: .8rem; margin-bottom: 5px; } .sm-link { display: inline-block; padding: 10px 0; padding-right: 15px; font-size: small; color: #333; } .note { line-height: 1.4rem; background: #fbfcfe; border: 1px solid #ebecee; padding: 30px 10px 10px 10px; position: relative; } .note::after { display: block; content: 'NOTE'; position: absolute; top: 4px; font-family: var(--serif); font-size: .7rem; border-bottom: 1px solid #ebecee; } .note.note--edit::after { content: 'EDIT'; } .note, .note p, .note a, .note code { font-size: .8rem; } .note-header { background: transparent; font-weight: bold; } .fp-section { margin-top: 4rem; } .fp-h2 { margin-bottom: 1rem; } .fp-section:first-of-type { margin-top: 0rem; } .fp-section:last-of-type { margin-bottom: 2rem; } .fp-section p { font-size: 1rem; } .fp-section:not(:first) a { font-size: 1.2rem; } .fp-project { display: block; } .fp-project div { padding: 5px 0; } .fp-project div a { font-size: .9rem; } .fp-project p { color: #333; margin: 0; font-size: .9rem; } .feedback { display: none; } .highlight + table { margin-top: 1rem; } table { border: 1px solid #ddd; border-collapse: collapse; border-spacing: 0; } th, td { padding: 5px; border: 1px solid #ddd; border-collapse: collapse; } th { border-top: 0; } @media (max-width: 650px) { pre { width: 100%; margin-left: 0; } .col-3 { width: 30%; } } @media only screen and (max-width : 830px) { .fp-section { margin: 0 -15px; padding: 1rem; } .fp-section:last-of-type { margin-bottom: 0; } .fp-section:first-of-type { margin-top: 0; } .container { display: block; } .col-6 { width: 100%; } .col-3 { width: 100%; } .highlight { width: 100%; margin-left: 0; } .hide-mobile { display: none; } } #share { margin-top: 30px; } header .lfw { display: none; font-size: initial; background: #fcfcfc; border-bottom: 1px solid #eee; } header .lfw .container { padding: 5px 15px; } header .lfw .container > div { padding-bottom: 0; } header .lfw .container a { color: #333; font-size: .8rem; } .hide-on-index { display: none; } p.bold { border: 1px solid var(--primary); padding: 15px; } #subscribe { position: relative; padding-bottom: 56.25%; /* 16:9 */ padding-top: 25px; height: 0; iframe { position: absolute; top: 0; left: 0; width: 100%; height: 450px; } }