:root{color-scheme:dark;--bg:#08111a;--surface:#0d1a25;--surface-2:#10202d;--line:#243644;--text:#f0f5f5;--muted:#a4b7bf;--soft:#718c98;--accent:#8de1ce;--accent-dark:#14392f;--container:1180px;--radius:18px}
@font-face{font-family:Vazirmatn;src:url('/fonts/Vazirmatn-variable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.65 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden}
body::before{content:"";position:absolute;z-index:-1;inset:0 0 auto;height:870px;pointer-events:none;background:radial-gradient(ellipse at 79% 12%,rgba(37,128,126,.17),transparent 43%),radial-gradient(ellipse at 12% 38%,rgba(30,65,91,.12),transparent 49%)}
img{max-width:100%;display:block}a{color:inherit}button{font:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.12;letter-spacing:-.045em}p{color:var(--muted)}ul{margin:0;padding:0}.container{width:min(calc(100% - 64px),var(--container));margin-inline:auto}
::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.skip-link{position:fixed;z-index:200;top:-80px;left:20px;background:var(--accent);color:var(--bg);padding:10px 15px}.skip-link:focus{top:15px}

/* Header and navigation */
.site-header{position:sticky;top:0;z-index:100;background:rgba(8,17,26,.86);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid rgba(141,225,206,.1);transition:box-shadow .25s,background .25s}.site-header.is-scrolled{background:rgba(8,17,26,.96);box-shadow:0 12px 40px rgba(0,0,0,.22)}
.nav-shell{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border:1px solid var(--accent);border-radius:12px;color:var(--text);font-size:16px;font-weight:800;letter-spacing:-.08em}.brand-mark span{color:var(--accent)}.brand-name{font-size:13px;font-weight:650;letter-spacing:.01em}.nav-panel{display:flex;align-items:center;gap:30px}.nav-links{display:flex;align-items:center;gap:4px;list-style:none}.nav-link{display:block;position:relative;padding:12px 10px;color:var(--muted);font-size:12.5px;font-weight:600;text-decoration:none;transition:color .2s}.nav-link::after{content:"";position:absolute;bottom:5px;left:10px;right:10px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:center;transition:transform .2s}.nav-link:hover,.nav-link.active{color:var(--text)}.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1)}.nav-contact{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:39px;padding:0 17px;border:1px solid rgba(141,225,206,.55);border-radius:9px;color:var(--accent);font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;transition:background .2s,color .2s,transform .2s}.nav-contact:hover{background:var(--accent);color:var(--bg);transform:translateY(-2px)}.menu-toggle{display:none}

/* Shared elements */
.section{padding:120px 0;scroll-margin-top:80px}.section-muted{background:var(--surface)}.section-kicker,.card-label{display:block;margin-bottom:20px;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.18em}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:47px}.section-heading h2,.section-intro h2{font-size:clamp(32px,4.3vw,58px)}.section-heading>p{max-width:390px;padding-bottom:6px;font-size:14px}.section-intro h2 span,.contact-layout h2 span{color:var(--accent)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:51px;padding:12px 20px;border:1px solid transparent;border-radius:9px;font-size:13px;font-weight:750;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-3px)}.btn-primary{background:var(--accent);color:#082019}.btn-primary:hover{background:#b1f0e2;box-shadow:0 12px 30px rgba(80,215,188,.15)}.btn-ghost{border-color:var(--line);color:var(--text)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(141,225,206,.05)}
.tag-list{display:flex;flex-wrap:wrap;gap:8px}.tag-list span{display:inline-flex;align-items:center;padding:6px 10px;border:1px solid #29454a;border-radius:6px;color:#bed8d5;background:rgba(141,225,206,.055);font-size:11px;font-weight:600;line-height:1.3}

/* Hero */
.hero{min-height:700px;display:flex;align-items:center;padding:100px 0 110px;scroll-margin-top:80px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.13fr) minmax(320px,.87fr);align-items:center;gap:clamp(52px,7vw,105px)}.hero-copy{max-width:670px}.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:26px;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.18em}.eyebrow-line{width:25px;height:1px;background:var(--accent)}.hero h1{font-size:clamp(45px,5.25vw,74px);line-height:1.06}.hero h1 span{color:var(--accent)}.hero-lead{max-width:585px;margin-top:26px;font-size:16px;line-height:1.85}.hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:33px}.hero-meta{display:flex;flex-wrap:wrap;gap:13px 28px;margin-top:62px;padding-top:20px;border-top:1px solid var(--line);color:var(--soft);font-size:11px;font-weight:650;letter-spacing:.025em}.hero-meta>span{display:inline-flex;align-items:center;gap:9px}.meta-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(141,225,206,.11)}.hero-visual{position:relative;max-width:470px;margin-inline:auto;width:100%}.portrait-frame{position:relative;z-index:1;padding:10px;border:1px solid rgba(141,225,206,.29);border-radius:20px;background:linear-gradient(145deg,rgba(141,225,206,.13),rgba(141,225,206,.015));box-shadow:24px 30px 80px rgba(0,0,0,.35)}.portrait-frame img{width:100%;aspect-ratio:1/1.04;object-fit:cover;object-position:center 28%;border-radius:12px;filter:saturate(.83) contrast(1.05)}.portrait-caption{position:absolute;z-index:2;left:-28px;bottom:-34px;display:flex;flex-direction:column;gap:7px;width:min(280px,80%);padding:18px 21px;border:1px solid #355358;border-radius:12px;background:#11232b;box-shadow:0 18px 40px rgba(0,0,0,.35)}.portrait-caption span{color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.15em}.portrait-caption strong{font-size:13px;line-height:1.4}.visual-orbit{position:absolute;top:-24px;right:-25px;width:95px;height:95px;border:1px solid rgba(141,225,206,.26);border-radius:50%}.visual-orbit::after{content:"";position:absolute;inset:19px;border:1px solid rgba(141,225,206,.13);border-radius:50%}

/* About and experience */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(50px,10vw,145px)}.about-body{padding-top:6px}.about-body>p{font-size:14px;line-height:1.9}.about-body .about-lead{margin-bottom:20px;color:var(--text);font-size:20px;line-height:1.55;letter-spacing:-.02em}.about-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:33px;padding-top:28px;border-top:1px solid var(--line)}.about-highlights>div{display:flex;flex-direction:column;gap:8px}.about-highlights span{color:var(--accent);font-size:11px;font-weight:800}.about-highlights strong{font-size:13px}.about-highlights small{color:var(--soft);font-size:11px;line-height:1.5}
.experience-list{border-top:1px solid var(--line)}.experience-item{display:grid;grid-template-columns:255px 1fr;gap:35px;padding:37px 0;border-bottom:1px solid var(--line)}.experience-period{padding-top:7px;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.12em}.experience-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;margin-bottom:13px}.experience-title h3{font-size:25px}.experience-title span{color:var(--accent);font-size:13px;font-weight:700}.experience-detail>p{max-width:740px;font-size:14px;line-height:1.8}.detail-list{display:grid;gap:8px;margin-top:16px;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.7}.detail-list li::marker{color:var(--accent)}

