blob: 9cee0afa513b2693b2e9aa96ad1b72a5f2f718a1 [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.
*/
.container {
margin: 6rem auto 4rem;
max-width: 68.75rem;
padding: 0 1.5rem;
}
.sectionTitle {
font-size: 2.2rem;
font-weight: 700;
letter-spacing: -0.02em;
background: var(--otava-aurora);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
margin-bottom: 0.75rem;
}
.sectionSubtitle {
font-size: 1.25rem;
color: var(--ifm-color-emphasis-700);
max-width: 43.75rem;
margin: 0 auto;
font-weight: 400;
line-height: 1.5;
}
.grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 2rem;
margin-top: 7rem;
}
.card {
background: var(--ifm-background-surface-color);
border: 0.0625rem solid var(--ifm-color-emphasis-200);
border-radius: var(--ifm-card-border-radius);
padding: 2.25rem 2rem;
transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
display: flex;
flex-direction: column;
align-items: flex-start;
position: relative;
box-shadow: 0 0.25rem 1.5rem rgba(31, 31, 43, 0.06);
}
.card::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 100%;
border-radius: var(--ifm-card-border-radius);
background: radial-gradient(
50rem circle at var(--x, 0px) var(--y, 0px),
rgba(63, 138, 134, 0.08),
transparent 40%
);
opacity: 0;
transition: opacity 0.5s ease;
pointer-events: none;
}
.card:hover {
transform: translateY(-0.375rem) scale(1.015);
border-color: rgba(63, 138, 134, 0.45);
box-shadow:
0 0.875rem 2.5rem rgba(35, 43, 43, 0.1),
0 0 1.5625rem rgba(63, 138, 134, 0.12);
}
.card:hover::before {
opacity: 1;
}
.iconWrapper {
width: 3rem;
height: 3rem;
border-radius: 0.75rem;
display: flex;
align-items: center;
justify-content: center;
background: rgba(63, 138, 134, 0.1);
color: var(--ifm-color-primary);
margin-bottom: 1.5rem;
transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.iconWrapper svg {
width: 1.5rem;
height: 1.5rem;
}
.card:hover .iconWrapper {
background: var(--otava-aurora);
color: #ffffff;
transform: scale(1.08) rotate(2deg);
box-shadow: 0 0 0.9375rem rgba(63, 138, 134, 0.3);
}
.cardTitle {
font-size: 1.375rem;
font-weight: 600;
margin-bottom: 0.85rem;
color: var(--ifm-heading-color);
letter-spacing: -0.01em;
}
.cardDesc {
font-size: 0.96875rem;
line-height: 1.62;
color: var(--ifm-color-emphasis-700);
opacity: 0.9;
margin: 0;
font-weight: 400;
transition: opacity 0.3s ease;
}
.card:hover .cardDesc {
opacity: 1;
}
@media (max-width: 62.25rem) {
.grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1.5rem;
}
.container {
margin: 4rem auto 3rem;
}
.sectionTitle {
font-size: 1.9rem;
}
}
@media (max-width: 40rem) {
.grid {
grid-template-columns: 1fr;
gap: 1.25rem;
}
.container {
margin: 3rem auto 2rem;
}
.sectionTitle {
font-size: 1.7rem;
}
.sectionSubtitle {
font-size: 1.1rem;
}
.card {
padding: 1.75rem 1.5rem;
}
}