/* 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; } }