273 lines
6.7 KiB
CSS
273 lines
6.7 KiB
CSS
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300&family=Jost:wght@300;400;500&display=swap');
|
|
|
|
/* ── Host fills the padded app-root container ───────────────────── */
|
|
:host {
|
|
display: block;
|
|
height: calc(100vh - 40px); /* compensates for app-root padding: 20px */
|
|
}
|
|
|
|
/* ── Page shell ─────────────────────────────────────────────────── */
|
|
.page {
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
position: relative;
|
|
overflow: hidden;
|
|
background-color: #1a1714;
|
|
background-image:
|
|
radial-gradient(ellipse 70% 60% at 14% 56%, rgba(200, 169, 110, 0.07) 0%, transparent 100%),
|
|
radial-gradient(ellipse 50% 50% at 87% 24%, rgba(200, 169, 110, 0.045) 0%, transparent 100%);
|
|
}
|
|
|
|
/* Subtle horizontal staff-line texture */
|
|
.page::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background-image: repeating-linear-gradient(
|
|
to bottom,
|
|
transparent 0px,
|
|
transparent 59px,
|
|
rgba(200, 169, 110, 0.033) 59px,
|
|
rgba(200, 169, 110, 0.033) 60px
|
|
);
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* ── Admin link ─────────────────────────────────────────────────── */
|
|
.admin-link {
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
font-family: 'Jost', sans-serif;
|
|
font-size: 0.68rem;
|
|
font-weight: 300;
|
|
letter-spacing: 0.14em;
|
|
text-transform: uppercase;
|
|
color: rgba(240, 230, 211, 0.28);
|
|
text-decoration: none;
|
|
transition: color 0.25s;
|
|
z-index: 2;
|
|
}
|
|
|
|
.admin-link:hover {
|
|
color: #c8a96e;
|
|
}
|
|
|
|
/* ── Hero content ───────────────────────────────────────────────── */
|
|
.hero {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 2.25rem;
|
|
width: 100%;
|
|
max-width: 800px;
|
|
padding: 0 1rem;
|
|
}
|
|
|
|
/* ── Title block ────────────────────────────────────────────────── */
|
|
.title-block {
|
|
text-align: center;
|
|
animation: rise 0.85s cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
}
|
|
|
|
.clef {
|
|
display: block;
|
|
font-size: 2.2rem;
|
|
line-height: 1.1;
|
|
color: #c8a96e;
|
|
opacity: 0.65;
|
|
margin-bottom: 0.2rem;
|
|
}
|
|
|
|
h1 {
|
|
font-family: 'Cormorant Garamond', 'Palatino Linotype', Palatino, Georgia, serif;
|
|
font-size: clamp(2.8rem, 7.5vw, 5rem);
|
|
font-weight: 300;
|
|
letter-spacing: 0.22em;
|
|
color: #f0e6d3;
|
|
margin: 0 0 0.25em;
|
|
line-height: 1;
|
|
}
|
|
|
|
.tagline {
|
|
font-family: 'Cormorant Garamond', Georgia, serif;
|
|
font-size: clamp(0.8rem, 1.8vw, 1rem);
|
|
font-weight: 300;
|
|
font-style: italic;
|
|
color: #c8a96e;
|
|
letter-spacing: 0.35em;
|
|
text-transform: uppercase;
|
|
margin: 0 0 1.1rem;
|
|
}
|
|
|
|
.ornament-line {
|
|
width: 44px;
|
|
height: 1px;
|
|
background: linear-gradient(90deg, transparent, #c8a96e 35%, #c8a96e 65%, transparent);
|
|
margin: 0 auto 1.1rem;
|
|
}
|
|
|
|
.description {
|
|
font-family: 'Jost', sans-serif;
|
|
font-size: 0.8rem;
|
|
font-weight: 300;
|
|
color: rgba(240, 230, 211, 0.38);
|
|
letter-spacing: 0.06em;
|
|
margin: 0;
|
|
}
|
|
|
|
/* ── Cards grid ─────────────────────────────────────────────────── */
|
|
.cards {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 0.875rem;
|
|
width: 100%;
|
|
animation: rise 0.85s cubic-bezier(0.16, 1, 0.3, 1) 0.14s both;
|
|
}
|
|
|
|
/* ── Individual card ────────────────────────────────────────────── */
|
|
.card {
|
|
background: rgba(255, 255, 255, 0.025);
|
|
border: 1px solid rgba(200, 169, 110, 0.13);
|
|
border-radius: 4px;
|
|
padding: 1.75rem 1rem 1.5rem;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 0.55rem;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
cursor: pointer;
|
|
font-family: 'Jost', sans-serif;
|
|
font-size: inherit;
|
|
text-align: center;
|
|
transition:
|
|
border-color 0.3s ease,
|
|
background 0.3s ease,
|
|
transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
|
|
position: relative;
|
|
}
|
|
|
|
.card::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
border-radius: 3px;
|
|
background: linear-gradient(145deg, rgba(200, 169, 110, 0.07) 0%, transparent 65%);
|
|
opacity: 0;
|
|
transition: opacity 0.3s;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.card:hover {
|
|
border-color: rgba(200, 169, 110, 0.38);
|
|
background: rgba(255, 255, 255, 0.04);
|
|
transform: translateY(-5px);
|
|
}
|
|
|
|
.card:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.card:active {
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
/* ── Icon container ─────────────────────────────────────────────── */
|
|
.icon-wrap {
|
|
width: 48px;
|
|
height: 48px;
|
|
border-radius: 11px;
|
|
overflow: hidden;
|
|
flex-shrink: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.icon-wrap svg {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.icon-wrap.copy {
|
|
background: rgba(200, 169, 110, 0.1);
|
|
color: #c8a96e;
|
|
padding: 11px;
|
|
box-sizing: border-box;
|
|
transition: background 0.3s, color 0.3s;
|
|
}
|
|
|
|
/* ── Card text ──────────────────────────────────────────────────── */
|
|
.card-label {
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
color: #ede0cc;
|
|
letter-spacing: 0.03em;
|
|
transition: color 0.25s;
|
|
}
|
|
|
|
.card-sub {
|
|
font-size: 0.68rem;
|
|
font-weight: 300;
|
|
color: rgba(240, 230, 211, 0.32);
|
|
letter-spacing: 0.09em;
|
|
}
|
|
|
|
/* ── Copy card: confirmed state ─────────────────────────────────── */
|
|
.copy-card.copied .card-label {
|
|
color: #7cc48e;
|
|
}
|
|
|
|
.copy-card.copied .icon-wrap.copy {
|
|
background: rgba(124, 196, 142, 0.1);
|
|
color: #7cc48e;
|
|
}
|
|
|
|
/* ── Page-load animation ────────────────────────────────────────── */
|
|
@keyframes rise {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(18px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* ── Responsive ─────────────────────────────────────────────────── */
|
|
@media (max-width: 580px) {
|
|
:host {
|
|
height: auto;
|
|
}
|
|
|
|
.page {
|
|
min-height: calc(100vh - 40px);
|
|
padding: 2.5rem 0;
|
|
justify-content: flex-start;
|
|
padding-top: 15%;
|
|
}
|
|
|
|
.cards {
|
|
grid-template-columns: 1fr;
|
|
max-width: 280px;
|
|
}
|
|
|
|
.card:hover {
|
|
transform: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 380px) {
|
|
h1 {
|
|
letter-spacing: 0.1em;
|
|
}
|
|
}
|