/* ============================================================
   CHAFIK YOUNESS — Portfolio
   Shared stylesheet (used by index.html and project.html)
   ============================================================ */

:root{
  --bg:#0c0a08;            /* warm near-black */
  --bg-2:#13110e;
  --ink:#efe9df;           /* warm bone */
  --ink-soft:#b8b0a3;
  --muted:#6f685d;
  --bronze:#b08d57;        /* muted bronze accent */
  --bronze-soft:#c9a877;
  --line:rgba(239,233,223,0.08);
  --serif:"Cormorant Garamond",serif;
  --sans:"Outfit",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--ink);font-family:var(--sans);overflow-x:hidden;font-weight:300;
  background-image:radial-gradient(ellipse at 50% -15%,rgba(176,141,87,0.08),transparent 50%);
  min-height:100vh;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:999;opacity:0.03;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:28px 60px;mix-blend-mode:difference}
nav .logo{display:flex;align-items:center;gap:14px;font-family:var(--sans);font-size:12px;letter-spacing:0.3em;text-transform:uppercase;font-weight:400}
nav .logo img{width:34px;height:34px;border-radius:50%;mix-blend-mode:normal}
.nav-links{display:flex;gap:40px;font-family:var(--sans);font-size:11px;text-transform:uppercase;letter-spacing:0.22em}
.nav-links a{opacity:0.6;transition:opacity .4s}
.nav-links a:hover{opacity:1}

/* HERO (index) */
header.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:0 60px;position:relative}
.hero-eyebrow{font-family:var(--sans);font-size:11px;color:var(--bronze-soft);text-transform:uppercase;letter-spacing:0.4em;margin-bottom:42px;opacity:0;animation:fade 1.4s .3s forwards}
.hero-title{font-family:var(--serif);font-size:clamp(3.4rem,12vw,12rem);font-weight:300;letter-spacing:-0.01em;line-height:0.94}
.hero-title span{display:block;opacity:0;transform:translateY(24px);filter:blur(10px);animation:reveal 1.6s forwards}
.hero-title span:nth-child(1){animation-delay:.5s}
.hero-title span:nth-child(2){animation-delay:.75s;font-style:italic;padding-left:10vw}
.hero-title em{color:var(--bronze-soft)}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:72px;font-family:var(--sans);font-size:13px;color:var(--ink-soft);opacity:0;animation:fade 1.4s 1.2s forwards;flex-wrap:wrap;gap:28px}
.hero-foot p{max-width:380px;line-height:1.9}
.scroll-cue{display:flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:0.22em;font-size:10px;color:var(--muted)}
.scroll-cue .dot{width:6px;height:6px;border-radius:50%;background:var(--bronze);box-shadow:0 0 14px var(--bronze);animation:pulse 2.4s infinite}

@keyframes fade{to{opacity:1}}
@keyframes reveal{to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.2}}

.rule{height:1px;background:var(--line);margin:0 60px}

/* STATEMENT */
.statement{padding:170px 60px;max-width:1180px}
.statement p{font-family:var(--serif);font-size:clamp(1.9rem,4.5vw,3.6rem);font-weight:300;line-height:1.35}
.statement p em{font-style:italic;color:var(--bronze-soft)}
.statement .w{opacity:0.2;transition:opacity .7s}
.statement .w.lit{opacity:1}

/* FILTER */
.filter-bar{display:flex;gap:10px;padding:50px 60px 60px;flex-wrap:wrap}
.filter-bar button{background:transparent;border:1px solid var(--line);color:var(--muted);font-family:var(--sans);font-size:11px;font-weight:300;text-transform:uppercase;letter-spacing:0.18em;padding:11px 24px;cursor:pointer;transition:all .4s}
.filter-bar button:hover{color:var(--ink);border-color:var(--ink-soft)}
.filter-bar button.active{color:var(--bronze-soft);border-color:var(--bronze)}

/* SECTION LABEL */
.sec-label{display:flex;justify-content:space-between;align-items:baseline;padding:0 60px 60px;border-bottom:1px solid var(--line)}
.sec-label h2{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:300;color:var(--ink-soft)}
.sec-label .meta{font-family:var(--sans);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:0.22em}

