:root{
    --bg:#040a1a;--bg2:#0b1735;--card:#0d1b3d;--line:#1a2f63;--tx:#f1f5ff;--mut:#9aabd0;--a:#3b82f6;--a2:#22d3ee;--glow:0 10px 30px #3b82f640;--dot:96,165,250
}
[data-theme=light]{
    --bg:#f2f6ff;--bg2:#e4edff;--card:#ffffff;--line:#c9d8f5;--tx:#0b1a3f;--mut:#51648f;--a:#6f95e8;--a2:#0891b2;--glow:0 10px 26px #2563eb26;--dot:37,99,235
}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:90px}
body{
    font-family:'Plus Jakarta Sans','Cairo',sans-serif;
    background:var(--bg);
    color:var(--tx);
    line-height:1.7;transition:background .3s
}
[dir=rtl] body{
    font-family:'Cairo','Plus Jakarta Sans',sans-serif
}
.laptop{direction:ltr}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
i[data-lucide]{width:1.1em;height:1.1em;vertical-align:-.15em}
.mono{font-family:'Fira Code',monospace}
#bg{
    position:fixed;inset:0;z-index:0;pointer-events:none
}
#bar{
    position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--a),var(--a2));z-index:100
}
header{
    position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)
}
.hd{
    max-width:1100px;margin:auto;padding:12px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px
}
.logo{font-family:'Fira Code',monospace;font-weight:600;font-size:1.15rem}
.logo b{color:#83488d}
nav{display:flex;gap:4px;padding:5px;border:1px solid var(--line);border-radius:40px;background:var(--card)}
nav a{padding:8px 16px;border-radius:30px;font-weight:600;font-size:.88rem;color:var(--mut);white-space:nowrap;transition:.25s}
nav a:hover{color:var(--tx);}
nav a.on{background:#83488d65;color:#fff}
.ic{display:flex;gap:8px}
.ic button{width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--tx);cursor:pointer;font-weight:700}
.ic button:hover{border-color:var(--a)}
main{ padding:0 clamp(16px,4vw,48px);section{padding:80px 0} position:relative;z-index:1;max-width:1240px;margin:24px auto;border:1px solid var(--line);border-radius:28px;background:color-mix(in srgb,var(--bg) 55%,transparent)}
.h2{display:flex;align-items:center;gap:14px;font-size:1.9rem;font-weight:800;font-style:italic;letter-spacing:-.5px;margin-bottom:34px;transform:skewX(-3deg);transform-origin:left}
.h2 i{width:52px;height:46px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--card);border:1px solid var(--line);color:var(--a);font-style:normal;font-size:1.1rem}
[dir=rtl] .h2{font-style:normal;transform:none;letter-spacing:0}
.sub{color:var(--mut);margin:-18px 0 30px}
#home{position:relative;min-height:calc(100vh - 70px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
#home:before{content:'';position:absolute;top:50%;left:50%;width:560px;height:560px;transform:translate(-50%,-50%);background:radial-gradient(circle,#3b82f655,transparent 65%);filter:blur(60px);z-index:-1;pointer-events:none}
.hi{color:var(--a2);font-size:.95rem}
#home h1{font-size:clamp(2rem,5vw,3.4rem);line-height:1.05;font-weight:800;font-style:italic;letter-spacing:-2px;margin:10px 0}
[dir=rtl] #home h1{font-style:normal;letter-spacing:0}
#home h1 span{background:linear-gradient(90deg,#855c90,var(--a));-webkit-background-clip:text;background-clip:text;color:transparent; filter:drop-shadow(0 0 22px #3b82f688)}
.role{font-size:1.25rem;font-weight:700;min-height:2rem;margin:14px 0}
.role:after{content:'';display:inline-block;width:3px;height:1.25rem;background:var(--a2);margin-inline-start:8px;vertical-align:middle;animation:bl 1s infinite}@keyframes bl{50%{opacity:0}}
.lead{color:var(--mut);font-size:0.98rem;max-width:480px ;margin-inline:auto}
.btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px ;justify-content:center}
.btn{display:inline-flex;align-items:center;gap:9px;padding:11px 22px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--tx);font-weight:700;cursor:pointer;font-size:.98rem;transition:.25s}
.btn.p{background:linear-gradient(90deg,#83488d,var(--a));color:#fff;border:0;box-shadow:var(--glow)}
.btn:hover{transform:translateY(-3px)}
.win{position:relative;background:#220827;border:1px solid var(--line);border-radius:18px;box-shadow:0 0 60px #3b82f622;color:#c7d6f5;direction:ltr;text-align:left}
.win .top{display:flex;gap:7px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}
.win .top s{width:12px;height:12px;border-radius:50%;background:#ef4444}
.win .top s:nth-child(2){background:#f59e0b}
.win .top s:nth-child(3){background:#22c55e}
.win .top em{font:normal .78rem 'Fira Code',monospace;background:#0d1b3d;padding:5px 12px;border-radius:8px;margin-left:8px}
.win pre{font:.82rem/1.85 'Fira Code',monospace;padding:18px 20px;overflow:hidden}
.win pre span{display:block;opacity:0;animation:up .5s forwards}
@keyframes up{from{transform:translateY(8px)}to{opacity:1}}
.k{color:#60a5fa}.s{color:#fcd34d}.f{color:#22d3ee}.n{color:#3b5288;margin-right:14px}
.term{border-top:1px solid var(--line);padding:14px 20px;font:.82rem 'Fira Code',monospace}
.term b{color:#22c55e}
.chip{position:absolute;padding:8px 14px;border-radius:10px;background:#0d1b3d;border:1px solid var(--line);color:#22d3ee;font:600 .8rem 'Fira Code',monospace;animation:fl 4s ease-in-out infinite}@keyframes fl{50%{transform:translateY(-10px)}}
.reveal{opacity:0;transform:translateY(36px);transition:.8s}
.reveal.show{opacity:1;transform:none}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;transition:.3s}
.card:hover{border-color:var(--a);box-shadow:var(--glow);transform:translateY(-4px)}
.about{display:grid;grid-template-columns:1.25fr 1fr;gap:36px;align-items:start}
.about p{color:var(--mut);margin-bottom:14px;font-size:1.03rem}
.about p b{color:var(--tx)}
.quote{border-inline-start:4px solid var(--a);background:var(--card);border-radius:12px;padding:18px 22px;font-weight:700}
.laptop{width:100%;max-width:300px;display:block;margin:0 auto 14px;animation:fl 4.5s ease-in-out infinite}
.stat{display:flex;align-items:center;gap:22px;margin-bottom:12px;padding:16px 22px}
.stat b{font:600 2rem 'Fira Code',monospace;color:var(--a);min-width:64px}
.stat span{color:var(--mut)}
.tl{position:relative;display:grid;gap:18px;padding-inline-start:34px}
.tl:before{content:'';position:absolute;inset-inline-start:6px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tl .card:before{content:'';position:absolute;inset-inline-start:-34px;top:26px;width:14px;height:14px;border-radius:50%;background:var(--bg);border:3px solid var(--a)}
.tl .card{position:relative;display:flex;justify-content:space-between;gap:18px;align-items:center}
.tl h3{font-size:1.08rem}.meta{color:var(--a2);font:.82rem 'Fira Code',monospace;margin:4px 0}
.tl p,.tl li{color:var(--mut);font-size:.93rem}
.tl ul{padding-inline-start:20px;margin-top:8px}
.thumb{position:relative;flex:none;width:130px;height:88px;border-radius:8px;overflow:hidden;border:1px solid var(--line);cursor:zoom-in}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb:after{content:'🔍';position:absolute;right:6px;bottom:6px;font-size:.75rem;background:#040a1acc;border-radius:6px;padding:2px 7px}
.tabs{display:inline-flex;gap:4px;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--card);margin-bottom:26px}
.tabs button{padding:11px 24px;border-radius:10px;border:0;background:none;color:var(--mut);font-weight:700;cursor:pointer}
.tabs button.on{background:#83488d95;color:#fff}
.pane{display:none;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:16px}
.pane.on{display:grid;animation:up .5s}
.sk{display:flex;gap:14px}
.sk>i{flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#3b82f622;color:var(--a);border:1px solid var(--line)}
.sk h3{font-size:1rem}
.sk p,.grp p{color:var(--mut);font-size:.9rem}
.grp h3{color:var(--a2);font-size:1rem;margin-bottom:8px}
.cert{display:flex;gap:22px;align-items:center;margin-top:20px}
.cert .thumb{width:230px;height:150px}
.cert h3{color:var(--a2);margin-bottom:6px}
.cert p{color:var(--mut)}
.proj{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
.proj .card{padding:0;overflow:hidden}
.proj img{width:100%;height:230px;object-fit:cover;background:#111;border-bottom:1px solid var(--line)}
.pb{padding:22px}
.pb h3{margin:12px 0 8px;font-size:1.25rem}.pb p{color:var(--mut);font-size:.94rem}
.tag{display:inline-block;font:.78rem 'Fira Code',monospace;padding:5px 12px;border-radius:9px;background:var(--bg2);border:1px solid var(--line);margin:12px 8px 0 0}
.tag.h{color:var(--a2);background:#22d3ee14;margin:0}
.degree{display:flex;gap:18px;align-items:center;margin-bottom:34px}
.degree>i{width:54px;height:54px;display:grid;place-items:center;border-radius:14px;background:var(--a);color:#fff}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.row{display:flex;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:12px;margin-bottom:12px;background:var(--bg2)}
.row>i{width:36px;height:36px;display:grid;place-items:center;border-radius:9px;background:#3b82f622;color:var(--a);flex:none}
.row small{display:block;color:var(--mut);font-size:.75rem}
.row b{font-size:.95rem}
.plat{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 18px}
.plat a{display:flex;gap:9px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg2);font-weight:600;font-size:.88rem}
.plat a:hover{border-color:var(--a)}
.plat em{font:normal .7rem 'Fira Code',monospace;color:var(--a2);background:#22d3ee18;padding:4px 6px;border-radius:6px}
.plat i,.plat svg{width:24px;height:24px;font-size:1.3rem;color:var(--tx);flex:none;display:grid;place-items:center}
.soc i{font-size:1.2rem}
.soc{display:flex;gap:10px}
.soc a{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px}
.soc a:hover{background:#83488d95;color:#fff}
form label{display:block;font-weight:600;font-size:.88rem;margin:0 0 6px}
input,textarea{width:100%;padding:13px 14px;margin-bottom:16px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--tx);font-family:inherit}
input:focus,textarea:focus{outline:2px solid var(--a)}
.note{color:var(--mut);font-size:.8rem;margin-top:10px}
footer{position:relative;z-index:1;text-align:center;padding:26px;color:var(--mut);font-size:.88rem;border-top:1px solid var(--line)}
#top{position:fixed;bottom:22px;inset-inline-end:22px;width:52px;height:52px;border-radius:50%;border:0;background:#83488dae;color:#fff;cursor:pointer;z-index:60;box-shadow:var(--glow);opacity:0;pointer-events:none;transition:.3s}
#top.v{opacity:1;pointer-events:auto}
#lb{position:fixed;inset:0;background:#000d;z-index:200;display:none;place-items:center;padding:24px;cursor:zoom-out}
#lb.on{display:grid}#lb img{max-width:100%;max-height:92vh;border-radius:10px}
@media(max-width:860px){ main{margin:10px;border-radius:18px} section{padding:50px 0} #home,.about,.contact{grid-template-columns:1fr}
.tl .card,.cert{flex-direction:column;align-items:flex-start}
.plat{grid-template-columns:1fr 1fr}.chip{display:none}}
.fl{width:24px;height:24px;flex:none;background:var(--tx);-webkit-mask:url(https://cdn.jsdelivr.net/npm/simple-icons@11.14.0/icons/freelancer.svg) center/contain no-repeat;mask:url(https://cdn.jsdelivr.net/npm/simple-icons@11.14.0/icons/freelancer.svg) center/contain no-repeat}

