:root{
  --bg:        #0A0E14;
  --surface:   #10161F;
  --surface-2: #151D29;
  --border:    rgba(255,255,255,0.08);
  --border-2:  rgba(255,255,255,0.14);
  --text:      #E7ECF2;
  --muted:     #8B98AA;
  --accent:    #00E6A8;
  --accent-2:  #FF5C72;
  --radius: 14px;
  --font-display: 'Vazirmatn', 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:
    radial-gradient(circle at 15% 0%, rgba(0,230,168,0.08), transparent 45%),
    radial-gradient(circle at 85% 15%, rgba(255,92,114,0.06), transparent 40%),
    var(--bg);
  color:var(--text); font-family:var(--font-display); line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size:42px 42px; mask-image:linear-gradient(to bottom, black, transparent 70%);
}
a{color:inherit; text-decoration:none;}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:4px;}

/* ---------------- NAV ---------------- */
nav{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:16px clamp(20px,5vw,64px);
  background:rgba(10,14,20,0.72); backdrop-filter:blur(14px); border-bottom:1px solid var(--border);
}
.logo{display:flex; align-items:center; gap:10px; font-family:var(--font-mono); font-weight:600;}
.logo img{width:34px; height:34px; border-radius:9px; object-fit:cover; border:1px solid var(--border-2);}
.logo span::before{content:"$ "; color:var(--accent);}
.menu{display:flex; gap:6px;}
.menu a{font-size:0.92rem; padding:9px 14px; border-radius:9px; color:var(--muted); transition:color .2s, background .2s;}
.menu a:hover{color:var(--text); background:var(--surface-2);}
.menu a[aria-current="page"]{color:var(--accent);}
.hamburger{display:none; flex-direction:column; text-align: center; justify-content: center; gap:5px; cursor:pointer; padding:8px;}
.hamburger div{width:22px; height:2px; background:var(--text); border-radius:2px; transition:.25s;}
@media (max-width: 780px){
  .menu{
    position:absolute; top:100%; left:0; right:0; flex-direction:column;
    background:var(--surface); border-bottom:1px solid var(--border);
    max-height:0; overflow:hidden; transition:max-height .3s ease; padding:0 16px;
  }
  .menu.open{max-height:400px; padding:10px 16px; text-align: center; justify-content: center;}
  .hamburger{display:flex; text-align: center; justify-content: center;}
}

/* ---------------- MAIN / HEADER ---------------- */
main{position:relative; z-index:1; max-width:1180px; margin:0 auto; padding:0 clamp(20px,5vw,64px) 60px;}

.eyebrow{
  font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--accent); display:flex; align-items:center; gap:8px; margin:44px 0 10px;
}
.eyebrow::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--accent);
  box-shadow:0 0 10px var(--accent); animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.35;}}

.projects-header{margin-bottom:34px;}
.projects-header h1{
  font-size:clamp(1.8rem,4.5vw,2.6rem); font-weight:800; letter-spacing:-0.01em; margin:0 0 10px;
  background:linear-gradient(120deg, var(--text) 40%, var(--accent) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.projects-header p{color:var(--muted); font-size:1rem; margin:0; max-width:560px;}

/* ---------------- PROJECT GRID ---------------- */
.projects-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(310px,1fr)); gap:22px;
}
.project-card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column; cursor:pointer;
  transition:transform .2s, border-color .2s, box-shadow .2s;
}
.project-card:hover, .project-card:focus-within{
  transform:translateY(-4px); border-color:var(--accent); box-shadow:0 16px 36px rgba(0,230,168,0.1);
}
.project-card:focus-visible{outline:2px solid var(--accent); outline-offset:3px;}

