:root{
  --blue:#0A66C2;
  --blue-deep:#084a91;
  --navy:#0B1F3A;
  --sky:#EAF3FC;
  --soft:#F7FAFD;
  --white:#FFFFFF;
  --slate:#4B5875;
  --slate-2:#7C8AA3;
  --line:#E2E9F2;
  --green:#1D8A5D;
  --radius:14px;
  --maxw:1180px;
  --font-en:'Manrope', sans-serif;
  --font-ar:'IBM Plex Sans Arabic', sans-serif;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-en);
  color:var(--navy);
  background:var(--white);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  font-size:16px;
}
html[dir="rtl"] body{font-family:var(--font-ar);}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}
h1,h2,h3,h4{font-family:inherit; letter-spacing:-0.01em; color:var(--navy); font-weight:700;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
button{font-family:inherit; border:none; background:none; cursor:pointer; color:inherit;}
ul{list-style:none;}
.wrap{max-width:var(--maxw); margin:0 auto; padding-inline:28px;}
.material-symbols-rounded{font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 22; font-size:20px; line-height:1; vertical-align:-4px;}

.eyebrow{
  font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--blue); font-weight:700;
  display:flex; align-items:center; gap:10px; margin-bottom:14px;
}
.eyebrow::before{content:''; width:20px; height:2px; background:var(--blue); display:inline-block;}
[dir="rtl"] .eyebrow{letter-spacing:0;}

section{padding-block:96px;}
@media (max-width:768px){ section{padding-block:56px;} }