/* GALLERY GRID (index) */
.gallery{padding:80px 60px 140px;display:grid;grid-template-columns:repeat(2,1fr);gap:80px 60px}
.tile{cursor:pointer;opacity:0;transform:translateY(60px);transition:opacity 1.2s cubic-bezier(.16,1,.3,1),transform 1.2s cubic-bezier(.16,1,.3,1)}
.tile.in{opacity:1;transform:translateY(0)}
.tile-frame{position:relative;overflow:hidden;background:var(--bg-2);aspect-ratio:4/3}
.tile-frame img,.tile-frame video{width:100%;height:100%;object-fit:cover;transition:transform 1.6s cubic-bezier(.16,1,.3,1);filter:brightness(0.92) saturate(1.02)}
.tile:hover .tile-frame img,.tile:hover .tile-frame video{transform:scale(1.05);filter:brightness(1) saturate(1.05)}
.tile-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,10,8,0.5),transparent 55%);pointer-events:none}
.tile-frame .play{position:absolute;top:18px;right:18px;font-family:var(--sans);font-size:9px;letter-spacing:0.2em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line);padding:5px 10px;background:rgba(12,10,8,0.4);backdrop-filter:blur(4px)}
.tile-info{display:flex;justify-content:space-between;align-items:flex-start;margin-top:24px;gap:16px}
.tile-info h3{font-family:var(--serif);font-size:clamp(1.6rem,2.6vw,2.4rem);font-weight:300;line-height:1.05;transition:color .4s}
.tile:hover .tile-info h3{color:var(--bronze-soft)}
.tile-info .num{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--muted);opacity:0.5}
.tile-cap{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--bronze-soft);margin-top:8px;line-height:1.5;font-weight:300}
.tile-tag{font-family:var(--sans);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:0.24em;margin-top:12px}
.tile.hidden{display:none}

/* ============ PROJECT PAGE ============ */
.project-wrap{padding:140px 60px 0;max-width:1500px;margin:0 auto}
.project-top{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;margin-bottom:28px}
.project-top .meta-left .pnum{font-family:var(--serif);font-style:italic;font-size:clamp(2.4rem,6vw,5rem);color:var(--muted);opacity:0.4;line-height:1}
.project-top h1{font-family:var(--serif);font-size:clamp(2.6rem,7vw,6rem);font-weight:300;letter-spacing:-0.01em;line-height:1;margin-top:10px}
.project-top .pcat{font-family:var(--sans);font-size:11px;color:var(--bronze-soft);text-transform:uppercase;letter-spacing:0.26em;text-align:right}
.project-caption{font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,3vw,2.2rem);color:var(--bronze-soft);max-width:760px;line-height:1.45;margin-bottom:34px;font-weight:300}
.project-media{position:relative;overflow:hidden;background:var(--bg-2);margin-bottom:50px;display:flex;justify-content:center;align-items:center}
.project-media img,.project-media video{display:block;max-width:100%;max-height:85vh;width:auto;height:auto;margin:0 auto;cursor:zoom-in}
.collab-pair .project-media img{max-height:60vh}

