/* =========================================================
  Base + Theme Tokens
  ========================================================= */

*{box-sizing:border-box}
:focus-visible{outline:3px solid var(--accent-2);outline-offset:3px}
:focus:not(:focus-visible){outline:none}

/* Light theme variables (default) */
:root{
  --bg:#F6F8F7;--bg-2:#E7EFEB;--surface:rgba(255,255,255,.72);--surface-strong:rgba(255,255,255,.92);
  --text:#1F2937;--muted:rgba(31,41,55,.72);--line:rgba(31,41,55,.14);--card-border:rgba(31,41,55,.14);--shadow:0 20px 60px rgba(15,23,42,.10);
  --shadow-soft:0 10px 30px rgba(15,23,42,.07);--accent:#111827;--accent-2:#10B981;--accent-ink:#03241b;--chip:rgba(16,185,129,.14);--hero-accent:var(--accent-2);
  --section-space:54px;--section-space-mobile:34px;--card-radius:20px;--card-pad:24px;--content-max:1280px;
}

/* Dark theme variables (activated via .dark-mode on body) */
body.dark-mode{
  --bg:#111827;--bg-2:#0B1220;--surface:rgba(255,255,255,.06);--surface-strong:rgba(255,255,255,.10);
  --text:#F9FAFB;--muted:rgba(249,250,251,.74);--line:rgba(249,250,251,.16);--card-border:rgba(249,250,251,.16);--shadow:0 30px 76px rgba(0,0,0,.46);
  --shadow-soft:0 14px 34px rgba(0,0,0,.34);--accent:#F9FAFB;--accent-2:#34D399;--accent-ink:#03241b;--chip:rgba(52,211,153,.14);--hero-accent:var(--accent-2);
}

/* =========================================================
  Global Elements
  ========================================================= */