/* Buttons */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 24px; border-radius:10px; font-weight:700; font-size:15px;
  border:1.5px solid transparent; cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
  min-height:44px;
}
.btn:focus-visible{outline:3px solid var(--blue); outline-offset:2px;}
.btn-primary{background:var(--blue); color:#fff; box-shadow:0 10px 24px -10px rgba(10,102,194,0.5);}
.btn-primary:hover{background:var(--blue-deep); transform:translateY(-2px);}
.btn-outline{background:transparent; color:var(--navy); border-color:var(--line);}
.btn-outline:hover{border-color:var(--blue); color:var(--blue); transform:translateY(-2px);}
.btn-white{background:#fff; color:var(--blue-deep);}
.btn-white:hover{transform:translateY(-2px);}
.btn-ghost-light{background:transparent; color:#fff; border-color:rgba(255,255,255,0.4);}
.btn-ghost-light:hover{background:rgba(255,255,255,0.12); transform:translateY(-2px);}
.btn-sm{padding:9px 16px; font-size:13.5px; min-height:38px;}

/* NAV */
header.nav{position:sticky; top:0; z-index:200; background:rgba(255,255,255,0.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.nav-inner{max-width:var(--maxw); margin:0 auto; padding:14px 28px; display:flex; align-items:center; justify-content:space-between; gap:16px;}
.brand{display:flex; align-items:center; gap:9px; font-weight:800; font-size:16.5px;}
.brand .dot{width:8px; height:8px; border-radius:50%; background:var(--blue); flex-shrink:0;}
.nav-links{display:flex; align-items:center; gap:28px; font-size:14px; font-weight:600; color:var(--slate);}
.nav-links a{transition:color .15s;}
.nav-links a:hover{color:var(--blue);}
.nav-right{display:flex; align-items:center; gap:14px;}
.lang-switch{display:flex; border:1px solid var(--line); border-radius:8px; overflow:hidden; font-size:12.5px; font-weight:700;}
.lang-switch button{padding:7px 11px; color:var(--slate-2);}
.lang-switch button.active{background:var(--blue); color:#fff;}
.nav-hamburger{display:none; width:40px; height:40px; align-items:center; justify-content:center; border-radius:8px;}
.nav-hamburger:hover{background:var(--soft);}
@media (max-width:920px){
  .nav-links{display:none;}
  .nav-cta-desktop{display:none;}
  .nav-hamburger{display:flex;}
}
.mobile-menu{
  display:none; position:fixed; inset:0; top:60px; background:#fff; z-index:190;
  padding:24px 28px; overflow-y:auto;
}
.mobile-menu.open{display:block;}
.mobile-menu a{display:flex; align-items:center; gap:10px; padding:16px 0; font-size:17px; font-weight:600; border-bottom:1px solid var(--line);}
.mobile-menu .mm-ctas{display:flex; flex-direction:column; gap:12px; margin-top:24px;}
.mobile-menu .mm-ctas .btn{justify-content:center; width:100%;}

/* HERO */
.hero{padding-block:64px 56px; background:radial-gradient(1100px 560px at 85% -8%, var(--sky) 0%, rgba(234,243,252,0) 60%);}
.hero-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center;}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr; gap:36px;} .hero{padding-block:36px;}}
.status-pill{
  display:inline-flex; align-items:center; gap:8px; padding:7px 14px; border-radius:999px;
  background:var(--sky); color:var(--blue-deep); font-size:13px; font-weight:700; margin-bottom:22px;
}
.status-pill .dot{width:7px; height:7px; border-radius:50%; background:var(--green); animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;} 50%{opacity:.35;}}
.hero h1{font-size:clamp(30px,4.2vw,48px); line-height:1.14; margin-bottom:20px;}
.hero h1 .accent{color:var(--blue);}
.hero-sub{font-size:17.5px; color:var(--slate); max-width:540px; margin-bottom:30px;}
.hero-ctas{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:28px;}
.hero-contact-row{display:flex; gap:18px; flex-wrap:wrap; font-size:14px; color:var(--slate-2);}
.hero-contact-row a{display:flex; align-items:center; gap:6px; font-weight:600; color:var(--slate);}
.hero-contact-row a:hover{color:var(--blue);}

.portrait-card{
  position:relative; border-radius:22px; overflow:hidden; border:1px solid var(--line);
  box-shadow:0 30px 60px -28px rgba(11,31,58,.32); background:var(--sky); max-width:340px; margin-inline:auto;
}
.portrait-card img{width:100%; aspect-ratio:4/5; object-fit:cover;}
.portrait-tag{
  position:absolute; bottom:14px; inset-inline-start:14px; background:rgba(255,255,255,.96);
  border-radius:999px; padding:7px 13px; font-size:12px; font-weight:700; display:flex; align-items:center; gap:6px;
  box-shadow:0 8px 18px -10px rgba(0,0,0,.3);
}
.portrait-tag .dot{width:7px; height:7px; border-radius:50%; background:var(--green);}

/* SNAPSHOT STRIP */
.snapshot{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--soft); padding-block:0;}
.snapshot-inner{display:flex; flex-wrap:wrap; justify-content:space-between; gap:0;}
.snap-item{flex:1 1 150px; padding:26px 18px; text-align:center; border-inline-end:1px solid var(--line); display:flex; flex-direction:column; align-items:center; gap:6px;}
.snap-item:last-child{border-inline-end:none;}
.snap-item .material-symbols-rounded{color:var(--blue); font-size:24px;}
.snap-item span.label{font-size:13px; font-weight:700; color:var(--navy);}
@media (max-width:700px){.snap-item{flex:1 1 45%; border:none; border-bottom:1px solid var(--line);}}

/* SECTION HEAD */
.section-head{max-width:680px; margin-bottom:48px;}
.section-head h2{font-size:clamp(24px,2.8vw,34px); margin-bottom:12px;}
.section-head p{color:var(--slate); font-size:16px;}

/* ABOUT */
.about{background:var(--white);}
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:start;}
@media (max-width:860px){.about-grid{grid-template-columns:1fr; gap:30px;}}
.about-copy p{color:var(--slate); font-size:16px; margin-bottom:16px;}
.about-pillars{display:flex; flex-direction:column; gap:16px;}
.pillar{display:flex; gap:14px; padding:18px; border:1px solid var(--line); border-radius:12px;}
.pillar .material-symbols-rounded{color:var(--blue); font-size:22px; flex-shrink:0;}
.pillar h4{font-size:15px; margin-bottom:3px;}
.pillar p{font-size:13.5px; color:var(--slate-2);}

