@import "tailwindcss"; @plugin "@tailwindcss/typography"; body { background-color: #ffffff; color: #111111; -webkit-font-smoothing: antialiased; } /* Letter-spaced name in header */ .site-name { letter-spacing: 0.18em; font-weight: 400; text-transform: uppercase; font-size: 0.9rem; } /* Article tile grid classes (must be global — applied to child component roots) */ .tile-featured-left, .tile-featured-right { grid-column: span 2; } @media (max-width: 480px) { .tile-featured-left, .tile-featured-right { grid-column: span 1; } } /* Article tile grayscale → color on hover */ .article-tile { position: relative; overflow: hidden; display: block; border-radius: 0.75rem; } .article-tile img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(100%); transform: scale(1); transition: filter 0.4s ease, transform 0.5s ease; } .article-tile:hover img { filter: grayscale(0%); transform: scale(1.06); } .article-tile .tile-overlay { position: absolute; bottom: 0; left: 0; right: 0; padding: 1.25rem 1rem 1rem; background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.5) 50%, transparent 100%); color: white; } .article-tile .tile-tags { font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.75; margin-bottom: 0.3rem; text-shadow: 0 1px 2px rgba(0,0,0,0.5); } .article-tile .tile-title { font-size: 0.9rem; font-weight: 500; line-height: 1.35; text-shadow: 0 1px 3px rgba(0,0,0,0.5); } .article-tile .tile-description { font-size: 0.75rem; opacity: 0.85; margin-top: 0.2rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-shadow: 0 1px 2px rgba(0,0,0,0.5); } /* Filtered-out tile */ .article-tile.is-filtered { display: none; } /* Language switcher */ .lang-switcher { display: flex; align-items: center; gap: 0; margin-left: 1.5rem; padding-left: 1.5rem; border-left: 1px solid #e5e5e5; } .lang-switcher a { font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: #aaa; text-decoration: none; transition: color 0.2s; } .lang-switcher a:hover { color: #111; } .lang-switcher a.active { color: #111; border-bottom: 1px solid #111; } .lang-switcher-sep { color: #ddd; font-size: 0.75rem; margin: 0 0.4rem; } /* Tag filter bar */ .tag-filter { display: flex; align-items: center; flex-wrap: wrap; gap: 0; padding: 0 0 1.5rem; } .tag-filter-btn { font-size: 0.7rem; letter-spacing: 0.15em; text-transform: uppercase; color: #aaa; background: none; border: none; border-bottom: 1px solid transparent; cursor: pointer; padding: 0.15rem 0; transition: color 0.2s, border-color 0.2s; } .tag-filter-btn:hover { color: #111; } .tag-filter-btn.active { color: #111; border-bottom-color: #111; } .tag-filter-sep { color: #ccc; font-size: 0.75rem; margin: 0 0.65rem; user-select: none; }