@charset "UTF-8"; /*! posts.andrewgioia.com style definitions v1.0.0 */ /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ /* Document ========================================================================== */ /** * 1. Correct the line height in all browsers. * 2. Prevent adjustments of font size after orientation changes in iOS. */ html { line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ } /* Sections ========================================================================== */ /** * Remove the margin in all browsers. */ body { margin: 0; } /** * Render the `main` element consistently in IE. */ main { display: block; } /** * Correct the font size and margin on `h1` elements within `section` and * `article` contexts in Chrome, Firefox, and Safari. */ h1 { font-size: 2em; margin: 0.67em 0; } /* Grouping content ========================================================================== */ /** * 1. Add the correct box sizing in Firefox. * 2. Show the overflow in Edge and IE. */ hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } /* Text-level semantics ========================================================================== */ /** * Remove the gray background on active links in IE 10. */ a { background-color: transparent; } /** * 1. Remove the bottom border in Chrome 57- * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ } /** * Add the correct font weight in Chrome, Edge, and Safari. */ b, strong { font-weight: bolder; } /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } /** * Add the correct font size in all browsers. */ small { font-size: 80%; } /** * Prevent `sub` and `sup` elements from affecting the line height in * all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } /* Embedded content ========================================================================== */ /** * Remove the border on images inside links in IE 10. */ img { border-style: none; } /* Forms ========================================================================== */ /** * 1. Change the font styles in all browsers. * 2. Remove the margin in Firefox and Safari. */ button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ } /** * Show the overflow in IE. * 1. Show the overflow in Edge. */ button, input { /* 1 */ overflow: visible; } /** * Remove the inheritance of text transform in Edge, Firefox, and IE. * 1. Remove the inheritance of text transform in Firefox. */ button, select { /* 1 */ text-transform: none; } /** * Correct the inability to style clickable types in iOS and Safari. */ button, [type=button], [type=reset], [type=submit] { -webkit-appearance: button; } /** * Remove the inner border and padding in Firefox. */ button::-moz-focus-inner, [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner { border-style: none; padding: 0; } /** * Restore the focus styles unset by the previous rule. */ button:-moz-focusring, [type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring { outline: 1px dotted ButtonText; } /** * Correct the padding in Firefox. */ fieldset { padding: 0.35em 0.75em 0.625em; } /** * 1. Correct the text wrapping in Edge and IE. * 2. Correct the color inheritance from `fieldset` elements in IE. * 3. Remove the padding so developers are not caught out when they zero out * `fieldset` elements in all browsers. */ legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } /** * Add the correct vertical alignment in Chrome, Firefox, and Opera. */ progress { vertical-align: baseline; } /** * Remove the default vertical scrollbar in IE 10+. */ textarea { overflow: auto; } /** * 1. Add the correct box sizing in IE 10. * 2. Remove the padding in IE 10. */ [type=checkbox], [type=radio] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } /** * Correct the cursor style of increment and decrement buttons in Chrome. */ [type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button { height: auto; } /** * 1. Correct the odd appearance in Chrome and Safari. * 2. Correct the outline style in Safari. */ [type=search] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } /** * Remove the inner padding in Chrome and Safari on macOS. */ [type=search]::-webkit-search-decoration { -webkit-appearance: none; } /** * 1. Correct the inability to style clickable types in iOS and Safari. * 2. Change font properties to `inherit` in Safari. */ ::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } /* Interactive ========================================================================== */ /* * Add the correct display in Edge, IE 10+, and Firefox. */ details { display: block; } /* * Add the correct display in all browsers. */ summary { display: list-item; } /* Misc ========================================================================== */ /** * Add the correct display in IE 10+. */ template { display: none; } /** * Add the correct display in IE 10. */ [hidden] { display: none; } :root { --bg-normal: #f3f3f1; --bg-dark: #21252b; --border-normal: #fff; --border-dark: #353b45; --font-size-base: 18px; --link-color-normal: #0069ff; --link-color-dark: #29baff; --text-normal: #002953; --text-normal-hl: #032140; --text-dark: #d6d7df; --text-dark-hl: #fff; --text-title-normal: #736be3; --text-title-dark: #9690ea; --text-subdued-normal: #bbb; --text-subdued-dark: #5a6371; --screen-mobile: 640px; --screen-tablet: 768px; --screen-laptop: 1024px; --screen-display: 1280px; --screen-full: 1440px; } @font-face { font-family: "andrew"; src: url("../icons/andrew.eot?1.0.5"); src: url("../icons/andrew.eot?1.0.5#iefix") format("embedded-opentype"), url("../icons/andrew.woff2?1.0.5") format("woff2"), url("../icons/andrew.ttf?1.0.5") format("truetype"), url("../icons/andrew.woff?1.0.5") format("woff"), url("../icons/andrew.svg?1.0.5#andrew") format("svg"); font-weight: normal; font-style: normal; font-display: block; } [class^=icon-], [class*=" icon-"] { font-family: "andrew" !important; speak: never; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .icon-arrow:before { content: ""; } .icon-arrow-left:before { content: ""; } .icon-email:before { content: ""; } .icon-github:before { content: ""; } .icon-mastodon:before { content: ""; } html { font-size: var(--font-size-base); } body { align-items: center; background: var(--bg-normal); color: var(--text-normal); display: flex; flex-direction: column; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; justify-content: flex-start; } header { align-self: stretch; border-top: 1vmax solid var(--border-normal); padding: 5vmin 6vmin 0; } header h1 { font-size: max(2vmax, 1.25rem); margin: 0; } header h1 a { color: var(--text-normal); } header h1 span { color: var(--text-subdued-normal); } main { display: flex; max-width: var(--screen-display); padding: max(5vmin, 2rem) 6vmin; position: relative; } main#home { padding-top: max(10vmin, 2rem); width: 80%; } main#post { flex-direction: column; align-items: center; } main aside { margin: 0 7.5vmin max(2vmax, 1rem); position: relative; text-align: center; } main aside h1 { color: var(--text-title-normal); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: max(3.75vmax, 2rem); font-weight: 800; letter-spacing: -0.075rem; line-height: 1.1; } main aside time { font-size: max(1.5vmax, 1rem); font-weight: 900; text-transform: uppercase; } main article { align-items: center; display: flex; flex-direction: column; } main article h2 { color: var(--text-normal-hl); font-size: max(2.25vmax, 1.5rem); font-weight: 800; letter-spacing: -0.05rem; margin: 2vmax 10vmin 1vmax; text-align: center; text-transform: uppercase; } main article p, main article ul, main article section, main article blockquote { width: min(50vmax, 100%); } main article p { font-size: max(1.375vmax, 1rem); line-height: max(2vmax, 1.5rem); margin: max(1vmax, 0.75rem) 0; } main article p.big { font-size: max(1.75vmax, 1.25rem); font-weight: 500; line-height: max(2.5vmax, 1.75rem); } main article p.big > strong { font-weight: 800; } main article p.swqm { text-indent: min(-0.55vmax, -0.4rem); } main article ul, main article ol { margin: max(1vmax, 0.75rem) 0; padding: 0; } main article ul li, main article ol li { margin-left: max(3vmax, 1rem); padding: 0 0 max(2vmax, 1rem) max(1vmax, 0.5rem); } main article ul li p:first-child, main article ol li p:first-child { margin-top: max(0.5vmax, 0.5rem); } main article ul li:first-child p:first-child, main article ol li:first-child p:first-child { margin-top: 0; } main article ul li p:last-child, main article ol li p:last-child { margin-bottom: 0; } main article ul li { font-size: max(1.375vmax, 1rem); line-height: max(2vmax, 1.5rem); } main article ul li:last-child { padding-bottom: 0; } main article section ol li, main article section ol li p { font-size: max(1vmax, 0.75rem); line-height: max(1.5vmax, 1.1rem); } main article figure { margin: 2vmax 10vmax 1vmax; } main article figure img { width: 100%; } main article figure figcaption { text-align: center; } main article blockquote { margin: max(0.5vmax, 0.5rem) 0; } main article blockquote p { border-left: 1vmax solid var(--border-normal); padding-left: 2vmax; } nav#TableOfContents { display: none; } a { color: var(--link-color-normal); position: relative; text-decoration: none; } a:not(.arrow):hover { border-bottom: 2px solid var(--link-color-normal); } a.arrow::after { color: inherit; content: ""; display: block; font-family: "andrew"; font-size: 100%; height: 100%; opacity: 0; position: absolute; top: 0; right: 0; -webkit-transform: translateY(-0.5rem) translateX(100%); -moz-transform: translateY(-0.5rem) translateX(100%); transform: translateY(-0.5rem) translateX(100%); transition: opacity 150ms ease-in-out, margin-top 150ms ease-in-out; } a.arrow.back::after { content: ""; left: 0; -webkit-transform: translateY(-0.5rem) translateX(-1.5rem); -moz-transform: translateY(-0.5rem) translateX(-1.5rem); transform: translateY(-0.5rem) translateX(-1.5rem); transition: opacity 150ms ease-in-out, margin-top 150ms ease-in-out; } a.arrow:hover::after { display: block; margin-top: -3px; opacity: 100; } header h1 a.back::after { -webkit-transform: translateY(-0.5rem) translateX(min(-1.75vmax, -1.25rem)); -moz-transform: translateY(-0.5rem) translateX(min(-1.75vmax, -1.25rem)); transform: translateY(-0.5rem) translateX(min(-1.75vmax, -1.25rem)); } ul.list { display: flex; flex-direction: column; list-style-type: none; margin: 0; padding: 0; width: 100%; } ul.list li { align-items: stretch; display: flex; flex-direction: row; justify-content: space-between; padding-bottom: max(2.5vmax, 1.1rem); } ul.list li div { flex: 0 1 auto; font-size: max(2.5vmax, 1.1rem); font-weight: 600; } ul.list li time { flex: 0 0 auto; font-size: max(2vmax, 1rem); font-weight: 900; padding-top: 0.5vmax; padding-left: 1vmax; text-transform: uppercase; } @media (prefers-color-scheme: dark) { body { background: var(--bg-dark); color: var(--text-dark); } header { border-top-color: var(--border-dark); } header h1 a { color: var(--text-dark-hl); } header h1 span { color: var(--text-subdued-dark); } a { color: var(--link-color-dark); } a:not(.arrow):hover { border-bottom: 2px solid var(--link-color-dark); } main aside h1 { background: var(--text-title-dark); background: linear-gradient(135deg, #29baff 0%, #9690ea 67%); background-clip: text; color: transparent; } main article h2 { color: var(--text-dark-hl); } main article blockquote p { border-left-color: var(--border-dark); } } @media only screen and (max-width: 768px) { main { align-self: stretch; overflow-x: hidden; width: auto; } main aside, main article h2, main article p { margin-left: 0; margin-right: 0; max-width: 100%; text-align: left; width: 100%; } main article ul { align-self: end; padding: 0; width: calc(100% - 2.5vmax); } main article figure { margin: 2vmax -6vmin 1vmax; } ul.list li { flex-direction: column; } ul.list li time { padding: 1vmax 0 0 0; } } @media only screen and (min-width: 1280px) { main article h2 { margin: 2vmax 7vmin 1vmax; } ul.list li time { padding-left: 3rem; } } @media only screen and (min-width: 1440px) { main article h2 { margin: 2vmax 5vmin 1vmax; } }