Files
ivanch.me/css/main.css
T
ivanch e205172fce
Homepage Build and Deploy (Test) / Build Homepage Image (push) Successful in 42s
Homepage Build and Deploy (Test) / Deploy Homepage (push) Successful in 5s
making it mobile friendly
2026-10-11 16:48:40 -03:00

195 lines
5.5 KiB
CSS

@import url('variables.css');
@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400..700&display=swap');
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scrollbar-gutter: stable;
}
body {
font-family: var(--font-family);
background: var(--background-color);
min-height: 100vh;
position: relative;
color: var(--text-color);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
h1, h2, h3, h4, h5, h6 {
font-weight: 600;
color: var(--text-color);
}
a {
text-decoration: none;
color: var(--primary-color);
transition: color var(--dur-fast) var(--ease-out-soft);
}
a:hover {
color: var(--primary-color-light);
}
ul {
list-style: none;
}
img {
max-width: 100%;
height: auto;
}
/* ------------------------------------------------------------------ */
/* Glass surface (refined shadow animation: calmer two-state pulse) */
/* ------------------------------------------------------------------ */
.glass {
background: var(--glass-background);
backdrop-filter: blur(8px) saturate(140%);
-webkit-backdrop-filter: blur(8px) saturate(140%);
border-radius: var(--border-radius-large);
border-top: 1px solid var(--glass-border);
border-bottom: 1px solid var(--glass-border);
box-shadow: var(--shadow-lg), var(--inset-shadow);
will-change: box-shadow;
animation: glass-shadow 10s ease-in-out infinite;
}
.main-container {
--page-gutter: var(--space-lg);
--page-top: var(--space-xl);
position: relative;
margin: 0 auto;
max-width: 1200px;
width: 100%;
min-height: 100vh;
min-height: 100svh;
padding: var(--page-top) var(--page-gutter) var(--space-xl);
display: flex;
align-items: center;
justify-content: center;
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(28px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Subtle, calm pulsing shadow for .glass */
@keyframes glass-shadow {
0%, 100% {
box-shadow:
0 8px 24px -6px var(--glass-shadow),
0 18px 48px -16px var(--dark-shadow-20),
inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
50% {
box-shadow:
0 12px 32px -6px var(--tertiary-color-20),
0 28px 72px -24px var(--dark-shadow-18),
inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
}
.content {
color: var(--text-color);
background: rgba(0, 0, 0, 0.12);
backdrop-filter: blur(32px) saturate(180%) brightness(1.08);
-webkit-backdrop-filter: blur(32px) saturate(180%) brightness(1.08);
border-radius: var(--border-radius-large);
box-shadow: var(--shadow-md), var(--inset-shadow);
padding: var(--space-2xl) var(--space-xl);
transition: background var(--dur-med) var(--ease-out-soft),
box-shadow var(--dur-med) var(--ease-out-soft);
min-width: 0;
width: 100%;
}
/* ------------------------------------------------------------------ */
/* Accessibility */
/* ------------------------------------------------------------------ */
:focus-visible {
outline: 2px solid var(--primary-500);
outline-offset: 2px;
border-radius: var(--radius-sm);
}
@media (prefers-reduced-motion: reduce) {
.glass {
animation: none !important;
}
*, *::before, *::after {
animation-duration: 0.001ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.001ms !important;
scroll-behavior: auto !important;
}
}
/* High DPI display optimizations */
@media only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (min--moz-device-pixel-ratio: 2),
only screen and (-o-min-device-pixel-ratio: 2/1),
only screen and (min-device-pixel-ratio: 2),
only screen and (min-resolution: 192dpi),
only screen and (min-resolution: 2dppx) {
.glass {
backdrop-filter: blur(12px) saturate(140%);
-webkit-backdrop-filter: blur(12px) saturate(140%);
}
.content {
backdrop-filter: blur(40px) saturate(180%) brightness(1.08);
-webkit-backdrop-filter: blur(40px) saturate(180%) brightness(1.08);
}
}
/* ------------------------------------------------------------------ */
/* Mobile responsive layout */
/* Keep the page in normal flow so short screens can scroll fully. */
/* ------------------------------------------------------------------ */
@media (max-width: 1024px) {
.main-container {
--page-gutter: var(--space-md);
align-items: flex-start;
}
.content {
padding: var(--space-xl) var(--space-lg);
}
}
@media (max-width: 480px) {
.main-container {
--page-gutter: var(--space-xs);
--page-top: var(--space-md);
}
.content {
padding: var(--space-lg) var(--space-md);
}
}
/* Leave room for notches and the home indicator in landscape, too. */
@supports (padding: max(0px, env(safe-area-inset-left))) {
.main-container {
padding-top: max(var(--page-top), env(safe-area-inset-top));
padding-left: max(var(--page-gutter), env(safe-area-inset-left));
padding-right: max(var(--page-gutter), env(safe-area-inset-right));
padding-bottom: max(var(--space-xl), env(safe-area-inset-bottom));
}
}