.portfolio-background{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none;background:var(--bg-deep)}.pb-orb{position:absolute;border-radius:50%;will-change:transform,translate}.pb-orb-a{translate:0 calc(var(--scroll, 0) * -.12px)}.pb-orb-b{translate:0 calc(var(--scroll, 0) * -.06px)}.pb-orb-c{translate:0 calc(var(--scroll, 0) * -.09px)}.pb-dots{translate:0 calc(var(--scroll, 0) * -.03px)}.pb-orb-a{top:-22vmax;left:-12vmax;width:62vmax;height:62vmax;background:radial-gradient(circle,#6e5fff38,#6e5fff00 65%);animation:pb-drift-a 38s ease-in-out infinite alternate}.pb-orb-b{top:18vh;right:-24vmax;width:58vmax;height:58vmax;background:radial-gradient(circle,#8b5cf624,#8b5cf600 65%);animation:pb-drift-b 46s ease-in-out infinite alternate}.pb-orb-c{bottom:-30vmax;left:20vw;width:60vmax;height:60vmax;background:radial-gradient(circle,#f5b97a17,#f5b97a00 65%);animation:pb-drift-c 52s ease-in-out infinite alternate}.pb-dots{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 70%);mask-image:linear-gradient(to bottom,#000,transparent 70%)}.pb-beam{position:absolute;top:-20vh;left:50%;width:120vw;height:90vh;translate:-50% calc(var(--scroll, 0) * -.2px);background:radial-gradient(50% 60% at 50% 0%,rgba(146,133,255,.18),transparent 70%)}.pb-spot{position:absolute;top:0;left:0;width:640px;height:640px;margin:-320px 0 0 -320px;border-radius:50%;background:radial-gradient(circle,rgba(146,133,255,.09),transparent 60%);transform:translate3d(var(--mx, -999px),var(--my, -999px),0);transition:transform .6s var(--ease-out),opacity .4s ease;will-change:transform}@keyframes pb-drift-a{to{transform:translate3d(8vw,6vh,0) scale(1.08)}}@keyframes pb-drift-b{to{transform:translate3d(-10vw,8vh,0) scale(.94)}}@keyframes pb-drift-c{to{transform:translate3d(6vw,-10vh,0) scale(1.06)}}@media (prefers-reduced-motion: reduce){.pb-orb{animation:none}}.nav-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:var(--content-width);height:64px;margin:0 auto;padding:0 24px}.nav-brand{display:inline-flex;align-items:center;gap:10px;padding:0;border:none;background:none;color:var(--text-primary);font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:-.01em}.nav-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:var(--btn-gradient);color:var(--on-accent);font-size:15px;box-shadow:0 0 20px -4px #7d6dffb3;transition:transform .3s var(--ease-out)}.nav-brand:hover .nav-brand-mark{transform:rotate(-8deg) scale(1.05)}.nav-links{display:flex;align-items:center;gap:4px}.nav-link{position:relative;padding:8px 12px;border:none;border-radius:8px;background:none;color:var(--text-secondary);font-size:14px;font-weight:500;white-space:nowrap;transition:color .2s ease,background .2s ease}.nav-link:after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;border-radius:2px;background:var(--accent);transform:scaleX(0);transition:transform .3s var(--ease-out)}.nav-link:hover,.nav-link.active{color:var(--text-primary)}.nav-link.active:after{transform:scaleX(1);box-shadow:0 0 10px #9285ffe6}.nav-link-ai{margin-inline-start:10px;padding:8px 14px;background:var(--accent-soft);color:var(--accent)}.nav-link-ai:after{display:none}.nav-link-ai:hover{background:var(--btn-gradient);color:var(--on-accent);box-shadow:0 8px 24px -8px #7d6dffb3}.nav-lang{display:inline-flex;align-items:center;gap:6px;margin-inline-start:8px;padding:7px 12px;border:1px solid var(--border-accent);border-radius:999px;background:#ffffff08;color:var(--text-secondary);font-size:13px;font-weight:600;transition:color .2s ease,border-color .2s ease,box-shadow .25s ease}.nav-lang:hover{color:var(--text-primary);border-color:var(--border-hover);box-shadow:0 0 18px -6px #9285ffcc}.nav-lang[lang=ar]{font-family:"IBM Plex Sans Arabic",var(--font-sans)}.nav-mobile-actions{display:flex;align-items:center;gap:4px}.nav-hamburger{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin-inline-end:-8px;border:none;border-radius:6px;background:transparent;color:var(--text-primary)}.nav-drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#03040a99;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:60}.nav-drawer-scrim.open{opacity:1;pointer-events:auto}.nav-drawer{position:fixed;top:0;bottom:0;inset-inline-end:0;width:min(280px,82vw);background:var(--surface);border-inline-start:1px solid var(--border-subtle);box-shadow:0 0 60px -20px #000c;transform:translate(var(--drawer-off, 100%));transition:transform .32s var(--ease-out);z-index:61;display:flex;flex-direction:column;padding:12px 16px 24px;padding-top:calc(12px + env(safe-area-inset-top))}.nav-drawer.open{transform:translate(0)}.nav-drawer-close{align-self:flex-end;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:transparent;color:var(--text-secondary);margin-bottom:8px}.nav-drawer-items{display:flex;flex-direction:column}.nav-drawer-item{text-align:start;padding:14px 4px;border:none;border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--text-secondary);font-size:16px}.nav-drawer-item.active{color:var(--accent);font-weight:500}@media (min-width: 768px){.nav-drawer,.nav-drawer-scrim{display:none}}@media (max-width: 599px){.nav-bar{padding:0 16px}}@keyframes nav-in{0%{opacity:0;transform:perspective(600px) translateY(-10px) rotateX(-25deg)}}.nav-brand,.nav-links,.nav-hamburger{animation:nav-in .7s var(--ease-out) backwards}.nav-links,.nav-hamburger{animation-delay:.12s}@media (prefers-reduced-motion: reduce){.nav-brand,.nav-links,.nav-hamburger{animation:none}}[dir=rtl] .nav-drawer{--drawer-off: -100%}.hero-stats{display:flex;flex-wrap:wrap;gap:16px 48px;margin:48px 0 0;padding-top:28px;border-top:1px solid var(--border-subtle)}.hero-stat dt{font-family:var(--font-display);font-size:34px;font-weight:600;color:var(--text-primary);text-shadow:0 0 24px rgba(146,133,255,.45);line-height:1.1}.hero-stat dd{margin:4px 0 0;font-size:13px;color:var(--text-muted)}@media (max-width: 599px){.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:36px}.hero-stat dt{font-size:26px}}.hero{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:center;gap:72px;padding:96px 24px 88px}.hero-text-col>*{animation:reveal-in .8s var(--ease-out) both}.hero-text-col>*:nth-child(2){animation-delay:60ms}.hero-text-col>*:nth-child(3){animation-delay:1.5s}.hero-text-col>*:nth-child(4){animation-delay:1.6s}.hero-text-col>*:nth-child(5){animation-delay:1.7s}.hero-text-col>*:nth-child(6){animation-delay:1.8s}.hero-role{display:inline-flex;align-items:center;gap:10px;margin:0;padding:6px 14px 6px 12px;border:1px solid var(--border-subtle);border-radius:999px;background:#ffffff0a;font-size:13px;font-weight:500;color:var(--text-secondary)}.hero-role-dot{width:7px;height:7px;border-radius:50%;background:#5ee2a0;box-shadow:0 0 10px #5ee2a0;animation:glow-pulse 2.4s ease-in-out infinite}.hero-name{position:relative;margin:22px 0 0;font-family:var(--font-display);font-size:clamp(42px,6.4vw,76px);font-weight:600;line-height:1.02;letter-spacing:-.04em;color:var(--text-primary);text-shadow:0 0 48px rgba(146,133,255,.28)}:root[lang=ar] .hero-name{line-height:1.25}.hero-name-ghost{visibility:hidden}.hero-name-typed{position:absolute;top:0;right:0;bottom:0;left:0}.hero-cursor{display:inline-block;width:3px;height:.82em;margin-inline-start:6px;vertical-align:-.04em;border-radius:2px;background:var(--warm);box-shadow:0 0 12px var(--warm)}.hero-cursor.holding{animation:hero-cursor-blink 1s ease-in-out infinite}@keyframes hero-cursor-blink{0%,45%{opacity:1}55%,to{opacity:0}}.hero-tagline{margin:24px 0 0;max-width:560px;font-size:18px;line-height:1.7;color:var(--text-secondary)}.hero-tech{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:22px 0 0;padding:0}.hero-tech li{transition:translate .25s var(--ease-out),border-color .2s ease,color .2s ease;padding:4px 11px;border-radius:999px;border:1px solid var(--border-subtle);background:#ffffff08;font-size:13px;color:var(--text-secondary)}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:36px}.hero-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:10px;border:1px solid var(--border-accent);background:#ffffff0a;color:var(--text-primary);font-size:15px;font-weight:600;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),border-color .2s ease,background .2s ease}.hero-btn:hover{transform:translateY(-2px);border-color:var(--border-hover);box-shadow:0 0 24px -8px #9285ff99}.hero-btn.primary{border-color:#b0a7ff80;background:var(--btn-gradient);color:var(--on-accent);box-shadow:0 10px 30px -10px #6e5fffcc,inset 0 1px #ffffff40}.hero-btn.primary:hover{box-shadow:0 16px 40px -10px #6e5ffff2,inset 0 1px #ffffff4d}.hero-btn.primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);translate:-120% 0;transition:translate .7s var(--ease-out)}.hero-btn.primary:hover:after{translate:120% 0}.hero-btn-arrow{transition:transform .2s var(--ease-out)}.hero-btn:hover .hero-btn-arrow{transform:translate(3px)}.hero-link{display:inline-flex;align-items:center;gap:7px;padding:0;border:none;background:none;color:var(--text-secondary);font-size:15px;font-weight:500;transition:color .2s ease}.hero-link span{background:linear-gradient(currentColor,currentColor) 0 100% / 0 1px no-repeat;transition:background-size .25s var(--ease-out)}.hero-link:hover{color:var(--accent)}.hero-link:hover span{background-size:100% 1px}.hero-tech li:hover{translate:0 -2px;border-color:var(--accent);color:var(--accent)}.hero-photo-col{position:relative;animation:reveal-in 1s var(--ease-out) .2s both}.hero-photo-col:before{content:"";position:absolute;top:-18%;right:-18%;bottom:-18%;left:-18%;border-radius:50%;background:radial-gradient(closest-side,rgba(110,95,255,.45),rgba(245,185,122,.12) 60%,transparent);animation:glow-pulse 6s ease-in-out infinite;pointer-events:none}.hero-photo-frame{--tilt: 10deg;position:relative;transform-style:preserve-3d;transition:transform .5s var(--ease-out);animation:float-y 7s ease-in-out 1.2s infinite}.hero-photo-frame:before{content:"";position:absolute;top:22px;right:-18px;bottom:-18px;left:22px;border-radius:24px;background:linear-gradient(140deg,#9285ff8c,#f5b97a59);opacity:.55;transform:translateZ(-30px)}.hero-photo{position:relative;width:100%;aspect-ratio:4 / 5;object-fit:cover;object-position:center 15%;border-radius:24px;background:radial-gradient(55% 40% at 50% 28%,#b0a7ff8c,#b0a7ff00 70%),radial-gradient(90% 55% at 85% 100%,#f5b97a59,#f5b97a00 70%),linear-gradient(170deg,#2a2470,#3b31a8,#1a1640);border:1px solid rgba(176,167,255,.25);box-shadow:0 40px 80px -30px #000c,0 0 60px -20px #6e5fff99;transform:translateZ(20px)}@media (max-width: 899px){.hero{grid-template-columns:1fr;gap:36px;padding:56px 24px}.hero-photo-col{order:-1;justify-self:start}.hero-photo-frame{width:112px}.hero-photo-frame:before{top:8px;right:-6px;bottom:-6px;left:8px;border-radius:50%}.hero-photo{aspect-ratio:1;border-radius:50%;object-position:center 8%;box-shadow:0 0 30px -8px #6e5fffb3}.hero-tagline{font-size:17px}}@media (max-width: 599px){.hero{padding:40px 16px 48px;gap:28px}.hero-photo-frame{width:92px}.hero-name{margin-top:18px}.hero-tagline{font-size:16px}.hero-actions{margin-top:30px}.hero-btn{flex:1 1 140px}}@media (prefers-reduced-motion: reduce){.hero-text-col>*,.hero-photo-col,.hero-photo-col:before,.hero-photo-frame,.hero-role-dot{animation:none}}.section-block{padding:88px 24px}@media (max-width: 599px){.section-block{padding:64px 16px}}@media (min-width: 900px){.section-block.split{display:grid;grid-template-columns:300px minmax(0,1fr);gap:56px;align-items:start}.section-block.split .section-header{position:sticky;top:104px;margin-bottom:0}}.section-block.reveal.in-view{animation-name:section-in}@keyframes section-in{0%{opacity:0;transform:translateY(20px)}}.section-header{margin-bottom:44px}.section-header-title{margin:0;font-family:var(--font-display);font-size:clamp(32px,4.4vw,48px);font-weight:600;letter-spacing:-.035em;line-height:1.12;color:var(--text-primary)}.section-header-subtitle{margin:12px 0 0;max-width:600px;font-size:17px;color:var(--text-secondary)}@media (max-width: 599px){.section-header{margin-bottom:32px}.section-header-subtitle{font-size:16px}}.section-header-title{transform-origin:50% 100%}.section-header-title:after{content:"";display:block;width:44px;height:3px;margin-top:18px;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--warm));box-shadow:0 0 14px #9285ffb3;transform-origin:left}[dir=rtl] .section-header-title:after{background:linear-gradient(270deg,var(--accent),var(--warm));transform-origin:right}.reveal.in-view .section-header-title:after{animation:rule-draw .9s var(--ease-out) .65s backwards}@keyframes rule-draw{0%{transform:scaleX(0)}}.reveal.in-view .section-header-title{animation:heading-in .9s var(--ease-out) .12s backwards}.reveal.in-view .section-header-subtitle{animation:reveal-in .8s var(--ease-out) .26s backwards}.glass-panel{max-width:680px}.about-paragraph{margin:0 0 18px;font-size:17px;line-height:1.8;color:var(--text-secondary)}.about-paragraph.lead{font-size:21px;line-height:1.6;color:var(--text-primary)}.about-highlights{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.about-chip{padding:6px 14px;border-radius:999px;border:1px solid var(--border-subtle);background:#ffffff08;color:var(--text-secondary);font-size:13px;font-weight:500;transition:border-color .2s ease,color .2s ease,background .2s ease}.about-chip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}@media (max-width: 599px){.about-paragraph{font-size:16px}.about-paragraph.lead{font-size:18px}}.reveal.in-view .glass-panel{animation:reveal-side .9s var(--ease-out) .12s backwards}.about-chip{transition:border-color .2s ease,color .2s ease,background .2s ease,translate .25s var(--ease-out)}.about-chip:hover{translate:0 -2px}@media (prefers-reduced-motion: reduce){.reveal.in-view .glass-panel{animation:none}}.education-list{position:relative;list-style:none;margin:0;padding:0;padding-inline-start:28px}.education-list:before{content:"";position:absolute;inset-inline-start:5px;top:8px;bottom:8px;width:1px;background:linear-gradient(to bottom,var(--accent),var(--border-accent) 40%,transparent)}.education-item{position:relative;padding:0 0 40px}.education-item:last-child{padding-bottom:0}.education-item:before{content:"";position:absolute;inset-inline-start:-28px;top:7px;width:11px;height:11px;border-radius:50%;border:2px solid var(--accent);background:var(--bg-deep);transition:background .2s ease}.education-item:hover:before{background:var(--accent)}.education-title{margin:0;font-size:19px;font-weight:600;line-height:1.4;letter-spacing:-.01em;color:var(--text-primary)}.education-subtitle{margin:4px 0 0;font-size:15px;color:var(--text-secondary)}.education-meta{display:flex;flex-wrap:wrap;gap:6px 20px;margin:12px 0 0;font-size:14px}.education-meta div{display:flex;flex-wrap:wrap;gap:0 6px}.education-meta dt{color:var(--text-muted)}.education-meta dt:after{content:":"}.education-meta dd{margin:0;color:var(--text-secondary)}.education-desc{margin:12px 0 0;max-width:640px;font-size:15px;line-height:1.7;color:var(--text-secondary)}.education-cert{display:inline-flex;align-items:center;gap:7px;margin-top:14px;padding:7px 14px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface);color:var(--accent);font-size:14px;font-weight:500;transition:border-color .2s ease,transform .2s var(--ease-out)}.education-cert:hover{border-color:var(--accent);transform:translateY(-1px)}.education-list:before{transform-origin:top}.reveal.in-view .education-list:before{animation:rail-draw 1.4s var(--ease-out) .15s backwards}.reveal.in-view .education-list.stagger>*{animation-name:reveal-side}.education-item{transition:translate .3s var(--ease-out)}.education-item:hover{translate:4px 0}.education-item:before{transition:background .2s ease,box-shadow .3s var(--ease-out)}.education-item:hover:before{box-shadow:0 0 0 5px var(--accent-soft),0 0 16px var(--accent)}[dir=rtl] .education-item:hover{translate:-4px 0}@keyframes rail-draw{0%{transform:scaleY(0)}}@media (prefers-reduced-motion: reduce){.reveal.in-view .education-list:before{animation:none}}.skills-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.skill-group{--tilt: 7deg;padding:24px 22px;border:1px solid var(--border-subtle);border-radius:16px;background:var(--glass);transition:border-color .25s ease,box-shadow .25s var(--ease-out),translate .25s var(--ease-out),transform .4s var(--ease-out)}.skill-group:hover{border-color:var(--border-accent);box-shadow:0 30px 60px -30px #6e5fff73;translate:0 -3px}.skill-group-title{margin:0 0 14px;font-size:15px;font-weight:600;color:var(--text-primary)}.skill-group-list{list-style:none;margin:0;padding:0}.skill-group-list li{position:relative;padding-inline-start:16px;margin-bottom:8px;font-size:14px;line-height:1.55;color:var(--text-secondary)}.skill-group-list li{transition:translate .25s var(--ease-out),color .2s ease}.skill-group:hover .skill-group-list li{translate:3px 0}.skill-group-list li:before{content:"";position:absolute;inset-inline-start:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);opacity:.8}@media (max-width: 1023px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 599px){.skills-grid{grid-template-columns:1fr;gap:12px}.skill-group{padding:20px}}[dir=rtl] .skill-group:hover .skill-group-list li{translate:-3px 0}.icon-badge{display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--accent-soft);border:1px solid rgba(146,133,255,.25);flex-shrink:0;transition:transform .3s var(--ease-out)}.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--border-subtle);border-radius:20px;background:var(--glass);overflow:hidden}.service-item{perspective:600px;padding:32px 28px;border-inline-end:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);transition:background .25s ease}.service-item:nth-child(3n){border-inline-end:none}.service-item:nth-last-child(-n+3){border-bottom:none}.service-item:hover{background:#ffffff05}.service-item:hover .icon-badge{transform:translateZ(24px) rotateY(-14deg) rotate(-6deg);box-shadow:0 0 28px -4px #9285ffbf}.service-item .icon-badge{transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out);animation:float-y 6s ease-in-out infinite}.service-item:nth-child(2n) .icon-badge{animation-delay:-2s}.service-item:nth-child(3n) .icon-badge{animation-delay:-4s}.service-title,.service-desc{transition:translate .3s var(--ease-out)}.service-item:hover .service-title{translate:0 -2px}@media (prefers-reduced-motion: reduce){.service-item .icon-badge{animation:none}}.service-title{margin:20px 0 0;font-size:17px;font-weight:600;color:var(--text-primary)}.service-desc{margin:8px 0 0;font-size:15px;line-height:1.65;color:var(--text-secondary)}@media (max-width: 899px){.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-item:nth-child(n){border-inline-end:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.service-item:nth-child(2n){border-inline-end:none}.service-item:nth-last-child(-n+2){border-bottom:none}}@media (max-width: 599px){.services-grid{grid-template-columns:1fr}.service-item:nth-child(n){border-inline-end:none;border-bottom:1px solid var(--border-subtle);padding:24px 20px}.service-item:last-child{border-bottom:none}}.project-card{--tilt: 5deg;position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--border-subtle);border-radius:20px;background:var(--glass);box-shadow:0 1px #ffffff0a inset;overflow:hidden;transition:translate .35s var(--ease-out),transform .45s var(--ease-out),box-shadow .35s var(--ease-out),border-color .25s ease}.project-card:hover{translate:0 -4px;border-color:var(--border-accent);box-shadow:0 40px 80px -40px #6e5fff8c}.project-card-preview{display:block;aspect-ratio:16 / 10;margin:10px 10px 0;border-radius:12px;overflow:hidden;background:linear-gradient(160deg,#161936,#10122a 60%,#1a1530)}.project-card-preview img{width:100%;height:100%;object-fit:contain;transition:transform .6s var(--ease-out)}.project-card:hover .project-card-preview img{transform:scale(1.05) translate(calc(var(--px, 0) * -10px),calc(var(--py, 0) * -10px))}.project-card-body{display:flex;flex-direction:column;flex:1;padding:20px 22px 22px}.project-card-categories{margin:0 0 8px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.project-card-title{margin:0;font-size:20px;font-weight:600;letter-spacing:-.015em;color:var(--text-primary)}.project-card-title a{transition:color .2s ease}.project-card-title a:hover{color:var(--accent)}.project-card-summary{margin:8px 0 0;font-size:15px;line-height:1.6;color:var(--text-secondary)}.project-card-tech{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:16px 0 0;padding:0}.project-card-tech li{padding:3px 10px;border:1px solid var(--border-subtle);border-radius:999px;background:#ffffff08;color:var(--text-secondary);font-size:12px;font-weight:500}.project-card-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;padding-top:20px;font-size:14px}.project-card-view{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:600}.project-card-view span{transition:transform .25s var(--ease-out)}.project-card-view:hover span{transform:translate(4px)}.project-card-github{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border-subtle);border-radius:999px;background:none;color:var(--text-secondary);font-size:13px;font-weight:500;transition:color .2s ease,border-color .2s ease}.project-card-github:hover{color:var(--text-primary);border-color:var(--border-hover)}@media (min-width: 768px){.project-card.featured{--tilt: 3deg;grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:stretch}.project-card.featured .project-card-preview{margin:12px 0;margin-inline-start:12px;aspect-ratio:auto;min-height:340px}.project-card.featured .project-card-body{justify-content:center;padding:36px}.project-card.featured .project-card-title{font-family:var(--font-display);font-size:32px;font-weight:600;letter-spacing:-.03em}.project-card.featured .project-card-footer{margin-top:0;padding-top:28px}}@media (max-width: 599px){.project-card{border-radius:16px}.project-card-body{padding:18px 18px 20px}}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}@media (max-width: 767px){.projects-grid{grid-template-columns:1fr;gap:20px}}.contact-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:0}.contact-row{--tilt: 6deg;display:flex;align-items:center;gap:14px;padding:18px 20px;border:1px solid var(--border-subtle);border-radius:14px;background:var(--glass);transition:border-color .2s ease,box-shadow .25s var(--ease-out),translate .25s var(--ease-out),transform .4s var(--ease-out)}.contact-row:hover{border-color:var(--accent);box-shadow:0 20px 40px -20px var(--card-shadow-hover);translate:0 -2px}.contact-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--accent-soft);color:var(--accent);flex-shrink:0;transition:transform .3s var(--ease-out)}.contact-row:hover .contact-icon{transform:translateY(-2px) rotate(-6deg) scale(1.06)}.contact-text{display:flex;flex-direction:column;min-width:0;flex:1}.contact-label{font-size:12px;color:var(--text-muted)}.contact-value{font-size:15px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-arrow{color:var(--text-muted);transition:color .2s ease,transform .25s var(--ease-out)}.contact-row:hover .contact-arrow{color:var(--accent);transform:translate(2px,-2px)}@media (max-width: 599px){.contact-list{grid-template-columns:1fr}.contact-row{padding:14px 16px}}.cta-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px;margin:0 24px 72px;padding:40px 44px;border-radius:24px;background:radial-gradient(90% 120% at 100% 0%,rgba(245,185,122,.28),transparent 55%),radial-gradient(80% 120% at 0% 100%,rgba(139,92,246,.45),transparent 60%),linear-gradient(135deg,#241c7a,#4a3bd0 55%,#5b4be0);border:1px solid rgba(176,167,255,.3);color:#fff;box-shadow:0 40px 90px -40px #6e5fffd9}.cta-row-text h2{margin:0;font-family:var(--font-display);font-size:clamp(26px,3.2vw,36px);font-weight:600;letter-spacing:-.015em;line-height:1.2}.cta-row-text p{margin:6px 0 0;color:#ffffffc7;font-size:16px}.cta-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}.resume-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border:none;border-radius:10px;background:#fff;color:var(--accent-deep);font-size:15px;font-weight:600;box-shadow:0 8px 20px -10px #00000059;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out)}.resume-btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px -12px #0006}.ai-chat-link{display:inline-flex;align-items:center;gap:6px;color:#fff;font-size:15px;font-weight:500}.ai-chat-link span{transition:transform .25s var(--ease-out)}.ai-chat-link:hover span{transform:translate(4px)}.portfolio-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding:28px 24px 36px;border-top:1px solid var(--border-subtle)}.portfolio-footer p{margin:0;color:var(--text-muted);font-size:13px}@media (max-width: 599px){.cta-row{margin:0 16px 56px;padding:28px 24px;border-radius:20px}.resume-btn{flex:1 1 auto;justify-content:center}.portfolio-footer{padding:24px 16px 32px}}.home-page{position:relative;min-height:100vh;overflow-x:clip}.home-nav-sticky{position:sticky;top:0;z-index:20;padding-top:env(safe-area-inset-top);border-bottom:1px solid rgba(255,255,255,.06)}.home-nav-sticky:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:#07080fb8;-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px)}.home-content{position:relative;z-index:1;max-width:var(--content-width);margin:0 auto}section[id]{scroll-margin-top:72px}.github-repo-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:10px;border:1px solid var(--border-accent);background:var(--surface);color:var(--text-primary);font-size:14px;transition:background .15s ease}.github-repo-btn:hover{border-color:var(--border-hover)}.pd-page{min-height:100vh;background:var(--bg-deep);color:var(--text-primary)}.pd-appbar{max-width:var(--content-width);margin:0 auto;padding:20px 24px;padding-top:calc(20px + env(safe-area-inset-top))}.pd-back{font-size:14px;color:var(--text-secondary)}.pd-back:hover{color:var(--text-primary)}.pd-body{max-width:var(--content-width);margin:0 auto;padding:24px 24px 80px}.pd-body.wide{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:56px;align-items:start}.pd-sidebar{position:sticky;top:24px;padding-top:88px}.pd-categories{margin:0 0 8px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.pd-title{margin:0;font-family:var(--font-display);font-size:clamp(32px,5vw,48px);font-weight:500;line-height:1.1;letter-spacing:-.025em}.pd-summary{margin:12px 0 0;max-width:620px;font-size:17px;line-height:1.6;color:var(--text-secondary)}.pd-gallery{margin-top:32px}.pd-screenshot{position:relative;display:block;width:100%;padding:0;border:1px solid var(--border-subtle);border-radius:20px;overflow:hidden;background:linear-gradient(160deg,#161936,#10122a 60%,#1a1530);box-shadow:var(--panel-shadow);cursor:zoom-in}.pd-screenshot img{width:100%;max-height:460px;object-fit:contain;margin:0 auto}.pd-zoom-hint{position:absolute;right:10px;bottom:10px;padding:3px 8px;border-radius:4px;background:#0009;color:#fffc;font-size:12px;opacity:0;transition:opacity .15s ease}.pd-screenshot:hover .pd-zoom-hint,.pd-screenshot:focus-visible .pd-zoom-hint{opacity:1}.pd-gallery-nav{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px}.pd-gallery-nav button{background:none;border:none;color:var(--text-secondary);font-size:20px;width:32px;height:32px}.pd-gallery-nav button:disabled{opacity:.3;cursor:default}.pd-gallery-nav .pd-dot{width:8px;height:8px;padding:0;border-radius:50%;background:var(--border-hover)}.pd-gallery-nav .pd-dot.active{background:var(--accent)}.pd-page-of{color:var(--text-muted);font-size:12px;margin-inline-start:8px}.pd-heading{margin:40px 0 0;font-size:17px;font-weight:600;color:var(--text-primary)}.pd-features{margin:12px 0 0;padding-inline-start:20px;max-width:640px}.pd-features li{margin-bottom:6px;font-size:15px;line-height:1.6;color:var(--text-secondary)}.pd-features li::marker{color:var(--accent)}.pd-tech-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.pd-tech-badge{padding:4px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:13px}.pd-try-section{margin:32px 0 0}.pd-sidebar .pd-try-section{margin:0}.pd-try-section h2{margin:0 0 12px;font-size:17px;font-weight:600;color:var(--text-primary)}.pd-try-buttons{display:flex;flex-wrap:wrap;gap:8px}.pd-sidebar .pd-try-buttons{flex-direction:column;align-items:stretch}.pd-try-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border-radius:10px;border:1px solid var(--border-accent);background:var(--surface);color:var(--text-primary);font-size:14px;font-weight:500;transition:background .2s ease,border-color .2s ease,translate .2s var(--ease-out)}.pd-try-btn:hover{border-color:var(--border-hover);translate:0 -1px}.pd-try-btn:first-child{border-color:var(--accent);background:var(--btn-gradient);color:var(--on-accent)}.pd-try-btn:first-child:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.pd-try-notes{white-space:pre-wrap;word-break:break-word;font-family:inherit;color:var(--text-secondary);font-size:13px;line-height:1.65;margin:16px 0 0;padding:12px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--border-subtle)}.pd-github-wrap{margin-top:24px}.pd-sidebar .pd-github-wrap .github-repo-btn{width:100%;justify-content:center}.pd-not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary)}.pd-not-found a{color:var(--accent)}.pd-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;z-index:300;display:flex;align-items:center;justify-content:center;overflow:auto}.pd-lightbox img{max-width:92vw;max-height:92vh;object-fit:contain;transition:transform .2s ease;cursor:zoom-in}.pd-lightbox img.zoomed{transform:scale(1.8);cursor:zoom-out}.pd-lightbox-close{position:absolute;top:16px;right:20px;background:none;border:none;color:#fff;font-size:24px}@media (max-width: 599px){.pd-appbar{padding-left:16px;padding-right:16px}.pd-body{padding:16px 16px 56px}.pd-title{font-size:28px}.pd-summary{font-size:16px}.pd-gallery{margin-top:24px}}.ai-chat-page{display:flex;flex-direction:column;height:100vh;background:var(--bg-deep)}.ai-chat-appbar{display:flex;align-items:center;gap:12px;padding:14px 20px;background:var(--bg-deep);border-bottom:1px solid var(--border-subtle);font-weight:600;flex-shrink:0}.ai-chat-back{font-size:20px;color:var(--text-primary)}.ai-chat-suggestions{flex-shrink:0;max-height:168px;padding:8px 16px 4px;overflow-y:auto}.ai-chat-suggestions p{margin:0 0 8px;color:var(--text-muted);font-size:12px;font-weight:600}.ai-chip-row{display:flex;flex-wrap:wrap;gap:8px}.ai-chip{padding:7px 12px;border-radius:12px;background:var(--card-surface);border:1px solid var(--border-accent);color:var(--text-secondary);font-size:13px}.ai-chip:disabled{opacity:.5}.ai-chat-messages{flex:1;overflow-y:auto;padding:8px 16px 16px;display:flex;flex-direction:column;gap:16px}.ai-msg-row{display:flex;align-items:flex-start;gap:12px}.ai-msg-row.user{flex-direction:row-reverse}.ai-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--bg-elevated);flex-shrink:0;font-size:18px}.ai-bubble{max-width:min(560px,78vw);padding:12px 16px;border-radius:12px;border:1px solid transparent}.ai-bubble.bot{background:var(--surface);border-color:var(--border-accent);border-bottom-left-radius:4px}.ai-bubble.user{background:var(--btn-gradient);border-bottom-right-radius:4px}.ai-bubble p{margin:0;color:var(--text-primary);font-size:15px;line-height:1.5;white-space:pre-wrap}.ai-bubble.user p{color:var(--on-accent)}.ai-msg-time{display:block;margin-top:4px;font-size:11px;color:var(--text-muted)}.ai-bubble.user .ai-msg-time{color:#ffffffb3}.ai-typing{display:flex;gap:4px;padding:14px 16px}.ai-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);animation:ai-typing-bounce 1s ease-in-out infinite}.ai-dot:nth-child(2){animation-delay:.15s}.ai-dot:nth-child(3){animation-delay:.3s}@keyframes ai-typing-bounce{0%,60%,to{transform:translateY(0);opacity:.6}30%{transform:translateY(-4px);opacity:1}}.ai-chat-input-row{display:flex;gap:12px;padding:16px;border-top:1px solid var(--border-accent);background:var(--bg-mid);flex-shrink:0}.ai-chat-input-row input{flex:1;min-width:0;padding:12px 20px;border-radius:8px;background:var(--bg-elevated);border:1px solid var(--border-accent);color:var(--text-primary);font-size:15px}.ai-chat-input-row input::placeholder{color:var(--text-muted)}.ai-chat-input-row button{width:46px;height:46px;border-radius:8px;border:none;background:var(--btn-gradient);color:var(--on-accent);font-size:18px;flex-shrink:0}.ai-chat-input-row button:disabled{opacity:.5}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:200;max-width:min(420px,calc(100vw - 32px));padding:14px 20px;border-radius:12px;background:var(--surface-raised);border:1px solid var(--border-accent);color:var(--text-primary);font-size:14px;box-shadow:0 16px 40px -16px #000c,0 0 30px -12px #6e5fff99;animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}:root{--bg-deep: #07080f;--bg-mid: #0d0f1a;--bg-elevated: #141727;--surface: #10121e;--surface-raised: #171a2b;--card-surface: #0f111c;--image-placeholder: #151832;--glass: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .015));--text-primary: #eef0fb;--text-secondary: #a6aac4;--text-muted: #6f7493;--border-subtle: rgba(255, 255, 255, .08);--border-accent: rgba(255, 255, 255, .14);--border-hover: rgba(169, 159, 255, .45);--panel-shadow: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 24px 48px -24px rgba(0, 0, 0, .7);--card-shadow: rgba(0, 0, 0, .4);--card-shadow-hover: rgba(110, 95, 255, .35);--glow: 0 0 0 1px rgba(143, 130, 255, .35), 0 24px 60px -24px rgba(110, 95, 255, .55);--accent: #9285ff;--accent-bright: #b0a7ff;--accent-deep: #5b4be0;--accent-soft: rgba(146, 133, 255, .14);--warm: #f5b97a;--violet: #8b5cf6;--violet-deep: #6d42d9;--sky: var(--accent);--teal: var(--accent);--gold: var(--accent);--on-accent: #ffffff;--bg-gradient: var(--bg-deep);--accent-gradient: linear-gradient(120deg, var(--accent), var(--violet));--btn-gradient: linear-gradient(135deg, #7d6dff, #5b4be0 55%, #4a3bd0);--cta-gradient: var(--accent);--ai-gradient: var(--accent-soft);--font-sans: "Manrope", "IBM Plex Sans Arabic", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Bricolage Grotesque", "Readex Pro", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--content-width: 1120px;--ease-out: cubic-bezier(.2, .7, .2, 1);color-scheme:dark}:root[lang=ar]{--font-sans: "IBM Plex Sans Arabic", "Manrope", system-ui, sans-serif;--font-display: "Readex Pro", "Bricolage Grotesque", system-ui, sans-serif}:root[lang=ar] body *{letter-spacing:0!important}:root[lang=ar] .project-card-categories,:root[lang=ar] .pd-categories{font-family:var(--font-sans);font-size:12px}[dir=rtl] .flip-rtl{display:inline-block;scale:-1 1}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg-deep);color:var(--text-primary);font-family:var(--font-sans);-webkit-text-size-adjust:100%;line-height:1.6;-webkit-font-smoothing:antialiased}body{overflow-x:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}img{max-width:100%;display:block}::selection{background:#9285ff59;color:#fff}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:#2a2e47;border-radius:6px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes reveal-in{0%{opacity:0;transform:perspective(1200px) translate3d(0,28px,-30px) rotateX(7deg)}to{opacity:1;transform:none}}@keyframes reveal-side{0%{opacity:0;transform:perspective(1200px) translate3d(-24px,0,-30px) rotateY(10deg)}to{opacity:1;transform:none}}@keyframes heading-in{0%{opacity:0;transform:perspective(700px) translateY(14px) rotateX(32deg)}to{opacity:1;transform:none}}@keyframes float-y{0%,to{translate:0 0}50%{translate:0 -8px}}.reveal{opacity:0}.reveal.in-view{opacity:1;animation:reveal-in .8s var(--ease-out) backwards}.reveal.in-view .stagger>*{animation:reveal-in .7s var(--ease-out) backwards}.reveal.in-view .stagger>*:nth-child(2){animation-delay:70ms}.reveal.in-view .stagger>*:nth-child(3){animation-delay:.14s}.reveal.in-view .stagger>*:nth-child(4){animation-delay:.21s}.reveal.in-view .stagger>*:nth-child(5){animation-delay:.28s}.reveal.in-view .stagger>*:nth-child(n+6){animation-delay:.34s}.glow-card{position:relative;isolation:isolate}.glow-card:before,.glow-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s ease}.glow-card:before{z-index:-1;background:radial-gradient(360px circle at calc((var(--px, 0) + .5) * 100%) calc((var(--py, 0) + .5) * 100%),rgba(146,133,255,.13),transparent 65%)}.glow-card:after{padding:1px;background:radial-gradient(260px circle at calc((var(--px, 0) + .5) * 100%) calc((var(--py, 0) + .5) * 100%),rgba(176,167,255,.85),rgba(245,185,122,.25) 45%,transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.glow-card:hover:before,.glow-card:hover:after{opacity:1}@keyframes glow-pulse{0%,to{opacity:.55;scale:1}50%{opacity:1;scale:1.06}}.tilt-3d{transform:perspective(1000px) rotateX(calc(var(--py, 0) * var(--tilt, 6deg) * -1)) rotateY(calc(var(--px, 0) * var(--tilt, 6deg)))}@media (prefers-reduced-motion: reduce){.reveal,.reveal.in-view,.reveal.in-view .stagger>*,.reveal.in-view .section-header-title,.reveal.in-view .section-header-subtitle{opacity:1;animation:none!important}.tilt-3d{transform:none!important}*,*:before,*:after{transition-duration:.01ms!important;scroll-behavior:auto!important}}