/* EXPERTISE */
.expertise-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
@media (max-width:760px){.expertise-grid{grid-template-columns:1fr;}}
.exp-card{border:1px solid var(--line); border-radius:16px; padding:28px; background:#fff; transition:border-color .2s, transform .2s, box-shadow .2s;}
.exp-card:hover{border-color:var(--blue); transform:translateY(-3px); box-shadow:0 20px 40px -26px rgba(10,102,194,.32);}
.exp-card-head{display:flex; align-items:center; gap:12px; margin-bottom:14px;}
.exp-icon{width:44px; height:44px; border-radius:12px; background:var(--sky); color:var(--blue); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.exp-icon .material-symbols-rounded{font-size:24px;}
.exp-card h3{font-size:17.5px;}
.exp-tags{display:flex; flex-wrap:wrap; gap:8px;}
.exp-tags span{font-size:12.5px; padding:6px 11px; border-radius:999px; background:var(--soft); color:var(--slate); border:1px solid var(--line);}

/* PROJECTS */
.projects-wrap{background:var(--soft); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.project-card{border:1px solid var(--line); border-radius:20px; background:#fff; overflow:hidden; margin-bottom:24px;}
.pc-head{padding:30px 30px 20px; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap;}
.pc-tag{font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; color:var(--blue); background:var(--sky); padding:5px 11px; border-radius:999px; display:inline-block; margin-bottom:12px;}
.pc-head h3{font-size:22px; margin-bottom:6px;}
.pc-loc{font-size:13.5px; color:var(--slate-2); display:flex; align-items:center; gap:6px;}
.pc-link{display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:700; color:var(--blue); flex-shrink:0; height:fit-content;}
.pc-link:hover{text-decoration:underline;}
.pc-stats{display:flex; gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.pc-stat{flex:1; text-align:center; padding:18px 10px; border-inline-end:1px solid var(--line);}
.pc-stat:last-child{border-inline-end:none;}
.pc-stat .n{font-size:22px; font-weight:800; color:var(--green);}
.pc-stat .l{font-size:11px; color:var(--slate-2); font-weight:600; text-transform:uppercase; letter-spacing:.04em;}
.pc-body{padding:24px 30px 30px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px;}
@media (max-width:760px){.pc-body{grid-template-columns:1fr;} .pc-head{flex-direction:column;}}
.pc-col h5{font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--slate-2); font-weight:700; margin-bottom:8px;}
.pc-col p{font-size:14px; color:var(--slate);}
.pc-note{padding:14px 30px; background:var(--soft); border-top:1px solid var(--line); font-size:12.5px; color:var(--slate-2);}
.pc-stack{display:flex; flex-wrap:wrap; gap:6px; padding:0 30px 26px;}
.pc-stack span{font-size:12px; padding:5px 10px; border-radius:999px; background:var(--soft); border:1px solid var(--line); color:var(--slate);}

.additional-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:6px;}
@media (max-width:760px){.additional-grid{grid-template-columns:1fr;}}
.add-card{border:1px solid var(--line); border-radius:14px; padding:24px; background:#fff;}
.add-card h4{font-size:16px; margin-bottom:8px; display:flex; align-items:center; gap:8px;}
.add-card h4 .material-symbols-rounded{color:var(--blue);}
.add-card ul{display:flex; flex-direction:column; gap:6px; margin-top:10px;}
.add-card li{font-size:13.5px; color:var(--slate); padding-inline-start:16px; position:relative;}
.add-card li::before{content:'—'; position:absolute; inset-inline-start:0; color:var(--slate-2);}

/* RESULTS */
.results-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media (max-width:760px){.results-grid{grid-template-columns:1fr;}}
.result-card{border:1px solid var(--line); border-radius:16px; padding:28px; text-align:center;}
.result-card .n{font-size:34px; font-weight:800; color:var(--green); margin-bottom:6px;}
.result-card .l{font-size:14px; color:var(--slate); font-weight:600;}
.result-source{font-size:12.5px; color:var(--slate-2); margin-top:24px; text-align:center;}

/* STACK */
.stack-wrap{background:var(--navy); color:#fff;}
.stack-wrap .section-head h2, .stack-wrap .section-head p{color:#fff;}
.stack-wrap .section-head p{color:#A9BAD3;}
.stack-wrap .eyebrow{color:#4CC38A;}
.stack-wrap .eyebrow::before{background:#4CC38A;}
.stack-groups{display:grid; grid-template-columns:repeat(3,1fr); gap:30px;}
@media (max-width:860px){.stack-groups{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.stack-groups{grid-template-columns:1fr;}}
.stack-group h4{font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:#4CC38A; margin-bottom:14px; font-weight:700;}
.stack-tags{display:flex; flex-wrap:wrap; gap:8px;}
.stack-tags span{font-size:13px; padding:7px 13px; border-radius:999px; border:1px solid rgba(255,255,255,.16); color:#DCE6F2;}

/* HOW I WORK */
.process-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
@media (max-width:860px){.process-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.process-grid{grid-template-columns:1fr;}}
.process-step{border-inline-start:2px solid var(--blue); padding-inline-start:18px;}
.process-num{font-size:13px; font-weight:800; color:var(--blue); margin-bottom:8px;}
.process-step h4{font-size:16px; margin-bottom:6px;}
.process-step p{font-size:13.5px; color:var(--slate);}

/* CV SECTION */
.cv-section{background:var(--sky);}
.cv-box{display:flex; justify-content:space-between; align-items:center; gap:30px; flex-wrap:wrap; background:#fff; border:1px solid var(--line); border-radius:20px; padding:40px;}
.cv-box h3{font-size:22px; margin-bottom:10px;}
.cv-box p{color:var(--slate); font-size:15px; max-width:440px;}
.cv-ctas{display:flex; gap:12px; flex-wrap:wrap;}

/* CONTACT */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
@media (max-width:760px){.contact-grid{grid-template-columns:1fr;}}
.contact-card{border-radius:20px; padding:34px; color:#fff; position:relative; overflow:hidden;}
.contact-card.recruiter{background:linear-gradient(135deg, var(--navy), #123righ);}
.contact-card.recruiter{background:linear-gradient(135deg, var(--navy) 0%, #14284a 100%);}
.contact-card.client{background:linear-gradient(135deg, var(--blue) 0%, var(--blue-deep) 100%);}
.contact-card .material-symbols-rounded{font-size:30px; margin-bottom:16px; opacity:.9;}
.contact-card h3{color:#fff; font-size:20px; margin-bottom:10px;}
.contact-card p{color:rgba(255,255,255,.82); font-size:14.5px; margin-bottom:24px;}
.contact-card .cc-links{display:flex; flex-direction:column; gap:10px;}

/* FOOTER */
footer{background:var(--navy); color:#7C8FAE; padding-block:36px; font-size:13.5px;}
.footer-inner{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
.footer-links{display:flex; gap:20px; flex-wrap:wrap;}
footer a:hover{color:#fff;}

.reveal{opacity:0; transform:translateY(16px); transition:opacity .55s ease, transform .55s ease;}
.reveal.in{opacity:1; transform:none;}

/* skip link */
.skip-link{position:absolute; top:-50px; inset-inline-start:10px; background:var(--blue); color:#fff; padding:10px 16px; border-radius:8px; z-index:999; transition:top .2s;}
.skip-link:focus{top:10px;}

a:focus-visible, button:focus-visible{outline:3px solid var(--blue); outline-offset:2px;}

/* 2026 portfolio refresh */
html[data-theme="dark"]{
  --blue:#4D9DEB;
  --blue-deep:#2878C7;
  --navy:#EFF5FC;
  --sky:#102B48;
  --soft:#0D1B2C;
  --white:#07111F;
  --slate:#BAC7D8;
  --slate-2:#91A3BA;
  --line:#20344F;
  --green:#45B881;
}
body{transition:background-color .3s ease,color .3s ease; overflow-x:hidden;}
body.overlay-open{overflow:hidden;}

/* Refined buttons */
.btn{
  position:relative;
  justify-content:center;
  overflow:hidden;
  border-radius:999px;
  isolation:isolate;
  transform:translateZ(0);
  transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s ease,background-color .2s ease,border-color .2s ease,color .2s ease;
}
.btn > *{position:relative; z-index:1;}
.btn:hover{transform:translateY(-2px) scale(1.01);}
.btn:active{transform:translateY(0) scale(.96);}
.btn-primary{box-shadow:0 14px 30px -16px rgba(10,102,194,.72);}
.btn-outline{background:color-mix(in srgb,var(--white) 80%,transparent);}
.btn-ripple{
  position:absolute;
  z-index:0;
  border-radius:50%;
  pointer-events:none;
  background:currentColor;
  opacity:.2;
  transform:translate(-50%,-50%) scale(0);
  animation:button-ripple .75s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes button-ripple{to{opacity:0; transform:translate(-50%,-50%) scale(1);}}

/* Header */
header.nav{background:rgba(255,255,255,.86); backdrop-filter:blur(18px) saturate(160%); -webkit-backdrop-filter:blur(18px) saturate(160%);}
[data-theme="dark"] header.nav{background:rgba(7,17,31,.86);}
header.nav:has(.mobile-menu.open){backdrop-filter:none; -webkit-backdrop-filter:none;}
.nav-inner{padding-block:11px; min-height:68px;}
.nav-links{gap:22px;}
.nav-links a{display:inline-flex; align-items:center; gap:6px; white-space:nowrap;}
.desktop-nav-icon{font-size:17px; color:var(--blue); transition:color .15s ease,transform .15s ease;}
.nav-links a:hover .desktop-nav-icon{transform:translateY(-1px);}
.nav-right{gap:10px;}
.lang-switch a,.lang-switch button{padding:7px 10px; font-weight:700; color:var(--slate-2);}
.nav-hamburger,.mobile-menu-close,.lightbox-close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--soft);
  color:var(--navy);
  transition:transform .2s ease,background-color .2s ease,border-color .2s ease;
}
.nav-hamburger:hover,.mobile-menu-close:hover,.lightbox-close:hover{transform:scale(1.05); border-color:var(--blue); background:var(--sky);}
.nav-hamburger{display:none;}
.theme-toggle{
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  width:78px;
  height:49px;
  padding:0;
  border:0;
  border-radius:999px;
  background:transparent;
  line-height:0;
  transition:transform .2s ease,filter .2s ease;
}
.theme-toggle:hover{transform:scale(1.04); filter:drop-shadow(0 7px 8px rgba(11,31,58,.16));}
.theme-toggle:focus-visible{outline:3px solid var(--blue); outline-offset:2px;}
.theme-toggle svg{display:block; width:100%; height:100%; overflow:visible;}
.theme-toggle-part{transition:opacity .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1),fill .25s cubic-bezier(.4,0,.2,1);}
.theme-toggle-sky{fill:#83CBD8; stroke:rgba(11,31,58,.16); stroke-width:1;}
.theme-toggle-knob{transform:translateX(0); transform-origin:0 0;}
.theme-toggle-knob-disc{fill:#FFF8C8; stroke:#F2D157; stroke-width:1.25; filter:drop-shadow(0 2px 2px rgba(20,48,72,.22));}
.theme-toggle-sun{fill:#F5B51B; stroke:#F5B51B; stroke-width:1.5; stroke-linecap:round;}
.theme-toggle-sun path{fill:none;}
.theme-toggle-moon{fill:#D9E8F7; opacity:0;}
.theme-toggle-cloud{fill:#F7FCFF; opacity:.96;}
.theme-toggle-stars{fill:#F7FCFF; opacity:0;}
.theme-toggle[aria-pressed="true"] .theme-toggle-sky{fill:#2B4360;}
.theme-toggle[aria-pressed="true"] .theme-toggle-knob{transform:translateX(30px);}
.theme-toggle[aria-pressed="true"] .theme-toggle-knob-disc{fill:#91A9C2; stroke:#C9DBEA;}
.theme-toggle[aria-pressed="true"] .theme-toggle-sun,.theme-toggle[aria-pressed="true"] .theme-toggle-cloud{opacity:0;}
.theme-toggle[aria-pressed="true"] .theme-toggle-moon,.theme-toggle[aria-pressed="true"] .theme-toggle-stars{opacity:1;}

.mobile-menu{
  display:flex;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  position:fixed;
  inset:0;
  z-index:350;
  flex-direction:column;
  padding:22px clamp(22px,6vw,48px) 28px;
  background:rgba(255,255,255,.98);
  overflow-y:auto;
  transform:translateY(-14px);
  transition:opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1),visibility .25s;
}
[data-theme="dark"] .mobile-menu{background:rgba(4,10,18,.985);}
.mobile-menu.open{display:flex; visibility:visible; opacity:1; pointer-events:auto; transform:none;}
.mobile-menu-head{display:flex; align-items:center; justify-content:space-between; min-height:46px; font-weight:800; color:var(--slate-2);}
.mobile-menu-links{display:flex; flex-direction:column; margin-block:clamp(28px,7vh,70px) auto;}
.mobile-menu-links a{
  display:flex;
  align-items:center;
  gap:clamp(12px,3vw,18px);
  padding:18px 0;
  border-bottom:1px solid var(--line);
  color:var(--navy);
  font-size:clamp(28px,8vw,46px);
  font-weight:600;
  line-height:1.15;
  transition:color .2s ease,padding-inline .2s ease;
}
.mobile-menu-links a:hover{color:var(--blue); padding-inline-start:8px;}
.menu-link-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:clamp(38px,10vw,48px);
  height:clamp(38px,10vw,48px);
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--sky);
  color:var(--blue);
  font-size:clamp(21px,5vw,26px);
}
.mobile-menu .mm-ctas{position:sticky; bottom:0; display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:28px; padding-top:18px; background:inherit;}
.mobile-menu .mm-ctas .btn{width:100%; border-bottom:1.5px solid transparent; font-size:15px;}

/* Hero portrait */
.hero{min-height:min(720px,calc(100svh - 68px)); display:flex; align-items:center;}
.hero-grid{grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr); gap:clamp(36px,6vw,78px);}
.portrait-card{
  width:min(100%,390px);
  max-width:390px;
  aspect-ratio:1 / 1;
  border-radius:clamp(20px,3vw,32px);
  box-shadow:0 36px 72px -34px rgba(11,31,58,.48);
}
.portrait-card img{width:100%; height:100%; aspect-ratio:1 / 1; object-fit:cover; object-position:center;}
[data-theme="dark"] .portrait-tag{background:rgba(8,19,34,.92); color:var(--navy);}

/* Theme surfaces */
[data-theme="dark"] .exp-card,
[data-theme="dark"] .project-card,
[data-theme="dark"] .add-card,
[data-theme="dark"] .result-card,
[data-theme="dark"] .cv-box,
[data-theme="dark"] .pillar{background:#0B1726;}
[data-theme="dark"] .contact-card.recruiter{background:linear-gradient(135deg,#0A1830,#112846);}
[data-theme="dark"] .contact-card.client{background:linear-gradient(135deg,#0B5AA7,#083E75);}
[data-theme="dark"] .stack-wrap,[data-theme="dark"] footer{background:#04101F;}
.stack-wrap,footer{background:#0B1F3A;}

/* Project media and lightbox */
.project-media{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  max-height:420px;
  overflow:hidden;
  background:linear-gradient(135deg,var(--sky),var(--soft));
  border-bottom:1px solid var(--line);
  cursor:zoom-in;
}
.project-media img{width:min(100%,746.667px); height:100%; max-height:420px; margin-inline:auto; aspect-ratio:16 / 9; object-fit:cover; transition:transform .55s cubic-bezier(.16,1,.3,1),filter .3s ease;}
.project-media:hover img,.project-media:focus-visible img{transform:scale(1.025); filter:saturate(1.06);}
.project-zoom{
  position:absolute;
  inset-inline-end:16px;
  bottom:16px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  background:rgba(4,16,31,.76);
  color:#fff;
  font-size:12px;
  font-weight:700;
  backdrop-filter:blur(10px);
}
.project-media-compact{margin:-24px -24px 20px; width:calc(100% + 48px); border-radius:14px 14px 0 0;}
.project-media-compact img{width:100%; aspect-ratio:16 / 9;}
.project-lightbox{
  position:fixed;
  inset:0;
  z-index:500;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(16px,4vw,48px);
  background:rgba(2,8,16,.9);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .25s ease,visibility .25s;
}
.project-lightbox.open{opacity:1; visibility:visible; pointer-events:auto;}
.lightbox-panel{position:relative; width:min(1180px,94vw); max-height:90vh; display:flex; flex-direction:column; align-items:center;}
.lightbox-panel img{max-width:100%; max-height:82vh; width:auto; border-radius:18px; box-shadow:0 28px 80px rgba(0,0,0,.45);}
.lightbox-panel p{color:#DCE6F2; margin-top:12px; font-size:14px; text-align:center;}
.lightbox-close{position:absolute; z-index:2; top:12px; inset-inline-end:12px; background:rgba(4,16,31,.82); color:#fff; border-color:rgba(255,255,255,.3);}

/* Alternating tool marquees */
.stack-wrap{overflow:hidden;}
.tool-marquees{display:flex; flex-direction:column; gap:28px;}
.tool-marquee h4{color:#64D29A; font-size:13px; letter-spacing:.05em; text-transform:uppercase; margin-bottom:12px;}
[dir="rtl"] .tool-marquee h4{letter-spacing:0;}
.tool-viewport{position:relative; overflow:hidden; margin-inline:calc((100vw - min(100vw,var(--maxw))) / -2); padding-inline:14px; mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); cursor:grab; touch-action:pan-y; user-select:none; -webkit-user-select:none;}
.tool-viewport:focus-visible{outline:2px solid #79B9F5; outline-offset:4px;}
.tool-viewport.is-dragging{cursor:grabbing;}
.tool-track{display:flex; width:max-content; transform:translate3d(0,0,0); will-change:transform;}
.tool-set{display:flex; gap:12px; padding-inline:6px;}
.tool-item{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:52px;
  padding:10px 17px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:#EEF5FD;
  white-space:nowrap;
  font-size:13.5px;
  font-weight:700;
}
.tool-item img{width:25px; height:25px; object-fit:contain; filter:invert(1); opacity:.94;}
.tool-item .material-symbols-rounded{color:#79B9F5; font-size:25px;}

@media (max-width:1050px){
  .nav-links{gap:15px;}
  .nav-links a:nth-last-child(-n+2){display:none;}
  .nav-inner{padding-inline:20px;}
}
@media (max-width:920px){
  .nav-cta-desktop,.lang-switch{display:none;}
  .nav-hamburger{display:inline-flex;}
  .hero{min-height:auto;}
  .hero-grid{grid-template-columns:1fr; text-align:start;}
  .portrait-card{width:min(82vw,360px); order:-1;}
}
@media (max-width:620px){
  .wrap{padding-inline:20px;}
  .brand{font-size:15px;}
  .nav-right{gap:7px;}
  .theme-toggle{width:72px; height:45px;}
  .nav-hamburger{width:38px; height:38px;}
  .hero{padding-block:30px 46px;}
  .hero-grid{gap:28px;}
  .portrait-card{width:min(76vw,300px); border-radius:24px;}
  .hero h1{font-size:clamp(31px,10vw,42px);}
  .hero-ctas{display:grid; grid-template-columns:1fr;}
  .hero-ctas .btn{width:100%;}
  .mobile-menu .mm-ctas{grid-template-columns:1fr;}
  .mobile-menu-links a{font-size:clamp(27px,9vw,38px);}
  .pc-head{padding:22px 20px 16px;}
  .pc-body{padding:20px; gap:18px;}
  .pc-stack{padding-inline:20px;}
  .pc-note{padding-inline:20px;}
  .project-zoom{inset-inline-end:10px; bottom:10px; padding:7px 10px;}
  .project-media{max-height:220px;}
  .project-media img{max-height:220px;}
  .tool-item{min-height:48px; padding:9px 14px;}
}

@media (prefers-reduced-motion:reduce){
  .tool-viewport{mask-image:none;}
  .tool-track{transition:none!important;}
  .project-media img{transition:none;}
}
