:root{
  --bg:#f4f6f9;
  --card:#fff;
  --text:#26364b;
  --muted:#8d99ad;
  --line:#d6e3f2;
  --blue:#337ff6;
  --blue-soft:#eaf3ff;
  --shadow:0 10px 34px rgba(31,54,84,.045);
  --radius:4px;
  --max:1000px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
svg{display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:20px;top:20px;background:#fff;padding:10px 14px;z-index:100}

.wrap{width:min(calc(100% - 40px),var(--max));margin-inline:auto}
.hero{
  margin-top:18px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  position:relative;
}
.hero-image{
  height:345px;
  background:
    linear-gradient(180deg,rgba(20,35,55,.02),rgba(20,35,55,.12)),
    url("assets/hero.jpg") center/cover no-repeat;
}
.profile-photo-wrap{
  position:absolute;
  top:144px;
  left:36px;
  width:244px;
  height:244px;
  border-radius:50%;
  padding:6px;
  background:#fff;
}
.profile-photo{
  width:100%;height:100%;object-fit:cover;border-radius:50%;
  filter:grayscale(1);
}
.hero-content{padding:66px 30px 48px}
.hero h1{
  margin:0 0 7px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:34px;
  line-height:1.1;
}
.hero-meta{display:flex;align-items:center;gap:18px}
.meta-item{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;font-size:14px}
.meta-item svg{width:19px;color:var(--blue)}
.social-link{display:inline-flex;color:#2e6eb5}
.social-link svg{width:19px;fill:currentColor;stroke:none}

.page{padding:28px 0 60px}
.cv-section{margin-top:34px}
.section-title{
  display:flex;align-items:center;gap:16px;
  margin:0 0 28px;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:18px;
  font-weight:800;
}
.section-icon{width:28px;height:28px;display:grid;place-items:center;color:#8b8b8b}
.section-icon svg{width:24px;height:24px}
.card,.job-card,.timeline-card,.stat-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.profile-card{padding:27px 30px;font-size:17px}
.profile-card p{margin:0}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.stat-card{
  min-height:215px;position:relative;overflow:hidden;
  display:flex;align-items:center;gap:32px;padding:36px 48px;
}
.stat-value{font-size:92px;line-height:1;font-weight:700;color:var(--blue);z-index:1}
.stat-label{text-transform:uppercase;letter-spacing:.17em;font-size:16px;line-height:1.45;z-index:1}
.stat-ghost{position:absolute;right:-8px;bottom:-29px;font-size:190px;font-weight:700;color:#f1f3f6;line-height:1}

.experience-list{display:grid;gap:30px}
.job-card{overflow:hidden}
.job-header{display:grid;grid-template-columns:52px 1fr;gap:18px;padding:30px}
.job-icon{
  width:52px;height:52px;border-radius:4px;background:var(--blue-soft);
  display:grid;place-items:center;color:var(--blue);flex:0 0 auto;
}
.job-icon svg{width:26px;height:26px}
.job-card h3,.timeline-card h3{font-size:16px;line-height:1.3;margin:1px 0 8px;font-weight:800}
.company{margin:0 0 4px;font-size:16px}
.date{margin:0;color:var(--muted);font-size:16px}
.toggle-description{
  appearance:none;border:0;background:transparent;padding:0;margin-top:14px;
  font:inherit;font-weight:750;color:var(--blue);text-decoration:underline;cursor:pointer;
}
.toggle-description:hover{text-decoration-thickness:2px}
.job-description{
  border-top:1px solid var(--line);
  margin:0 30px 0 84px;
}
.description-inner{padding:20px 0 28px;font-size:15.5px}
.description-inner p{margin:0}
.description-inner ul{margin:0;padding-left:24px}
.description-inner li+li{margin-top:4px}

.education-card{padding:8px 30px}
.education-card>div{display:flex;justify-content:space-between;gap:30px;padding:19px 0;border-bottom:1px solid #edf1f6}
.education-card>div:last-child{border-bottom:0}
.education-card span{color:var(--muted);text-align:right}

.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px;padding:26px 30px}
.skills-grid ul{list-style:none;padding:0;margin:0}
.skills-grid li{position:relative;padding:5px 0 5px 24px;font-size:17px}
.skills-grid li::before{
  content:"";position:absolute;left:0;top:13px;width:8px;height:8px;border:4px solid var(--blue);border-radius:50%;
}

.language-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:60px;padding:42px 54px}
.language-item{display:flex;align-items:center;gap:13px}
.language-item .dot{width:12px;height:12px;border:4px solid var(--blue);border-radius:50%;flex:0 0 auto}
.language-item .grow{flex:1}
.language-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.language-head strong{font-size:16px;font-weight:500}
.language-head span{color:#6f7786}
.language-item small{color:#7c8798}
.bar{height:9px;background:#dce6f1;margin:2px 0}
.bar i{display:block;height:100%;background:var(--blue)}

.hobby-card{padding:25px 46px}
.hobby-card ul{margin:0;padding-left:18px}

.timeline{position:relative;padding:12px 80px 0}
.timeline::before{
  content:"";position:absolute;left:50%;top:80px;bottom:80px;width:2px;background:#dce8f4;transform:translateX(-50%);
}
.timeline-card{
  width:42%;min-height:145px;margin-bottom:54px;padding:29px 30px;
  display:flex;align-items:flex-start;gap:16px;position:relative;
}
.timeline-card.left{margin-right:auto}
.timeline-card.right{margin-left:auto}
.timeline-card::after{
  content:"";position:absolute;top:65px;width:14px;height:14px;border-radius:50%;
  background:#fff;border:5px solid #dce8f4;
}
.timeline-card.left::after{right:calc(-19% - 8px)}
.timeline-card.right::after{left:calc(-19% - 8px)}
.timeline-card p{margin:0 0 4px}
.timeline-card span{color:var(--muted)}
.timeline-card .job-icon{width:52px;height:52px}

footer{
  border-top:1px solid var(--line);margin-top:30px;padding-top:24px;
  display:flex;justify-content:space-between;color:var(--muted);font-size:14px;
}
footer a{text-decoration:none;color:var(--text)}

.reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.reveal.visible{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
}
@media (max-width:760px){
  .wrap{width:min(calc(100% - 24px),var(--max))}
  .hero{margin-top:10px}
  .hero-image{height:220px}
  .profile-photo-wrap{width:154px;height:154px;left:22px;top:141px;padding:5px}
  .hero-content{padding:89px 22px 32px}
  .hero h1{font-size:26px}
  .stats{grid-template-columns:1fr;gap:16px}
  .stat-card{min-height:160px;padding:24px 28px}
  .stat-value{font-size:70px}
  .stat-ghost{font-size:140px}
  .section-title{font-size:16px;margin-bottom:18px}
  .profile-card{padding:22px;font-size:16px}
  .job-header{grid-template-columns:44px 1fr;padding:22px;gap:14px}
  .job-icon{width:44px;height:44px}
  .job-icon svg{width:23px;height:23px}
  .job-description{margin:0 22px}
  .skills-grid{grid-template-columns:1fr;gap:0;padding:20px 22px}
  .skills-grid li{font-size:16px}
  .language-grid{grid-template-columns:1fr;gap:25px;padding:25px 22px}
  .education-card{padding:6px 22px}
  .education-card>div{display:grid;gap:4px}
  .education-card span{text-align:left}
  .timeline{padding:8px 0 0 42px}
  .timeline::before{left:13px;top:30px;bottom:30px;transform:none}
  .timeline-card,.timeline-card.left,.timeline-card.right{width:100%;margin:0 0 18px;padding:22px}
  .timeline-card::after,.timeline-card.left::after,.timeline-card.right::after{left:-36px;right:auto;top:56px}
  footer{gap:20px}
}
