/* ========================================
   FONTS
   ======================================== */
@font-face{
    font-family: "opensans";
    src: url("fonts/OpenSans-Regular.ttf")
}

/* ========================================
   BASE STYLES
   ======================================== */
body{
    font-family: "opensans", sans-serif;
    margin: 0;
    margin-bottom: 100px;
    margin-top: 65px;
    color: black;
}

a{
    color: black
}

/* ========================================
   RESPONSIVE LAYOUT & MOBILE WARNING
   ======================================== */

@media (min-width:1101px){
    .mobile-view { display: none; }
    .container { display: block; }
}

@media (max-width:1100px){
    body {
        background-color: white;
    }
    .mobile-view { display: block; }
    .container { display: none; }
}

.mobile-view {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.mobile-view p,span {
    font-size: 16x;
    text-align: center;
}

/* ========================================
   HEADER / INTRO SECTION
   ======================================== */

.intro{
    position: fixed;
    left: 0;
    top: 0;
    width: 240px;
    height: 100vh;
    padding: 50px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    z-index: 20;
}

.intro h1 a {
    text-decoration: none;
}

.intro h1{
    font-size:20px;
}

.intro p{
    font-size: 12.5px;
}

.intro-bottom {
    margin-top: auto;
    margin-bottom: 80px;
}

/* Animated Text */
.animated-text{
    font-size: 12.5px;
    opacity: 1;
    transition: opacity 1s ease-in-out;
    }

.fade-out {
    opacity: 0;
}

.fade-in {
    opacity: 1;
}

/* Status Badge */
.status-badge {
    display: inline-flex;
    align-items: center;
    gap: 12.5px;
    margin: 0px;
}

.status-circle {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #FF46A2;
    animation: fadeInOut 3s ease-in-out infinite;
    flex-shrink: 0;
}

.status-text {
    font-size: 12.5px;
    color: black;
}

@keyframes fadeInOut {
    0%, 100% {
        opacity: 0.3;
    }
    50% {
        opacity: 1;
    }
}

/* ========================================
   NAVIGATION
   ======================================== */

   .nav {
    position: fixed;
    right: 0;
    top: 0;
    width: 50px;
    height: 100vh;
    padding: 50px;
}

.nav h1{
    font-size:20px;
}

.nav h1 a {
    text-decoration: none;
}

/* ========================================
   MAIN CONTENT AREA
   ======================================== */

.content h2{
    font-size:14px;
    margin: 0px;
}

.content p{
    font-size:14px;
    margin-top: 0px;
}

.content a{
    text-decoration: none;
}

.content span{
    font-size: 12.5px;
    color: grey;
    margin: 0;
}

/* ========================================
   IMAGE GRID (Homepage Portfolio)
   ======================================== */

.image-grid{
    margin-left: 340px;  
    margin-right: 150px;  
    display:grid;
    grid-template-columns: repeat(2,1fr);
    column-gap: 16px;
    row-gap: 40px;
}

.image-grid img{
    width:100%;
    height:auto;
    display: block;
    border-radius: 10px;
    margin-bottom: 10px;
}

/* Hover Effect */
.image-grid > div { /*with claudeai*/
    position: relative;
}

.image-grid > div::before { /*with claudeai*/
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(100% - 25px); /* Accounts for image margin-bottom */
    background-color: rgba(255, 255, 255, 0.25); /* White at 20% opacity */
    border-radius: 10px;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.image-grid > div:hover::before { /*with claudeai*/
    opacity: 1;
}

/* ========================================
   PROJECT DETAIL PAGES
   ======================================== */

.project-info{
    margin-left: 340px;  
    margin-right: 150px;  
}

.project-info img{
    width:100%;
    height:auto;
    display: block;
    border-radius: 10px;
}

/* Typography */
.project-info h2{
    font-size:14px;
}

.project-info h3{
    font-size:14.5px;
    margin-top: 4px;
    margin-bottom: 10px;
}

.project-intro h2{
    font-size:20px;
}

.project-info p{
    font-size:14px;
    color: grey;
}

.project-info span{
    font-size: 12.5px;
}

.project-info a{
    color: grey;
}
/* ========================================
   GRID LAYOUT SYSTEM
   ======================================== */
.block {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: auto 1fr;
    column-gap: 50px;
    row-gap: 20px;
    margin-bottom: 50px;
    margin-top: 25px;

}

/* Default Column Spans */
.title {
    grid-column: 1 / 5;
}

.info {
    grid-column: 1 / 3;
}

.description {
    grid-column: 3 / 5;
}

/* Utility Classes for Column Widths */
.full-width {
    grid-column: 1 / 5; /* All 4 columns */
}

.three-quarters {
    grid-column: 2 / 5; /* 3 columns */
}

.half-width {
    grid-column: 3 / 5; /* 2 columns */
}

.four-quarter {
    grid-column: 4 / 5; /* 1 column */
}

.one-quarter {
    grid-column: 1 / 2; /* 1 column from left */
}

.two-quarter {
    grid-column: 2 / 3;
}

.three-quarter {
    grid-column: 3 / 4;
}

.first-half {
    grid-column: 1 / 3;
}

/* ========================================
   GRID LAYOUT SYSTEM
   ======================================== */
.block_1 {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-template-rows: auto 1fr;
    column-gap: 20px;
    row-gap: 20px;
    margin-bottom: 50px;
}

.block_1 .gallery:last-child {
    margin-bottom: 0;
}

.full {
    grid-column: 1 / 8; /* All 4 columns */
}

.first {
    grid-column: 1 / 2;
}

.second {
    grid-column: 2 / 8;
}

.half {
    grid-column: 2 / 5;
}

.second-half {
    grid-column: 5 / 8;
}


/* ========================================
   GALLERY
   ======================================== */
.gallery {
    display: grid;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 50px;
}

.gallery img {
    width: 100%;
    height: auto;
}

/* ========================================
   UI ELEMENTS
   ======================================== */
.horizontal-line {
    width: 100%;
    height: 0;
    border-top: 1px solid lightgrey;
    background-color: transparent;
}

.bottom-gradient {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 150px;
    background: linear-gradient(to top, white, transparent);
    pointer-events: none;
    z-index: 10;
}
