@font-face{font-family:'IRANSans';src:url('fonts/woff2/IRANSansWeb.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'IRANSans';src:url('fonts/woff2/IRANSansWeb_Bold.woff2') format('woff2');font-weight:700;font-display:swap}
:root{--bg:#0b1020;--bg2:#11182b;--fg:#eef3ff;--muted:#c8d2ea;--line:#ffffff24;--brand:#5bc0ff;--brand2:#9b7bff}
*{box-sizing:border-box}
body{margin:0;font-family:'IRANSans',sans-serif;color:var(--fg);background:linear-gradient(165deg,var(--bg),var(--bg2));min-height:100dvh;overflow-x:hidden}
.bg-base{position:fixed;inset:0;z-index:-1;background:radial-gradient(circle at 20% -10%,#3d66ff24,transparent 30%),radial-gradient(circle at 80% 0%,#6c54ff21,transparent 32%)}
.resume-shell{position:relative}
.glass-panel{background:linear-gradient(145deg,#ffffff1b,#ffffff08);border:1px solid var(--line);backdrop-filter:blur(14px);border-radius:24px;box-shadow:0 14px 38px #00000050}
.overline{color:#d9e8ff;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase}
.hero-title{font-size:clamp(1.7rem,5vw,4rem);font-weight:800;margin-top:.4rem;white-space:nowrap}
.hero-subtitle{font-size:clamp(.7rem,2.4vw,1.35rem);color:#dae5ff;margin-top:.3rem}
.hero-lead{line-height:2;color:var(--muted);max-width:850px;margin:.85rem auto 0}
.hero-github-link{margin:.95rem auto 0;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;color:#fff;text-decoration:none;padding:.55rem 1rem;border:1px solid #ffffff33;border-radius:999px;background:linear-gradient(135deg,var(--brand),var(--brand2));box-shadow:0 8px 18px #2e4fa055;transition:transform .25s ease,filter .25s ease,box-shadow .25s ease;font-weight:700}
.hero-github-link:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 12px 24px #1f357063}
.hero-github-link .contact-icon{width:34px;height:34px;border-radius:999px;background:#00000022;box-shadow:none}
.hero-github-link .contact-icon svg{width:18px;height:18px}
.text-body{max-width:100%;margin-inline:0}
.feature-card{background:linear-gradient(150deg,#ffffff17,#ffffff0c);border:1px solid #ffffff2a;border-radius:18px;padding:1.1rem;box-shadow:0 8px 26px #0000003f;transition:.35s ease;position:relative;overflow:hidden}
.feature-card:hover{transform:translateY(-4px);border-color:#8fd9ff7d}
.feature-card h3{font-size:2rem;font-weight:800;background:linear-gradient(135deg,var(--brand),var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent}
.feature-card p{margin-top:.3rem;color:#d5dff6}
.section-title{font-size:1.6rem;font-weight:800;margin-bottom:.8rem}
.section-title-min{display:inline-block;padding-bottom:.35rem;border-bottom:1px solid #ffffff3a;letter-spacing:.01em}

.skills-grid{display:grid;gap:.7rem;max-width:880px;margin:0 auto;text-align:right}
.skill-row{padding:.72rem .8rem;border:1px solid #ffffff26;background:#ffffff0f;border-radius:12px}
.skill-row label{display:block;margin-bottom:.4rem;color:#e3ebff}
.skill-row i{display:block;height:9px;background:linear-gradient(90deg,#28385b,#263352);border-radius:99px;position:relative;overflow:hidden;border:1px solid #ffffff18}
.skill-row i::before{content:'';position:absolute;inset:0;width:0;background:linear-gradient(90deg,var(--brand),var(--brand2));transition:width 1.2s cubic-bezier(.2,.7,.2,1)}
.skill-row.animate i::before{width:calc(var(--w) * 1%)}
.project-card{background:#ffffff0f;border:1px solid #ffffff25;border-radius:16px;padding:1rem;transition:.25s ease}
.project-card:hover{transform:translateY(-3px);border-color:#8fd9ff85}
.project-card h3{font-size:1.18rem;font-weight:800;display:flex;align-items:center;justify-content:center;gap:.5rem}
.project-card p{color:#d0dbf3;line-height:1.95;margin-top:.35rem}

.info-card{background:#ffffff10;border:1px solid #ffffff2b;border-radius:14px;padding:.9rem;transition:.25s ease}
.info-card:hover{transform:translateY(-3px);border-color:#8fd9ff90;background:#ffffff15}
.info-card h4{font-weight:700;color:#e7eeff}
.info-card p{margin-top:.35rem;color:#cfdaf2;line-height:1.9}
.features-grid .info-card{position:relative;overflow:hidden}
.status-dot{animation:pulseDot 1.3s ease-in-out infinite}
@keyframes pulseDot{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.25);opacity:.45}}

.status-dot{display:inline-block;width:11px;height:11px;border-radius:50%;box-shadow:0 0 12px currentColor}
.project-card[data-status='active'] .status-dot{color:#17d657;background:#17d657}
.project-card[data-status='inactive'] .status-dot{color:#ff5252;background:#ff5252}
.links{margin-top:.85rem;display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center}
.project-link{margin:.1rem 0;display:inline-flex!important;align-items:center;justify-content:center;min-height:42px;padding:.55rem 1rem;color:#fff!important;text-decoration:none!important;border:1px solid #ffffff33;border-radius:999px;background:linear-gradient(135deg,var(--brand),var(--brand2));box-shadow:0 8px 18px #2e4fa055;transition:transform .25s ease,filter .25s ease,box-shadow .25s ease;font-weight:700;line-height:1.2}
.project-link:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 12px 24px #1f357063}
.project-link:active{transform:translateY(0)}
.project-link:focus-visible{outline:none;box-shadow:0 0 0 2px #0b1020,0 0 0 4px #95ddff}
.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;max-width:920px;margin:0 auto}
.contact-chip{display:flex;align-items:center;justify-content:flex-start;gap:.75rem;padding:.85rem .95rem;border-radius:14px;border:1px solid #ffffff24;background:#ffffff0f;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;color:#e8f0ff;text-decoration:none;min-height:62px}
.contact-chip:hover{transform:translateY(-2px);border-color:#ffffff4a;box-shadow:0 8px 20px #0000002c}
.contact-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:#ffffff1f;border:1px solid #ffffff2a;box-shadow:inset 0 1px 2px #ffffff2e;flex-shrink:0}
.contact-icon svg{width:20px;height:20px;fill:#f5f8ff}
.contact-text{font-size:.92rem;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f2f6ff}

#preloader{position:fixed;inset:0;display:grid;place-content:center;background:#0a0e1c;z-index:40;transition:.5s}
#preloader.hide{opacity:0;visibility:hidden}.loader{width:56px;height:56px;border-radius:999px;border:4px solid #ffffff22;border-top-color:#77ceff;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.reveal{opacity:0;transform:translateY(22px) scale(.99);transition:850ms cubic-bezier(.2,.75,.2,1)}
.reveal.show{opacity:1;transform:none}
.pop-in{animation:pop .65s ease both}@keyframes pop{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:768px){.glass-panel{border-radius:20px}.hero-lead{line-height:1.9}.section-title{font-size:1.4rem}.text-body{text-align:right}.contact-chip{padding:.8rem .85rem}.contact-text{font-size:.86rem}}
