755 lines
14 KiB
CSS
755 lines
14 KiB
CSS
/* variables */
|
||
:root {
|
||
/* colors */
|
||
--color-grey-dark: #323131;
|
||
--color-grey-normal: #c8c8c8;
|
||
--color-grey-light: #e8e8e8;
|
||
|
||
--color-grey-dark-rgba: rgba(50, 49, 49, 1);
|
||
--color-grey-dark-rgba-unvisible: rgba(50, 49, 49, 0);
|
||
--color-grey-normal-rgba: rgba(200, 200, 200, 1);
|
||
--color-grey-normal-rgba-unvisible: rgba(200, 200, 200, 0);
|
||
--color-grey-light-rgba: rgba(232, 232, 232, 1);
|
||
--color-grey-light-rgba-unvisible: rgba(232, 232, 232, 0);
|
||
|
||
/* padding */
|
||
--padding-body: 9.375vw; /* 120px / 1280px */
|
||
|
||
/* font family */
|
||
--font-family-duo: "iA-Writer-duo-V", sans-serif; /* Monospace */
|
||
--font-family-quattro: "iA-Writer-Quattro-V", sans-serif; /* Sans serif */
|
||
|
||
/* font size */
|
||
--font-size-base: 1rem;
|
||
--font-size-scale: 1.44;
|
||
--font-size-demi-scale: 1.2;
|
||
--font-size-text: calc(
|
||
var(--font-size-base) * var(--font-size-scale)
|
||
); /* 23px */
|
||
--font-size-caption: calc(
|
||
var(--font-size-base) * var(--font-size-demi-scale)
|
||
); /* 19px */
|
||
--font-size-table: var(--font-size-caption);
|
||
--font-size-logo: calc(
|
||
calc(var(--font-size-h1) * var(--font-size-scale)) *
|
||
var(--font-size-demi-scale)
|
||
); /* 171px */
|
||
--font-size-introduction: var(--font-size-h4); /* 33px */
|
||
--font-size-h1: calc(var(--font-size-h2) * var(--font-size-scale)); /* 99px */
|
||
--font-size-h2: calc(var(--font-size-h3) * var(--font-size-scale)); /* 69px */
|
||
--font-size-h3: calc(var(--font-size-h4) * var(--font-size-scale)); /* 48px */
|
||
--font-size-h4: calc(var(--font-size-h5) * var(--font-size-scale)); /* 33px */
|
||
--font-size-h5: calc(var(--font-size-text)); /* 23px */
|
||
|
||
/* font weight */
|
||
--font-weight-text: 450;
|
||
--font-weight-semi-bold: 650;
|
||
--font-weight-bold: 700;
|
||
|
||
/* line height */
|
||
--line-height-text: 140%;
|
||
--line-height-heading: 120%;
|
||
|
||
/* margin */
|
||
--margin-heading: 1.5em;
|
||
--margin-text: 0.5em;
|
||
--margin-list: 0.25em;
|
||
--margin-right-p: calc(var(--padding-body) * 2);
|
||
|
||
/* linear gradient */
|
||
--linear-gradient-dotted: linear-gradient(
|
||
to right,
|
||
currentColor 50%,
|
||
transparent 50%
|
||
);
|
||
--linear-gradient-solid: linear-gradient(
|
||
to right,
|
||
currentColor 100%,
|
||
transparent 100%
|
||
);
|
||
--linear-gradient-background-size: 0.2em 0.09em;
|
||
}
|
||
|
||
/* scrollbar */
|
||
/* Works on Firefox */
|
||
|
||
body,
|
||
.layer {
|
||
scrollbar-width: thin;
|
||
scrollbar-color: var(--color-grey-dark) transparent;
|
||
}
|
||
|
||
/* Works on Chrome, Edge, and Safari */
|
||
|
||
body::-webkit-scrollbar,
|
||
.layer::-webkit-scrollbar,
|
||
table::-webkit-scrollbar {
|
||
width: 6px;
|
||
height: 6px;
|
||
}
|
||
|
||
body::-webkit-scrollbar-track,
|
||
.layer::-webkit-scrollbar-track,
|
||
table::-webkit-scrollbar-track {
|
||
background: transparent;
|
||
}
|
||
|
||
body::-webkit-scrollbar-thumb,
|
||
.layer::-webkit-scrollbar-thumb,
|
||
table::-webkit-scrollbar-thumb {
|
||
background-color: var(--color-grey-dark);
|
||
border-radius: 0px;
|
||
border: none;
|
||
}
|
||
|
||
figure {
|
||
width: 100%;
|
||
margin: 3rem 0; /*48px 0px */
|
||
}
|
||
|
||
img {
|
||
display: block;
|
||
width: 100%;
|
||
width: 100%;
|
||
}
|
||
|
||
.lazysrcset-ratio {
|
||
position: relative;
|
||
}
|
||
|
||
.lazysrcset-ratio > img {
|
||
display: block;
|
||
width: 100%;
|
||
height: 100%;
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
}
|
||
.lazysrcset-ratio > img:after {
|
||
display: block;
|
||
width: 100%;
|
||
height: 0;
|
||
content: "";
|
||
}
|
||
|
||
/* html */
|
||
body,
|
||
html,
|
||
p {
|
||
margin: 0;
|
||
padding: 0;
|
||
font-family: var(--font-family-quattro);
|
||
}
|
||
|
||
body {
|
||
background-color: var(--color-grey-dark);
|
||
color: var(--color-grey-light);
|
||
font-size: var(--font-size-text);
|
||
width: 100vw;
|
||
height: 100vh;
|
||
overflow: hidden;
|
||
}
|
||
|
||
button {
|
||
background-color: transparent;
|
||
border: none;
|
||
display: inline-block;
|
||
font-size: inherit;
|
||
color: inherit;
|
||
}
|
||
|
||
a {
|
||
cursor: none;
|
||
}
|
||
|
||
hr {
|
||
color: inherit;
|
||
background-repeat: repeat-x;
|
||
background-image: var(--linear-gradient-dotted);
|
||
background-position: bottom;
|
||
background-size: var(--linear-gradient-background-size);
|
||
border: none;
|
||
height: 0.25rem;
|
||
margin: 2rem 0;
|
||
}
|
||
|
||
a,
|
||
button {
|
||
pointer-events: all;
|
||
}
|
||
|
||
/* texts */
|
||
@font-face {
|
||
font-family: "iA-Writer-duo-V";
|
||
font-style: normal;
|
||
src: url("/assets/fonts/iAWriterDuoV.woff2");
|
||
}
|
||
@font-face {
|
||
font-family: "iA-Writer-duo-V";
|
||
font-style: italic;
|
||
src: url("/assets/fonts/iAWriterDuoV-Italic.woff2");
|
||
}
|
||
@font-face {
|
||
font-family: "iA-Writer-Quattro-V";
|
||
font-style: normal;
|
||
src: url("/assets/fonts/iAWriterQuattroV.woff2");
|
||
}
|
||
@font-face {
|
||
font-family: "iA-Writer-Quattro-V";
|
||
font-style: italic;
|
||
src: url("/assets/fonts/iAWriterQuattroV-Italic.woff2");
|
||
}
|
||
|
||
h1,
|
||
h2,
|
||
h3,
|
||
h4,
|
||
h5 {
|
||
color: var(--color-grey-dark);
|
||
font-family: var(--font-family-duo);
|
||
font-style: normal;
|
||
font-variation-settings: "wght" var(--font-weight-bold);
|
||
line-height: var(--line-height-heading);
|
||
margin-top: var(--margin-heading);
|
||
margin-bottom: var(--margin-text);
|
||
overflow-wrap: break-word;
|
||
-webkit-hyphens: auto;
|
||
-ms-hyphens: auto;
|
||
hyphens: auto;
|
||
}
|
||
|
||
h1 {
|
||
font-size: var(--font-size-h1);
|
||
margin-top: 0 !important;
|
||
}
|
||
|
||
h2 {
|
||
font-size: var(--font-size-h2);
|
||
}
|
||
|
||
h3 {
|
||
font-size: var(--font-size-h3);
|
||
}
|
||
|
||
h4 {
|
||
font-size: var(--font-size-h4);
|
||
}
|
||
|
||
h5 {
|
||
font-size: var(--font-size-h5);
|
||
}
|
||
|
||
button {
|
||
padding: 0;
|
||
cursor: none;
|
||
}
|
||
|
||
table th,
|
||
table td {
|
||
font-family: var(--font-family-duo);
|
||
font-size: var(--font-size-table);
|
||
}
|
||
table th {
|
||
font-variation-settings: "wght" var(--font-weight-semi-bold);
|
||
}
|
||
table td {
|
||
font-variation-settings: "wght" var(--font-weight-text);
|
||
}
|
||
|
||
#first-level a,
|
||
#first-level .note button {
|
||
text-shadow: -0.08em 0.08em 0 var(--color-grey-dark),
|
||
0px 0.08em 0 var(--color-grey-dark), 0.04em 0.08em 0 var(--color-grey-dark),
|
||
0.08em 0.08em 0 var(--color-grey-dark);
|
||
}
|
||
#second-level a,
|
||
#second-level .note button {
|
||
text-shadow: -0.08em 0.08em 0 var(--color-grey-light),
|
||
0px 0.08em 0 var(--color-grey-light),
|
||
0.04em 0.08em 0 var(--color-grey-light),
|
||
0.08em 0.08em 0 var(--color-grey-light);
|
||
}
|
||
#third-level a,
|
||
#third-level .note button {
|
||
text-shadow: -0.08em 0.08em 0 var(--color-grey-normal),
|
||
0px 0.08em 0 var(--color-grey-normal),
|
||
0.04em 0.08em 0 var(--color-grey-normal),
|
||
0.08em 0.08em 0 var(--color-grey-normal);
|
||
}
|
||
|
||
a:not(.layer-btn),
|
||
.note button {
|
||
color: inherit;
|
||
font-family: inherit;
|
||
font-variation-settings: inherit;
|
||
text-decoration: none;
|
||
background-repeat: repeat-x;
|
||
background-image: var(--linear-gradient-dotted);
|
||
background-position: bottom;
|
||
background-size: var(--linear-gradient-background-size);
|
||
}
|
||
|
||
a:hover:not(.layer-btn),
|
||
.note:hover button {
|
||
background-image: var(--linear-gradient-solid);
|
||
background-position: bottom;
|
||
background-size: 100% 0.09em;
|
||
}
|
||
|
||
a:not(figure a)::after {
|
||
content: "\00A0↗";
|
||
}
|
||
a:not([target], figure a)::after {
|
||
content: "\00A0→";
|
||
}
|
||
|
||
p {
|
||
margin-bottom: var(--margin-text);
|
||
margin-right: var(--margin-right-p);
|
||
font-size: var(--font-size-text);
|
||
font-variation-settings: "wght" var(--font-weight-text);
|
||
}
|
||
.column:not([style="--span:12"]) p {
|
||
margin-right: 0;
|
||
}
|
||
.column:not([style="--span:12"]) figure {
|
||
margin: 0;
|
||
}
|
||
|
||
blockquote footer,
|
||
figcaption,
|
||
.callout {
|
||
font-family: var(--font-family-duo);
|
||
}
|
||
|
||
blockquote,
|
||
blockquote footer {
|
||
font-size: var(--font-size-text);
|
||
font-synthesis: none;
|
||
}
|
||
|
||
blockquote {
|
||
font-style: italic;
|
||
font-variation-settings: "wght" var(--font-weight-semi-bold);
|
||
margin: 2rem 0 2rem 2.5rem;
|
||
}
|
||
|
||
blockquote footer {
|
||
font-style: normal;
|
||
font-variation-settings: "wght" var(--font-weight-text);
|
||
margin-top: var(--margin-text);
|
||
}
|
||
|
||
figcaption {
|
||
margin-top: var(--margin-text);
|
||
font-size: var(--font-size-caption);
|
||
}
|
||
|
||
.callout {
|
||
font-size: var(--font-size-introduction);
|
||
display: inline;
|
||
}
|
||
|
||
p.callout {
|
||
margin: var(--margin-heading) 0;
|
||
width: 100%;
|
||
display: block;
|
||
}
|
||
|
||
p.callout:first-child {
|
||
margin-top: 0;
|
||
}
|
||
|
||
/* note */
|
||
|
||
.note button::after {
|
||
content: "\00A0+";
|
||
display: inline-block;
|
||
}
|
||
.note.open button::after {
|
||
content: "–";
|
||
transform: rotate(90deg);
|
||
margin-left: calc(var(--margin-text) / 1.25);
|
||
}
|
||
|
||
.details::after {
|
||
content: "–";
|
||
margin-left: calc(var(--margin-text) / 1.25);
|
||
}
|
||
|
||
.details {
|
||
text-decoration: none !important;
|
||
opacity: 70%;
|
||
}
|
||
|
||
/* generic */
|
||
.hide {
|
||
display: none !important;
|
||
}
|
||
|
||
.unvisible {
|
||
color: rgba(0, 0, 0, 0);
|
||
}
|
||
|
||
/* cursor */
|
||
#cursor {
|
||
display: none;
|
||
position: absolute;
|
||
z-index: 999;
|
||
pointer-events: none;
|
||
background-color: var(--color-grey-dark);
|
||
}
|
||
|
||
#cursor span {
|
||
height: var(--font-size-introduction);
|
||
}
|
||
|
||
#cursor #target {
|
||
width: var(--font-size-introduction);
|
||
}
|
||
|
||
#cursor #text {
|
||
display: none;
|
||
background-color: var(--color-grey-light);
|
||
color: var(--color-grey-dark);
|
||
font-size: var(--font-size-caption);
|
||
align-items: center;
|
||
padding: 0 0.5rem;
|
||
}
|
||
|
||
#cursor.light {
|
||
background-color: var(--color-grey-light);
|
||
}
|
||
#cursor.light #text {
|
||
background-color: var(--color-grey-dark);
|
||
color: var(--color-grey-light);
|
||
}
|
||
|
||
/* layout */
|
||
.empty {
|
||
display: none;
|
||
}
|
||
#introduction {
|
||
position: fixed;
|
||
z-index: 999;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100vw;
|
||
height: 100vh;
|
||
background-color: var(--color-grey-dark);
|
||
padding: var(--padding-body);
|
||
}
|
||
|
||
/* logo */
|
||
|
||
.mobile,
|
||
.tablet {
|
||
display: none;
|
||
}
|
||
|
||
#introduction h1 {
|
||
font-size: var(--font-size-logo);
|
||
color: var(--color-grey-light);
|
||
hyphens: none;
|
||
}
|
||
|
||
#introduction p {
|
||
font-size: var(--font-size-introduction) !important;
|
||
}
|
||
|
||
.home p {
|
||
font-family: var(--font-family-duo);
|
||
font-size: var(--font-size-introduction);
|
||
margin-right: 0;
|
||
}
|
||
|
||
#first-level {
|
||
position: relative;
|
||
}
|
||
|
||
#logo {
|
||
color: var(--color-grey-light);
|
||
margin-top: 0;
|
||
margin-bottom: 6rem;
|
||
}
|
||
|
||
.layer {
|
||
box-sizing: border-box;
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100vw;
|
||
padding: var(--padding-body);
|
||
background-color: var(--color-grey-dark);
|
||
color: var(--color-grey-light);
|
||
transition: left 0.5s ease-in-out, top 0.5s ease-in-out,
|
||
color 0.5s ease-in-out;
|
||
|
||
height: 100vh;
|
||
overflow-y: auto;
|
||
overflow-x: hidden;
|
||
}
|
||
#second-level {
|
||
background-color: var(--color-grey-light);
|
||
color: var(--color-grey-dark);
|
||
margin-left: var(--padding-body);
|
||
width: calc(100vw - var(--padding-body));
|
||
}
|
||
#third-level {
|
||
background-color: var(--color-grey-normal);
|
||
color: var(--color-grey-dark);
|
||
margin-left: calc(2 * var(--padding-body));
|
||
width: calc(100vw - 2 * (var(--padding-body)));
|
||
}
|
||
|
||
.out-screen {
|
||
left: 100%;
|
||
}
|
||
|
||
.layer-btn {
|
||
background-image: none;
|
||
position: absolute;
|
||
left: 0;
|
||
top: 0;
|
||
width: var(--padding-body);
|
||
height: 100%;
|
||
transition: color 0.2s ease-in-out;
|
||
color: rgba(0, 0, 0, 0);
|
||
}
|
||
.layer-btn::after {
|
||
content: "" !important;
|
||
}
|
||
|
||
table {
|
||
border-collapse: collapse;
|
||
margin: 2rem 0;
|
||
display: block;
|
||
width: calc(100vw - 2 * var(--padding-body));
|
||
overflow: auto;
|
||
}
|
||
|
||
table thead,
|
||
table tr:not(:last-child) {
|
||
background-repeat: repeat-x;
|
||
background-image: var(--linear-gradient-dotted);
|
||
background-position: bottom;
|
||
background-size: var(--linear-gradient-background-size);
|
||
}
|
||
|
||
table th,
|
||
table td {
|
||
padding: 1rem 3rem 1rem 0;
|
||
}
|
||
|
||
table tr th:last-child,
|
||
table tr td:last-child {
|
||
padding-right: 29rem;
|
||
}
|
||
|
||
.row {
|
||
display: grid;
|
||
grid-template-columns: repeat(12, 1fr);
|
||
gap: 5vw;
|
||
margin-bottom: var(--margin-heading);
|
||
}
|
||
|
||
.row .column {
|
||
grid-column: span var(--span);
|
||
}
|
||
|
||
/* Collapsable section */
|
||
.collapsable__content {
|
||
height: 0;
|
||
overflow: hidden;
|
||
}
|
||
section.collapsable.open .collapsable__content {
|
||
height: auto;
|
||
}
|
||
|
||
section.collapsable button h4::after {
|
||
content: "▾";
|
||
/* content: "↓"; */
|
||
display: inline-block;
|
||
margin-left: 2rem;
|
||
}
|
||
|
||
section.collapsable.open button h4::after {
|
||
transform: rotate(180deg);
|
||
}
|
||
|
||
/* TABLETTE */
|
||
@media screen and (max-width: 820px) {
|
||
p {
|
||
margin-right: 0;
|
||
}
|
||
}
|
||
|
||
/* TABLET */
|
||
@media screen and (max-width: 1270px) {
|
||
.tablet {
|
||
display: inline;
|
||
}
|
||
}
|
||
|
||
/* MOBILE */
|
||
@media screen and (max-width: 640px) {
|
||
:root {
|
||
--padding-body: 10vw; /* 32px / 320px */
|
||
--layer-button-height: 3rem;
|
||
/* font size */
|
||
--font-size-scale: 1.2;
|
||
--font-size-demi-scale: 1;
|
||
--font-size-logo: calc(
|
||
calc(var(--font-size-h1) * var(--font-size-scale)) * 1.44
|
||
); /* 69px */
|
||
}
|
||
|
||
/* html */
|
||
|
||
.mobile {
|
||
display: inline;
|
||
}
|
||
|
||
body {
|
||
height: 100vh;
|
||
overflow: hidden;
|
||
}
|
||
|
||
hr {
|
||
margin: 1.5rem 0;
|
||
}
|
||
|
||
p {
|
||
margin-right: 0;
|
||
}
|
||
|
||
table th,
|
||
table td {
|
||
font-family: var(--font-family-duo);
|
||
}
|
||
|
||
table tr th:last-child,
|
||
table tr td:last-child {
|
||
padding-right: inherit;
|
||
}
|
||
|
||
.empty {
|
||
display: block;
|
||
height: var(--layer-button-height);
|
||
pointer-events: none;
|
||
}
|
||
|
||
/* layout */
|
||
|
||
#logo {
|
||
margin-bottom: 3rem;
|
||
}
|
||
|
||
.layer {
|
||
background-color: transparent;
|
||
margin-left: 0 !important;
|
||
width: 100% !important;
|
||
height: 100vh;
|
||
overflow-y: auto;
|
||
padding: 0;
|
||
background-color: transparent !important;
|
||
}
|
||
|
||
.layer:not(.current) {
|
||
height: 100vh;
|
||
overflow: hidden;
|
||
}
|
||
.layer:not(.current) .content-background {
|
||
z-index: -1;
|
||
}
|
||
|
||
.content-background > * {
|
||
opacity: 1;
|
||
transition: opacity 0.5s ease-in-out;
|
||
}
|
||
|
||
.layer:not(.current) .content-background > * {
|
||
opacity: 0;
|
||
}
|
||
|
||
.layer .content-background {
|
||
position: relative;
|
||
pointer-events: all;
|
||
padding: 0 var(--padding-body) 3rem var(--padding-body);
|
||
z-index: 2;
|
||
padding-bottom: 8rem;
|
||
}
|
||
|
||
#first-level .layer-btn {
|
||
background-color: var(--color-grey-dark);
|
||
color: var(--color-grey-light-rgba);
|
||
}
|
||
#first-level .layer-btn.unvisible {
|
||
color: var(--color-grey-light-rgba-unvisible);
|
||
}
|
||
#second-level {
|
||
background-color: transparent;
|
||
}
|
||
#second-level .layer-btn {
|
||
background-color: var(--color-grey-light);
|
||
color: var(--color-grey-dark-rgba);
|
||
}
|
||
#second-level .layer-btn.unvisible {
|
||
color: var(--color-grey-dark-rgba-unvisible);
|
||
}
|
||
#second-level .content-background {
|
||
background-color: var(--color-grey-light);
|
||
min-height: calc(100vh - var(--layer-button-height));
|
||
}
|
||
#second-level .layer-btn {
|
||
background-color: var(--color-grey-light);
|
||
}
|
||
#third-level .content-background {
|
||
background-color: var(--color-grey-normal);
|
||
min-height: calc(100vh - 2 * var(--layer-button-height));
|
||
}
|
||
|
||
.column {
|
||
margin-bottom: calc(var(--margin-text) * 2);
|
||
}
|
||
|
||
.out-screen {
|
||
top: 100vh;
|
||
left: 0;
|
||
}
|
||
|
||
.layer-btn {
|
||
position: sticky;
|
||
display: block;
|
||
top: 0;
|
||
background-color: inherit;
|
||
width: calc(100% - 2 * var(--padding-body));
|
||
height: calc(var(--layer-button-height) - 2 * 0.7rem);
|
||
font-size: var(--font-size-text);
|
||
text-decoration: none;
|
||
padding: 0.7rem var(--padding-body);
|
||
z-index: 2;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
}
|
||
|
||
p.callout {
|
||
margin: 2.16rem 0;
|
||
}
|
||
|
||
blockquote {
|
||
margin: 1.5rem 0 1.5rem 2rem;
|
||
}
|
||
|
||
.note {
|
||
display: inline;
|
||
}
|
||
.note button {
|
||
padding: 0;
|
||
}
|
||
|
||
.row {
|
||
display: block;
|
||
}
|
||
}
|