html{scroll-behavior:smooth}
body{margin:0;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,Helvetica,sans-serif;line-height:1.55;color:var(--text);background:linear-gradient(180deg,var(--bg),var(--bg-2));transition:background-color .35s ease,color .35s ease;overflow-x:hidden}
h1,h2,h3,h4,.brand{font-family:"Poppins","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,Helvetica,sans-serif}
body.rtl{direction:rtl}
a{text-decoration:none;color:inherit} img{max-width:100%;display:block}

/* =========================================================
  Background Decorations
  ========================================================= */
.bg-orb{position:fixed;border-radius:999px;filter:blur(90px);z-index:-2;opacity:.25;pointer-events:none}
.orb-1{width:260px;height:260px;left:-40px;top:120px;background:#10B981}
.orb-2{width:280px;height:280px;right:-50px;top:420px;background:#A7F3D0}
body.dark-mode .orb-1{background:#34D399;opacity:.16}
body.dark-mode .orb-2{background:#10B981;opacity:.12}
.bg-grid{position:fixed;inset:0;z-index:-3;opacity:.30;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:32px 32px}
body.dark-mode .bg-grid{opacity:0}
.container{width:min(var(--content-max),calc(100% - 32px));margin:0 auto}

/* =========================================================
  Page Frame + Header/Nav
  ========================================================= */

.page-shell{padding:0 0 88px}
.page-frame{width:min(var(--content-max),calc(100% - 32px));margin:0 auto;border-radius:0;border:0;background:transparent;box-shadow:none;overflow:visible;transition:background-color .35s ease,border-color .35s ease,box-shadow .35s ease}
body.dark-mode .page-frame{background:transparent;box-shadow:none}

.page-frame main{padding-top:96px;padding-bottom:28px}

.site-header{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:200;width:min(var(--content-max),calc(100% - 32px));background:transparent;border:0;padding:0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px}
.nav.nav-pill{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:12px 22px;border-radius:999px;background:color-mix(in srgb,var(--surface-strong) 86%,transparent);border:1px solid var(--line);box-shadow:var(--shadow-soft);backdrop-filter:blur(18px);transition:background-color .35s ease,border-color .35s ease,box-shadow .35s ease}
.nav.nav-pill::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.45),rgba(255,255,255,0));opacity:.35;pointer-events:none;mix-blend-mode:overlay}
body.dark-mode .nav.nav-pill::before{opacity:.22}
.brand{font-size:1.35rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;padding-left:4px}.brand span{color:var(--accent-2)}
.nav-links{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:nowrap;white-space:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.nav-links::-webkit-scrollbar{display:none}
.nav-links a{font-weight:800;color:var(--muted);position:relative;font-size:.95rem;padding:10px 12px;border-radius:14px;transition:background-color .25s ease,color .25s ease}
.nav-links a::after{content:"";position:absolute;left:12px;right:12px;bottom:7px;height:2px;border-radius:999px;background:var(--accent-2);opacity:0;transform:scaleX(.65);transition:.25s}
.nav-links a:hover{color:var(--text);background:color-mix(in srgb,var(--accent-2) 10%,transparent)}
.nav-links a:hover::after,.nav-links a.active::after{opacity:1;transform:scaleX(1)}
.nav-actions{display:flex;align-items:center;gap:10px}
.lang-switch,.theme-toggle,.menu-toggle{height:46px;border:1px solid var(--line);background:var(--surface-strong);color:var(--text);border-radius:14px;box-shadow:var(--shadow-soft);transition:background-color .35s ease,border-color .35s ease,color .35s ease,box-shadow .35s ease,transform .22s}
.lang-switch{min-width:86px;padding:0 40px 0 14px;font-weight:800;outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.lang-switch:hover{background-color:color-mix(in srgb,var(--surface-strong) 80%,var(--chip))}
.lang-switch:focus-visible{outline:3px solid color-mix(in srgb,var(--accent-2) 80%,transparent);outline-offset:3px}
.lang-switch option{background:var(--bg);color:var(--text)}
body.dark-mode .lang-switch option{background:var(--bg-2);color:var(--text)}
.theme-toggle,.menu-toggle{width:46px;cursor:pointer;font-size:1rem}.menu-toggle{display:none}
#themeIcon{font-size:1.08rem;line-height:1;color:#f4b400}
body.dark-mode .theme-toggle{background:#fff;border-color:rgba(17,24,39,.18)}
body.dark-mode #themeIcon{color:#111827}

/* =========================================================
  Hero
  ========================================================= */
.hero-section{padding:52px 0 38px;scroll-margin-top:100px}
.hero-panel{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:clamp(460px,58vh,620px);padding:clamp(20px,2.4vw,34px);border-radius:28px;border:1px solid color-mix(in srgb,var(--hero-accent) 20%,var(--line));background:radial-gradient(1200px 460px at -12% 50%,rgba(16,185,129,.14),transparent 52%),linear-gradient(135deg,#f8fbff 0%,#eef4f8 45%,#e8f0f6 100%);box-shadow:0 16px 40px rgba(15,23,42,.12)}
.hero-panel::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.34),rgba(255,255,255,0) 45%);pointer-events:none}
body.dark-mode .hero-panel{border-color:color-mix(in srgb,var(--hero-accent) 30%,var(--line));background:radial-gradient(1200px 460px at -12% 50%,rgba(16,185,129,.18),transparent 52%),linear-gradient(135deg,#04101c 0%,#061525 45%,#08182b 100%);box-shadow:0 28px 70px rgba(2,8,23,.34)}
.hero-compact{position:relative;z-index:1;display:grid;grid-template-columns:minmax(190px,320px) minmax(520px,1fr);align-items:center;justify-content:center;align-content:center;column-gap:44px;row-gap:16px;width:min(1080px,100%);margin:0 auto}
.hero-avatar-wrap{flex:0 0 auto;display:grid;place-items:center;position:relative}
.hero-avatar-wrap::before{content:"";position:absolute;inset:-8px;border-radius:999px;background:radial-gradient(circle,rgba(16,185,129,.15) 0%,rgba(16,185,129,.05) 46%,rgba(16,185,129,0) 72%);filter:blur(4px);pointer-events:none;z-index:0}
.hero-avatar-wrap::after{display:none}
.hero-avatar{position:relative;z-index:2;width:clamp(165px,18vw,255px);height:clamp(165px,18vw,255px);border-radius:50%;object-fit:cover;object-position:50% 18%;border:2px solid color-mix(in srgb,var(--hero-accent) 84%,#e8fff5);box-shadow:0 10px 18px rgba(15,23,42,.14);transition:transform .26s ease}
.hero-avatar-wrap:hover .hero-avatar{transform:scale(1.02)}
body.dark-mode .hero-avatar{border-color:color-mix(in srgb,var(--accent-2) 82%,#d1fae5);box-shadow:0 14px 28px rgba(0,0,0,.3)}
.hero-main{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.hero-name{margin:0;font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.06;letter-spacing:-.02em;color:var(--text)}
.hero-title{margin:6px 0 0;font-size:clamp(1.02rem,1.45vw,1.34rem);line-height:1.3;font-weight:700;color:var(--text)}
.hero-focus{margin:5px 0 0;font-size:clamp(.84rem,1vw,.94rem);line-height:1.45;font-weight:600;color:color-mix(in srgb,var(--text) 72%,var(--muted))}
.hero-desc{margin:8px 0 0;max-width:50ch;color:var(--muted);line-height:1.58}
.hero-location{margin:8px 0 0;color:var(--muted);font-weight:700;font-size:.9rem}
.hero-location-chip{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:8px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent-2) 34%,var(--line));background:color-mix(in srgb,var(--accent-2) 9%,var(--surface-strong));line-height:1.2}
.hero-location-chip svg{width:14px;height:14px;flex:0 0 auto}
.location-map-link{color:inherit;text-decoration:none}
.location-map-link:hover{text-decoration:underline;text-underline-offset:2px}
body.dark-mode .hero-name{color:#f3f8ff}
body.dark-mode .hero-title{color:#eaf4ff}
body.dark-mode .hero-focus{color:rgba(236,242,251,.92)}
body.dark-mode .hero-desc{color:rgba(236,242,251,.74)}
body.dark-mode .hero-location{color:rgba(236,242,251,.86)}
.hero-socials{margin:12px 0 0}
.hero-actions{margin-top:10px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.hero-actions .btn{min-height:52px;min-width:188px}
.btn{gap:10px}

body.rtl .hero-compact{grid-template-columns:minmax(520px,1fr) minmax(190px,320px)}
body.rtl .hero-avatar-wrap{grid-column:2}
body.rtl .hero-main{grid-column:1}
.eyebrow,.section-heading span{display:inline-block;text-transform:uppercase;letter-spacing:.24em;font-size:.78rem;font-weight:800;color:var(--muted)}
.section-heading span{color:var(--accent-2)}
/* legacy hero portrait styles removed in favor of compact hero avatar */

.hero-socials{margin:12px 0 0}
.hero-socials .social-icon{border-color:color-mix(in srgb,var(--accent-2) 50%,var(--line))}
.hero-socials .social-icon:hover{border-color:var(--accent-2)}
.btn{min-height:50px;padding:0 22px;border-radius:14px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-weight:700;transition:.22s}
.btn:hover,.theme-toggle:hover,.menu-toggle:hover,.lang-switch:hover,.back-to-top:hover{transform:translateY(-2px)}
.btn-primary{background:var(--accent);color:var(--bg)}.btn-secondary{background:var(--surface-strong);color:var(--text)}
.btn-primary:hover{filter:brightness(1.05);box-shadow:none}
.btn-secondary:hover{background:color-mix(in srgb,var(--accent-2) 10%,transparent);border-color:color-mix(in srgb,var(--accent-2) 58%,var(--card-border))}
.hero-socials{display:flex;gap:10px;flex-wrap:wrap}.hero-socials a{padding:10px 14px;border-radius:999px;background:transparent;border:1px solid var(--line);color:var(--muted);font-weight:700}
.social-icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 !important;border-radius:999px !important;background:var(--surface) !important;color:var(--text) !important;font-weight:900;letter-spacing:.02em;transition:transform .22s ease,background .22s ease,border-color .22s ease,color .22s ease;will-change:transform}
.social-icon svg{width:20px;height:20px;display:block}
body.dark-mode .social-icon{background:var(--surface-strong) !important}
.social-icon:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent-2) 72%,var(--line));background:color-mix(in srgb,var(--accent-2) 10%,var(--surface-strong)) !important;color:var(--accent-2) !important}
.hero-panel .hero-socials a{background:rgba(255,255,255,.72);border-color:color-mix(in srgb,var(--hero-accent) 28%,var(--line));color:var(--text)}
.hero-panel .social-icon{background:rgba(255,255,255,.72) !important;color:var(--text) !important}
.hero-panel .social-icon:hover{color:var(--hero-accent) !important;background:rgba(16,185,129,.12) !important}
.hero-panel .btn-primary{background:var(--accent);color:var(--bg);border-color:transparent}
.hero-panel .btn-secondary{background:transparent;color:var(--text);border-color:var(--line)}
.hero-panel .btn-secondary:hover{background:rgba(16,185,129,.08)}
body.dark-mode .hero-panel .hero-socials a{background:rgba(255,255,255,.04);border-color:rgba(232,255,245,.38);color:#ebf6ff}
body.dark-mode .hero-panel .social-icon{background:rgba(255,255,255,.04) !important;color:#ebf6ff !important}
body.dark-mode .hero-panel .social-icon:hover{color:var(--hero-accent) !important;background:rgba(16,185,129,.16) !important}
body.dark-mode .hero-panel .btn-primary{background:linear-gradient(135deg,#1ce6d5,#12bfa2);color:#03231f;border-color:transparent}
body.dark-mode .hero-panel .btn-secondary{background:transparent;color:#ebf6ff;border-color:rgba(232,255,245,.45)}
body.dark-mode .hero-panel .btn-secondary:hover{background:rgba(16,185,129,.12)}
.content-card{background:var(--surface);border:1px solid var(--line);box-shadow:none;backdrop-filter:none;transition:background-color .35s ease,border-color .35s ease,color .35s ease}
body.dark-mode .content-card{background:rgba(255,255,255,.04)}
.content-card h3{margin:0 0 16px}

/* =========================================================
  Sections + Cards
  ========================================================= */
.section{padding:var(--section-space) 0;background:color-mix(in srgb,var(--surface-strong) 22%,transparent);scroll-margin-top:92px}
main .section:nth-of-type(even){background:color-mix(in srgb,var(--chip) 32%,transparent)}
.section + .section{border-top:0}

/* Stronger section separation in dark mode */
body.dark-mode .section{background:color-mix(in srgb,var(--bg-2) 55%,transparent)}
body.dark-mode main .section:nth-of-type(even){background:color-mix(in srgb,var(--bg) 62%,transparent)}
body.dark-mode .section + .section{border-top:1px solid color-mix(in srgb,var(--accent-2) 22%,var(--line))}

.section-heading{margin-bottom:22px;text-align:center}.section-heading h2{margin:4px auto 0;font-size:clamp(1.9rem,4vw,2.9rem);max-width:820px}

.section-lead{margin:0 0 6px;font-weight:800;color:var(--text)}
.section-sub{margin:0;color:var(--muted);line-height:1.75}
.about-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}
.about-card,.edu-card{height:100%;border-radius:20px;padding:20px}
.about-card h3,.edu-card h3{margin:0 0 14px;font-size:1.36rem}
.about-lead{margin:0 0 10px;color:var(--text);font-weight:600;line-height:1.55}
.about-points{margin:0;padding-left:20px;display:grid;gap:8px}
.about-points li{color:var(--muted);line-height:1.52}
body.rtl .about-points{padding-left:0;padding-right:20px}
.edu-timeline{position:relative;display:grid;gap:20px;padding-left:24px}
.edu-timeline::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:3px;border-radius:999px;background:color-mix(in srgb,var(--accent-2) 82%,var(--line))}
.edu-item{position:relative}
.edu-item::before{content:"";position:absolute;left:-22px;top:7px;width:12px;height:12px;border-radius:999px;background:var(--accent-2);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-2) 24%,transparent)}
.edu-item h4{margin:0 0 5px;font-size:1.24rem;font-weight:800;color:var(--text)}
.edu-item p{margin:0 0 4px;color:var(--text);font-weight:600;line-height:1.35}
.edu-item span{font-size:.84rem;color:color-mix(in srgb,var(--muted) 88%,transparent);font-weight:500;letter-spacing:.01em}
body.rtl .edu-timeline{padding-left:0;padding-right:24px}
body.rtl .edu-timeline::before{left:auto;right:7px}
body.rtl .edu-item::before{left:auto;right:-22px}
.content-card{border-radius:var(--card-radius);padding:var(--card-pad)}.content-card p,.project-summary{color:var(--muted);line-height:1.8}

/* Experience timeline (date left + card right) */
#experience .exp-timeline{position:relative;display:grid;gap:24px;width:100%;margin-inline:auto;padding-left:2px;--exp-date-col:178px;--exp-marker-col:32px;--exp-gap:16px}
#experience .exp-timeline::before{content:"";position:absolute;left:calc(var(--exp-date-col) + var(--exp-gap) + (var(--exp-marker-col) / 2));top:16px;bottom:16px;width:2px;border-radius:999px;background:color-mix(in srgb,var(--accent-2) 50%,var(--line))}
#experience .exp-item{display:grid;grid-template-columns:var(--exp-date-col) var(--exp-marker-col) 1fr;align-items:start;column-gap:var(--exp-gap)}
#experience .exp-date{padding-top:2px;padding-right:4px;color:var(--text);font-weight:750;line-height:1.4;text-align:right}
#experience .exp-date span{display:inline-block;max-width:166px}
#experience .exp-dot{display:block;position:static;width:15px;height:15px;border-radius:999px;background:color-mix(in srgb,var(--accent-2) 92%,#facc15);box-shadow:0 0 0 7px color-mix(in srgb,var(--accent-2) 24%,transparent),0 0 18px color-mix(in srgb,var(--accent-2) 42%,transparent);justify-self:center;align-self:start}
#experience .exp-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px 14px 18px 18px;box-shadow:none}
body.rtl #experience .exp-card{padding:18px 18px 18px 14px}
body.dark-mode #experience .exp-card{background:rgba(255,255,255,.05)}
#experience .exp-card h3{margin:0 0 4px;font-size:1.56rem;line-height:1.15}
#experience .exp-org{margin:0 0 12px;color:var(--accent-2);font-weight:800}
#experience .exp-points{margin:0;padding-left:18px;color:var(--muted);line-height:1.75}
body.rtl #experience .exp-points{padding-left:0;padding-right:18px}

body.rtl #experience .exp-timeline{padding-left:0;padding-right:2px}
body.rtl #experience .exp-timeline::before{left:auto;right:calc(var(--exp-date-col) + var(--exp-gap) + (var(--exp-marker-col) / 2))}
body.rtl #experience .exp-item{grid-template-columns:1fr var(--exp-marker-col) var(--exp-date-col)}
body.rtl #experience .exp-date{text-align:left;padding-right:0;padding-left:6px}

/* Skills (CV-style, minimal) */
#skills.section{padding:var(--section-space) 0}
#skills .section-heading{margin-bottom:18px}
#skills .section-heading h2{letter-spacing:-.01em}

.skills-cv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch}
.skills-cv-card{--cat:#10b981;--tag-bg:color-mix(in srgb,var(--cat) 11%,var(--surface-strong));--tag-border:color-mix(in srgb,var(--cat) 26%,var(--line));--tag-hover:color-mix(in srgb,var(--cat) 18%,var(--surface-strong));--icon-bg:color-mix(in srgb,var(--cat) 10%,transparent);border-radius:var(--card-radius);padding:16px;background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 24px rgba(15,23,42,.08);height:100%;display:flex;flex-direction:column;gap:10px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background-color .35s ease}
.skills-cv-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(15,23,42,.12);border-color:color-mix(in srgb,var(--accent-2) 28%,var(--line))}
body.dark-mode .skills-cv-card{background:rgba(255,255,255,.04);box-shadow:0 12px 26px rgba(0,0,0,.26)}

.skills-cv-head{display:flex;align-items:center;gap:10px;margin:0}
.skills-cv-icon{width:30px;height:30px;border-radius:11px;display:grid;place-items:center;background:var(--icon-bg);border:1px solid var(--tag-border);color:color-mix(in srgb,var(--cat) 80%,var(--text));font-weight:900;flex:0 0 auto}
.skills-cv-icon svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}
.skills-cv-head h3{margin:0;font-size:1.02rem;font-weight:800;line-height:1.3;overflow-wrap:anywhere}

.skills-tags{display:flex;flex-wrap:wrap;gap:7px}
.skill-tag{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:var(--tag-bg);border:1px solid var(--tag-border);color:color-mix(in srgb,var(--text) 92%,transparent);font-size:.84rem;font-weight:700;line-height:1.2;white-space:normal;overflow-wrap:anywhere;transition:transform .2s ease,background-color .2s ease,border-color .2s ease}
.skills-cv-card:hover .skill-tag{border-color:color-mix(in srgb,var(--cat) 34%,var(--line))}
.skill-tag:hover{transform:translateY(-1px);background:var(--tag-hover)}

.skills-cv-card--prog{--cat:#22c55e}
.skills-cv-card--backend{--cat:#3b82f6}
.skills-cv-card--frontend{--cat:#0ea5e9}
.skills-cv-card--ai{--cat:#8b5cf6}
.skills-cv-card--tools{--cat:#f59e0b}
.skills-cv-card--lang{--cat:#94a3b8}

.skills-cv-languages{grid-column:auto}

.certifications-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.certifications-grid > .content-card{height:100%}
#certifications .content-card{display:flex;flex-direction:column}
#certifications .content-card .btn{margin-top:auto;align-self:flex-start}
.skills-cv-languages > h3{margin:0 0 8px;font-size:1.02rem}

.projects-grid-modern{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch}
.project-card-modern{display:flex;flex-direction:column;height:100%;overflow:hidden;border-radius:15px;border:1px solid var(--line);background:var(--surface);box-shadow:0 5px 14px rgba(15,23,42,.06);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
body.dark-mode .project-card-modern{background:rgba(255,255,255,.04);box-shadow:0 12px 26px rgba(0,0,0,.28)}
.project-card-modern:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent-2) 36%,var(--line));box-shadow:0 12px 24px rgba(15,23,42,.10)}
.project-cover{height:148px;overflow:hidden;border-bottom:1px solid var(--line);background:var(--surface-strong);display:flex;align-items:center;justify-content:center;padding:8px}
.project-cover img{width:100%;height:100%;object-fit:contain;object-position:50% 50%;transition:none}
.project-body{padding:10px;display:flex;flex-direction:column;gap:7px;flex:1}
.project-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.project-date{font-size:.78rem;color:var(--muted);font-weight:700}
.project-type{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent-2) 36%,var(--line));background:color-mix(in srgb,var(--accent-2) 10%,var(--surface-strong));font-size:.74rem;font-weight:800;color:var(--text)}
.project-title{margin:0;font-size:.98rem;line-height:1.28}
.project-summary{margin:0;color:var(--muted);line-height:1.45;font-size:.85rem;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.project-tech{display:flex;flex-wrap:wrap;gap:6px}
.project-tech span{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface-strong);font-size:.7rem;font-weight:700;color:var(--text)}
.project-actions{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:7px;padding-top:2px}
.project-btn{min-height:32px;padding:0 8px;border-radius:9px;border:1px solid var(--line);background:var(--surface-strong);color:var(--text);font-size:.77rem;font-weight:700;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.project-btn.is-disabled{opacity:.8;cursor:not-allowed}
.contact-card-modern{display:grid;grid-template-columns:1.04fr .96fr;gap:16px;align-items:stretch}
.contact-main{display:flex;flex-direction:column;justify-content:center;gap:8px}
.contact-main .section-lead{margin:0}
.contact-main .section-sub{margin:0;max-width:64ch}
.contact-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.contact-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent-2) 36%,var(--line));background:color-mix(in srgb,var(--accent-2) 8%,var(--surface-strong));color:var(--text);font-size:.82rem;font-weight:700;line-height:1.2}
.contact-chip-location svg{width:15px;height:15px;flex:0 0 auto}
.contact-links-grid{display:grid;grid-template-columns:1fr;gap:9px}
.contact-link-card{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:14px;border:1px solid var(--line);background:var(--surface-strong);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background-color .22s ease}
.contact-link-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent-2) 58%,var(--line));box-shadow:0 10px 24px rgba(15,23,42,.10)}
body.dark-mode .contact-link-card:hover{box-shadow:0 12px 26px rgba(2,8,23,.36)}
.contact-link-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;border:1px solid color-mix(in srgb,var(--accent-2) 36%,var(--line));background:color-mix(in srgb,var(--accent-2) 8%,var(--surface-strong));color:var(--text);flex:0 0 auto}
.contact-link-icon svg{width:18px;height:18px;display:block}
.contact-link-copy{display:grid;gap:2px;min-width:0}
.contact-link-label{font-size:.76rem;line-height:1.2;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.contact-link-value{font-size:.92rem;line-height:1.35;font-weight:700;color:var(--text);overflow-wrap:anywhere}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.reveal.show{opacity:1;transform:none}
.back-to-top{position:fixed;right:24px;bottom:24px;width:48px;height:48px;border-radius:14px;border:1px solid var(--line);background:var(--surface-strong);color:var(--text);cursor:pointer;display:none;box-shadow:var(--shadow);z-index:110}.back-to-top.show{display:inline-flex;align-items:center;justify-content:center}

/* =========================================================
  Footer
  ========================================================= */
.site-footer{padding:28px 0 34px;border-top:1px solid var(--line)}
.site-footer p{margin:0;text-align:center;color:var(--muted);font-weight:650}

/* =========================================================
  Responsive Layout
  ========================================================= */
@media (max-width:1100px){.contact-card-modern{grid-template-columns:1fr}.skills-cv-grid{grid-template-columns:repeat(2,1fr)}.certifications-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1100px){.about-layout{grid-template-columns:1fr}}
@media (max-width:1100px){.projects-grid-modern{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1100px){#experience .exp-timeline{--exp-date-col:150px;--exp-marker-col:30px;--exp-gap:14px;padding-left:0}#experience .exp-item{grid-template-columns:var(--exp-date-col) var(--exp-marker-col) 1fr;column-gap:var(--exp-gap)}#experience .exp-date span{max-width:136px}body.rtl #experience .exp-timeline{padding-left:0;padding-right:0}body.rtl #experience .exp-item{grid-template-columns:1fr var(--exp-marker-col) var(--exp-date-col)}}
@media (max-width:980px){.hero-panel{min-height:auto;padding:22px 20px}.hero-compact{grid-template-columns:1fr;justify-content:stretch;row-gap:20px;column-gap:0}.hero-avatar-wrap{justify-self:center}.hero-avatar{width:clamp(150px,34vw,220px);height:clamp(150px,34vw,220px)}.hero-main{width:100%;text-align:center;align-items:center}.hero-desc{max-width:56ch}body.rtl .hero-compact{grid-template-columns:1fr}body.rtl .hero-avatar-wrap,body.rtl .hero-main{grid-column:auto}}
@media (max-width:760px){.section{padding:var(--section-space-mobile) 0}.section-heading{margin-bottom:18px}.nav.nav-pill{grid-template-columns:minmax(0,1fr) auto;padding:10px 12px;gap:8px}.brand{font-size:1.05rem;letter-spacing:.11em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-actions{gap:6px;flex-wrap:nowrap;justify-content:flex-end}.lang-switch{min-width:68px;padding:0 28px 0 10px;font-size:.88rem;background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px,5px 5px}.lang-switch,.theme-toggle,.menu-toggle{height:40px}.theme-toggle,.menu-toggle{width:40px}.nav-links{display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;flex-direction:column;align-items:flex-start;padding:14px;border-radius:18px;background:var(--surface-strong);border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(18px);z-index:260}body.dark-mode .nav-links{background:color-mix(in srgb,var(--bg-2) 78%,var(--surface-strong))}.nav-links a{width:100%;padding:12px 14px;color:var(--text)}body.rtl .nav-links{align-items:flex-end}.nav-links.open{display:flex}.menu-toggle{display:inline-flex;align-items:center;justify-content:center}.hero-panel{padding:20px 14px;border-radius:20px}.hero-compact{gap:16px;align-items:start}.hero-avatar{width:clamp(145px,46vw,195px);height:clamp(145px,46vw,195px)}.hero-avatar-wrap::before{inset:-10px}.hero-name{font-size:clamp(1.62rem,8vw,2.12rem)}.hero-title{font-size:clamp(1rem,4.8vw,1.2rem)}.hero-focus{font-size:clamp(.9rem,4.3vw,1rem)}.hero-actions{width:100%;justify-content:center}.hero-panel .btn{min-width:160px}.hero-desc{max-width:50ch}.hero-location-chip{align-self:center}.about-card,.edu-card{padding:18px}.contact-card-modern{padding:18px}.contact-link-card{padding:10px 11px}.projects-grid-modern{grid-template-columns:repeat(2,minmax(0,1fr))}.project-cover{height:148px;aspect-ratio:auto;padding:8px}.project-body{padding:10px}.project-actions{grid-template-columns:1fr 1fr}.skills-cv-grid{grid-template-columns:repeat(2,1fr)}#experience .exp-timeline{padding-left:0}body.rtl #experience .exp-timeline{padding-right:0}#experience .exp-timeline::before{display:none}#experience .exp-item{grid-template-columns:1fr;gap:10px}#experience .exp-dot{display:none}#experience .exp-date{padding:0;font-size:.95rem;color:var(--muted);text-align:left}#experience .exp-date span{max-width:none}#experience .exp-card{padding:16px}#experience .exp-card h3{font-size:1.3rem}body.rtl #experience .exp-item{grid-template-columns:1fr}body.rtl #experience .exp-date{text-align:left;padding:0}}
@media (max-width:640px){.projects-grid-modern{grid-template-columns:1fr}.skills-cv-grid{grid-template-columns:1fr}.certifications-grid{grid-template-columns:1fr}}
@media (max-width:420px){.brand{font-size:.82rem;letter-spacing:.04em;white-space:normal;overflow:visible;line-height:1.05;text-overflow:clip}.lang-switch{min-width:56px;padding:0 20px 0 8px;font-size:.78rem}.theme-toggle,.menu-toggle{width:34px}}

/* =========================================================
  Accessibility: Reduced Motion
  ========================================================= */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{transition:none;transform:none}
  .btn,.theme-toggle,.menu-toggle,.lang-switch,.back-to-top,.social-icon{transition:none}
}

