Files
cedarline-digital/styles.css
T

2908 lines
55 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
:root {
--bg: #0f1111;
--surface: #171c1a;
--surface-light: #1f2924;
--evergreen: #2a5e3e;
--accent: #4f8a6b;
--soft: #86b38f;
--text: #e6e8e6;
--muted: #9ca3a0;
--border: rgba(255, 255, 255, 0.08);
--border-strong: rgba(134, 179, 143, 0.22);
--shadow: rgba(0, 0, 0, 0.4);
--max-width: 1240px;
--radius: 8px;
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
margin: 0;
min-width: 320px;
color: var(--text);
font-family:
Manrope,
Inter,
ui-sans-serif,
system-ui,
-apple-system,
BlinkMacSystemFont,
"Segoe UI",
sans-serif;
line-height: 1.6;
background:
linear-gradient(180deg, rgba(15, 17, 17, 0.56), var(--bg) 760px),
linear-gradient(
90deg,
rgba(15, 17, 17, 0.94),
rgba(15, 17, 17, 0.72) 45%,
rgba(15, 17, 17, 0.9)
),
radial-gradient(
circle at 72% 6%,
rgba(79, 138, 107, 0.18),
transparent 34rem
),
radial-gradient(
circle at 12% 18%,
rgba(42, 94, 62, 0.18),
transparent 30rem
),
linear-gradient(rgba(255, 255, 255, 0.014) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.014) 1px, transparent 1px),
url("assets/images/backdrop.jpg"), var(--bg);
background-attachment:
scroll, scroll, scroll, scroll, scroll, scroll, fixed, scroll;
background-position:
center top,
center top,
center top,
center top,
center top,
center top,
center top,
center top;
background-repeat:
no-repeat, no-repeat, no-repeat, no-repeat, repeat, repeat, no-repeat,
no-repeat;
background-size:
auto,
auto,
auto,
auto,
88px 88px,
88px 88px,
cover,
auto;
}
body::before,
body::after {
position: fixed;
inset: 0;
z-index: -2;
pointer-events: none;
content: "";
}
body::before {
background:
linear-gradient(
135deg,
transparent 0 56%,
rgba(134, 179, 143, 0.035) 56% 56.4%,
transparent 56.4%
),
linear-gradient(
28deg,
transparent 0 66%,
rgba(79, 138, 107, 0.045) 66% 66.4%,
transparent 66.4%
);
}
body::after {
top: auto;
height: 44vh;
background:
linear-gradient(
155deg,
transparent 0 36%,
rgba(31, 41, 36, 0.82) 36% 37%,
transparent 37%
),
linear-gradient(
18deg,
transparent 0 43%,
rgba(23, 28, 26, 0.9) 43% 44%,
transparent 44%
),
linear-gradient(0deg, rgba(15, 17, 17, 0.94), transparent);
opacity: 0.46;
}
a {
color: inherit;
text-decoration: none;
}
p,
h1,
h2,
h3,
dl {
margin-top: 0;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.digital-word {
transform: translateX(3px);
}
.site-header {
position: sticky;
top: 16px;
z-index: 20;
display: flex;
align-items: center;
justify-content: space-between;
width: min(100% - 32px, var(--max-width));
min-height: 68px;
margin: 0 auto;
padding: 10px 12px;
border: 1px solid var(--border);
border-radius: var(--radius);
background: rgba(15, 17, 17, 0.68);
box-shadow: 0 18px 54px rgba(0, 0, 0, 0.24);
backdrop-filter: blur(22px);
}
.site-header.is-scrolled {
background: rgba(15, 17, 17, 0.86);
border-color: rgba(255, 255, 255, 0.12);
}
.brand,
.site-nav,
.hero-actions,
.panel-top,
.panel-metrics,
.site-footer,
.site-footer div,
.site-footer nav {
display: flex;
align-items: center;
}
.brand {
gap: 12px;
padding-right: 10px;
font-weight: 800;
letter-spacing: 0;
}
.brand-mark,
.panel-mark {
display: grid;
place-items: center;
border: 1px solid var(--border-strong);
border-radius: var(--radius);
background:
linear-gradient(150deg, rgba(31, 41, 36, 0.96), rgba(15, 17, 17, 0.82)),
radial-gradient(
circle at 50% 18%,
rgba(134, 179, 143, 0.18),
transparent 70%
);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.05),
0 16px 34px var(--shadow);
}
.brand-mark {
width: 42px;
height: 42px;
}
.brand-mark svg {
width: 28px;
height: 28px;
}
.mark-tree {
fill: rgba(134, 179, 143, 0.94);
}
.mark-root {
fill: none;
stroke: var(--accent);
stroke-linecap: round;
stroke-width: 2.2;
}
.site-nav {
gap: 4px;
color: var(--muted);
font-size: 0.92rem;
font-weight: 800;
}
.site-nav a {
padding: 10px 13px;
border-radius: var(--radius);
transition:
color 160ms ease,
background-color 160ms ease,
border-color 160ms ease;
}
.site-nav a:hover,
.site-nav a:focus-visible {
color: var(--text);
background: rgba(255, 255, 255, 0.045);
outline: none;
}
.site-nav .nav-cta {
margin-left: 8px;
border: 1px solid rgba(134, 179, 143, 0.28);
color: #f5fff7;
background: linear-gradient(
180deg,
rgba(79, 138, 107, 0.92),
rgba(42, 94, 62, 0.92)
);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.site-nav .nav-cta:hover,
.site-nav .nav-cta:focus-visible {
background: linear-gradient(
180deg,
rgba(89, 154, 119, 0.96),
rgba(47, 106, 70, 0.96)
);
}
.nav-toggle {
display: none;
width: 44px;
height: 44px;
padding: 0;
border: 1px solid var(--border);
border-radius: var(--radius);
background: rgba(23, 28, 26, 0.9);
color: var(--text);
}
.nav-toggle span:not(.sr-only) {
display: block;
width: 18px;
height: 2px;
margin: 5px auto;
background: currentColor;
}
.section {
width: min(100% - 40px, var(--max-width));
margin: 0 auto;
padding: 104px 0;
}
.hero {
display: grid;
grid-template-columns: minmax(0, 0.98fr) minmax(390px, 0.82fr);
gap: clamp(36px, 5vw, 76px);
align-items: center;
min-height: calc(100vh - 92px);
padding-top: 86px;
padding-bottom: 74px;
}
.hero-content {
max-width: 760px;
}
.eyebrow {
margin-bottom: 14px;
color: var(--soft);
font-size: 0.76rem;
font-weight: 800;
letter-spacing: 0.12em;
text-transform: uppercase;
}
h1,
h2,
h3 {
line-height: 1.08;
letter-spacing: 0;
}
h1 {
max-width: 760px;
margin-bottom: 22px;
font-size: clamp(2.8rem, 5.2vw, 5.05rem);
}
h2 {
margin-bottom: 18px;
font-size: clamp(2rem, 3.4vw, 3.1rem);
}
h3 {
margin-bottom: 12px;
font-size: 1.07rem;
}
.hero-copy,
.section-copy,
.contact-panel p {
color: var(--muted);
font-size: 1.07rem;
}
.hero-copy {
max-width: 620px;
margin-bottom: 32px;
}
.hero-actions {
flex-wrap: wrap;
gap: 14px;
}
.button,
.contact-link {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 48px;
padding: 0 18px;
border-radius: var(--radius);
font-weight: 800;
transition:
transform 160ms ease,
border-color 160ms ease,
background-color 160ms ease;
}
.button:hover,
.button:focus-visible,
.contact-link:hover,
.contact-link:focus-visible {
transform: translateY(-2px);
outline: none;
}
.button-primary,
.contact-link {
border: 1px solid rgba(134, 179, 143, 0.35);
color: #f5fff7;
background: linear-gradient(
180deg,
rgba(79, 138, 107, 0.95),
rgba(42, 94, 62, 0.95)
);
}
.button-secondary {
border: 1px solid var(--border);
color: var(--text);
background: rgba(255, 255, 255, 0.035);
}
.hero-visual {
position: relative;
min-height: 540px;
}
.mountain-field {
position: absolute;
inset: 34px -18px auto;
height: 240px;
opacity: 0.44;
background:
linear-gradient(
145deg,
transparent 0 42%,
rgba(79, 138, 107, 0.2) 42% 43%,
transparent 43%
),
linear-gradient(
28deg,
transparent 0 49%,
rgba(134, 179, 143, 0.18) 49% 50%,
transparent 50%
),
linear-gradient(
153deg,
transparent 0 58%,
rgba(31, 41, 36, 0.88) 58% 68%,
transparent 68%
);
filter: blur(0.2px);
}
.hero-panel {
position: relative;
min-height: 510px;
overflow: hidden;
padding: 26px;
border: 1px solid var(--border);
border-radius: var(--radius);
background:
radial-gradient(
circle at 64% 32%,
rgba(79, 138, 107, 0.22),
transparent 18rem
),
linear-gradient(160deg, rgba(31, 41, 36, 0.76), rgba(15, 17, 17, 0.86)),
repeating-linear-gradient(
90deg,
transparent 0 42px,
rgba(255, 255, 255, 0.018) 42px 43px
);
box-shadow:
0 28px 90px rgba(0, 0, 0, 0.42),
inset 0 1px 0 rgba(255, 255, 255, 0.04);
backdrop-filter: blur(18px);
}
.hero-panel::before,
.hero-panel::after {
position: absolute;
content: "";
}
.hero-panel::before {
inset: auto -26% -36% -26%;
height: 320px;
background: radial-gradient(
circle,
rgba(79, 138, 107, 0.36),
transparent 70%
);
}
.hero-panel::after {
right: 34px;
bottom: 118px;
left: 34px;
height: 170px;
opacity: 0.46;
background:
linear-gradient(
143deg,
transparent 0 41%,
rgba(134, 179, 143, 0.16) 41% 42%,
transparent 42%
),
linear-gradient(
24deg,
transparent 0 52%,
rgba(42, 94, 62, 0.42) 52% 68%,
transparent 68%
),
linear-gradient(
156deg,
transparent 0 48%,
rgba(31, 41, 36, 0.9) 48% 65%,
transparent 65%
);
}
.panel-top {
position: relative;
z-index: 2;
gap: 16px;
}
.panel-mark {
width: 78px;
height: 78px;
}
.panel-mark svg {
width: 52px;
height: 52px;
}
.panel-top p {
margin: 0 0 3px;
font-size: 1.05rem;
font-weight: 800;
}
.panel-top span {
color: var(--muted);
font-size: 0.9rem;
}
.circuit-board {
position: absolute;
inset: 142px 42px 132px;
z-index: 2;
}
.circuit-board span {
position: absolute;
display: block;
border-color: rgba(134, 179, 143, 0.28);
}
.circuit-board span:nth-child(1) {
top: 10px;
left: 8%;
width: 72%;
height: 1px;
border-top: 1px solid;
}
.circuit-board span:nth-child(2) {
top: 10px;
left: 8%;
width: 1px;
height: 78%;
border-left: 1px solid;
}
.circuit-board span:nth-child(3) {
right: 12%;
bottom: 16%;
left: 8%;
height: 1px;
border-top: 1px solid;
}
.circuit-board span:nth-child(4) {
right: 12%;
bottom: 16%;
width: 1px;
height: 48%;
border-left: 1px solid;
}
.circuit-board span:nth-child(5),
.circuit-board span:nth-child(6) {
width: 10px;
height: 10px;
border: 1px solid rgba(134, 179, 143, 0.5);
border-radius: 50%;
background: var(--surface-light);
box-shadow: 0 0 22px rgba(134, 179, 143, 0.42);
}
.circuit-board span:nth-child(5) {
top: 5px;
left: calc(8% - 5px);
}
.circuit-board span:nth-child(6) {
right: calc(12% - 5px);
bottom: calc(16% - 5px);
}
.panel-metrics {
position: absolute;
right: 24px;
bottom: 24px;
left: 24px;
z-index: 3;
gap: 10px;
}
.panel-metrics div {
flex: 1;
min-height: 86px;
padding: 14px;
border: 1px solid var(--border);
border-radius: var(--radius);
background: rgba(15, 17, 17, 0.62);
backdrop-filter: blur(12px);
}
.panel-metrics span {
display: block;
margin-bottom: 10px;
color: var(--soft);
font-size: 0.74rem;
font-weight: 800;
}
.panel-metrics strong {
display: block;
font-size: 0.92rem;
}
.section-heading {
max-width: 780px;
margin-bottom: 34px;
}
.section-heading.centered {
max-width: 760px;
margin-right: auto;
margin-left: auto;
text-align: center;
}
.about-section,
.brand-section {
border-top: 1px solid var(--border);
}
.about-grid {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(320px, 0.62fr);
gap: 28px;
align-items: start;
}
.section-copy {
max-width: 760px;
}
.section-copy p:last-child,
.contact-panel p:last-of-type,
.service-card p,
.principle-list p,
.site-footer p {
margin-bottom: 0;
}
.studio-panel,
.service-card,
.principle-list article,
.contact-panel {
border: 1px solid var(--border);
border-radius: var(--radius);
background:
linear-gradient(180deg, rgba(31, 41, 36, 0.72), rgba(23, 28, 26, 0.78)),
rgba(23, 28, 26, 0.8);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}
.studio-panel {
padding: 22px;
}
.studio-panel dl {
margin-bottom: 0;
}
.studio-panel div {
display: grid;
grid-template-columns: 92px minmax(0, 1fr);
gap: 18px;
padding: 15px 0;
border-bottom: 1px solid var(--border);
}
.studio-panel div:first-child {
padding-top: 0;
}
.studio-panel div:last-child {
padding-bottom: 0;
border-bottom: 0;
}
.studio-panel dt {
color: var(--soft);
font-size: 0.78rem;
font-weight: 800;
text-transform: uppercase;
}
.studio-panel dd {
margin: 0;
color: var(--text);
font-weight: 700;
}
.card-grid,
.principle-list {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 16px;
}
.service-card,
.principle-list article {
min-height: 270px;
padding: 24px;
transition:
transform 180ms ease,
border-color 180ms ease,
background-color 180ms ease,
box-shadow 180ms ease;
}
.service-card:hover,
.principle-list article:hover {
transform: translateY(-5px);
border-color: rgba(134, 179, 143, 0.28);
background:
linear-gradient(180deg, rgba(31, 41, 36, 0.94), rgba(23, 28, 26, 0.86)),
rgba(23, 28, 26, 0.88);
box-shadow: 0 18px 44px rgba(0, 0, 0, 0.2);
}
.card-icon,
.line-icon {
display: block;
width: 38px;
height: 38px;
margin-bottom: 24px;
border: 1px solid rgba(134, 179, 143, 0.28);
border-radius: var(--radius);
background-color: rgba(42, 94, 62, 0.2);
background-repeat: no-repeat;
background-position: center;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.software-icon,
.foundation-icon {
background-image:
linear-gradient(
90deg,
transparent 10px,
var(--soft) 10px 12px,
transparent 12px
),
linear-gradient(
transparent 10px,
var(--accent) 10px 12px,
transparent 12px
);
}
.web-icon,
.experience-icon {
background-image:
linear-gradient(var(--soft), var(--soft)),
linear-gradient(var(--accent), var(--accent)),
linear-gradient(var(--accent), var(--accent));
background-size:
20px 2px,
14px 2px,
8px 2px;
background-position:
9px 12px,
9px 19px,
9px 26px;
}
.mobile-icon,
.maintain-icon {
background-image:
linear-gradient(var(--soft), var(--soft)),
linear-gradient(var(--accent), var(--accent));
background-size:
14px 2px,
2px 18px;
background-position:
11px 12px,
18px 13px;
}
.backend-icon,
.engineering-icon {
background-image:
radial-gradient(circle, var(--soft) 0 3px, transparent 4px),
radial-gradient(circle, var(--accent) 0 3px, transparent 4px),
linear-gradient(90deg, var(--accent), var(--accent));
background-size:
100% 100%,
100% 100%,
18px 1px;
background-position:
-8px -7px,
8px 9px,
11px 19px;
}
.service-card p,
.principle-list p {
color: var(--muted);
}
.brand-section {
padding-top: 92px;
}
.contact-section {
padding-top: 74px;
}
.contact-panel {
position: relative;
overflow: hidden;
padding: clamp(30px, 5vw, 58px);
background:
radial-gradient(
circle at 88% 24%,
rgba(79, 138, 107, 0.24),
transparent 24rem
),
linear-gradient(135deg, rgba(31, 41, 36, 0.94), rgba(15, 17, 17, 0.9));
box-shadow:
0 24px 70px rgba(0, 0, 0, 0.22),
inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.contact-panel::after {
position: absolute;
right: -100px;
bottom: -140px;
width: 340px;
height: 340px;
border: 1px solid rgba(134, 179, 143, 0.14);
border-radius: 50%;
content: "";
}
.contact-panel h2,
.contact-panel p,
.contact-panel .eyebrow,
.contact-link {
position: relative;
z-index: 1;
}
.contact-panel h2 {
max-width: 850px;
}
.contact-panel p {
max-width: 700px;
}
.contact-link {
margin-top: 22px;
}
.contact-note {
margin-top: 24px;
font-size: 0.96rem;
}
.site-footer {
justify-content: space-between;
gap: 22px;
width: min(100% - 40px, var(--max-width));
margin: 0 auto;
padding: 30px 0 42px;
border-top: 1px solid var(--border);
color: var(--muted);
font-size: 0.9rem;
}
.site-footer div {
flex-direction: column;
align-items: flex-start;
gap: 2px;
}
.site-footer strong {
color: var(--text);
}
.site-footer nav {
gap: 14px;
}
.site-footer a:hover,
.site-footer a:focus-visible {
color: var(--text);
outline: none;
}
@media (max-width: 1040px) {
.hero,
.about-grid {
grid-template-columns: 1fr;
}
.hero {
gap: 40px;
min-height: auto;
}
.hero-visual {
min-height: 460px;
}
.hero-panel {
min-height: 460px;
}
.card-grid,
.principle-list {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 720px) {
.site-header {
top: 10px;
width: min(100% - 24px, var(--max-width));
}
.nav-toggle {
display: block;
}
.site-nav {
position: absolute;
top: calc(100% + 8px);
right: 0;
left: 0;
display: none;
flex-direction: column;
align-items: stretch;
padding: 12px;
border: 1px solid var(--border);
border-radius: var(--radius);
background: rgba(15, 17, 17, 0.96);
box-shadow: 0 20px 42px var(--shadow);
}
.site-nav.is-open {
display: flex;
}
.site-nav a {
width: 100%;
}
.site-nav .nav-cta {
margin-left: 0;
text-align: center;
}
.section {
width: min(100% - 24px, var(--max-width));
padding: 68px 0;
}
.hero {
padding-top: 54px;
}
h1 {
font-size: clamp(2.35rem, 11vw, 3.55rem);
}
h2 {
font-size: clamp(1.9rem, 8vw, 2.55rem);
}
.hero-copy,
.section-copy,
.contact-panel p {
font-size: 1rem;
}
.hero-visual,
.hero-panel {
min-height: 390px;
}
.hero-panel {
padding: 18px;
}
.panel-mark {
width: 64px;
height: 64px;
}
.panel-mark svg {
width: 44px;
height: 44px;
}
.circuit-board {
inset: 120px 24px 122px;
}
.panel-metrics {
right: 16px;
bottom: 16px;
left: 16px;
display: grid;
grid-template-columns: 1fr;
}
.panel-metrics div {
min-height: auto;
padding: 11px 12px;
}
.panel-metrics span {
margin-bottom: 4px;
}
.card-grid,
.principle-list,
.site-footer {
grid-template-columns: 1fr;
}
.service-card,
.principle-list article {
min-height: auto;
}
.studio-panel div {
grid-template-columns: 1fr;
gap: 3px;
}
.site-footer {
display: grid;
justify-items: start;
width: min(100% - 24px, var(--max-width));
}
}
/* Prototype direction: cinematic forest landing page. */
body {
background: var(--bg);
}
body::before {
z-index: -3;
background:
linear-gradient(180deg, rgba(15, 17, 17, 0.34), #0f1111 86%),
linear-gradient(
90deg,
rgba(15, 17, 17, 0.96),
rgba(15, 17, 17, 0.56) 54%,
rgba(15, 17, 17, 0.88)
),
url("assets/images/backdrop.jpg") center top / cover no-repeat;
}
body::after {
z-index: -2;
height: auto;
opacity: 1;
background:
radial-gradient(
circle at 16% 20%,
rgba(134, 179, 143, 0.09),
transparent 28rem
),
radial-gradient(
circle at 72% 34%,
rgba(42, 94, 62, 0.18),
transparent 34rem
),
linear-gradient(rgba(255, 255, 255, 0.012) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.012) 1px, transparent 1px);
background-size:
auto,
auto,
92px 92px,
92px 92px;
}
.site-header {
position: fixed;
top: 28px;
right: 5vw;
left: 5vw;
width: min(90vw, var(--max-width));
min-height: auto;
padding: 0;
border: 0;
background: transparent;
box-shadow: none;
backdrop-filter: none;
}
.site-header.is-scrolled {
border-color: transparent;
background: transparent;
}
.brand {
gap: 14px;
}
.brand-mark {
width: 56px;
height: 56px;
border: 0;
background: transparent;
box-shadow: none;
}
.brand-mark svg {
width: 54px;
height: 54px;
}
.mark-branch {
fill: none;
stroke: var(--accent);
stroke-linejoin: round;
stroke-width: 1.8;
}
.mark-trunk,
.mark-root {
fill: none;
stroke: var(--soft);
stroke-linecap: round;
stroke-width: 1.7;
}
.brand-text {
display: grid;
gap: 2px;
text-transform: uppercase;
}
.brand-text strong {
color: var(--text);
font-size: clamp(1.25rem, 2.2vw, 2rem);
font-weight: 800;
line-height: 1;
letter-spacing: 0.16em;
text-shadow: 0 0 12px rgba(230, 232, 230, 0.22);
}
.brand-text span {
color: var(--soft);
font-size: clamp(0.74rem, 1.2vw, 1.03rem);
font-weight: 800;
line-height: 1;
letter-spacing: 0.42em;
}
.site-nav {
gap: clamp(18px, 3vw, 44px);
color: var(--text);
font-size: 0.86rem;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.site-nav a {
padding: 10px 0;
text-shadow: 0 0 12px rgba(230, 232, 230, 0.18);
}
.site-nav a:hover,
.site-nav a:focus-visible {
color: var(--soft);
background: transparent;
}
.site-nav .nav-cta {
padding: 10px 18px;
border: 1px solid rgba(134, 179, 143, 0.32);
border-radius: var(--radius);
color: var(--soft);
background: rgba(15, 17, 17, 0.28);
box-shadow: inset 0 0 18px rgba(134, 179, 143, 0.06);
}
.site-nav .nav-cta:hover,
.site-nav .nav-cta:focus-visible {
border-color: rgba(134, 179, 143, 0.5);
background: rgba(42, 94, 62, 0.18);
}
.hero {
position: relative;
display: block;
width: auto;
max-width: none;
min-height: 100vh;
overflow: hidden;
margin: 0;
padding: 160px max(5vw, 24px) 44px;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 0 0 28px 28px;
background:
linear-gradient(
180deg,
rgba(15, 17, 17, 0.06),
rgba(15, 17, 17, 0.38) 48%,
rgba(15, 17, 17, 0.96) 100%
),
linear-gradient(
90deg,
rgba(15, 17, 17, 0.82),
rgba(15, 17, 17, 0.36) 58%,
rgba(15, 17, 17, 0.8)
),
url("assets/images/backdrop.jpg") center top / cover no-repeat;
box-shadow:
inset 0 0 0 1px rgba(255, 255, 255, 0.03),
0 28px 90px rgba(0, 0, 0, 0.55);
}
.hero::before,
.hero::after {
position: absolute;
pointer-events: none;
content: "";
}
.hero::before {
inset: 0;
background:
radial-gradient(
circle at 23% 25%,
rgba(230, 232, 230, 0.08),
transparent 16rem
),
radial-gradient(
circle at 72% 54%,
rgba(42, 94, 62, 0.24),
transparent 28rem
);
mix-blend-mode: screen;
}
.hero::after {
inset: 0;
border-radius: inherit;
box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.78);
}
.hero-content,
.products-preview {
position: relative;
z-index: 2;
width: min(100%, var(--max-width));
margin: 0 auto;
}
.hero-content {
max-width: var(--max-width);
}
h1 {
max-width: 620px;
margin-bottom: 24px;
font-size: clamp(2.4rem, 4.3vw, 4.1rem);
font-weight: 500;
line-height: 1.18;
letter-spacing: 0.03em;
text-transform: uppercase;
text-shadow:
0 0 18px rgba(230, 232, 230, 0.22),
0 2px 18px rgba(0, 0, 0, 0.8);
}
h1 span,
h1 em {
display: block;
}
h1 em {
color: var(--accent);
font-style: normal;
font-weight: 800;
letter-spacing: 0.08em;
}
.hero-copy {
max-width: 510px;
margin-bottom: 34px;
color: rgba(230, 232, 230, 0.78);
font-size: clamp(1.02rem, 1.8vw, 1.22rem);
font-weight: 500;
text-shadow: 0 2px 16px rgba(0, 0, 0, 0.85);
}
.button,
.contact-link {
min-height: 50px;
padding: 0 22px;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.button-primary,
.contact-link {
border: 1px solid rgba(134, 179, 143, 0.42);
background: linear-gradient(
180deg,
rgba(79, 138, 107, 0.92),
rgba(42, 94, 62, 0.88)
);
box-shadow:
0 14px 30px rgba(0, 0, 0, 0.34),
inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.button span {
margin-left: 12px;
font-size: 1.45rem;
line-height: 1;
}
.products-preview {
margin-top: clamp(72px, 12vh, 132px);
}
.section-kicker {
margin-bottom: 24px;
color: var(--soft);
font-size: 0.9rem;
font-weight: 800;
letter-spacing: 0.12em;
text-align: center;
text-transform: uppercase;
}
.product-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 24px;
}
.product-card {
display: grid;
grid-template-columns: 82px minmax(0, 1fr);
gap: 20px;
min-height: 198px;
padding: 34px 32px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: var(--radius);
background:
radial-gradient(
circle at 20% 10%,
rgba(134, 179, 143, 0.08),
transparent 12rem
),
rgba(15, 17, 17, 0.56);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.03),
0 20px 44px rgba(0, 0, 0, 0.28);
backdrop-filter: blur(12px);
transition:
transform 180ms ease,
border-color 180ms ease,
background-color 180ms ease;
}
.product-card:hover {
transform: translateY(-5px);
border-color: rgba(134, 179, 143, 0.3);
background-color: rgba(23, 28, 26, 0.7);
}
.product-card h2 {
margin-bottom: 14px;
color: var(--text);
font-size: 1.1rem;
font-weight: 800;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.product-card p {
margin-bottom: 24px;
color: rgba(230, 232, 230, 0.7);
font-weight: 600;
}
.product-card a {
color: var(--soft);
font-size: 0.84rem;
font-weight: 800;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.product-icon {
position: relative;
display: block;
width: 58px;
height: 68px;
opacity: 0.9;
background-repeat: no-repeat;
background-position: center;
}
.phone-icon {
border: 3px solid var(--accent);
border-radius: 8px;
box-shadow:
inset 0 0 0 1px rgba(134, 179, 143, 0.18),
0 0 22px rgba(79, 138, 107, 0.18);
}
.phone-icon::before {
position: absolute;
top: 8px;
left: 50%;
width: 22px;
height: 3px;
border-radius: 999px;
background: var(--accent);
content: "";
transform: translateX(-50%);
}
.server-icon {
height: 58px;
background:
linear-gradient(var(--accent), var(--accent)) 16px 14px / 7px 3px
no-repeat,
linear-gradient(var(--accent), var(--accent)) 28px 14px / 13px 3px
no-repeat,
linear-gradient(var(--accent), var(--accent)) 16px 30px / 7px 3px
no-repeat,
linear-gradient(var(--accent), var(--accent)) 28px 30px / 13px 3px
no-repeat,
linear-gradient(var(--accent), var(--accent)) 16px 46px / 7px 3px
no-repeat,
linear-gradient(var(--accent), var(--accent)) 28px 46px / 13px 3px
no-repeat;
}
.server-icon::before {
position: absolute;
top: 4px;
left: 0;
width: 58px;
height: 13px;
border: 3px solid var(--accent);
border-radius: 5px;
box-shadow:
0 18px 0 0 rgba(79, 138, 107, 0.8),
0 36px 0 0 rgba(79, 138, 107, 0.8);
content: "";
}
.code-icon {
width: 74px;
height: 60px;
background: linear-gradient(
105deg,
transparent 41%,
var(--accent) 42% 48%,
transparent 49%
);
}
.code-icon::before,
.code-icon::after {
position: absolute;
top: 11px;
width: 24px;
height: 24px;
border-color: var(--accent);
border-style: solid;
content: "";
transform: rotate(45deg);
}
.code-icon::before {
left: 4px;
border-width: 0 0 4px 4px;
}
.code-icon::after {
right: 4px;
border-width: 4px 4px 0 0;
}
@media (max-width: 1040px) {
.product-grid {
grid-template-columns: 1fr;
}
}
@media (max-width: 760px) {
body::before {
background:
linear-gradient(180deg, rgba(15, 17, 17, 0.42), #0f1111 82%),
linear-gradient(
90deg,
rgba(15, 17, 17, 0.92),
rgba(15, 17, 17, 0.72)
),
url("assets/images/backdrop.jpg") center top / cover no-repeat;
}
.site-header {
top: 16px;
right: 16px;
left: 16px;
width: auto;
}
.brand-mark {
width: 46px;
height: 46px;
}
.brand-mark svg {
width: 44px;
height: 44px;
}
.brand-text strong {
font-size: 1.1rem;
}
.brand-text span {
font-size: 0.66rem;
}
.site-nav {
background: rgba(15, 17, 17, 0.94);
backdrop-filter: blur(16px);
}
.site-nav a,
.site-nav .nav-cta {
width: 100%;
margin-left: 0;
padding: 11px 12px;
text-align: left;
}
.hero {
padding: 132px 20px 36px;
border-radius: 0 0 20px 20px;
}
h1 {
font-size: clamp(2.2rem, 10vw, 3.4rem);
}
.products-preview {
margin-top: 58px;
}
.product-card {
grid-template-columns: 58px minmax(0, 1fr);
padding: 24px 20px;
}
}
@media (max-width: 920px) {
.nav-toggle {
display: block;
}
.site-nav {
position: absolute;
top: calc(100% + 8px);
right: 14px;
left: 14px;
display: none;
flex-direction: column;
align-items: stretch;
gap: 0;
padding: 12px;
border: 1px solid var(--border);
border-radius: var(--radius);
background: rgba(15, 17, 17, 0.96);
box-shadow: 0 20px 42px var(--shadow);
backdrop-filter: blur(16px);
}
.site-nav.is-open {
display: flex;
}
.site-nav a,
.site-nav .nav-cta {
width: 100%;
margin-left: 0;
padding: 11px 12px;
text-align: left;
}
}
/* Keep the supplied forest image scoped to the hero only. */
body {
background:
radial-gradient(
circle at 80% 12%,
rgba(79, 138, 107, 0.12),
transparent 30rem
),
linear-gradient(rgba(255, 255, 255, 0.012) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.012) 1px, transparent 1px),
var(--bg);
background-size:
auto,
92px 92px,
92px 92px,
auto;
}
body::before {
background: none;
}
body::after {
background:
radial-gradient(
circle at 18% 22%,
rgba(42, 94, 62, 0.14),
transparent 26rem
),
linear-gradient(180deg, transparent, rgba(15, 17, 17, 0.8));
}
.hero {
min-height: 100vh;
padding-bottom: clamp(96px, 16vh, 170px);
}
.hero-content {
padding-top: clamp(24px, 5vh, 72px);
}
.hero-content,
.products-preview {
width: min(100%, var(--max-width));
}
.products-preview,
.product-grid,
.product-card,
.product-icon {
display: none;
}
.about-section {
margin-top: 0;
}
@media (max-width: 760px) {
body::before {
background: none;
}
.hero {
min-height: 100vh;
padding-bottom: 84px;
}
}
/* Add quiet visual variety below the hero. */
main {
position: relative;
overflow: hidden;
}
main::before {
position: absolute;
top: 100vh;
right: 0;
left: 0;
z-index: -1;
height: calc(100% - 100vh);
pointer-events: none;
content: "";
background:
linear-gradient(
90deg,
transparent 0 18%,
rgba(134, 179, 143, 0.08) 18% 18.08%,
transparent 18.08% 100%
),
linear-gradient(
90deg,
transparent 0 66%,
rgba(79, 138, 107, 0.07) 66% 66.08%,
transparent 66.08% 100%
),
linear-gradient(
180deg,
transparent 0 22%,
rgba(134, 179, 143, 0.06) 22% 22.08%,
transparent 22.08% 100%
),
radial-gradient(
circle at 84% 24%,
rgba(79, 138, 107, 0.16),
transparent 24rem
);
}
.about-section {
position: relative;
}
.about-section::after {
position: absolute;
right: max(20px, calc((100vw - var(--max-width)) / 2));
bottom: 42px;
width: 180px;
height: 180px;
border: 1px solid rgba(134, 179, 143, 0.12);
border-radius: 50%;
pointer-events: none;
content: "";
}
#work {
position: relative;
padding-top: 72px;
padding-bottom: 112px;
}
#work .section-heading {
max-width: 540px;
margin-bottom: 28px;
}
#work .card-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 18px;
}
#work .service-card {
position: relative;
display: grid;
grid-template-columns: 48px minmax(0, 1fr);
gap: 18px;
min-height: 172px;
padding: 24px;
overflow: hidden;
background:
linear-gradient(135deg, rgba(31, 41, 36, 0.82), rgba(15, 17, 17, 0.72)),
rgba(23, 28, 26, 0.8);
}
#work .service-card:nth-child(even) {
transform: translateY(28px);
}
#work .service-card:hover {
transform: translateY(-3px);
}
#work .service-card:nth-child(even):hover {
transform: translateY(23px);
}
#work .service-card::after {
position: absolute;
right: -40px;
bottom: -40px;
width: 130px;
height: 130px;
border: 1px solid rgba(134, 179, 143, 0.12);
border-radius: 50%;
content: "";
}
#work .card-icon {
margin-bottom: 0;
}
#work .service-card h3 {
margin-bottom: 8px;
}
.brand-section {
position: relative;
width: min(100% - 40px, var(--max-width));
padding: 46px;
border: 1px solid var(--border);
border-radius: var(--radius);
background:
linear-gradient(180deg, rgba(23, 28, 26, 0.78), rgba(15, 17, 17, 0.82)),
rgba(15, 17, 17, 0.72);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}
.brand-section::before {
position: absolute;
top: 50%;
right: 46px;
left: 46px;
height: 1px;
background: linear-gradient(
90deg,
transparent,
rgba(134, 179, 143, 0.22),
transparent
);
content: "";
}
.brand-section .section-heading {
max-width: 620px;
margin-right: 0;
margin-left: 0;
text-align: left;
}
.principle-list {
position: relative;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 12px;
}
.principle-list article {
min-height: 210px;
padding: 22px;
background: rgba(15, 17, 17, 0.58);
backdrop-filter: blur(10px);
}
.principle-list article:nth-child(2),
.principle-list article:nth-child(4) {
margin-top: 34px;
}
.principle-list article:hover {
transform: translateY(-3px);
}
@media (max-width: 1040px) {
#work .card-grid,
.principle-list {
grid-template-columns: 1fr 1fr;
}
#work .service-card:nth-child(even),
#work .service-card:nth-child(even):hover,
.principle-list article:nth-child(2),
.principle-list article:nth-child(4) {
margin-top: 0;
transform: none;
}
.brand-section::before {
display: none;
}
}
@media (max-width: 760px) {
#work .card-grid,
.principle-list {
grid-template-columns: 1fr;
}
#work .service-card {
grid-template-columns: 1fr;
}
.brand-section {
width: min(100% - 24px, var(--max-width));
padding: 28px 20px;
}
}
/* Fixed header with supplied logo asset. */
.site-header {
position: fixed;
top: 22px;
right: 5vw;
left: 5vw;
width: min(90vw, var(--max-width));
min-height: 70px;
padding: 10px 14px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: var(--radius);
background: rgba(15, 17, 17, 0.52);
box-shadow:
0 18px 54px rgba(0, 0, 0, 0.28),
inset 0 1px 0 rgba(255, 255, 255, 0.04);
backdrop-filter: blur(18px);
}
.site-header.is-scrolled {
border-color: rgba(134, 179, 143, 0.18);
background: rgba(15, 17, 17, 0.82);
}
.brand-mark {
width: 50px;
height: 50px;
overflow: hidden;
border: 0;
border-radius: 6px;
background: transparent;
box-shadow: none;
}
.brand-mark img {
display: block;
width: 100%;
height: 100%;
object-fit: contain;
}
@media (max-width: 760px) {
.site-header {
top: 14px;
right: 12px;
left: 12px;
width: auto;
min-height: 64px;
padding: 9px 10px;
}
.brand-mark {
width: 44px;
height: 44px;
}
}
/* Final header and below-hero polish. */
.site-header {
position: fixed;
top: 0;
right: 0;
left: 0;
width: 100%;
min-height: 82px;
padding: 12px max(5vw, 22px);
border: 0;
border-radius: 0;
background: linear-gradient(
180deg,
rgba(15, 17, 17, 0.86),
rgba(15, 17, 17, 0.5) 72%,
transparent
);
box-shadow: none;
backdrop-filter: blur(14px);
}
.site-header.is-scrolled {
border: 0;
background: rgba(15, 17, 17, 0.9);
}
.site-nav .nav-cta {
border: 0;
background: rgba(42, 94, 62, 0.28);
}
.brand-mark {
width: 64px;
height: 64px;
overflow: visible;
}
.brand-mark img {
transform: none;
transform-origin: center;
}
.hero {
padding-top: 176px;
}
.section {
position: relative;
}
.about-section {
display: grid;
grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr);
gap: clamp(34px, 6vw, 86px);
align-items: start;
padding-top: 118px;
}
.about-section .section-heading {
position: sticky;
top: 112px;
margin-bottom: 0;
}
.about-grid {
grid-template-columns: 1fr;
gap: 24px;
}
.section-copy {
max-width: 760px;
padding: 30px;
border-left: 1px solid rgba(134, 179, 143, 0.28);
background:
linear-gradient(90deg, rgba(42, 94, 62, 0.08), transparent 42%),
rgba(15, 17, 17, 0.18);
}
.studio-panel {
max-width: 760px;
background: rgba(15, 17, 17, 0.42);
}
#work {
padding-top: 92px;
}
#work::before {
position: absolute;
top: 52px;
right: 0;
left: 0;
height: 1px;
background: linear-gradient(
90deg,
transparent,
rgba(134, 179, 143, 0.24),
transparent
);
content: "";
}
#work .section-heading {
display: grid;
grid-template-columns: minmax(0, 0.6fr) minmax(0, 1fr);
gap: 28px;
max-width: none;
align-items: end;
}
#work .section-heading .eyebrow {
text-align: left;
}
#work .section-heading h2 {
max-width: 520px;
margin-bottom: 0;
}
#work .card-grid {
display: grid;
grid-template-columns: 1fr;
gap: 0;
border-top: 1px solid var(--border);
}
#work .service-card {
display: grid;
grid-template-columns: 56px minmax(220px, 0.42fr) minmax(0, 1fr);
gap: 22px;
min-height: auto;
padding: 26px 0;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
}
#work .service-card:nth-child(even),
#work .service-card:nth-child(even):hover,
#work .service-card:hover {
transform: none;
}
#work .service-card::after {
display: none;
}
#work .card-icon {
width: 10px;
height: 10px;
margin: 12px 0 0 14px;
border-color: rgba(134, 179, 143, 0.42);
border-radius: 50%;
background-color: var(--soft);
background-image: none;
box-shadow: 0 0 0 6px rgba(42, 94, 62, 0.18);
opacity: 0.82;
}
#work .service-card h3 {
margin: 5px 0 0;
font-size: 1.15rem;
}
#work .service-card p {
max-width: 620px;
}
.brand-section {
display: grid;
grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr);
gap: clamp(28px, 5vw, 64px);
align-items: start;
padding: 54px;
}
.brand-section .section-heading {
margin-bottom: 0;
}
.brand-section .section-heading h2 {
font-size: clamp(1.8rem, 2.4vw, 2.5rem);
}
.brand-section::before {
top: auto;
right: 54px;
bottom: 54px;
left: 54px;
}
.principle-list {
grid-template-columns: 1fr 1fr;
}
.principle-list article,
.principle-list article:nth-child(2),
.principle-list article:nth-child(4) {
min-height: 190px;
margin-top: 0;
}
.contact-panel {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(290px, auto);
gap: clamp(28px, 6vw, 84px);
align-items: start;
}
.resources-section {
padding-top: 84px;
padding-bottom: 28px;
}
.resources-section .section-heading {
max-width: 600px;
margin-bottom: 22px;
}
.resources-section .section-heading h2 {
font-size: clamp(1.65rem, 2.5vw, 2.35rem);
}
.resource-links {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
border-top: 1px solid var(--border);
}
.resource-links a {
position: relative;
display: block;
padding: 24px 22px 24px 0;
border-bottom: 1px solid var(--border);
transition:
background-color 160ms ease,
border-color 160ms ease,
padding-left 160ms ease;
}
.resource-links a + a {
padding-left: 22px;
border-left: 1px solid var(--border);
}
.resource-links a::after {
position: absolute;
top: 28px;
right: 22px;
color: var(--soft);
content: "";
font-size: 1.3rem;
line-height: 1;
opacity: 0.68;
transition:
opacity 160ms ease,
transform 160ms ease;
}
.resource-links a:hover,
.resource-links a:focus-visible {
padding-left: 12px;
border-color: rgba(134, 179, 143, 0.24);
background: rgba(255, 255, 255, 0.026);
outline: none;
}
.resource-links a:hover::after,
.resource-links a:focus-visible::after {
opacity: 1;
transform: translateX(4px);
}
.resource-links span {
display: block;
margin-bottom: 8px;
color: var(--text);
font-weight: 800;
}
.resource-links p {
max-width: 420px;
margin: 0;
color: var(--muted);
}
.contact-copy {
max-width: 650px;
}
.contact-action {
display: flex;
justify-content: flex-end;
align-self: center;
}
.contact-note {
grid-column: 1 / -1;
max-width: none;
margin-top: 8px;
padding-top: 24px;
border-top: 1px solid rgba(255, 255, 255, 0.08);
}
@media (max-width: 920px) {
.about-section,
#work .section-heading,
.brand-section,
.contact-panel {
grid-template-columns: 1fr;
}
.about-section .section-heading {
position: static;
}
#work .service-card {
grid-template-columns: 48px minmax(0, 1fr);
}
#work .service-card p {
grid-column: 2;
}
.contact-action {
justify-self: start;
justify-content: flex-start;
}
}
@media (max-width: 760px) {
.site-header {
top: 0;
right: 0;
left: 0;
width: 100%;
min-height: 72px;
padding: 9px 14px;
}
.brand-mark {
width: 54px;
height: 54px;
}
.hero {
padding-top: 142px;
}
.section-copy,
.brand-section {
padding: 24px 18px;
}
#work .service-card {
grid-template-columns: 1fr;
}
#work .service-card p {
grid-column: auto;
}
.principle-list {
grid-template-columns: 1fr;
}
}
/* Footer refresh and compact logo sizing. */
.site-header {
min-height: 74px;
padding-top: 10px;
padding-bottom: 10px;
}
.brand {
gap: 12px;
}
.brand-mark {
width: 48px;
height: 64px;
padding: 3px 2px;
overflow: visible;
}
.brand-mark img,
.footer-mark img {
display: block;
width: 100%;
height: 100%;
object-fit: contain;
}
.brand-mark img {
transform: scale(1.22);
transform-origin: center;
}
.contact-link {
gap: 12px;
min-height: 58px;
padding: 0 26px;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: var(--radius);
color: #f4f7f4;
font-family:
"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas,
monospace;
font-size: 0.96rem;
font-weight: 700;
letter-spacing: 0;
text-transform: lowercase;
background: rgba(15, 17, 17, 0.34);
box-shadow: none;
}
.contact-panel {
grid-template-columns: minmax(0, 1fr) minmax(290px, auto);
align-items: start;
padding: clamp(34px, 5vw, 62px);
}
.contact-copy,
.contact-action,
.contact-note {
position: relative;
z-index: 1;
}
.contact-copy .eyebrow {
margin-bottom: 18px;
}
.contact-copy h2 {
max-width: 560px;
margin-bottom: 22px;
font-size: clamp(2.4rem, 4vw, 4rem);
}
.contact-copy p {
max-width: 650px;
}
.contact-action {
justify-self: end;
padding-top: 72px;
}
.contact-panel .contact-note {
grid-column: 1 / -1;
max-width: none;
margin: 8px 0 0;
padding-top: 24px;
border-top: 1px solid rgba(255, 255, 255, 0.08);
font-size: 0.96rem;
}
.contact-link:hover,
.contact-link:focus-visible {
border-color: rgba(134, 179, 143, 0.34);
background: rgba(15, 17, 17, 0.54);
}
.email-icon {
position: relative;
width: 16px;
height: 12px;
border: 1.5px solid var(--accent);
border-radius: 2px;
flex: 0 0 auto;
}
.email-icon::before,
.email-icon::after {
position: absolute;
top: 2px;
width: 8px;
height: 1.5px;
background: var(--accent);
content: "";
}
.email-icon::before {
left: 1px;
transform: rotate(35deg);
transform-origin: left center;
}
.email-icon::after {
right: 1px;
transform: rotate(-35deg);
transform-origin: right center;
}
.site-footer {
display: block;
width: 100%;
margin: 44px 0 0;
padding: 56px max(2.5vw, 18px) 40px;
border-top: 1px solid rgba(255, 255, 255, 0.08);
color: var(--muted);
background: rgba(10, 12, 12, 0.44);
font-size: 0.9rem;
}
.site-footer .footer-inner,
.site-footer .footer-bottom {
width: min(100%, 1320px);
margin: 0 auto;
}
.site-footer .footer-inner {
display: grid;
grid-template-columns: minmax(300px, 1fr) auto;
gap: clamp(72px, 18vw, 260px);
align-items: start;
}
.site-footer .footer-brand {
display: block;
max-width: 330px;
}
.footer-logo {
display: inline-flex;
align-items: center;
gap: 16px;
margin-bottom: 24px;
}
.footer-mark {
display: block;
width: 52px;
height: 68px;
}
.footer-wordmark,
.brand-text {
display: grid;
gap: 2px;
text-transform: uppercase;
}
.footer-wordmark strong {
color: var(--text);
font-size: 1.12rem;
font-weight: 800;
line-height: 1;
letter-spacing: 0.34em;
}
.footer-wordmark span {
color: var(--soft);
font-size: 0.66rem;
font-weight: 800;
line-height: 1;
letter-spacing: 0.54em;
}
.footer-brand p {
margin-bottom: 18px;
color: rgba(230, 232, 230, 0.7);
line-height: 1.7;
}
.footer-location,
.footer-bottom span {
font-family:
"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas,
monospace;
letter-spacing: 0.08em;
}
.footer-location {
position: relative;
display: inline-block;
padding-left: 18px;
color: rgba(230, 232, 230, 0.76);
font-size: 0.82rem;
font-weight: 600;
}
.footer-location::before {
position: absolute;
top: 0.55em;
left: 0;
width: 7px;
height: 7px;
border: 1px solid var(--muted);
border-radius: 50% 50% 50% 0;
content: "";
transform: translateY(-50%) rotate(-45deg);
}
.footer-location::after {
position: absolute;
top: 0.55em;
left: 3px;
width: 2px;
height: 2px;
border-radius: 50%;
background: var(--muted);
content: "";
transform: translateY(-50%);
}
.site-footer .footer-links {
display: grid;
grid-template-columns: repeat(2, minmax(90px, 1fr));
gap: clamp(44px, 6vw, 84px);
justify-self: end;
min-width: min(100%, 440px);
justify-items: end;
text-align: right;
}
.site-footer .footer-links div {
display: grid;
gap: 14px;
justify-items: end;
}
.footer-links h2 {
margin: 0 0 12px;
color: var(--text);
font-family:
"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas,
monospace;
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.34em;
line-height: 1;
text-transform: uppercase;
}
.footer-links a {
color: rgba(230, 232, 230, 0.74);
font-size: 0.9rem;
}
.footer-links a:hover,
.footer-links a:focus-visible {
color: var(--text);
outline: none;
}
.site-footer .footer-bottom {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
gap: 24px;
margin-top: 50px;
padding-top: 26px;
border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.footer-bottom p,
.footer-bottom span {
margin: 0;
color: rgba(230, 232, 230, 0.68);
font-size: 0.78rem;
}
@media (max-width: 920px) {
.contact-panel {
grid-template-columns: 1fr;
}
.contact-action {
justify-self: start;
padding-top: 0;
}
.resource-links {
grid-template-columns: 1fr;
}
.resource-links a,
.resource-links a + a {
padding-right: 0;
padding-left: 0;
border-left: 0;
}
.resource-links a::after {
right: 4px;
}
.resource-links a:hover,
.resource-links a:focus-visible {
padding-left: 10px;
}
}
@media (max-width: 760px) {
.site-header {
min-height: 66px;
}
.brand-mark {
width: 40px;
height: 54px;
}
.contact-link {
justify-self: start;
width: auto;
max-width: 100%;
min-height: 52px;
padding: 0 18px;
font-size: clamp(0.78rem, 3.4vw, 0.94rem);
}
.contact-panel {
grid-template-columns: 1fr;
}
.contact-action {
justify-self: start;
padding-top: 0;
}
.site-footer {
padding: 46px 24px 36px;
}
.site-footer .footer-inner,
.site-footer .footer-bottom {
width: 100%;
}
.site-footer .footer-inner,
.site-footer .footer-links,
.site-footer .footer-bottom {
grid-template-columns: 1fr;
}
.site-footer .footer-inner {
gap: 42px;
}
.site-footer .footer-links,
.site-footer .footer-links div {
justify-items: start;
min-width: 0;
text-align: left;
}
.site-footer .footer-bottom {
display: grid;
gap: 16px;
}
}
/* Public privacy and support pages. */
.content-page {
min-height: 100vh;
background:
radial-gradient(
circle at 82% 8%,
rgba(79, 138, 107, 0.11),
transparent 28rem
),
radial-gradient(
circle at 14% 24%,
rgba(184, 137, 185, 0.08),
transparent 24rem
),
linear-gradient(rgba(255, 255, 255, 0.012) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.012) 1px, transparent 1px),
#0f100d;
background-size:
auto,
auto,
92px 92px,
92px 92px,
auto;
}
.content-page main::before {
display: none;
}
.content-main {
width: min(100% - 48px, 1040px);
margin: 0 auto;
padding: 150px 0 64px;
}
.content-shell {
padding: clamp(26px, 5vw, 44px);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: var(--radius);
background:
linear-gradient(180deg, rgba(23, 28, 26, 0.72), rgba(15, 16, 13, 0.88)),
rgba(15, 16, 13, 0.84);
box-shadow:
0 24px 70px rgba(0, 0, 0, 0.26),
inset 0 1px 0 rgba(255, 255, 255, 0.035);
}
.content-shell h1 {
max-width: none;
margin-bottom: 20px;
font-size: clamp(1.95rem, 4.8vw, 3rem);
font-weight: 700;
line-height: 1.12;
letter-spacing: 0;
text-transform: none;
}
.content-shell h2 {
margin: 38px 0 14px;
color: var(--text);
font-size: clamp(1.18rem, 2.6vw, 1.48rem);
letter-spacing: 0;
}
.content-shell p,
.content-shell li,
.content-shell dd {
color: rgba(244, 239, 231, 0.78);
font-size: 1rem;
line-height: 1.75;
}
.content-shell .lead {
color: #f4efe7;
font-size: clamp(1.08rem, 2.8vw, 1.22rem);
}
.content-shell p {
margin-bottom: 16px;
}
.content-shell ul {
margin: 0 0 20px;
padding-left: 1.2rem;
}
.content-shell li + li {
margin-top: 8px;
}
.content-shell a {
color: #a9d6b2;
text-decoration: underline;
text-decoration-color: rgba(169, 214, 178, 0.34);
text-underline-offset: 0.22em;
}
.content-shell a:hover,
.content-shell a:focus-visible {
color: #f4efe7;
outline: 2px solid rgba(169, 214, 178, 0.52);
outline-offset: 4px;
}
.breadcrumb,
.related-links {
display: flex;
flex-wrap: wrap;
gap: 10px;
align-items: center;
margin-bottom: 26px;
color: var(--muted);
font-size: 0.9rem;
}
.related-links {
margin: 42px 0 0;
padding-top: 24px;
border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.link-list {
list-style: none;
padding-left: 0;
}
.link-list li {
padding: 14px 0;
border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.link-list li:last-child {
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.policy-meta {
display: grid;
gap: 0;
margin: 0 0 28px;
border-top: 1px solid rgba(255, 255, 255, 0.08);
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.policy-meta div {
display: grid;
grid-template-columns: minmax(130px, 0.32fr) minmax(0, 1fr);
gap: 18px;
padding: 13px 0;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.policy-meta div:last-child {
border-bottom: 0;
}
.policy-meta dt {
color: var(--soft);
font-family:
"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas,
monospace;
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.policy-meta dd {
margin: 0;
}
@media (max-width: 760px) {
.content-main {
width: min(100% - 24px, 1040px);
}
.content-main {
padding-top: 112px;
padding-bottom: 42px;
}
.content-shell {
padding: 24px 18px;
}
.policy-meta div {
grid-template-columns: 1fr;
gap: 4px;
}
}