html, body { height: 100%; } body { font-family: 'IBM Plex Sans', sans-serif; background-color: #1a202c; color: #e2e8f0; min-height: 100vh; display: flex; flex-direction: column; height: fit-content; } .main-content { flex: 1; } .section-title { border-bottom: 2px solid #4a5568; padding-bottom: 0.5rem; margin-bottom: 2rem; } .card { background-color: #2d3748; border-radius: 0.5rem; padding: 1.5rem; transition: transform 0.3s ease, box-shadow 0.3s ease; } .card:active { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } .tag { background-color: #4a5568; color: #e2e8f0; padding: 0.25rem 0.75rem; border-radius: 9999px; font-size: 0.875rem; margin-right: 0.5rem; margin-bottom: 0.5rem; display: inline-block; } .tag-link { display: inline-block; background-color: #374151; /* from bg-gray-700 */ color: #93c5fd; /* from text-blue-300 */ font-size: 0.875rem; /* from text-sm */ font-weight: 500; /* from font-medium */ padding: 0.125rem 0.625rem; /* from py-0.5 px-2.5 */ border-radius: 9999px; /* from rounded-full */ margin-right: 0.25rem; /* from mr-1 */ text-decoration: none; transition-property: transform, background-color, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .tag-link:active { background-color: #4B5563; /* from hover:bg-gray-600 */ color: #bfdbfe; /* from hover:text-blue-200 */ transform: scale(1.05); } .glass-card { background: rgba(31, 41, 55, 0.5); /* bg-gray-800 with opacity */ backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); } .btn { display: inline-block; font-weight: 600; text-align: center; vertical-align: middle; cursor: pointer; user-select: none; background-color: #2563EB; color: white; border: 1px solid transparent; padding: 0.75rem 1.5rem; font-size: 1rem; line-height: 1.5; border-radius: 1rem; transition-property: transform, background-color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .btngray { display: inline-block; font-weight: 600; text-align: center; vertical-align: middle; cursor: pointer; user-select: none; background-color: #374151; color: white; border: 1px solid transparent; padding: 0.75rem 2rem; font-size: 1rem; line-height: 1.5; border-radius: 1rem; transition-property: transform, background-color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .btn:active { background-color: #1D4ED8; transform: scale(1.05); } .btngray:active { background-color: #4B5563; transform: scale(1.05); } .icon { font-size: 1.5rem; margin-right: 1rem; color: #4299e1; } article { max-width: 80vw; margin-left: auto; margin-right: auto; color: #d1d5db; line-height: 1.6; overflow-wrap: break-word; } article img[src*='#center'] { display: block; margin: auto; } article h1, article h2, article h3, article h4, article h5, article h6 { font-weight: 700; color: #f9fafb; margin-top: 1em; margin-bottom: 0.5em; line-height: 1.25; } article h1 { font-size: 2.5em; } article h2 { font-size: 1.75em; } article h3 { font-size: 1.25em; } article h4 { font-size: 1.0em; } article a { color: #60a5fa; text-decoration: none; } article a:active { color: #93c5fd; } article code { background-color: #374151; font-family: "Red Hat Mono", monospace; color: #e5e7eb; padding: 0.2em 0.4em; margin: 0; font-size: 85%; border-radius: 3px; } article pre { background-color: #1f2937; color: #f9fafb; padding: 1em; border-radius: 0.5rem; overflow-x: auto; } article pre code { background-color: transparent; padding: 0; } article blockquote { border-left: 4px solid #4a5568; padding-left: 1em; font-style: italic; color: #9ca3af; } article table { width: 100%; border-collapse: collapse; margin-top: 1.5em; margin-bottom: 1.5em; } article th, article td { border: 1px solid #4a5568; padding: 0.5em; color: #f9fafb; } article th { background-color: #374151; } article hr { border: none; border-top: 1px solid #4a5568; margin: 2.5em 0; } article ul { list-style-type: disc; padding-left: 2rem; margin-bottom: 1rem; margin-top: 1rem; } article ol { list-style-type: decimal; padding-left: 2rem; margin-bottom: 1rem; margin-top: 1rem; } article li { margin-bottom: 0.5rem; } .like-icon { cursor: pointer; transition: color 0.2s ease-in-out, transform 0.2s ease-in-out; } .like-icon.liked { cursor: pointer; color: #e2264d; } .like-icon:active { color: #fff; transform: scale(1.15); } .like-icon.liked:active { transform: scale(1.15); } /* Apply hover effects only on devices that can hover to avoid sticky hover on mobile */ @media (hover: hover) { .like-icon:hover { color: #fff; transform: scale(1.15); } .like-icon.liked:hover { transform: scale(1.15); } .tag-link:hover { background-color: #4B5563; /* from hover:bg-gray-600 */ color: #bfdbfe; /* from hover:text-blue-200 */ transform: scale(1.05); } .card:hover { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } .btn:hover { background-color: #1D4ED8; transform: scale(1.05); } .btngray:hover { background-color: #4B5563; transform: scale(1.05); } } .hint-animation { animation: wobble 1s ease-in-out 2; } @keyframes wobble { 0%, 100% { transform: translateX(0) rotate(0deg) scale(1); } 15% { transform: translateX(-3px) rotate(-7deg) scale(1.2); } 30% { transform: translateX(2px) rotate(5deg) scale(1.3); } 45% { transform: translateX(-1px) rotate(-5deg) scale(1.3); } 60% { transform: translateX(1px) rotate(3deg) scale(1.2); } 75% { transform: translateX(0) rotate(-1deg) scale(1.1); } }