Files
MyWebsite/css/source.css
T

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;
}