129 lines
3.0 KiB
CSS
129 lines
3.0 KiB
CSS
/* ==========================================================================
|
|
Self-Hosted Fonts & Icons
|
|
========================================================================== */
|
|
|
|
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
/* Space Grotesk */
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: 'Space Grotesk';
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
src: url('../fonts/space/space-grotesk-v22-latin-regular.woff2') format('woff2');
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: 'Space Grotesk';
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
src: url('../fonts/space/space-grotesk-v22-latin-700.woff2') format('woff2');
|
|
}
|
|
|
|
/* Instrument Serif */
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: 'Instrument Serif';
|
|
font-style: normal;
|
|
font-weight: 300 400;
|
|
src: url('../fonts/instrument/instrument-serif-v5-latin-regular.woff2') format('woff2');
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: 'Instrument Serif';
|
|
font-style: italic;
|
|
font-weight: 300 400;
|
|
src: url('../fonts/instrument/instrument-serif-v5-latin-italic.woff2') format('woff2');
|
|
}
|
|
|
|
/* Glass Morphism Effect */
|
|
.glass {
|
|
background: rgba(255, 255, 255, 0.7);
|
|
border: 1px solid rgba(255, 255, 255, 0.5);
|
|
}
|
|
|
|
.dark .glass {
|
|
background: rgba(30, 20, 40, 0.55);
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
/* Iridescent Background Gradient */
|
|
.iridescent-bg {
|
|
background:
|
|
radial-gradient(
|
|
circle at 0% 0%,
|
|
rgba(140, 43, 238, 0.15) 0%,
|
|
transparent 50%
|
|
),
|
|
radial-gradient(
|
|
circle at 100% 100%,
|
|
rgba(255, 182, 255, 0.2) 0%,
|
|
transparent 50%
|
|
),
|
|
radial-gradient(
|
|
circle at 50% 50%,
|
|
rgba(140, 43, 238, 0.05) 0%,
|
|
transparent 100%
|
|
);
|
|
}
|
|
|
|
/* Fluid Blob Shapes */
|
|
.fluid-shape {
|
|
border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
|
|
}
|
|
|
|
.skip-link {
|
|
position: fixed;
|
|
top: 1rem;
|
|
left: 1rem;
|
|
z-index: 100;
|
|
transform: translateY(-200%);
|
|
padding: 0.75rem 1rem;
|
|
border-radius: 0.5rem;
|
|
background: #191022;
|
|
color: #ffffff;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.skip-link:focus {
|
|
transform: translateY(0);
|
|
}
|
|
|
|
:focus-visible {
|
|
outline: 3px solid #8c2bee;
|
|
outline-offset: 3px;
|
|
}
|
|
|
|
:target {
|
|
scroll-margin-top: 2rem;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
animation-duration: 0.01ms !important;
|
|
animation-iteration-count: 1 !important;
|
|
scroll-behavior: auto !important;
|
|
transition-duration: 0.01ms !important;
|
|
}
|
|
}
|
|
|
|
/* ==========================================================================
|
|
SVG Icon Sizing (.icon class)
|
|
==========================================================================
|
|
Custom CSS for inline <svg class="icon"> used across the site. Replaces
|
|
the sizing behavior previously provided by Material Symbols. Without this
|
|
rule, SVGs render at their container width (hundreds of px tall).
|
|
Kept in sync with .icon rule in css/styles.css (built file). */
|
|
.icon {
|
|
width: 1em;
|
|
height: 1em;
|
|
display: inline-block;
|
|
vertical-align: -0.125em;
|
|
fill: currentColor;
|
|
} |