Files
MyWebsite/css/source.css
T
itziarZG eba8a36efa feat(proyectos): add Posidonia + Cases Tancades projects
- Add project-4 (Posidonia) and project-5 (Cases Tancades) cards and modals in all 3 locales (ES/CA/EN)
- Reorder Block A: Operativo projects first, Posidonia at top
- Align Posidonia modal style to match Eivissa Watch / Cases Tancades (bg-background-light, max-w-2xl, rounded-3xl, glass)
- Add external "Visitar sitio" link button to Eivissa Watch modal
- Refresh Eivissa Watch thumbnail (was just a green block, now real content)
- Generate Cases Tancades thumbnail from OG image
- Update Cases Tancades card tech stack from Next.js to Astro (matches actual site)
- Add "Ver detalles" button to Cases Tancades card

fix: persist modal layout stability CSS to source.css (was dropped on every build:css)
2026-07-31 13:21:02 +02:00

147 lines
3.7 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;
vertical-align: -0.125em;
fill: currentColor;
}
/* ==========================================================================
Layout Stability (custom)
==========================================================================
Reserve scrollbar gutter to prevent layout shift when body.overflow
toggles between auto and hidden (openModal/closeModal). This stops
the page from "jumping" when the user opens or closes a project modal. */
html {
scrollbar-gutter: stable;
}
/* When a modal is open, prevent background scroll without causing the
scrollbar to disappear (which would shift the layout). */
body.modal-open {
overflow: hidden;
/* Compensate for any scrollbar difference on platforms where
scrollbar-gutter isn't fully respected. */
padding-right: var(--scrollbar-width, 0px);
}