/* FULL-SCREEN LIGHTBOX */
.lightbox{position:fixed;inset:0;z-index:2000;background:rgba(6,5,4,0.96);backdrop-filter:blur(8px);display:none;flex-direction:column;justify-content:center;align-items:center;cursor:zoom-out;opacity:0;transition:opacity .4s}
.lightbox.open{display:flex;opacity:1}
.lightbox img{max-width:92vw;max-height:84vh;width:auto;height:auto;display:block;box-shadow:0 30px 80px rgba(0,0,0,0.6);user-select:none;-webkit-user-drag:none;pointer-events:none}
.lightbox .lb-label{font-family:var(--serif);font-style:italic;font-size:clamp(1rem,2.5vw,1.5rem);color:var(--bronze-soft);letter-spacing:0.04em;margin-top:26px;opacity:0.9}
.lightbox .lb-close{position:absolute;top:30px;right:40px;font-family:var(--sans);font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--line);padding:10px 18px;cursor:pointer;transition:all .3s}
.lightbox .lb-close:hover{color:var(--ink);border-color:var(--ink-soft)}
.lightbox .lb-watermark{position:absolute;bottom:24px;left:0;right:0;text-align:center;font-family:var(--sans);font-size:10px;letter-spacing:0.3em;text-transform:uppercase;color:rgba(239,233,223,0.35)}
.project-body{display:grid;grid-template-columns:1fr 1fr;gap:60px;max-width:1100px;margin:0 auto;padding-bottom:60px}
.project-body .label{font-family:var(--sans);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:0.24em;margin-bottom:18px}
.project-body p{font-family:var(--serif);font-size:1.35rem;line-height:1.7;color:var(--ink-soft);font-weight:300}
.project-body .specs div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:14px 0;font-family:var(--sans);font-size:13px}
.project-body .specs div span:first-child{color:var(--muted);text-transform:uppercase;letter-spacing:0.14em;font-size:11px}

/* COLLAB pair (project page) */
.collab-pair{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:30px}
.collab-pair .project-media{margin-bottom:0}
.collab-pair figure{margin:0}
.collab-pair figcaption{font-family:var(--sans);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:0.18em;margin-top:16px}
.collab-credit{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--ink-soft);margin-bottom:80px;line-height:1.6}
.collab-credit strong{color:var(--bronze-soft);font-style:normal;font-weight:400}
.collab-credit a{color:var(--bronze-soft);border-bottom:1px solid var(--line);transition:border-color .3s}
.collab-credit a:hover{border-color:var(--bronze-soft)}
@media(max-width:880px){.collab-pair{grid-template-columns:1fr;gap:40px}}

/* prev / next nav */
.project-nav{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin:0 60px;padding:50px 0 90px;font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,3vw,2.2rem)}
.project-nav a{color:var(--ink-soft);transition:color .4s;display:flex;flex-direction:column;gap:6px}
.project-nav a:hover{color:var(--bronze-soft)}
.project-nav a .dir{font-family:var(--sans);font-style:normal;font-size:10px;letter-spacing:0.24em;text-transform:uppercase;color:var(--muted)}
.project-nav a.next{text-align:right;align-items:flex-end}

/* FOOTER */
footer{padding:200px 60px 80px;border-top:1px solid var(--line);text-align:center;position:relative;background:radial-gradient(ellipse at 50% 130%,rgba(176,141,87,0.10),transparent 60%)}
footer .lead{font-family:var(--sans);font-size:11px;color:var(--bronze-soft);text-transform:uppercase;letter-spacing:0.34em;margin-bottom:40px}
footer .big{font-family:var(--serif);font-size:clamp(2.8rem,10vw,9rem);font-weight:300;font-style:italic;letter-spacing:-0.01em;line-height:0.98;margin-bottom:64px}
footer .big a{transition:color .5s}
footer .big a:hover{color:var(--bronze-soft)}
.foot-row{display:flex;justify-content:center;gap:48px;font-family:var(--sans);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:0.2em;flex-wrap:wrap}
.foot-row a{transition:color .4s}
.foot-row a:hover{color:var(--bronze-soft)}
.copy{margin-top:60px;font-family:var(--sans);font-size:10px;color:var(--muted);letter-spacing:0.18em}

/* RESPONSIVE */
@media(max-width:880px){
  nav{padding:20px 24px}.nav-links{gap:20px;font-size:10px}
  header.hero,.statement,.filter-bar,.sec-label,footer{padding-left:24px;padding-right:24px}
  .rule,.project-nav{margin-left:24px;margin-right:24px}
  .hero-title span:nth-child(2){padding-left:0}
  .gallery{grid-template-columns:1fr;gap:60px;padding:60px 24px 120px}
  .project-wrap{padding:120px 24px 0}
  .project-body{grid-template-columns:1fr;gap:30px}
  .foot-row{gap:24px}
}
