:root {
--lab-ink: #101820;
--lab-ink-soft: #243443;
--lab-panel: #ffffff;
--lab-panel-tint: #f4f8fb;
--lab-line: #d6e2ea;
--lab-cyan: #00a7c7;
--lab-cyan-dark: #007a91;
--lab-green: #25a76f;
--lab-amber: #f0a202;
--lab-rose: #d94f70;
--lab-blue: #1d4ed8;
--lab-muted: #64748b;
--lab-shadow: 0 18px 45px rgba(16, 24, 32, 0.12);
}
body {
background: #eef4f8;
color: var(--lab-ink);
}
.lab-home {
background: #eef4f8;
color: var(--lab-ink);
font-family: inherit;
}
.lab-container {
box-sizing: border-box;
inline-size: min(1120px, calc(100% - 32px));
margin-inline: auto;
}
.lab-section {
padding-block: clamp(44px, 7vw, 78px);
}
.lab-section:nth-of-type(even) {
background: #f8fbfd;
}
.lab-section__header {
margin-block-end: 22px;
}
.lab-section__header--split {
align-items: end;
display: flex;
gap: 16px;
justify-content: space-between;
}
.lab-section__title,
.lab-home-hero__title {
line-height: 1.2;
margin: 0;
}
.lab-section__title {
color: var(--lab-ink);
font-size: clamp(1.55rem, 3vw, 2.25rem);
}
.lab-section__lead,
.lab-home-hero__lead {
line-height: 1.85;
}
.lab-section__lead {
color: var(--lab-ink-soft);
}
.lab-eyebrow {
color: var(--lab-cyan-dark);
font-size: 0.78rem;
font-weight: 800;
letter-spacing: 0;
margin: 0 0 8px;
text-transform: uppercase;
}
.lab-home-hero {
background:
radial-gradient(circle at 82% 18%, rgba(37, 167, 111, 0.24), transparent 28%),
linear-gradient(135deg, #0d1b2a 0%, #12263a 52%, #16324f 100%);
color: #ffffff;
padding-block: clamp(54px, 8vw, 96px);
position: relative;
}
.lab-home-hero::after {
background:
linear-gradient(90deg, rgba(0, 167, 199, 0.36) 1px, transparent 1px),
linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px);
background-size: 42px 42px;
content: "";
inset: 0;
opacity: 0.28;
pointer-events: none;
position: absolute;
}
.lab-home-hero .lab-container {
position: relative;
z-index: 1;
}
.lab-home-hero .lab-eyebrow {
color: #7de3f2;
}
.lab-home-hero__layout {
align-items: center;
display: grid;
gap: 36px;
grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
}
.lab-home-hero__title {
color: #ffffff;
font-size: clamp(2rem, 5vw, 3.6rem);
max-inline-size: 860px;
}
.lab-home-hero__lead {
color: #d9edf3;
font-size: 1.05rem;
margin: 18px 0 0;
max-inline-size: 720px;
}
.lab-home-hero__tagline {
color: #7de3f2;
font-size: clamp(1.05rem, 2vw, 1.35rem);
font-weight: 800;
line-height: 1.55;
margin: 14px 0 0;
}
.lab-action-list {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-block-start: 30px;
}
.lab-button {
align-items: center;
background: #ffffff;
border: 1px solid var(--lab-line);
border-radius: 8px;
box-sizing: border-box;
color: var(--lab-ink);
display: inline-flex;
font-weight: 800;
justify-content: center;
line-height: 1.4;
min-block-size: 44px;
padding: 10px 16px;
text-decoration: none;
transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
}
.lab-button--primary {
background: var(--lab-cyan);
border-color: var(--lab-cyan);
color: #ffffff;
}
.lab-button:hover,
.lab-button:focus {
background: var(--lab-ink);
border-color: var(--lab-ink);
color: #ffffff;
text-decoration: none;
transform: translateY(-1px);
}
.lab-button--primary:hover,
.lab-button--primary:focus {
background: #7c3aed;
border-color: #7c3aed;
}
.lab-text-link {
color: var(--lab-blue);
font-weight: 800;
text-decoration: none;
}
.lab-text-link:hover,
.lab-text-link:focus,
.lab-post-card__title:hover,
.lab-post-card__title:focus {
color: var(--lab-cyan-dark);
text-decoration: underline;
}
.lab-home-hero__summary {
background: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(125, 227, 242, 0.42);
border-radius: 8px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
padding: 22px;
}
.lab-theme-list {
display: grid;
gap: 10px;
list-style: none;
margin: 0;
padding: 0;
}
.lab-theme-list li {
background: rgba(255, 255, 255, 0.12);
border-left: 4px solid var(--lab-cyan);
border-radius: 6px;
color: #edfaff;
padding: 10px 12px;
}
.lab-theme-list li:nth-child(2) {
border-left-color: var(--lab-green);
}
.lab-theme-list li:nth-child(3) {
border-left-color: var(--lab-amber);
}
.lab-theme-list li:nth-child(4) {
border-left-color: var(--lab-rose);
}
.lab-featured-series,
.lab-tool-cta {
background: #ffffff;
}
.lab-category-layout {
display: grid;
gap: 20px;
}
.lab-category-block,
.lab-post-card,
.lab-route-card,
.lab-empty,
.lab-series-nav {
background: var(--lab-panel);
border: 1px solid var(--lab-line);
border-radius: 8px;
box-shadow: 0 10px 30px rgba(16, 24, 32, 0.06);
box-sizing: border-box;
}
.lab-category-block {
padding: 20px;
position: relative;
}
.lab-category-block::before,
.lab-route-card::before,
.lab-post-card::before {
background: var(--lab-cyan);
border-radius: 8px 8px 0 0;
content: "";
display: block;
block-size: 4px;
inset-inline: -1px;
inset-block-start: -1px;
position: absolute;
}
.lab-category-block:nth-child(2n)::before,
.lab-route-card:nth-child(2n)::before,
.lab-post-card:nth-child(2n)::before {
background: var(--lab-green);
}
.lab-category-block:nth-child(3n)::before,
.lab-route-card:nth-child(3n)::before,
.lab-post-card:nth-child(3n)::before {
background: var(--lab-amber);
}
.lab-category-block:nth-child(4n)::before,
.lab-route-card:nth-child(4n)::before,
.lab-post-card:nth-child(4n)::before {
background: var(--lab-rose);
}
.lab-category-block__header {
align-items: center;
display: flex;
gap: 12px;
justify-content: space-between;
margin-block-end: 14px;
}
.lab-category-block__title,
.lab-route-card__title {
color: var(--lab-ink);
font-size: 1.2rem;
line-height: 1.35;
margin: 0;
}
.lab-post-grid,
.lab-route-card-grid {
display: grid;
gap: 14px;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.lab-post-card,
.lab-route-card,
.lab-empty,
.lab-series-nav {
padding: 18px;
position: relative;
}
.lab-post-card__title {
color: var(--lab-blue);
display: block;
font-size: 1.04rem;
font-weight: 800;
line-height: 1.45;
text-decoration: none;
}
.lab-post-card__date {
color: var(--lab-muted);
display: block;
font-size: 0.84rem;
margin-block-start: 8px;
}
.lab-post-card__excerpt,
.lab-route-card__description {
color: var(--lab-ink-soft);
line-height: 1.75;
margin: 10px 0 0;
}
.lab-route-card {
display: flex;
flex-direction: column;
gap: 12px;
min-block-size: 100%;
}
.lab-route-card .lab-button {
margin-block-start: auto;
}
.lab-series-nav {
background: var(--lab-panel-tint);
margin-block: 24px;
}
.lab-series-nav__title {
color: var(--lab-ink);
font-weight: 800;
margin: 0 0 10px;
}
.lab-series-nav__links {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.lab-series-nav__links a {
background: #e4f7fb;
border: 1px solid #b7e9f2;
border-radius: 6px;
color: var(--lab-cyan-dark);
font-weight: 800;
padding: 8px 10px;
text-decoration: none;
}
.lab-series-nav__links a:hover,
.lab-series-nav__links a:focus {
background: var(--lab-cyan);
color: #ffffff;
}
.lab-sometimes-cat {
background:
linear-gradient(135deg, rgba(0, 167, 199, 0.08), rgba(37, 167, 111, 0.06)),
#f8fbfd;
}
.lab-sometimes-cat__layout {
align-items: center;
display: grid;
gap: 24px;
grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
}
.lab-sometimes-cat__content {
max-inline-size: 720px;
}
.lab-loco-card,
.lab-loco-memo {
background: #ffffff;
border: 1px solid #b7e9f2;
border-radius: 8px;
box-shadow: var(--lab-shadow);
box-sizing: border-box;
position: relative;
}
.lab-loco-card {
padding: 22px;
}
.lab-loco-card::before,
.lab-loco-memo::before {
background: linear-gradient(90deg, var(--lab-cyan), var(--lab-green), var(--lab-amber));
border-radius: 8px 8px 0 0;
content: "";
display: block;
block-size: 4px;
inset-inline: -1px;
inset-block-start: -1px;
position: absolute;
}
.lab-loco-card__label,
.lab-loco-memo__label {
color: var(--lab-cyan-dark);
font-size: 0.82rem;
font-weight: 900;
letter-spacing: 0;
margin: 0 0 8px;
text-transform: uppercase;
}
.lab-loco-card__text,
.lab-loco-memo__text {
color: var(--lab-ink-soft);
line-height: 1.8;
margin: 0;
}
.lab-loco-memo {
margin-block: 24px;
padding: 18px;
}
@media (max-width: 900px) {
.lab-home-hero__layout {
grid-template-columns: 1fr;
}
.lab-sometimes-cat__layout {
grid-template-columns: 1fr;
}
.lab-post-grid,
.lab-route-card-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 640px) {
.lab-container {
inline-size: min(100% - 24px, 1120px);
}
.lab-section {
padding-block: 38px;
}
.lab-section__header--split,
.lab-category-block__header,
.lab-action-list {
align-items: stretch;
flex-direction: column;
}
.lab-button {
inline-size: 100%;
}
.lab-post-grid,
.lab-route-card-grid {
grid-template-columns: 1fr;
}
}