/* ============================================================ Shared Project Detail Styles Include AFTER projectStyle.css ============================================================ */ /* --- Hero -------------------------------------------------- */ .project-detail { flex: 1; display: flex; flex-direction: column; gap: 3rem; max-width: 1000px; margin: 0 auto; width: 100%; padding: 2rem 2rem 4rem; } .project-hero { position: relative; border-radius: 20px; overflow: hidden; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15); min-height: 320px; } .hero-image { width: 100%; height: 360px; } .hero-image img { width: 100%; height: 100%; object-fit: cover; display: block; } /* Placeholder hero for projects without an image */ .hero-image--placeholder { background: linear-gradient(135deg, #1B3A4B 0%, #0d2233 100%); display: flex; align-items: center; justify-content: center; } .placeholder-graphic { width: 280px; opacity: 0.7; } .placeholder-graphic svg { width: 100%; height: auto; } /* Gradient overlay + text on hero */ .hero-overlay { position: absolute; bottom: 0; left: 0; right: 0; padding: 2rem 2rem 2rem; background: linear-gradient(to top, rgba(10, 20, 30, 0.92) 0%, transparent 100%); display: flex; flex-direction: column; gap: 0.5rem; } .project-tag { font-family: 'Quicksand', sans-serif; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--clr-accent-light); background: rgba(240, 155, 0, 0.15); border: 1px solid rgba(240, 155, 0, 0.4); border-radius: 20px; padding: 0.2rem 0.8rem; width: fit-content; } .hero-overlay h1 { font-family: 'Oswald', sans-serif; font-size: clamp(1.6rem, 4vw, 2.6rem); font-weight: 600; color: #fff; line-height: 1.15; margin: 0; } .hero-sub { color: rgba(255, 255, 255, 0.75); font-size: 1rem; margin: 0; } /* --- Buttons ----------------------------------------------- */ .btn-primary { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.4rem; background-color: var(--clr-primary); color: #fff; font-weight: 700; font-size: 0.9rem; border-radius: 10px; text-decoration: none; transition: background-color 0.25s ease, transform 0.2s ease; width: fit-content; } .btn-primary:hover { background-color: #007ec0; transform: translateY(-2px); } .btn-secondary { display: inline-block; padding: 0.55rem 1.4rem; border: 2px solid var(--clr-primary); color: var(--clr-primary); font-weight: 700; font-size: 0.9rem; border-radius: 10px; text-decoration: none; transition: background-color 0.25s ease, color 0.25s ease, transform 0.2s ease; } .btn-secondary:hover { background-color: var(--clr-primary); color: #fff; transform: translateY(-2px); } /* --- Detail grid ------------------------------------------- */ .detail-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; } .detail-section { background-color: var(--clr-card-background); border-radius: 16px; padding: 1.75rem; box-shadow: 0 2px 10px rgba(91, 127, 161, 0.18); } .detail-section h2 { font-family: 'Oswald', sans-serif; font-size: 1.25rem; font-weight: 500; color: var(--clr-primary); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.9rem; } .detail-section p { color: var(--clr-text-light); line-height: 1.7; } /* Feature list */ .feature-list { list-style: none; display: flex; flex-direction: column; gap: 0.6rem; padding: 0; } .feature-list li { color: var(--clr-text-light); padding-left: 1.4rem; position: relative; line-height: 1.6; } .feature-list li::before { content: "▸"; position: absolute; left: 0; color: var(--clr-primary); font-size: 0.85rem; } /* Tech pills */ .tech-pills { display: flex; flex-wrap: wrap; gap: 0.6rem; } .tech-pills span { font-family: 'Quicksand', sans-serif; font-size: 0.85rem; font-weight: 600; padding: 0.35rem 0.9rem; border-radius: 20px; background-color: rgba(0, 157, 240, 0.12); border: 1px solid rgba(0, 157, 240, 0.35); color: #005f90; } /* Inline code */ code { font-family: 'Courier New', monospace; font-size: 0.88em; background: rgba(0, 157, 240, 0.08); border-radius: 4px; padding: 0.1em 0.4em; color: #005f90; } /* --- Project prev/next nav --------------------------------- */ .project-nav { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; } /* --- Coming soon page -------------------------------------- */ .coming-soon-wrapper { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 1.2rem; padding: 4rem 2rem; } .coming-soon-icon svg { width: 90px; height: 90px; } .coming-soon-wrapper h1 { font-family: 'Oswald', sans-serif; font-size: 2.2rem; font-weight: 500; color: var(--clr-text-main); } .coming-soon-wrapper p { color: var(--clr-text-light); font-size: 1.05rem; max-width: 40ch; } /* --- Responsive ------------------------------------------- */ @media (min-width: 700px) { .detail-grid { grid-template-columns: repeat(2, 1fr); } }