/* ============================================
   PROJECTS PAGE STYLES
   Hero, Project Preview Component
   ============================================ */

/* ============================================
   PROJECTS HERO SECTION
   ============================================ */

.projects-hero {
    position: relative;
    width: 100%;
    min-height: 100vh;
    background: var(--color-black);
    overflow: hidden;
    display: flex;
    align-items: center;
}

#ascii-ripple-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    opacity: 0.6;
}

.projects-hero-content {
    position: relative;
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 0 80px;
    margin-top: 80px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.projects-hero-content>* {
    max-width: 700px;
}

.projects-hero-subtitle {
    font-family: var(--font-heading);
    font-size: 26px;
    font-weight: 400;
    line-height: 1;
    color: var(--color-light-grey);
}

.projects-hero-title {
    font-family: var(--font-hero);
    font-size: 56px;
    line-height: 1;
    font-weight: 400;
    background: linear-gradient(176deg, var(--color-orange) 0%, var(--color-yellow) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.projects-hero-description {
    font-family: var(--font-body);
    font-size: 22px;
    line-height: 1;
    color: var(--color-white);
}

.btn-projects-primary {
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-white);
    /* Default: 10% fill, 20% stroke per README */
    background: linear-gradient(165deg, rgba(255, 152, 0, 0.1) 0%, rgba(220, 205, 0, 0.1) 100%);
    border: 2px solid rgba(255, 152, 0, 0.2);
    padding: 16px 32px;
    cursor: pointer;
    transition: all 0.3s;
    align-self: flex-start;
    position: relative;
    display: inline-block;
    margin-top: 8px;
}

.btn-projects-primary:hover {
    /* Hover: 20% fill, 20% stroke per README */
    background: linear-gradient(165deg, rgba(255, 152, 0, 0.2) 0%, rgba(220, 205, 0, 0.2) 100%);
}

/* Corners use 100% color per README */
.btn-projects-primary .btn-corner {
    border-color: var(--color-orange);
}

.btn-projects-primary .btn-corner-tr,
.btn-projects-primary .btn-corner-br {
    border-color: var(--color-yellow);
}

.btn-projects-primary:hover .btn-corner {
    width: 16px;
    height: 16px;
}

/* ============================================
   PROJECT PREVIEW COMPONENT
   Reusable component for showcasing projects
   
   CSS Custom Properties:
   --project-color-start: Primary gradient color
   --project-color-end: Secondary gradient color
   ============================================ */

.project-preview {
    position: relative;
    width: 100%;
    min-height: 700px;
    background: var(--color-black);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;

    /* Default colors (Green+Teal) */
    --project-color-start: var(--color-green);
    --project-color-end: var(--color-teal);
}

/* Color Theme Variants */
.project-preview[data-color="green-teal"] {
    --project-color-start: var(--color-green);
    --project-color-end: var(--color-teal);
}

.project-preview[data-color="violet-magenta"] {
    --project-color-start: var(--color-violet);
    --project-color-end: var(--color-magenta);
}

.project-preview[data-color="cyan-blue"] {
    --project-color-start: var(--color-cyan);
    --project-color-end: var(--color-blue);
}

.project-preview[data-color="orange-yellow"] {
    --project-color-start: var(--color-orange);
    --project-color-end: var(--color-yellow);
}

.project-preview[data-color="red-orange"] {
    --project-color-start: var(--color-red);
    --project-color-end: var(--color-orange);
}

/* Custom hex color support via inline styles */

/* Background Color Glow */
.project-preview-glow {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 1440px;
    height: 600px;
    background: radial-gradient(ellipse 80% 100% at 50% 100%,
            var(--project-color-start) 0%,
            transparent 70%);
    opacity: 0.15;
    pointer-events: none;
    z-index: 1;
}

/* Bottom Fade */
.project-preview-fade {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 1440px;
    height: 321px;
    background: linear-gradient(0deg, var(--color-black) 0%, transparent 100%);
    pointer-events: none;
    z-index: 2;
}

/* Content Container */
.project-preview-container {
    position: relative;
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 0 80px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 80px;
    z-index: 3;
}

/* Left Content */
.project-preview-content {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 600px;
    flex-shrink: 0;
}

.project-preview-logo {
    height: 35px;
    width: auto;
    max-width: 240px;
    object-fit: contain;
    object-position: left center;
    filter: grayscale(100%) brightness(0.5);
    transition: filter 0.3s ease;
    cursor: pointer;
}

.project-preview-logo:hover {
    filter: grayscale(0%) brightness(1);
}

.project-preview-tagline {
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1;
    background: linear-gradient(172deg, var(--project-color-start) 0%, var(--project-color-end) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Custom color tagline when using hex colors */
.project-preview-tagline[style*="color"] {
    -webkit-text-fill-color: currentColor;
    background: none;
}

.project-preview-name {
    font-family: var(--font-hero);
    font-size: 40px;
    font-weight: 400;
    line-height: 1;
    color: var(--color-white);
    margin: 0;
}

.project-preview-services {
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1;
    color: var(--color-light-grey);
}

.project-preview-description {
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.6;
    color: var(--color-white);
}

/* Buttons Container */
.project-preview-buttons {
    display: flex;
    gap: 16px;
    align-items: center;
    margin-top: 8px;
}

/* Primary Button - View Case Study (colored gradient)
   Default: 10% fill, 20% stroke, 100% 8px corners per README
   Hover: 20% fill, 20% stroke, 100% 16px corners per README */
.btn-project-primary {
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-white);
    /* Default: 10% fill */
    background: linear-gradient(165deg,
            color-mix(in srgb, var(--project-color-start) 10%, transparent) 0%,
            color-mix(in srgb, var(--project-color-end) 10%, transparent) 100%);
    /* Default: 20% stroke */
    border: 2px solid color-mix(in srgb, var(--project-color-start) 20%, transparent);
    padding: 16px 32px;
    cursor: pointer;
    transition: all 0.3s;
    position: relative;
    display: inline-block;
}

.btn-project-primary:hover {
    /* Hover: 20% fill */
    background: linear-gradient(165deg,
            color-mix(in srgb, var(--project-color-start) 20%, transparent) 0%,
            color-mix(in srgb, var(--project-color-end) 20%, transparent) 100%);
}

.btn-project-primary .btn-corner {
    border-color: var(--project-color-start);
}

.btn-project-primary:hover .btn-corner {
    width: 16px;
    height: 16px;
}

/* Secondary Button - neutral */
.btn-project-secondary {
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-white);
    background: rgba(80, 80, 80, 0.1);
    border: 2px solid rgba(80, 80, 80, 0.2);
    padding: 16px 32px;
    cursor: pointer;
    transition: all 0.3s;
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.btn-project-secondary:hover {
    background: rgba(80, 80, 80, 0.2);
}

.btn-project-secondary .btn-corner {
    border-color: var(--color-grey);
}

.btn-project-secondary:hover .btn-corner {
    width: 16px;
    height: 16px;
}

.btn-project-secondary .btn-arrow {
    width: 8px;
    height: 8px;
    filter: brightness(0) saturate(100%) invert(72%);
}

/* Right Image/Media */
.project-preview-media {
    position: relative;
    flex-shrink: 0;
    width: 600px;
    max-height: 500px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.project-preview-image,
.project-preview-video {
    width: 100%;
    height: auto;
    max-height: 500px;
    object-fit: contain;
    border-radius: 0;
}

.project-preview-video {
    background: transparent;
}

/* Placeholder for projects without thumbnail images */
.project-preview-media-placeholder {
    background: linear-gradient(135deg, rgba(30, 30, 30, 0.8) 0%, rgba(15, 15, 15, 0.8) 100%);
    border: 1px dashed rgba(255, 255, 255, 0.1);
    border-radius: 0;
    min-height: 400px;
}

.project-preview-logo-large {
    width: 60%;
    height: auto;
    max-height: 200px;
    object-fit: contain;
    opacity: 0.6;
}

/* ============================================
   RESPONSIVE BREAKPOINTS - PROJECTS PAGE
   ============================================ */

/* 1440px Breakpoint */
@media (max-width: 1440px) {
    .projects-hero-content {
        padding: 0 80px;
    }

    .project-preview-container {
        padding: 0 80px;
        gap: 60px;
    }

    .project-preview-media {
        width: 500px;
    }
}

/* 1280px Breakpoint */
@media (max-width: 1280px) {
    .project-preview-container {
        gap: 40px;
    }

    .project-preview-content {
        max-width: 500px;
    }

    .project-preview-media {
        width: 450px;
    }
}

/* 1024px Breakpoint */
@media (max-width: 1024px) {
    .projects-hero-content {
        padding: 0 40px;
    }

    .projects-hero-subtitle {
        font-size: 22px;
    }

    .projects-hero-title {
        font-size: 48px;
    }

    .projects-hero-description {
        font-size: 18px;
    }

    .project-preview {
        min-height: auto;
        padding: 80px 0;
    }

    .project-preview-container {
        flex-direction: column;
        padding: 0 40px;
        gap: 40px;
    }

    .project-preview-content {
        max-width: 100%;
        order: 2;
    }

    .project-preview-media {
        width: 100%;
        max-width: 600px;
        order: 1;
        align-self: flex-start;
    }

    .project-preview-name {
        font-size: 32px;
    }

    .project-preview-description {
        font-size: 16px;
    }
}

/* 768px Breakpoint */
@media (max-width: 768px) {
    .projects-hero {
        min-height: 70vh;
    }

    .projects-hero-content {
        padding: 0 20px;
        gap: 12px;
    }

    .projects-hero-content>* {
        max-width: 100%;
    }

    .projects-hero-subtitle {
        font-size: 18px;
    }

    .projects-hero-title {
        font-size: 32px;
    }

    .projects-hero-description {
        font-size: 16px;
        line-height: 1.4;
    }

    .btn-projects-primary {
        font-size: 12px;
        padding: 14px 24px;
    }

    .project-preview {
        padding: 60px 0;
    }

    .project-preview-container {
        padding: 0 20px;
        gap: 32px;
    }

    .project-preview-logo {
        height: 28px;
    }

    .project-preview-tagline {
        font-size: 12px;
    }

    .project-preview-name {
        font-size: 28px;
    }

    .project-preview-services {
        font-size: 12px;
    }

    .project-preview-description {
        font-size: 14px;
    }

    .btn-project-primary,
    .btn-project-secondary {
        font-size: 12px;
        padding: 12px 24px;
    }

    .project-preview-media {
        max-width: 100%;
        align-self: stretch;
    }

    .project-preview-glow {
        width: 100%;
    }

    .project-preview-fade {
        width: 100%;
    }
}

/* 480px Breakpoint */
@media (max-width: 480px) {
    .projects-hero-subtitle {
        font-size: 16px;
    }

    .projects-hero-title {
        font-size: 28px;
    }

    .projects-hero-description {
        font-size: 14px;
    }

    .project-preview {
        padding: 40px 0;
    }

    .project-preview-name {
        font-size: 24px;
    }

    .project-preview-description {
        font-size: 13px;
    }
}

/* ============================================
   CASE STUDY PAGES - SHARED STYLES
   Optimized styles for all project case studies
   (Space, Rey, Vessel)
   ============================================ */

/* ============================================
   BASE HERO SECTION
   ============================================ */

/* Shared hero container styles */
.rey-hero,
.space-hero,
.vessel-hero {
    position: relative;
    width: 100%;
    height: 900px;
    background: var(--color-black);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Space has unique gradient background */
.space-hero {
    background: linear-gradient(180deg, #000000 0%, #1c0026 100%);
}

/* Shared hero background */
.rey-hero-background,
.space-hero-background,
.vessel-hero-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

/* Shared hero gradient fade */
.rey-hero-gradient,
.space-hero-gradient,
.vessel-hero-gradient {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 321px;
    background: linear-gradient(0deg, var(--color-black) 0%, rgba(0, 0, 0, 0) 100%);
    z-index: 1;
}

.space-hero-gradient {
    background: linear-gradient(0deg, #000000 0%, rgba(0, 0, 0, 0) 100%);
}

/* Shared hero glow effect */
.rey-hero-glow,
.space-hero-glow,
.vessel-hero-glow {
    position: absolute;
    left: 0;
    right: 0;
    top: 579px;
    width: 100%;
    height: 207px;
    filter: blur(80px);
    z-index: 0;
}

/* Project-specific glow colors */
.rey-hero-glow {
    background: radial-gradient(ellipse at center, rgba(56, 255, 195, 0.3) 0%, rgba(56, 255, 195, 0) 100%);
}

.space-hero-glow {
    background: radial-gradient(ellipse at center, rgba(146, 0, 255, 0.3) 0%, rgba(146, 0, 255, 0) 100%);
}

.vessel-hero-glow {
    background: radial-gradient(ellipse at center, rgba(198, 219, 188, 0.3) 0%, rgba(198, 219, 188, 0) 100%);
}

/* Shared hero content container */
.rey-hero-content,
.space-hero-content,
.vessel-hero-content {
    position: relative;
    z-index: 2;
    max-width: 1800px;
    width: 100%;
    padding: 0 80px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ============================================
   HERO ELEMENTS
   ============================================ */

/* Shared logo styles */
.rey-logo,
.space-logo,
.vessel-logo {
    height: auto;
    filter: grayscale(100%) brightness(0.5);
    transition: filter 0.3s ease;
    cursor: pointer;
}

.rey-logo:hover,
.space-logo:hover,
.vessel-logo:hover {
    filter: grayscale(0%) brightness(1);
}

/* Project-specific logo widths */
.rey-logo {
    width: 110px;
}

.space-logo {
    width: 160px;
}

.vessel-logo {
    width: 144px;
}

/* Shared tagline styles */
.rey-tagline,
.space-tagline,
.vessel-tagline {
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
    line-height: 1;
}

/* Project-specific tagline colors */
.rey-tagline {
    color: #38ffc3;
}

.space-tagline {
    color: #9200ff;
}

.vessel-tagline {
    color: #c6dbbc;
}

/* Shared title styles */
.rey-title,
.space-title,
.vessel-title {
    font-family: var(--font-hero);
    font-size: 56px;
    font-weight: 400;
    color: var(--color-white);
    line-height: 1;
    letter-spacing: 0;
    max-width: 966px;
}

/* Shared services text styles */
.rey-services,
.space-services,
.vessel-services {
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    color: var(--color-light-grey);
    text-transform: uppercase;
    letter-spacing: 0;
    line-height: 1;
}

/* Shared description styles */
.rey-description,
.space-description,
.vessel-description {
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: 400;
    color: var(--color-white);
    line-height: 1;
    letter-spacing: 0;
    max-width: 700px;
}

/* Space has unique text color */
.space-description {
    color: #aaaaaa;
}

/* ============================================
   CTA BUTTONS - Grey with Arrow
   ============================================ */

/* Shared visit button styles - grey with arrow */
.rey-btn-visit,
.space-btn-visit {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 16px 32px;
    border: 2px solid rgba(80, 80, 80, 0.2);
    background: rgba(80, 80, 80, 0.1);
    color: var(--color-white);
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.3s ease;
    width: fit-content;
}

.rey-btn-visit:hover,
.space-btn-visit:hover {
    background: rgba(80, 80, 80, 0.2);
}

.rey-btn-visit .btn-corner,
.space-btn-visit .btn-corner {
    border-color: var(--color-grey);
}

.rey-btn-visit:hover .btn-corner,
.space-btn-visit:hover .btn-corner {
    width: 16px;
    height: 16px;
}

.rey-btn-visit .btn-arrow,
.space-btn-visit .btn-arrow {
    width: 8px;
    height: 8px;
    filter: brightness(0) saturate(100%) invert(72%);
}

/* ============================================
   CONTENT SECTIONS
   ============================================ */

/* Shared content container base */
.rey-content,
.space-content,
.vessel-content {
    max-width: 1800px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

/* Rey has padding and gap */
.rey-content {
    gap: 32px;
    padding: 0 80px;
}

/* Space and Vessel have no padding/gap */
.space-content,
.vessel-content {
    gap: 0;
    padding: 0;
}

/* Shared image section styles */
.rey-image-section,
.space-image-section,
.vessel-image-section {
    width: 100%;
    position: relative;
}

.rey-image-section img,
.space-image-section img,
.vessel-image-section img {
    width: 100%;
    height: auto;
    display: block;
}

/* ============================================
   PROJECT-SPECIFIC SECTIONS
   ============================================ */

/* Space - Octalysis Section */
.space-octalysis-section {
    width: 100%;
    background: #000000;
    padding: 80px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 80px;
    min-height: 800px;
}

.space-octalysis-content {
    flex: 1;
    max-width: 500px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.space-octalysis-title {
    font-family: var(--font-heading);
    font-size: 26px;
    font-weight: 400;
    color: var(--color-white);
    line-height: 1;
}

.space-octalysis-subtitle {
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 400;
    color: #505050;
    text-transform: uppercase;
    line-height: 1;
}

.space-octalysis-description {
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: 400;
    color: #aaaaaa;
    line-height: 1.5;
}

.space-octalysis-image {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.space-octalysis-image img {
    max-width: 100%;
    height: auto;
}

/* Vessel - Video Sections */
.vessel-video-section {
    width: 100%;
    position: relative;
    background: #fdf5e9;
    padding: 40px 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vessel-video-section video {
    width: 100%;
    height: auto;
    display: block;
}

.vessel-video-container {
    width: 100%;
    max-width: 1800px;
    padding: 0 80px;
    margin: 0 auto;
}

/* ============================================
   RESPONSIVE STYLES - CASE STUDIES
   ============================================ */

/* 1024px Breakpoint */
@media (max-width: 1024px) {

    .rey-hero-content,
    .space-hero-content,
    .vessel-hero-content {
        padding: 0 40px;
    }

    .rey-content {
        padding: 0 40px;
    }

    .space-octalysis-section {
        padding: 60px 40px;
        flex-direction: column;
    }

    .space-octalysis-content {
        max-width: 100%;
    }

    .vessel-video-container {
        padding: 0 40px;
    }
}

/* 768px Breakpoint */
@media (max-width: 768px) {

    .rey-hero,
    .space-hero,
    .vessel-hero {
        height: 700px;
    }

    .rey-hero-content,
    .space-hero-content,
    .vessel-hero-content {
        padding: 0 20px;
    }

    .rey-title,
    .space-title,
    .vessel-title {
        font-size: 40px;
    }

    .rey-description,
    .space-description,
    .vessel-description {
        font-size: 16px;
    }

    .rey-content {
        padding: 0 20px;
        gap: 24px;
    }

    .space-octalysis-section {
        padding: 40px 20px;
        min-height: auto;
    }

    .space-octalysis-title {
        font-size: 22px;
    }

    .space-octalysis-subtitle {
        font-size: 18px;
    }

    .space-octalysis-description {
        font-size: 16px;
    }

    .vessel-video-section {
        padding: 20px 0;
    }

    .vessel-video-container {
        padding: 0 20px;
    }
}

/* 480px Breakpoint */
@media (max-width: 480px) {

    .rey-hero,
    .space-hero,
    .vessel-hero {
        height: 600px;
    }

    .rey-title,
    .space-title,
    .vessel-title {
        font-size: 32px;
    }

    .rey-services,
    .rey-tagline,
    .space-services,
    .space-tagline,
    .vessel-services,
    .vessel-tagline {
        font-size: 12px;
    }

    .rey-description,
    .space-description,
    .vessel-description {
        font-size: 14px;
    }

    .rey-content {
        gap: 16px;
    }

    .space-octalysis-section {
        padding: 32px 20px;
        gap: 40px;
    }

    .space-octalysis-title {
        font-size: 20px;
    }

    .space-octalysis-subtitle {
        font-size: 16px;
    }

    .space-octalysis-description {
        font-size: 14px;
    }

    .vessel-video-section {
        padding: 16px 0;
    }
}