/* Reset and Base Styles */ * { margin: 0; padding: 0; box-sizing: border-box; } html { font-size: 16px; scroll-behavior: smooth; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.6; color: #1a1a1a; background-color: #ffffff; font-weight: 400; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Typography */ h1, h2, h3, h4, h5, h6 { font-family: 'Crimson Text', Georgia, serif; font-weight: 600; line-height: 1.3; margin: 0; } a { color: #1a1a1a; text-decoration: none; transition: color 0.2s ease; } a:hover { color: #666; } /* Header */ .site-header { border-bottom: 1px solid #e5e5e5; background: #ffffff; position: sticky; top: 0; z-index: 100; } .header-container { max-width: 800px; margin: 0 auto; padding: 2rem 1.5rem; display: flex; justify-content: space-between; align-items: center; } .site-identity { flex: 1; } .site-title { font-size: 1.5rem; font-weight: 600; margin-bottom: 0.25rem; letter-spacing: -0.02em; } .site-tagline { font-size: 0.875rem; color: #666; font-weight: 400; } .site-nav { display: flex; gap: 2rem; } .nav-link { font-size: 0.875rem; font-weight: 500; position: relative; } .nav-link::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 1px; background-color: #1a1a1a; transition: width 0.2s ease; } .nav-link:hover::after { width: 100%; } /* Main Content */ .main-content { max-width: 800px; margin: 0 auto; padding: 0 1.5rem; } /* Posts */ .posts { padding: 3rem 0; } .post { margin-bottom: 4rem; border-bottom: 1px solid #f0f0f0; padding-bottom: 3rem; } .post:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .post-header { margin-bottom: 1rem; } .post-title { font-size: 1.75rem; margin-bottom: 0.75rem; font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; } .post-title a { color: #1a1a1a; } .post-title a:hover { color: #666; } .post-meta { display: flex; align-items: center; gap: 1rem; font-size: 0.875rem; color: #666; } .post-meta time { font-weight: 500; } .post-type { background: #f5f5f5; padding: 0.25rem 0.75rem; border-radius: 12px; font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; } .post-content { font-size: 1.05rem; line-height: 1.7; color: #333; } .post-content p { margin-bottom: 1.5rem; } .post-content p:last-child { margin-bottom: 0; } /* Photography Posts */ .post-photo { margin-bottom: 5rem; } .post-image { width: 100%; margin-bottom: 1.5rem; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); } .post-image img { width: 100%; height: auto; display: block; transition: transform 0.3s ease; } .post-image:hover img { transform: scale(1.02); } /* Short Posts */ .post-short .post-content { font-size: 1.125rem; font-style: italic; color: #444; position: relative; padding-left: 1.5rem; } .post-short .post-content::before { content: '"'; font-size: 3rem; color: #ddd; position: absolute; left: -0.5rem; top: -1rem; font-family: Georgia, serif; line-height: 1; } /* Footer */ .site-footer { border-top: 1px solid #e5e5e5; margin-top: 4rem; background: #fafafa; } .footer-container { max-width: 800px; margin: 0 auto; padding: 2rem 1.5rem; display: flex; justify-content: space-between; align-items: center; font-size: 0.875rem; color: #666; } .footer-links { display: flex; gap: 1.5rem; } .footer-links a { color: #666; font-weight: 500; } .footer-links a:hover { color: #1a1a1a; } /* Responsive Design */ @media (max-width: 768px) { html { font-size: 15px; } .header-container { padding: 1.5rem 1rem; flex-direction: column; gap: 1rem; text-align: center; } .site-nav { gap: 1.5rem; justify-content: center; } .main-content { padding: 0 1rem; } .posts { padding: 2rem 0; } .post { margin-bottom: 3rem; padding-bottom: 2rem; } .post-title { font-size: 1.5rem; } .post-meta { flex-direction: column; align-items: flex-start; gap: 0.5rem; } .footer-container { flex-direction: column; gap: 1rem; text-align: center; padding: 1.5rem 1rem; } .post-short .post-content { padding-left: 1rem; } .post-short .post-content::before { left: -0.25rem; font-size: 2.5rem; top: -0.75rem; } } @media (max-width: 480px) { .site-nav { gap: 1rem; } .nav-link { font-size: 0.8rem; } .post-title { font-size: 1.375rem; } .post-content { font-size: 1rem; } .post-short .post-content { font-size: 1.0625rem; } } /* Print Styles */ @media print { .site-header, .site-footer { display: none; } .main-content { max-width: none; padding: 0; } .post { page-break-inside: avoid; margin-bottom: 2rem; padding-bottom: 1rem; } .post-image { box-shadow: none; } a { color: #1a1a1a !important; } } /* Focus and Accessibility */ a:focus, button:focus { outline: 2px solid #1a1a1a; outline-offset: 2px; } /* Selection */ ::selection { background: #1a1a1a; color: #ffffff; } ::-moz-selection { background: #1a1a1a; color: #ffffff; }