:root { --color-white: #ffffff; --color-fog: #eeeeee; --color-navy: #16323f; --color-walnut: #473a3a; --color-crimson: #803847; --color-mustard: #e5c299; --font-size-intro-heading: 60px; --font-size-intro-body: 22px; --font-size-link: 24px; --font-size-heading: 40px; --font-size-subheading: 24px; --font-size-body: 18px; --font-size-article-h1: 32px; --font-size-article-h2: 24px; --font-size-article-h3: 18px; --max-width: 1600px; --max-width-plus-padding: calc(var(--max-width) + 40px * 2); --variable-px: Min(1px, 0.15vw); --page-edge-padding: 40px; --border-thickness: 2px; @media screen and (max-width: 760px) { --font-size-intro-heading: 40px; --font-size-intro-body: 18px; --font-size-link: 20px; --font-size-heading: 32px; --font-size-body: 16px; --page-edge-padding: 28px; } @media screen and (max-width: 500px) { --font-size-intro-heading: 32px; --font-size-intro-body: 16px; --font-size-link: 16px; --font-size-heading: 28px; --font-size-body: 16px; --page-edge-padding: 20px; --border-thickness: 1px; } @media screen and (max-width: 400px) { --font-size-intro-heading: 24px; --font-size-intro-body: 14px; --font-size-link: 14px; --font-size-heading: 24px; --font-size-body: 16px; --page-edge-padding: 12px; } } // Global element styles html, body { width: 100%; height: 100%; margin: 0; background: var(--color-white); font-family: "Inter", sans-serif; line-height: 1.5; font-weight: 500; font-size: var(--font-size-body); color: var(--color-navy); } a { color: var(--color-crimson); } h1.box-header { font-family: "Inter", sans-serif; line-height: 1.5; font-size: var(--font-size-link); font-weight: 800; text-transform: uppercase; span { white-space: pre; } ~ hr { margin-top: 20px; } + hr + .diptych, + hr + .triptych { margin-top: 40px; } } h1.hero { font-size: var(--font-size-intro-heading); ~ p { font-size: var(--font-size-intro-body); } } h1 { font-family: "Bona Nova", serif; font-feature-settings: "lnum"; line-height: 1.25; font-weight: 700; font-size: var(--font-size-heading); } h2 { font-family: "Bona Nova", serif; font-feature-settings: "lnum"; line-height: 1.25; font-size: var(--font-size-heading); font-weight: 400; } h3 { font-size: var(--font-size-subheading); } h1, h2, h3, h4, h5, h6 { margin: 0; display: inline-block; } p { margin: 0; hyphens: auto; text-align: justify; } p ~ p { margin-top: 1.5em; } h1 ~ p, h2 ~ p, h3 ~ p, h1 ~ ol li p, h2 ~ ol li p, h3 ~ ol li p, h1 ~ img, h2 ~ img, h3 ~ img, p ~ h1, p ~ h2, p ~ h3, p ~ details summary, p + .link { margin-top: 20px; } h1 ~ hr { margin-top: 40px; margin-bottom: 20px; } ol + p { margin-top: 0; } li + li { margin-top: 0.5em; } code { background: var(--color-fog); padding: 0 4px; word-break: break-all; hyphens: none; } pre { padding: 20px; background: var(--color-navy); color: var(--color-fog); code { background: initial; padding: 0; } } kbd { background: var(--color-fog); border-radius: calc(var(--variable-px) * 2); outline: calc(var(--border-thickness) / 2) solid var(--color-navy); padding: 0 4px; margin: 0 4px; color: var(--color-navy); } summary { cursor: pointer; } .link { display: inline-block; font-size: var(--font-size-link); font-weight: 800; text-decoration: none; color: var(--color-crimson); white-space: nowrap; &:not(.not-uppercase) { text-transform: uppercase; } } .button.button.button.button { color: var(--color-crimson); display: inline-block; border: var(--border-thickness) solid currentColor; height: calc(var(--font-size-link) * 2); line-height: calc(var(--font-size-link) * 2 - 2 * var(--border-thickness)); font-size: var(--font-size-link); padding: 0 var(--font-size-link); box-sizing: border-box; text-decoration: none; font-weight: 800; white-space: nowrap; img { height: calc(var(--font-size-link) * 1.5); margin-right: calc(var(--font-size-link) / 2); } img, span { vertical-align: middle; } } .arrow::after { content: " »"; font-family: "Inter", sans-serif; } hr { overflow: visible; } hr, .ripple { width: calc(100% - 32px * 2); height: var(--border-thickness); margin: 0 32px; background: currentColor; position: relative; border: none; &::before { left: -40px; border-width: 0 0 var(--border-thickness) 40px; } &::after { right: -40px; border-width: 0 40px var(--border-thickness) 0; } &::before, &::after { content: ""; display: block; width: 0; height: 0; position: absolute; border-color: transparent transparent currentColor transparent; border-style: solid; } } .section-row { display: flex; align-items: stretch; gap: calc(40 * var(--variable-px)) calc(80 * var(--variable-px)); &.right { flex-direction: row-reverse; } @media screen and (max-width: 800px) { &.section-row { flex-direction: column; align-items: center; } } .graphic { max-width: 280px; flex: 1 1 100%; display: flex; img { display: block; width: 100%; height: auto; @media screen and (max-width: 800px) { width: auto; height: 120px; } } } .section { display: flex; flex-direction: column; align-items: flex-start; width: 100%; } } .feature-box { padding: calc(80 * var(--variable-px)); background-image: url("https://static.graphite.rs/textures/noise.png"); background-blend-mode: overlay; background-position: center; &.feature-box.feature-box { max-width: unset; } @media screen and (max-width: 1000px) { &.feature-box.feature-box { margin-left: -40px; margin-right: -40px; } } .box { max-width: var(--max-width); margin: 0 auto; .section h2 + .graphic { margin-top: 20px; img { margin: auto; } } } } .diptych, .triptych { display: flex; flex-wrap: wrap; gap: calc(80 * var(--variable-px)); .section { flex: 1 1 0; } &.diptych .section { min-width: 320px; } &.triptych .section { min-width: 280px; } @media screen and (max-width: 600px) { &.diptych .section, &.triptych .section { min-width: 100%; } } img[alt=""] { display: block; &::after { content: ""; display: block; width: 100%; height: 240px; background: var(--color-crimson); } } + div { margin-top: calc(80 * var(--variable-px)); } } // Page content .page { box-sizing: border-box; overflow: hidden; min-width: 320px; header { padding: 0 var(--page-edge-padding); color: var(--color-walnut); // var(--max-width) + (80px + 32px) * 2 @media screen and (max-width: 1824px) { .ripple { width: calc(100% + (40px * 2)); margin-left: -40px; margin-right: -40px; } hr { display: none; } } nav { margin: auto; max-width: var(--max-width); .row { display: flex; justify-content: space-between; padding: 30px 0; @media screen and (max-width: 760px) { padding: 20px 0; } .left, .right { display: flex; align-items: center; gap: 40px; a { color: inherit; font-family: "Bona Nova", serif; font-feature-settings: "lnum"; line-height: 1.25; font-weight: 700; text-decoration: none; --height: 60px; --button-padding: 24px; --nav-font-size: 32px; font-size: var(--nav-font-size); &.button { height: var(--height); padding-left: var(--button-padding); padding-right: var(--button-padding); line-height: calc(var(--height) - 2 * var(--border-thickness)); font-size: var(--nav-font-size); &::after { content: " »"; } } img { display: block; width: var(--height); height: var(--height); } } @media screen and (max-width: 960px) { gap: 30px; a { --height: 50px; --button-padding: 16px; --nav-font-size: 26px; } } @media screen and (max-width: 760px) { gap: 20px; a { --height: 40px; --button-padding: 12px; --nav-font-size: 22px; } } @media screen and (max-width: 600px) { gap: 16px; a { --height: 30px; --button-padding: 8px; --nav-font-size: 18px; } } @media screen and (max-width: 500px) { gap: 12px; a { --height: 24px; --button-padding: 8px; --nav-font-size: 16px; } } @media screen and (max-width: 460px) { gap: 10px; a { --height: 22px; --button-padding: 6px; --nav-font-size: 14px; } } @media screen and (max-width: 400px) { gap: 8px; a { --height: 20px; --button-padding: 4px; --nav-font-size: 12px; } } @media screen and (max-width: 360px) { gap: 6px; a { --height: 20px; --button-padding: 4px; --nav-font-size: 10px; } } } } } .ripple { display: block; background: none; fill: none; stroke: currentColor; --ripple-height: 16px; height: var(--ripple-height); margin-top: calc(-1 * var(--ripple-height) + var(--border-thickness)); margin-bottom: calc(-1 * var(--border-thickness)); stroke-width: var(--border-thickness); &::before, &::after { content: none; } } hr { background: none; } } main { padding: 0 var(--page-edge-padding); .content { padding: calc(120 * var(--variable-px)) 0; section { max-width: var(--max-width); margin: auto; // Puts the content in front of the hexagon decoration position: relative; z-index: 1; ~ section { margin-top: calc(80 * var(--variable-px)); } p img { max-width: 100%; } pre { max-width: 100%; box-sizing: border-box; overflow: auto; } details { width: 100%; } } } } footer { display: flex; flex-direction: column; align-items: center; gap: 40px; padding: 40px; padding-top: 0; nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 40px; @media screen and (max-width: 900px) { max-width: 500px; } @media screen and (max-width: 760px) { max-width: 440px; } @media screen and (max-width: 400px) { gap: 6px 20px; } } span { text-align: center; } } }