.browser-frame{background:var(--surface-2); border-bottom:1px solid var(--border);}
.browser-bar{display:flex; align-items:center; gap:8px; padding:9px 12px;}
.browser-dots{display:flex; gap:6px; flex-shrink:0;}
.browser-dots span{width:9px; height:9px; border-radius:50%; display:block;}
.browser-dots span:nth-child(1){background:#FF5C72;}
.browser-dots span:nth-child(2){background:#FFC400;}
.browser-dots span:nth-child(3){background:#00E6A8;}
.browser-url{
  flex:1; font-family:var(--font-mono); font-size:0.7rem; color:var(--muted);
  background:var(--surface); border:1px solid var(--border); border-radius:6px;
  padding:4px 10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.project-image{aspect-ratio:16/10; overflow:hidden; background:var(--surface); position:relative;}
.project-image img{width:100%; height:100%; object-fit:cover; object-position:top; display:block; transition:transform .35s;}
.project-card:hover .project-image img{transform:scale(1.04);}

/* hover/focus hint that the whole card opens a details page */
.image-overlay{
  position:absolute; inset:0; display:flex; align-items:flex-end; padding:14px;
  background:linear-gradient(to top, rgba(6,8,12,0.82), transparent 55%);
  opacity:0; transition:opacity .25s;
  font-family:var(--font-mono); font-size:0.76rem; color:var(--accent);
  gap:6px; align-items:center;
}
.project-card:hover .image-overlay, .project-card:focus-within .image-overlay{opacity:1;}

.project-body{padding:18px 20px 20px; display:flex; flex-direction:column; gap:12px; flex:1;}
.project-title{font-size:1.1rem; font-weight:700; margin:0; color:var(--text);}
.tech-row{display:flex; flex-wrap:wrap; gap:7px;}
.tech-chip{
  font-family:var(--font-mono); font-size:0.7rem; padding:5px 10px; border-radius:100px;
  border:1px solid var(--border-2); color:var(--muted); background:var(--surface-2);
}

.card-actions{margin-top:auto; display:flex; gap:10px;}
.visit-btn{
  position:relative; z-index:2; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:11px 16px; border-radius:9px; border:1px solid var(--border-2); color:var(--text);
  font-weight:600; font-size:0.86rem; transition:border-color .2s, background .2s; flex:1;
}
.visit-btn:hover{border-color:var(--accent); background:var(--surface-2);}
.visit-btn svg{flex-shrink:0;}
.details-hint{
  display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:0.78rem;
  color:var(--accent); flex-shrink:0; padding:11px 4px;
}

/* ---------------- EMPTY STATE ---------------- */
.no-projects{
  text-align:center; padding:70px 20px; color:var(--muted);
  background:var(--surface); border:1px dashed var(--border-2); border-radius:var(--radius);
}
.no-projects p{margin:0; font-family:var(--font-mono); font-size:0.85rem;}
.no-projects p::before{content:"> ";}

/* ---------------- FLOATING CONTROLS ---------------- */
.lang-btn{
  position:fixed; bottom:24px; left:24px; z-index:40;
  font-family:var(--font-mono); font-size:0.78rem; padding:10px 16px; border-radius:100px;
  background:var(--surface); color:var(--text); border:1px solid var(--border-2); cursor:pointer;
  transition:border-color .2s;
}
.lang-btn:hover{border-color:var(--accent);}
[dir="rtl"] .lang-btn{left:auto; right:24px;}

.back-to-top{
  position:fixed; bottom:24px; right:24px; z-index:40;
  width:52px; height:52px; border-radius:50%; border:none; cursor:pointer;
  background:var(--surface); color:var(--accent);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:translateY(10px); pointer-events:none;
  transition:opacity .25s, transform .25s;
}
.back-to-top.visible{opacity:1; transform:translateY(0); pointer-events:auto;}
[dir="rtl"] .back-to-top{right:auto; left:24px;}
.back-to-top svg.ring{position:absolute; inset:0; transform:rotate(-90deg);}
.back-to-top .ring-track{fill:none; stroke:var(--border-2); stroke-width:3;}
.back-to-top .ring-fill{fill:none; stroke:var(--accent); stroke-width:3; stroke-linecap:round;}
.back-to-top .arrow{position:relative; z-index:1;}

/* ---------------- FOOTER ---------------- */
footer{ text-align:center; padding:34px 20px 44px; color:var(--muted); font-size:0.85rem; position:relative; }
footer::before{
  content:""; display:block; height:2px; width:100%; max-width:1180px; margin:0 auto 34px;
  background:linear-gradient(90deg, transparent, var(--accent), var(--accent-2), transparent);
  background-size:200% 100%; animation:streak 6s linear infinite; opacity:0.6;
}
@keyframes streak{to{background-position:-200% 0;}}
footer p{margin:4px 0;}
.Icon{display:flex; justify-content:center; gap:14px; margin-top:14px;}
.Icon a{
  width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--surface); border:1px solid var(--border); color:var(--muted);
  transition:color .2s, border-color .2s, transform .2s;
}
.Icon a:hover{color:var(--accent); border-color:var(--accent); transform:translateY(-2px);}

/* content only used to populate the in-page modal, never shown in the card itself */
.hidden-desc{display:none;}

/* ===================================================================
   PROJECT MODAL — opens in place on the listing page when a card is
   clicked, instead of navigating away.
   =================================================================== */
.project-modal{
  position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
  padding:24px; background:rgba(6,8,12,0.82); backdrop-filter:blur(8px);
  opacity:0; visibility:hidden; transition:opacity .25s;
}
.project-modal.open{opacity:1; visibility:visible;}
.project-modal-inner{
  position:relative; width:100%; max-width:640px; max-height:88vh; overflow-y:auto;
  background:var(--surface); border:1px solid var(--border-2); border-radius:var(--radius);
  box-shadow:0 30px 90px rgba(0,0,0,0.55);
}
.project-modal-close{
  position:absolute;
  top:70px;
  right:14px;
  z-index:2;
  width:38px;
  height:38px;
  border-radius:50%;
  background:var(--surface-2);
  border:1px solid var(--border-2);
  color:var(--text);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:border-color .2s, color .2s;
}
.project-modal-close:hover{border-color:var(--accent-2); color:var(--accent-2);}
[dir="rtl"] .project-modal-close{right:auto; left:14px;}

.project-modal-browser-bar{display:flex; align-items:center; gap:8px; padding:10px 14px; background:var(--surface-2); border-bottom:1px solid var(--border);}
.project-modal-dots{display:flex; gap:6px; flex-shrink:0;}
.project-modal-dots span{width:9px; height:9px; border-radius:50%; display:block;}
.project-modal-dots span:nth-child(1){background:#FF5C72;}
.project-modal-dots span:nth-child(2){background:#FFC400;}
.project-modal-dots span:nth-child(3){background:#00E6A8;}
.project-modal-url{
  flex:1; font-family:var(--font-mono); font-size:0.74rem; color:var(--muted);
  background:var(--surface); border:1px solid var(--border); border-radius:6px;
  padding:5px 10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.project-modal-image{aspect-ratio:16/9; overflow:hidden; background:var(--surface-2);}
.project-modal-image img{width:100%; height:100%; object-fit:cover; object-position:top; display:block;}

.project-modal-body{padding:22px 24px 26px;}
.project-modal-title{
  font-size:1.4rem; font-weight:800; margin:0 0 14px; letter-spacing:-0.01em;
  background:linear-gradient(120deg, var(--text) 40%, var(--accent) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.project-modal-tech{display:flex; flex-wrap:wrap; gap:7px; margin-bottom:18px;}
.project-modal-description{color:#D6DCE4; font-size:0.96rem; margin:0 0 22px; white-space:pre-line;}
.project-modal-description:empty::before{content:"No description added for this project yet."; color:var(--muted); font-style:italic;}
.project-modal-visit{
  display:inline-flex; align-items:center; gap:9px; background:var(--accent); color:#03150F;
  font-weight:700; padding:12px 20px; border-radius:9px; font-size:0.94rem; transition:filter .2s;
}
.project-modal-visit:hover{filter:brightness(1.08);}

/* ===================================================================
   PROJECT DETAIL PAGE (Itz_taha_Project_Detail.html)
   =================================================================== */
.detail-container{max-width:820px; margin:0 auto; padding:0 clamp(20px,5vw,24px) 70px;}

.detail-browser-frame{
  margin-top:34px; border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--border-2); background:var(--surface-2);
  box-shadow:0 20px 60px rgba(0,0,0,0.35);
}
.detail-browser-bar{display:flex; align-items:center; gap:10px; padding:11px 14px;}
.detail-browser-dots{display:flex; gap:7px; flex-shrink:0;}
.detail-browser-dots span{width:10px; height:10px; border-radius:50%; display:block;}
.detail-browser-dots span:nth-child(1){background:#FF5C72;}
.detail-browser-dots span:nth-child(2){background:#FFC400;}
.detail-browser-dots span:nth-child(3){background:#00E6A8;}
.detail-browser-url{
  flex:1; font-family:var(--font-mono); font-size:0.8rem; color:var(--muted);
  background:var(--surface); border:1px solid var(--border); border-radius:7px;
  padding:6px 12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.detail-image{aspect-ratio:16/10; overflow:hidden; background:var(--surface);}
.detail-image img{width:100%; height:100%; object-fit:cover; object-position:top; display:block;}

.detail-content{margin-top:30px;}
.detail-title{
  font-size:clamp(1.7rem,4.5vw,2.4rem); font-weight:800; letter-spacing:-0.01em; margin:0 0 16px;
  background:linear-gradient(120deg, var(--text) 40%, var(--accent) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.detail-tech-row{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px; padding-bottom:24px; border-bottom:1px solid var(--border);}
.detail-tech-row .tech-chip{font-size:0.76rem; padding:6px 12px;}

.detail-description{color:#D6DCE4; font-size:1.02rem; margin:0 0 32px; white-space:pre-line;}
.detail-description:empty::before{content:"No description added for this project yet."; color:var(--muted); font-style:italic;}

.detail-actions{display:flex; gap:12px; flex-wrap:wrap;}
.detail-visit-btn{
  display:inline-flex; align-items:center; gap:9px; background:var(--accent); color:#03150F;
  font-weight:700; padding:13px 22px; border-radius:9px; font-size:0.96rem; transition:filter .2s;
}
.detail-visit-btn:hover{filter:brightness(1.08);}
.detail-back-btn{
  display:inline-flex; align-items:center; gap:9px; border:1px solid var(--border-2); color:var(--text);
  padding:13px 22px; border-radius:9px; font-size:0.96rem; font-weight:600; transition:border-color .2s, background .2s;
}
.detail-back-btn:hover{border-color:var(--accent); background:var(--surface);}
[dir="rtl"] .detail-back-btn svg{transform:scaleX(-1);}

/* ===================================================================
   MOBILE RESPONSIVENESS
   =================================================================== */
@media (max-width: 620px){
  .projects-grid{grid-template-columns:1fr; gap:16px;}
  .project-body{padding:16px 16px 18px;}
  .card-actions{flex-wrap:wrap;}
  .details-hint{width:100%; justify-content:center; padding:6px 4px 0;}
  .visit-btn{flex:1 1 100%;}
  .image-overlay{font-size:0.72rem;}
}

@media (max-width: 480px){
  main{padding-left:16px; padding-right:16px;}
  .eyebrow{margin-top:28px;}
  .projects-header h1{font-size:1.6rem;}
  .projects-header p{font-size:0.92rem;}

  /* modal becomes a near-full-screen sheet on small phones */
  .project-modal{padding:0;}
  .project-modal-inner{
    max-width:100%; width:100%; height:100%; max-height:100%;
    border-radius:0; border-left:none; border-right:none;
  }
  .project-modal-body{padding:18px 16px 24px;}
  .project-modal-title{font-size:1.2rem;}
  .project-modal-visit{width:100%; justify-content:center;}
  .project-modal-image{aspect-ratio:16/11;}
}

@media (max-width: 360px){
  .browser-url, .project-modal-url{font-size:0.66rem;}
  .tech-chip{font-size:0.66rem; padding:4px 8px;}
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

    .image-overlay {
            position: absolute;
            inset: 0;
        
            display: flex !important;
            align-items: center !important;
            justify-content: center !important;
        
            background: rgba(0, 0, 0, 0);
            opacity: 0;
        
            transition:
                opacity 0.3s ease,
                background 0.3s ease;
        
            z-index: 2;
        }
        
        .project-image:hover .image-overlay {
            opacity: 1;
            background: rgba(0, 0, 0, 0.55);
        }
        
        .view-details {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
        
            padding: 9px 16px;
        
            color: #000;
            background: rgba(255, 255, 255, 0.88);
        
            border: 1px solid rgba(255, 255, 255, 0.95);
            border-radius: 8px;
        
            font-size: 13px;
            font-weight: 600;
        
            backdrop-filter: blur(6px);
            -webkit-backdrop-filter: blur(6px);
        
            transform: translateY(8px);
            transition:
                transform 0.3s ease,
                background 0.3s ease,
                box-shadow 0.3s ease;
        }
        
        .project-image:hover .view-details {
            transform: translateY(0);
        }
        
        .view-details svg {
            width: 16px;
            height: 16px;
        
            color: #000;
            stroke: #000;
        
            flex-shrink: 0;
        }
        
        .view-details:hover {
            background: rgba(255, 255, 255, 0.96);
        
            box-shadow:
                0 8px 25px rgba(0, 0, 0, 0.25);
        }
        
        .project-modal {
            padding-top: 110px !important;
        }

/* =========================
   CUSTOM MODAL SCROLLBAR
   ========================= */

.project-modal-inner {
  scrollbar-width: thin;
  scrollbar-color: var(--accent) transparent;
}

/* Chrome / Edge / Safari */
.project-modal-inner::-webkit-scrollbar {
  width: 7px;
}

.project-modal-inner::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 10px;
}

.project-modal-inner::-webkit-scrollbar-thumb {
  background: linear-gradient(
    180deg,
    var(--accent),
    rgba(0, 230, 168, 0.45)
  );
  border-radius: 10px;
  border: 2px solid var(--surface);
}

.project-modal-inner::-webkit-scrollbar-thumb:hover {
  background: var(--accent);
}

/* Main page scrollbar */

html {
  scrollbar-width: thin;
  scrollbar-color: var(--accent) var(--bg);
}

html::-webkit-scrollbar {
  width: 8px;
}

html::-webkit-scrollbar-track {
  background: var(--bg);
}

html::-webkit-scrollbar-thumb {
  background: linear-gradient(
    180deg,
    var(--accent),
    var(--accent-2)
  );
  border-radius: 10px;
}

html::-webkit-scrollbar-thumb:hover {
  background: var(--accent);
}