| |
| |
| |
|
|
| :root { |
| --color-fog: #eeeeee; |
| --color-parchment: #faefe2; |
| --color-cloud: #d9e1e4; |
| --color-mustard: #e5c299; |
| --color-navy: #16323f; |
| --color-walnut: #473a3a; |
| --color-slate: #3a4047; |
| --color-crimson: #803847; |
| --color-lilac: #cabdc8; |
| |
| --color-lemon: #efe2b2; |
| --color-peach: #ebb29f; |
| --color-ale: #cd8f7a; |
| |
| --color-seaside: #b0d6cb; |
| --color-seaside-rgb: 176, 214, 203; |
| |
| |
| |
|
|
| --max-width: 1200px; |
| --max-width-plus-padding: calc(var(--max-width) + 40px * 2); |
| --max-extended-width: 1600px; |
| --max-width-reading-material: 800px; |
|
|
| --variable-px: Min(1px, 0.15vw); |
| --page-edge-padding: 40px; |
| --border-thickness: 2px; |
| --feature-box-padding: 80; |
| --font-size-link: calc(1rem * 4 / 3); |
| } |
|
|
| html, |
| body { |
| color: var(--color-navy); |
| background: white; |
| font-family: "Inter Variable", sans-serif; |
| line-height: 1.5; |
| font-weight: 500; |
| font-size: 18px; |
| tab-size: 4; |
| width: 100%; |
| height: 100%; |
| margin: 0; |
| } |
|
|
| @media screen and (max-width: 780px) { |
| :root { |
| --font-size-link: calc(1rem * 4 / 3); |
| --page-edge-padding: 28px; |
| --border-thickness: 1px; |
| --feature-box-padding: 40; |
| } |
|
|
| html, |
| body { |
| font-size: 16px; |
| } |
| } |
|
|
| @media print, screen and (max-width: 500px) { |
| :root { |
| --page-edge-padding: 20px; |
| } |
| } |
|
|
| |
| |
| |
|
|
| body > .page { |
| box-sizing: border-box; |
| min-width: 320px; |
|
|
| header { |
| padding: 0 var(--page-edge-padding); |
| color: var(--color-walnut); |
| position: relative; |
| z-index: 1000; |
|
|
| nav { |
| margin: auto; |
| max-width: var(--max-width); |
|
|
| .row { |
| display: flex; |
| justify-content: space-between; |
| --nav-padding-above-below: 30px; |
| padding-top: var(--nav-padding-above-below); |
| padding-bottom: calc(var(--nav-padding-above-below) - 16px); |
| margin-bottom: calc(var(--nav-padding-above-below) - 16px); |
| |
| background: white; |
|
|
| @media screen and (max-width: 780px) { |
| --nav-padding-above-below: 24px; |
| } |
|
|
| .left, |
| .right { |
| z-index: 1; |
| display: flex; |
| align-items: center; |
| gap: 40px; |
| --height: 60px; |
| --button-padding: 24px; |
| --nav-font-size: 28px; |
|
|
| a { |
| font-family: "Bona Nova", Palatino, serif; |
| font-feature-settings: "lnum"; |
| line-height: 1.25; |
| font-weight: 700; |
| text-decoration: none; |
| font-size: var(--nav-font-size); |
|
|
| &.button { |
| min-height: 0; |
| 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); |
|
|
| &::before { |
| content: none; |
| } |
| } |
|
|
| &:not(.button) { |
| color: inherit; |
| } |
|
|
| img { |
| display: block; |
| width: var(--height); |
| height: var(--height); |
| } |
| } |
|
|
| &.left img { |
| |
| font-size: 0; |
| } |
|
|
| .heart.heart { |
| |
| color: #cc304f; |
| } |
|
|
| @media screen and (max-width: 1200px) { |
| gap: 30px; |
| --height: 50px; |
| --button-padding: 16px; |
| --nav-font-size: 24px; |
| } |
|
|
| @media screen and (max-width: 1000px) { |
| gap: 30px; |
| --button-padding: 14px; |
| --nav-font-size: 20px; |
| } |
|
|
| @media print, screen and (max-width: 900px) { |
| gap: 20px; |
| --height: 40px; |
| --button-padding: 13px; |
| --nav-font-size: 18px; |
| } |
|
|
| @media print, screen and (max-width: 780px) { |
| gap: 20px; |
| --button-padding: 12px; |
| --nav-font-size: 16px; |
| } |
|
|
| @media screen and (max-width: 680px) { |
| gap: 16px; |
| --height: 30px; |
| --button-padding: 8px; |
| --nav-font-size: 14px; |
| } |
|
|
| @media screen and (max-width: 580px) { |
| gap: 12px; |
| --height: 24px; |
| --nav-font-size: 13px; |
| } |
|
|
| @media screen and (max-width: 520px) { |
| gap: 10px; |
| --height: 22px; |
| --button-padding: 6px; |
| --nav-font-size: 12px; |
| } |
|
|
| @media screen and (max-width: 460px) { |
| gap: 8px; |
| --height: 20px; |
| --button-padding: 4px; |
| --nav-font-size: 11px; |
| } |
|
|
| @media screen and (max-width: 420px) { |
| gap: 6px; |
| --nav-font-size: 10px; |
| } |
|
|
| @media screen and (max-width: 380px) { |
| gap: 6px; |
| --nav-font-size: 9px; |
| } |
|
|
| @media screen and (max-width: 350px) { |
| gap: 6px; |
| --nav-font-size: 8px; |
| } |
| } |
| } |
| } |
|
|
| .ripple { |
| display: block; |
| background: none; |
| |
| fill: white; |
| 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; |
| } |
|
|
| @media screen and (max-width: 1400px) { |
| .ripple { |
| width: calc(100% + (var(--page-edge-padding) * 2)); |
| margin-left: calc(-1 * var(--page-edge-padding)); |
| margin-right: calc(-1 * var(--page-edge-padding)); |
| } |
|
|
| hr { |
| display: none; |
| } |
| } |
| } |
|
|
| main { |
| padding: calc(120 * var(--variable-px)) var(--page-edge-padding); |
|
|
| > section { |
| max-width: var(--max-width); |
| margin-left: auto; |
| margin-right: auto; |
| |
| position: relative; |
| z-index: 1; |
|
|
| ~ section { |
| margin-top: calc(120 * var(--variable-px)); |
| } |
|
|
| p img { |
| max-width: 100%; |
| } |
|
|
| pre { |
| box-sizing: border-box; |
| overflow: auto; |
| } |
|
|
| details { |
| width: 100%; |
|
|
| summary { |
| display: inline-block; |
| position: relative; |
| padding-left: calc(10px + 8px); |
| font-weight: 800; |
|
|
| &::before { |
| content: ""; |
| background: url('data:image/svg+xml;utf8,\ |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10"><polygon fill="%2316323f" points="4,0 1,0 6,5 1,10 4,10 9,5 4,0" /></svg>\ |
| '); |
| position: absolute; |
| margin: auto; |
| top: 0; |
| bottom: 0; |
| left: 0; |
| width: 10px; |
| height: 10px; |
| } |
|
|
| + * { |
| margin-top: 20px; |
| } |
| } |
| } |
|
|
| details[open] summary::before { |
| |
| transform: rotate(90deg); |
| } |
| } |
| } |
|
|
| footer { |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| padding: 40px; |
| padding-top: 0; |
| color: var(--color-walnut); |
|
|
| @media screen and (max-width: 1400px) { |
| hr { |
| width: 100%; |
|
|
| &::before, |
| &::after { |
| border: none; |
| background: currentColor; |
| width: calc(var(--page-edge-padding) + 40px); |
| height: var(--border-thickness); |
| } |
| } |
| } |
|
|
| nav { |
| display: flex; |
| flex-wrap: wrap; |
| justify-content: center; |
| gap: 8px 40px; |
| margin-top: 40px; |
|
|
| a { |
| color: var(--color-walnut); |
| } |
|
|
| @media screen and (max-width: 900px) { |
| max-width: 500px; |
| } |
|
|
| @media screen and (max-width: 780px) { |
| max-width: 440px; |
| } |
|
|
| @media screen and (max-width: 400px) { |
| gap: 6px 20px; |
| } |
| } |
|
|
| span { |
| text-align: center; |
| margin-top: 40px; |
| } |
| } |
| } |
|
|
| |
| |
| |
|
|
| :is(h1, h2, h3, h4, article > :first-child, details > summary) ~ :is(p, ul, ol, ol li p, img, a:has(> img:only-child)), |
| :is(h1, h2, h3, h4, article > :first-child) ~ :is(ul, ol) li p + img, |
| :is(h1, h2, h3, h4, p) ~ .feature-icons, |
| p ~ :is(h1, h2, h3, h4, details summary, blockquote, .image-comparison, .video-background, .youtube-embed), |
| .youtube-embed + :is(p, .link, .button), |
| p + p > .button, |
| p + :is(.link, section, details), |
| table td p ~ p, |
| img + .link, |
| article { |
| margin-top: 20px; |
| } |
|
|
| * { |
| min-width: 0; |
| min-height: 0; |
| } |
|
|
| |
| |
| |
|
|
| h1 { |
| font-size: calc(1rem * 8 / 3); |
| font-family: "Bona Nova", Palatino, serif; |
| font-feature-settings: "lnum"; |
| line-height: 1.25; |
| font-weight: 700; |
| display: inline-block; |
| margin: 0; |
|
|
| ~ h2 { |
| margin-top: 40px; |
| } |
|
|
| ~ hr { |
| margin-top: 40px; |
| margin-bottom: 20px; |
| } |
| } |
|
|
| h2, |
| h3, |
| h4, |
| h5, |
| h6 { |
| font-family: "Inter Variable", sans-serif; |
| line-height: 1.5; |
| font-weight: 800; |
| display: inline-block; |
| margin: 0; |
| } |
|
|
| h2 { |
| font-size: calc(1rem * 16 / 9); |
| font-weight: 700; |
| } |
|
|
| h3 { |
| font-size: calc(1rem * 4 / 3); |
| } |
|
|
| h4, |
| h5, |
| h6 { |
| font-size: 1rem; |
| } |
|
|
| p { |
| margin: 0; |
| text-align: justify; |
| text-justify: inter-character; |
| -webkit-hyphens: auto; |
| hyphens: auto; |
|
|
| code { |
| text-justify: auto; |
| } |
| } |
|
|
| h1, |
| h2, |
| h3, |
| h4, |
| h5, |
| h6, |
| p { |
| ~ img, |
| ~ iframe, |
| ~ a > img:only-child { |
| width: 100%; |
| height: auto; |
| } |
| } |
|
|
| a { |
| color: var(--color-crimson); |
| } |
|
|
| |
| |
| |
|
|
| img { |
| vertical-align: top; |
| } |
|
|
| table { |
| margin: 20px -20px; |
| width: calc(100% + 40px); |
|
|
| th, |
| td { |
| border: 20px solid transparent; |
| vertical-align: top; |
| margin: 0; |
| padding: 0; |
| } |
|
|
| th:not(:first-child) img, |
| td:not(:first-child) img { |
| max-width: 100%; |
| } |
|
|
| th:empty { |
| border: none; |
| } |
|
|
| :is(h1, h2, h3, h4, h5, h6) + & { |
| margin-top: 0; |
| } |
| } |
|
|
| ul, |
| ol { |
| margin: 0; |
|
|
| + p { |
| margin-top: 0; |
| } |
|
|
| li { |
| margin-top: 0.5em; |
| } |
| } |
|
|
| hr { |
| |
| color: unset; |
| } |
|
|
| code { |
| color: black; |
| background: var(--color-fog); |
| padding: 0 4px; |
| overflow-wrap: anywhere; |
| -webkit-hyphens: none; |
| hyphens: none; |
|
|
| a & { |
| color: var(--color-crimson); |
| } |
| } |
|
|
| kbd { |
| outline: calc(var(--border-thickness) / 2) solid var(--color-navy); |
| padding: 0 8px; |
| margin: 0 4px; |
| color: inherit; |
| font-family: inherit; |
| } |
|
|
| summary { |
| cursor: pointer; |
| } |
|
|
| 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; |
| } |
| } |
|
|
| |
| |
| |
|
|
| .block { |
| display: flex; |
| flex-direction: column; |
| align-items: flex-start; |
| width: 100%; |
|
|
| &.centered { |
| align-items: center; |
| } |
|
|
| :not(.diptych, .triptych) > .block + & { |
| margin-top: calc(120 * var(--variable-px)); |
| } |
| } |
|
|
| .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 { |
| display: inline-block; |
| border: var(--border-thickness) solid currentColor; |
| min-height: calc(var(--font-size-link) * 2); |
| font-size: var(--font-size-link); |
| padding: 0 var(--font-size-link); |
| box-sizing: border-box; |
| text-align: left; |
| text-decoration: none; |
| font-weight: 800; |
| color: var(--color-crimson); |
|
|
| &::before { |
| content: ""; |
| line-height: calc(var(--font-size-link) * 2 - 2 * var(--border-thickness)); |
| } |
|
|
| 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 Variable", sans-serif; |
| } |
|
|
| .video-background { |
| position: relative; |
| font-size: 0; |
|
|
| video { |
| max-width: Min(100%, 1280px); |
| } |
|
|
| |
| &::after { |
| content: ""; |
| position: absolute; |
| inset: 0; |
| border: 2px solid white; |
| pointer-events: none; |
| } |
| } |
|
|
| .heart::after { |
| content: ""; |
| background-image: url('data:image/svg+xml;utf8,\ |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M8,15C5.12471,9.753694 0.5,8.795225 0.5,4.736524 C0.5,-0.507473 7.468734,0 8,4.967381 C8.531266,0 15.5,-0.507473 15.5,4.736524 C15.5,8.795225 10.87529,9.753694 8,15z" fill="%23cc304f" /></svg>\ |
| '); |
| display: inline-block; |
| width: 0.75em; |
| height: 0.75em; |
| margin-left: 0.25em; |
| margin-bottom: -0.1em; |
| vertical-align: baseline; |
| } |
|
|
| |
| |
| |
| |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
| |
|
|
| |
| |
| |
| |
| |
| |
|
|