blob: e8772cb90108001a368cc6969a6e0a0189cd4afa [file]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
/* Website color, radius and surface tokens. */
:root {
color-scheme: light dark;
--background: light-dark(oklch(1 0 0), oklch(0.205 0.004 286));
--foreground: light-dark(oklch(0.17 0.005 286), oklch(0.95 0.004 286));
--accent: light-dark(oklch(0.7 0.135 250), oklch(0.74 0.15 250));
--success: light-dark(oklch(0.5 0.17 145), oklch(0.6 0.17 145));
--warning: light-dark(oklch(0.5 0.18 55), oklch(0.66 0.18 55));
--surface-sunken: light-dark(
oklch(from var(--background) calc(l - 0.055) c h),
oklch(from var(--background) calc(l - 0.065) c h)
);
--surface-base: oklch(from var(--background) calc(l - 0.025) c h);
--surface-raised: var(--background);
--muted-foreground: color-mix(in oklch, var(--foreground) 68%, var(--background));
--accent-solid: light-dark(
oklch(from var(--accent) 0.48 c h),
oklch(from var(--accent) 0.76 c h)
);
--success-text: color-mix(in oklab, var(--success) 50%, var(--foreground));
--warning-text: color-mix(in oklab, var(--warning) 50%, var(--foreground));
--border: oklch(from var(--foreground) l c h / 0.1);
--radius-page: 28px;
--radius-container: 12px;
--radius-element: 8px;
--tint: color-mix(in srgb, var(--accent-solid) 9%, var(--surface-raised));
--page: light-dark(var(--surface-raised), var(--surface-base));
--plain: light-dark(var(--surface-base), var(--surface-raised));
--font-family-body:
"Geist Variable", -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto,
"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC",
sans-serif;
--font-family-code:
"Geist Mono Variable", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
}
:root[data-theme="light"] {
color-scheme: light;
}
:root[data-theme="dark"] {
color-scheme: dark;
}
html {
margin: 0;
background: var(--page);
color: var(--foreground);
font-family: var(--font-family-body);
font-size: 14px;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
body {
margin: 0;
}
a {
color: inherit;
text-decoration: none;
}
code {
font-family: var(--font-family-code);
}
.wrap {
max-width: 1200px;
margin: 0 auto;
padding: 0 32px;
}
:focus-visible {
outline: 2px solid var(--accent-solid);
outline-offset: 2px;
}
/* Top navigation */
.nav {
height: 60px;
display: flex;
align-items: center;
gap: 4px;
}
.nav > * {
flex-shrink: 0;
}
.nav .brand {
display: flex;
align-items: center;
gap: 10px;
font-weight: 600;
font-size: 15px;
margin-right: 20px;
white-space: nowrap;
}
.nav .brand img {
width: 26px;
height: 26px;
border-radius: var(--radius-element);
}
.nav .brand small {
font-weight: 500;
font-size: 11px;
color: var(--accent-solid);
background: var(--tint);
border-radius: 999px;
padding: 2px 8px;
}
.nav .links {
display: flex;
gap: 2px;
}
.nav .links a {
padding: 6px 12px;
border-radius: 999px;
color: var(--muted-foreground);
font-weight: 500;
}
.nav .links a:hover,
.nav .links a[aria-current="page"] {
background: var(--surface-sunken);
color: var(--foreground);
}
.nav details {
position: relative;
}
.nav details summary {
list-style: none;
cursor: pointer;
padding: 6px 12px;
border-radius: 999px;
color: var(--muted-foreground);
font-weight: 500;
}
.nav details summary::-webkit-details-marker {
display: none;
}
.nav details summary:hover,
.nav details[open] summary {
background: var(--surface-sunken);
color: var(--foreground);
}
.nav details .menu {
position: absolute;
top: calc(100% + 6px);
left: 0;
z-index: 10;
display: grid;
min-width: 180px;
padding: 6px;
background: var(--surface-raised);
border: 1px solid var(--border);
border-radius: 14px;
box-shadow: 0 8px 24px rgb(0 0 0 / 0.08);
}
.nav details .menu a {
white-space: nowrap;
}
/* The narrow-screen menu sits at the right edge and only appears when the link row is gone. */
.nav .more {
display: none;
}
.nav .more summary {
display: grid;
place-items: center;
width: 34px;
height: 34px;
padding: 0;
border: 1px solid var(--border);
}
.nav .more .menu {
left: auto;
right: 0;
}
.nav .sp {
flex: 1;
}
.lang {
display: inline-flex;
border: 1px solid var(--border);
border-radius: 999px;
overflow: hidden;
font-size: 12px;
font-weight: 500;
white-space: nowrap;
}
.lang a,
.lang span {
padding: 5px 10px;
color: var(--muted-foreground);
}
.lang .on {
background: var(--foreground);
color: var(--page);
}
.theme {
display: inline-grid;
place-items: center;
width: 34px;
height: 34px;
margin: 0 10px 0 6px;
padding: 0;
border: 1px solid var(--border);
border-radius: 999px;
background: transparent;
color: var(--muted-foreground);
cursor: pointer;
}
.theme:hover {
color: var(--foreground);
background: var(--surface-sunken);
}
.theme svg {
display: none;
}
:root[data-theme="dark"] .theme .sun,
:root:not([data-theme="dark"]) .theme .moon {
display: block;
}
.btn {
display: inline-flex;
align-items: center;
gap: 8px;
height: 40px;
padding: 0 18px;
border-radius: 999px;
font-weight: 500;
font-size: 14px;
border: 1px solid transparent;
white-space: nowrap;
}
.btn.primary {
background: var(--foreground);
color: var(--page);
}
.btn.secondary {
background: var(--tint);
color: var(--foreground);
}
.btn.sm {
height: 34px;
padding: 0 14px;
font-size: 13px;
}
.btn .arr {
font-family: var(--font-family-code);
}
/* Hero: the Astryx Centered Hero template */
/* Gaps follow the centered-hero template: 12 / 24 / 12 / 40. The hero and the scene still share one
900px laptop screen, so the scene animation plays in view. */
.hero {
padding: 40px 0 24px;
text-align: center;
}
h1.display {
font-size: clamp(32px, 5vw, 52px);
line-height: 1.12;
font-weight: 500;
letter-spacing: -0.03em;
margin: 0 auto 12px;
/* Three lines at every desktop width; the balance keeps them even. */
max-width: 24ch;
text-wrap: balance;
}
/* CJK glyphs are a full em wide, so the Chinese headline needs its own measure to break in two lines. */
h1.display:lang(zh-CN) {
max-width: 15em;
}
h1.display b {
font-weight: 600;
}
.lede {
font-size: 17px;
line-height: 1.55;
color: var(--muted-foreground);
max-width: 60ch;
margin: 0 auto 24px;
text-wrap: balance;
}
.cta {
display: flex;
justify-content: center;
gap: 12px;
align-items: center;
flex-wrap: wrap;
}
.fine {
margin-top: 14px;
font-size: 12.5px;
color: var(--muted-foreground);
}
.fine a,
.sec-h p a,
.tile p a {
color: var(--accent-solid);
text-decoration: underline;
text-underline-offset: 3px;
}
/* Hero scene: one turn of RuntimeEvents on a page-radius tinted ground */
.scene {
margin: 40px auto 0;
border-radius: var(--radius-page);
background: var(--tint);
overflow: hidden;
position: relative;
height: 320px;
display: grid;
place-items: center;
}
.turn {
position: relative;
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 10px;
width: calc(100% - 64px);
align-items: center;
}
.turn .rail {
position: absolute;
left: 24px;
right: 24px;
top: 50%;
height: 1px;
background: color-mix(in srgb, var(--foreground) 18%, transparent);
}
.turn .hwline {
position: absolute;
top: -52px;
bottom: -52px;
left: calc(5 / 7 * 100% - 7px);
width: 2px;
background: var(--accent-solid);
border-radius: 2px;
}
.turn .hwline span {
position: absolute;
top: -2px;
left: 10px;
font: 500 11px / 1 var(--font-family-code);
color: var(--accent-solid);
white-space: nowrap;
}
.ev-pill {
position: relative;
background: var(--surface-raised);
border-radius: 16px;
padding: 14px 12px 12px;
box-shadow:
0 1px 2px rgba(0, 0, 0, 0.06),
0 6px 20px -8px rgba(0, 0, 0, 0.18);
display: flex;
flex-direction: column;
gap: 4px;
min-width: 0;
text-align: left;
}
.ev-pill b {
font: 500 11px / 1.3 var(--font-family-code);
color: var(--accent-solid);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.ev-pill small {
font-size: 11.5px;
color: var(--muted-foreground);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.ev-pill.mut b {
color: var(--foreground);
}
.ev-pill.warn b {
color: var(--warning-text);
}
.ev-pill.ok b {
color: var(--success-text);
}
.ev-pill.dim {
opacity: 0.45;
box-shadow: none;
background: color-mix(in srgb, var(--surface-raised) 60%, transparent);
}
.turn .ev-pill:nth-child(odd) {
transform: translateY(-34px);
}
.turn .ev-pill:nth-child(even) {
transform: translateY(34px);
}
.tape-cap {
position: absolute;
left: 24px;
right: 24px;
bottom: 18px;
display: flex;
gap: 22px;
font: 500 11px / 1 var(--font-family-code);
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--muted-foreground);
}
.tape-cap .hw {
margin-left: auto;
color: var(--accent-solid);
text-transform: none;
letter-spacing: 0;
}
/* Sections */
.sec {
padding: 72px 0 0;
}
.sec-h {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
align-items: end;
margin-bottom: 28px;
}
h2 {
font-size: 34px;
line-height: 1.18;
font-weight: 600;
letter-spacing: -0.025em;
margin: 0;
text-wrap: balance;
}
.sec-h p {
margin: 0;
color: var(--muted-foreground);
font-size: 15px;
max-width: 52ch;
}
/* Bento */
.bento {
display: grid;
grid-template-columns: repeat(12, 1fr);
grid-auto-rows: minmax(120px, auto);
gap: 16px;
}
.tile {
background: var(--tint);
border-radius: 20px;
padding: 26px 26px 22px;
display: flex;
flex-direction: column;
gap: 8px;
min-height: 0;
min-width: 0;
}
.tile.plain {
background: var(--plain);
}
.tile h3 {
margin: 0;
font-size: 19px;
font-weight: 600;
letter-spacing: -0.01em;
}
.tile p {
margin: 0;
color: var(--muted-foreground);
font-size: 14px;
max-width: 46ch;
}
.tile .more {
margin-top: 4px;
font-weight: 500;
font-size: 14px;
color: var(--foreground);
}
.tile .more::after {
content: " →";
}
.tile .fig {
margin-top: auto;
padding-top: 18px;
}
.c3 {
grid-column: span 3;
}
.c4 {
grid-column: span 4;
}
.c5 {
grid-column: span 5;
}
.c7 {
grid-column: span 7;
}
.c12 {
grid-column: span 12;
}
.r2 {
grid-row: span 2;
}
/* Leaderboard as rows */
/* The tile's height comes from the two tiles beside it, so the table stretches its rows to fill
whatever the copy above it leaves over. */
.tile.r2 .fig,
.lb {
flex: 1;
display: flex;
flex-direction: column;
}
.lb {
background: var(--surface-raised);
border-radius: var(--radius-container);
overflow: hidden;
border: 1px solid var(--border);
}
.lb .row {
flex: 1;
display: grid;
grid-template-columns: 22px 96px 1fr 58px;
gap: 10px;
align-items: center;
padding: 7px 12px;
font-size: 12.5px;
border-bottom: 1px solid var(--border);
}
.lb .row:last-of-type {
border-bottom: 0;
}
.lb .rk {
color: var(--muted-foreground);
font-family: var(--font-family-code);
font-size: 11px;
}
.lb .tr {
height: 6px;
border-radius: 999px;
background: var(--surface-sunken);
overflow: hidden;
}
.lb .fi {
height: 100%;
background: color-mix(in oklch, var(--foreground) 24%, transparent);
border-radius: 999px;
}
.lb .pc {
text-align: right;
font-variant-numeric: tabular-nums;
font-weight: 500;
}
.lb .row.me {
background: var(--tint);
}
.lb .row.me .fi {
background: var(--accent-solid);
}
.lb .row.me .nm,
.lb .row.me .pc {
color: var(--accent-solid);
font-weight: 600;
}
.lb .cap {
padding: 8px 12px;
font: 11px / 1.5 var(--font-family-code);
color: var(--muted-foreground);
background: var(--surface-sunken);
}
/* Big stat */
/* The stat sits in the middle of whatever height the copy leaves, not glued to the bottom. */
.tile .fig:has(> .stat) {
flex: 1;
display: flex;
align-items: center;
}
.stat {
font-size: 56px;
font-weight: 600;
letter-spacing: -0.04em;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.stat small {
font-size: 16px;
font-weight: 500;
color: var(--muted-foreground);
letter-spacing: 0;
margin-left: 8px;
}
/* Runtime Host diagram */
.host {
display: grid;
grid-template-columns: 1fr auto 1fr;
gap: 14px;
align-items: center;
font-size: 12.5px;
}
.host .col {
display: flex;
flex-direction: column;
gap: 6px;
}
.host .chip {
background: var(--surface-raised);
border: 1px solid var(--border);
border-radius: var(--radius-element);
padding: 6px 10px;
font-weight: 500;
}
.host .core {
background: var(--foreground);
color: var(--page);
border-radius: var(--radius-container);
padding: 14px 16px;
font-weight: 600;
text-align: center;
line-height: 1.3;
}
.host .core small {
display: block;
font-weight: 400;
opacity: 0.7;
font-size: 11px;
}
.host .lines {
font-family: var(--font-family-code);
color: var(--muted-foreground);
font-size: 11px;
text-align: center;
}
/* Event chips */
.evs {
display: flex;
gap: 6px;
flex-wrap: wrap;
align-items: center;
}
.evs .e {
font: 500 11.5px / 1 var(--font-family-code);
padding: 7px 10px;
border-radius: 999px;
background: var(--surface-raised);
color: var(--accent-solid);
border: 1px solid var(--border);
}
.evs .e.mut {
color: var(--muted-foreground);
}
.evs .e.warn {
color: var(--warning-text);
}
.evs .e.ok {
color: var(--success-text);
}
.evs .cur {
width: 2px;
height: 22px;
background: var(--accent-solid);
}
/* Events are appended one by one, then the caret keeps blinking: the log is still being written. */
@media (prefers-reduced-motion: no-preference) {
.evs.armed .e,
.evs.armed .cur {
opacity: 0;
transform: translateY(4px);
}
.evs.play .e {
animation: append 0.3s ease-out forwards;
animation-delay: calc(var(--i) * 0.28s);
}
.evs.play .cur {
animation:
append 0.2s ease-out forwards,
blink 1s steps(1) infinite;
animation-delay: calc(var(--i) * 0.28s);
}
}
@keyframes append {
to {
opacity: 1;
transform: none;
}
}
/* The hero scene appends the same way; its cards keep their offsets, so only opacity moves. */
@media (prefers-reduced-motion: no-preference) {
.turn.armed .ev-pill,
.turn.armed .hwline {
opacity: 0;
}
.turn.play .ev-pill {
animation: appear 0.35s ease-out forwards;
animation-delay: calc(0.2s + var(--i) * 0.28s);
}
.turn.play .hwline {
animation: appear 0.3s ease-out forwards;
animation-delay: calc(0.2s + var(--i) * 0.28s);
}
.turn.play .ev-pill.dim {
animation-name: appear-dim;
}
}
@keyframes appear {
to {
opacity: 1;
}
}
@keyframes appear-dim {
to {
opacity: 0.45;
}
}
@keyframes blink {
50% {
opacity: 0;
}
}
/* Get Maka: three paths */
.tile.get {
flex-direction: row;
gap: 40px;
align-items: flex-start;
}
.get-h {
flex: 0 0 240px;
display: flex;
flex-direction: column;
gap: 8px;
}
.paths3 {
flex: 1;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
.path {
display: grid;
grid-template-columns: 1fr;
border-left: 1px solid var(--border);
padding: 4px 0 4px 18px;
align-content: start;
gap: 8px;
}
.path b {
display: block;
font-weight: 600;
font-size: 15px;
margin-bottom: 4px;
}
.path span {
color: var(--muted-foreground);
font-size: 12.5px;
line-height: 1.5;
}
.path .note {
font: 500 11px / 1.4 var(--font-family-code);
color: var(--warning-text);
}
.path .note.mut {
color: var(--muted-foreground);
}
.path code {
font-size: 12px;
background: var(--surface-raised);
border: 1px solid var(--border);
border-radius: 6px;
padding: 2px 6px;
}
/* Reading cards */
.reads {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 16px;
}
.rc {
border-radius: 20px;
overflow: hidden;
background: var(--plain);
display: flex;
flex-direction: column;
}
.rc .cover {
background: var(--tint);
height: 200px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-family: var(--font-family-code);
color: var(--accent-solid);
font-size: 26px;
font-weight: 500;
letter-spacing: -0.02em;
text-align: center;
padding: 0 20px;
line-height: 1.25;
}
.rc .cover small {
display: block;
font-size: 12px;
color: var(--muted-foreground);
letter-spacing: 0.08em;
text-transform: uppercase;
margin-top: 10px;
font-weight: 500;
}
.rc .body {
padding: 18px 20px 20px;
}
.rc h3 {
margin: 0 0 6px;
font-size: 17px;
font-weight: 600;
letter-spacing: -0.01em;
text-wrap: balance;
}
.rc .meta {
font-size: 12px;
color: var(--muted-foreground);
}
.rc .meta a {
color: var(--accent-solid);
}
/* Downloads page: the Astryx technical-documentation layout, content plus a
sticky outline, rows for status and numbered steps with copyable code. */
.doc {
display: grid;
grid-template-columns: minmax(0, 1fr) 180px;
gap: 64px;
padding: 56px 0 0;
max-width: 1040px;
}
.doc h1 {
font-size: 40px;
line-height: 1.15;
font-weight: 600;
letter-spacing: -0.03em;
margin: 0 0 10px;
text-wrap: balance;
}
.doc .sup {
margin: 0;
font-size: 15px;
line-height: 1.6;
color: var(--muted-foreground);
max-width: 62ch;
}
.doc h2 {
font-size: 24px;
margin: 0 0 12px;
}
.doc h3 {
margin: 0;
font-size: 13px;
font-weight: 600;
letter-spacing: 0.02em;
}
.doc p,
.doc li {
font-size: 15px;
line-height: 1.6;
color: var(--muted-foreground);
max-width: 68ch;
margin: 0 0 12px;
}
.doc p a:not(.btn),
.doc li a {
color: var(--accent-solid);
text-decoration: underline;
text-underline-offset: 3px;
}
.doc .div {
border: 0;
border-top: 1px solid var(--border);
margin: 40px 0;
}
.doc .note {
display: inline-block;
font: 500 11px / 1.4 var(--font-family-code);
color: var(--warning-text);
border: 1px solid color-mix(in srgb, var(--warning-text) 40%, transparent);
border-radius: 999px;
padding: 3px 10px;
margin-bottom: 12px;
}
.doc .status {
margin: 32px 0 48px;
border: 1px solid var(--border);
border-radius: var(--radius-container);
background: var(--plain);
overflow: hidden;
}
.doc .status h3 {
padding: 12px 16px;
color: var(--muted-foreground);
border-bottom: 1px solid var(--border);
}
.doc .status .row {
display: grid;
grid-template-columns: 150px minmax(0, 1fr) auto;
gap: 16px;
align-items: center;
padding: 12px 16px;
border-bottom: 1px solid var(--border);
font-size: 14px;
}
.doc .status .row:last-child {
border-bottom: 0;
}
.doc .status .row:hover {
background: var(--surface-sunken);
}
.doc .status .row b {
font-weight: 600;
}
.doc .status .row span {
color: var(--muted-foreground);
}
.doc .status .row small {
font: 500 11px / 1 var(--font-family-code);
color: var(--muted-foreground);
white-space: nowrap;
}
.doc .status .row small.warn {
color: var(--warning-text);
}
.doc .step {
display: block;
font-size: 14px;
font-weight: 600;
margin: 18px 0 8px;
}
.doc ul {
padding-left: 20px;
margin: 0 0 8px;
}
.doc li {
margin: 0 0 4px;
}
.doc .code {
position: relative;
margin: 0 0 12px;
}
.doc pre {
margin: 0;
background: var(--plain);
border: 1px solid var(--border);
border-radius: var(--radius-container);
padding: 14px 96px 14px 16px;
overflow-x: auto;
font: 13px / 1.6 var(--font-family-code);
color: var(--foreground);
}
.doc .copy {
position: absolute;
top: 8px;
right: 8px;
height: 28px;
padding: 0 10px;
border: 1px solid var(--border);
border-radius: 999px;
background: var(--surface-raised);
color: var(--muted-foreground);
font: 500 12px var(--font-family-body);
cursor: pointer;
}
.doc .copy:hover {
color: var(--foreground);
}
.doc code {
font-size: 0.92em;
}
/* The distribution URL is one unbreakable word; it wraps rather than widening the page on phones. */
.doc p code {
overflow-wrap: anywhere;
}
.doc .btn {
margin-top: 4px;
}
.outline {
position: sticky;
top: 24px;
align-self: start;
padding-top: 132px;
}
.outline .lab {
font: 500 11px / 1 var(--font-family-code);
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--muted-foreground);
margin-bottom: 12px;
}
.outline a {
display: block;
padding: 6px 0 6px 12px;
border-left: 2px solid var(--border);
color: var(--muted-foreground);
font-size: 13px;
line-height: 1.4;
}
.outline a:hover {
color: var(--foreground);
}
.outline a[aria-current="true"] {
border-color: var(--accent-solid);
color: var(--foreground);
font-weight: 500;
}
/* Footer */
.foot {
margin-top: 72px;
border-top: 1px solid var(--border);
padding: 28px 0 32px;
font-size: 12.5px;
color: var(--muted-foreground);
}
.foot .links {
display: flex;
flex-wrap: wrap;
gap: 4px 16px;
margin-bottom: 18px;
}
.foot .links a {
color: var(--foreground);
font-weight: 500;
}
.foot .inc {
display: inline-block;
margin-bottom: 16px;
}
.foot .inc img {
display: block;
height: 36px;
width: auto;
padding: 6px 10px;
border-radius: 8px;
background: light-dark(transparent, #fff);
}
.foot p {
margin: 0;
}
.foot .disc {
max-width: 96ch;
line-height: 1.6;
}
.foot .tm {
margin-top: 12px;
}
@media (max-width: 1000px) {
.scene {
height: auto;
padding: 28px 24px 48px;
}
.turn {
width: 100%;
grid-template-columns: repeat(4, 1fr);
}
.turn .rail,
.turn .hwline {
display: none;
}
.turn .ev-pill:nth-child(odd),
.turn .ev-pill:nth-child(even) {
transform: none;
}
}
/* The English link row needs about 1000px with the page padding; below that the menu takes over. */
@media (max-width: 1024px) {
.nav .links {
display: none;
}
.nav .more {
display: block;
}
}
@media (max-width: 900px) {
.sec-h {
grid-template-columns: 1fr;
gap: 12px;
}
.bento > .tile {
grid-column: span 12;
grid-row: auto;
}
.tile.get {
flex-direction: column;
gap: 20px;
}
.get-h {
flex-basis: auto;
}
.paths3 {
grid-template-columns: 1fr;
}
.reads {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 720px) {
.wrap {
padding: 0 20px;
}
/* Get Maka moves into the menu and the theme follows the OS; the row does not fit them at 390px. */
.nav .btn,
.nav .theme {
display: none;
}
.nav .brand {
margin-right: 0;
}
.lang a,
.lang span {
padding: 5px 8px;
}
.hero {
padding-top: 40px;
}
.scene {
padding: 28px 20px 24px;
}
.turn {
grid-template-columns: 1fr 1fr;
}
.tape-cap {
position: static;
margin-top: 28px;
flex-direction: column;
gap: 8px;
line-height: 1.5;
text-align: center;
}
.tape-cap .hw {
margin-left: 0;
}
.reads {
grid-template-columns: 1fr;
}
h2 {
font-size: 28px;
}
.doc {
grid-template-columns: minmax(0, 1fr);
gap: 0;
}
.outline {
display: none;
}
.doc h1 {
font-size: 32px;
}
.doc .status .row {
grid-template-columns: 1fr;
gap: 4px;
}
}