/* Projects and skills */
.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.project-card{display:flex;flex-direction:column;min-width:0;min-height:333px;padding:29px;border:1px solid var(--line);border-radius:var(--radius);background:#10212b;transition:transform .25s,border-color .25s,box-shadow .25s}.project-card:hover{transform:translateY(-5px);border-color:#4c837d;box-shadow:0 20px 40px rgba(0,0,0,.16)}.project-featured{grid-column:1/-1;min-height:345px;background:linear-gradient(115deg,#112b33,#13242e 63%,#122730)}.project-topline{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:25px}.project-number{color:var(--accent);font-size:13px;font-weight:800}.project-type{color:var(--soft);font-size:10px;font-weight:800;letter-spacing:.15em;text-align:right}.project-card h3{max-width:600px;margin-bottom:12px;font-size:clamp(22px,2.4vw,31px);overflow-wrap:anywhere}.project-card p{max-width:690px;font-size:13px;line-height:1.85}.project-card>.tag-list{margin-top:auto;padding-top:25px}.project-content{display:grid;grid-template-columns:1.15fr .85fr;gap:45px}.project-content+.tag-list{margin-top:auto;padding-top:25px}.project-visual{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:175px;padding:14px;border:1px solid rgba(141,225,206,.12);border-radius:14px;background:rgba(5,20,26,.26)}.project-visual>span{padding:5px 10px;border:1px solid rgba(141,225,206,.35);border-radius:5px;color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.1em;text-align:center}.project-visual i{width:1px;height:12px;background:var(--accent)}.project-visual>div{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}.project-visual b{padding:7px 10px;border:1px solid #35515a;border-radius:5px;color:#d6e9e8;font-size:9px;white-space:nowrap}
.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.skill-group{min-width:0;min-height:235px;padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:border-color .2s,transform .2s}.skill-group:hover{border-color:#4c837d;transform:translateY(-3px)}.skill-index{color:var(--accent);font-size:11px;font-weight:800}.skill-group h3{margin:12px 0 21px;font-size:22px}.skill-group .tag-list span{background:#132832}

/* Education and contact */
.education-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:16px}.education-primary,.education-courses{padding:31px;border:1px solid var(--line);border-radius:var(--radius);background:#10212b}.education-primary h3{max-width:350px;margin:48px 0 12px;font-size:clamp(27px,3vw,39px)}.education-primary p{color:var(--text);font-size:15px}.education-note{display:block;margin-top:48px;color:var(--soft);font-size:12px}.education-courses ul{list-style:none}.education-courses li{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}.education-courses li:last-child{border-bottom:0}.education-courses strong{font-size:12px;font-weight:650}.education-courses li span{max-width:230px;color:var(--soft);font-size:11px;text-align:right}
.contact-section{padding:130px 0;background:radial-gradient(ellipse at 15% 80%,rgba(35,111,108,.17),transparent 42%),var(--bg)}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(50px,10vw,135px);align-items:center}.contact-layout h2{max-width:560px;font-size:clamp(39px,4.8vw,65px)}.contact-layout p{max-width:430px;margin:22px 0 28px;font-size:14px;line-height:1.9}.contact-links{border-top:1px solid var(--line)}.contact-links a{display:grid;grid-template-columns:72px 1fr 18px;align-items:center;gap:15px;min-height:72px;border-bottom:1px solid var(--line);text-decoration:none;transition:color .2s,padding-left .2s}.contact-links a:hover{color:var(--accent);padding-left:7px}.contact-links a>span:first-child{color:var(--soft);font-size:11px}.contact-links strong{font-size:12px;font-weight:650;overflow-wrap:anywhere}.contact-links a>span:last-child{color:var(--accent);text-align:right}
.footer{border-top:1px solid var(--line);padding:22px 0}.footer-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:var(--soft);font-size:11px}.footer a{text-decoration:none;color:var(--muted)}.footer a:hover{color:var(--accent)}
.nav-contact.active{background:var(--accent);color:var(--bg)}
.language-switch{padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:12px;font-weight:700;text-decoration:none;transition:border-color .2s,color .2s,background .2s}.language-switch:hover{border-color:var(--accent);background:rgba(141,225,206,.06);color:var(--accent)}

