.portfolioDetail { max-width: 820px; margin: 0 auto; } .heroImageWrap { width: 100%; max-width: 640px; margin: 0 auto 20px; overflow: hidden; border-radius: var(--radius); background: rgba(148, 163, 184, 0.08); border: 1px solid rgba(148, 163, 184, 0.12); } .heroImageWrapEmpty { aspect-ratio: 3 / 2; } .heroImage { width: 100%; height: auto; display: block; } .heroPlaceholder { width: 100%; height: 100%; min-height: 180px; background: linear-gradient( 135deg, rgba(148, 163, 184, 0.12) 0%, rgba(148, 163, 184, 0.04) 100% ); } .metaRow { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 16px; margin-bottom: 28px; font-size: 14px; color: var(--text-secondary); } .metaItem { display: inline-flex; align-items: center; gap: 6px; } .metaDot { color: var(--text-muted); } .metaChips { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; } .categoryChip { display: inline-block; padding: 4px 12px; font-size: 12px; font-weight: 500; color: var(--text-secondary); background: rgba(148, 163, 184, 0.15); border-radius: 999px; } .tagChip { display: inline-block; padding: 4px 12px; font-size: 12px; font-weight: 500; color: var(--primary); background: rgba(var(--primary-rgb) / 0.1); border-radius: 999px; } .contentPanel { background: var(--glass-bg); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid var(--glass-border); border-radius: var(--radius); box-shadow: var(--glass-shadow); padding: 24px; } .content { font-size: 15px; line-height: 1.7; color: var(--text-primary); } .content p { margin: 0 0 1em; } .content p:last-child { margin-bottom: 0; } .content ul, .content ol { padding-left: 1.5em; margin: 0.75em 0; } .content img { max-width: 100%; height: auto; border-radius: var(--radius-sm); margin: 1em 0; } .content h1, .content h2, .content h3 { margin: 1.25em 0 0.5em; line-height: 1.35; } .galleryBand { width: 100%; margin: 32px 0; padding: 48px 32px; background: var(--glass-bg); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-top: 1px solid var(--glass-border); border-bottom: 1px solid var(--glass-border); box-shadow: var(--glass-shadow); } .galleryInner { width: 100%; margin: 0 auto; } .galleryTitle { margin: 0 0 20px; font-size: 18px; font-weight: 600; color: var(--text-primary); text-align: center; } .galleryGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; } .galleryItem { aspect-ratio: 4 / 3; padding: 0; border: 1px solid rgba(148, 163, 184, 0.2); border-radius: var(--radius); overflow: hidden; background: var(--surface); cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; } .galleryItem:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12); } .galleryItem img { width: 100%; height: 100%; object-fit: cover; display: block; } .commentsWrap { max-width: 820px; margin: 0 auto; } .status, .error { padding: 48px 24px; text-align: center; font-size: 14px; color: var(--text-secondary); } .error { color: #b91c1c; } .backLink { display: inline-block; margin-top: 12px; font-size: 14px; color: var(--primary); } .backLink:hover { text-decoration: underline; } @media (max-width: 768px) { .galleryBand { margin: 24px 0; padding: 32px 16px; } .galleryGrid { grid-template-columns: 1fr; } }