/* Reveal is progressive: content stays visible if scripts are unavailable. */
.js-enabled .reveal{opacity:0;transform:translateY(17px);transition:opacity .55s ease,transform .55s ease}.js-enabled .reveal.is-visible{opacity:1;transform:none}
@media(max-width:1080px){.nav-panel{gap:14px}.nav-link{padding-inline:7px}.brand-name{display:none}.hero-grid{gap:45px}.experience-item{grid-template-columns:180px 1fr}}
@media(max-width:850px){.container{width:min(calc(100% - 40px),var(--container))}.nav-shell{min-height:70px}.brand-name{display:inline}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:9px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--text);cursor:pointer}.menu-toggle span{width:100%;height:2px;border-radius:2px;background:currentColor;transition:transform .2s,opacity .2s}.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-panel{display:none;position:absolute;top:70px;left:0;right:0;flex-direction:column;align-items:stretch;gap:10px;padding:17px 20px 22px;border-bottom:1px solid var(--line);background:#0a1720;box-shadow:0 18px 30px rgba(0,0,0,.25)}.nav-panel.is-open{display:flex}.nav-links{display:flex;flex-direction:column;align-items:stretch;gap:1px}.nav-link{padding:12px 10px}.nav-link::after{display:none}.nav-link.active{border-radius:7px;background:rgba(141,225,206,.08);color:var(--accent)}.nav-contact{align-self:stretch}.hero{padding:75px 0 100px}.hero-grid{grid-template-columns:1fr}.hero-copy{max-width:700px}.hero-visual{max-width:390px;margin-top:25px}.about-grid,.contact-layout{grid-template-columns:1fr;gap:32px}.section{padding:85px 0}.section-heading{align-items:start;flex-direction:column;gap:15px}.section-heading>p{max-width:600px}.contact-section{padding:90px 0}}
@media(max-width:650px){.brand-name{font-size:12px}.hero h1{font-size:clamp(43px,10vw,60px)}.hero-lead{font-size:15px}.hero-meta{margin-top:40px}.portrait-caption{left:-8px;bottom:-20px}.about-highlights{grid-template-columns:1fr;gap:20px}.experience-item{grid-template-columns:1fr;gap:10px;padding:29px 0}.experience-period{padding:0}.projects-grid,.skills-grid,.education-grid{grid-template-columns:1fr}.project-featured{grid-column:auto}.project-content{grid-template-columns:1fr;gap:20px}.project-visual{min-height:140px}.project-card{min-height:0}.project-card>.tag-list{margin-top:15px}.education-primary h3{margin-top:35px}.education-note{margin-top:30px}.education-courses li{flex-direction:column;gap:4px}.education-courses li span{max-width:none;text-align:left}.contact-links a{grid-template-columns:57px 1fr 12px;gap:7px}.contact-links strong{font-size:11px}.footer-inner{flex-direction:column}}
@media(max-width:420px){.container{width:min(calc(100% - 30px),var(--container))}.brand-name{display:none}.hero-actions{align-items:stretch;flex-direction:column}.hero-actions .btn{justify-content:space-between}.hero h1{font-size:42px}.section{padding:70px 0}.contact-layout h2{font-size:40px}}
@media(max-width:850px){.menu-toggle{position:relative}.menu-toggle span{position:absolute;left:9px;right:9px;width:auto}.menu-toggle span:nth-child(1){top:13px}.menu-toggle span:nth-child(2){top:20px}.menu-toggle span:nth-child(3){top:27px}.menu-toggle[aria-expanded=true] span:nth-child(1){top:20px;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(3){top:20px;transform:rotate(-45deg)}.education-grid{grid-template-columns:1fr}.project-content{grid-template-columns:1fr}.project-visual{max-width:490px}}

/* Persian copy uses the same visual system while respecting RTL reading order. */
body.persian{font-family:Vazirmatn,Inter,"Segoe UI",sans-serif;text-align:right;font-size:15px;line-height:1.9}.persian h1,.persian h2,.persian h3{letter-spacing:0;line-height:1.45}.persian .eyebrow{letter-spacing:.08em}.persian .eyebrow-line{order:2}.persian .hero-meta,.persian .experience-title{justify-content:flex-start}.persian .detail-list{padding-left:0;padding-right:18px}.persian .education-courses li span{text-align:left}.persian .contact-links a{padding-left:0;padding-right:0}.persian .contact-links a:hover{padding-left:0;padding-right:7px}.persian .project-type{text-align:left}.persian .portrait-caption{left:auto;right:-16px}.persian .visual-orbit{left:-18px;right:auto}.persian .skip-link{left:auto;right:20px}.persian .section-kicker,.persian .card-label,.persian .experience-period,.persian .skill-index{font-weight:800}.persian .btn,.persian .nav-link,.persian .nav-contact,.persian .language-switch{font-family:Vazirmatn,Inter,"Segoe UI",sans-serif}.persian .hero-lead,.persian .about-body>p,.persian .experience-detail>p,.persian .project-card p,.persian .contact-layout p{line-height:2}
@media(max-width:850px){.nav-panel .language-switch{align-self:flex-start}.persian .nav-panel .language-switch{align-self:flex-end}.persian .portrait-caption{right:-8px;left:auto}.persian .education-courses li span{text-align:right}}
@media(max-width:760px){.projects-grid,.skills-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.js-enabled .reveal{opacity:1;transform:none}}

/* Keep the portrait supportive of the introduction rather than dominant. */
.hero-visual{max-width:365px}
.portrait-frame img{height:auto}
.portrait-caption{width:min(225px,76%);padding:14px 16px;bottom:-22px;left:-16px}
.portrait-caption strong{font-size:12px}
.visual-orbit{width:72px;height:72px;right:-18px;top:-18px}
.visual-orbit::after{inset:15px}
@media(max-width:850px){.hero-visual{max-width:300px}}
@media(max-width:480px){.hero-visual{max-width:260px}.portrait-caption,.visual-orbit{display:none}}
