@import url("../design-tokens.css");
:root{
  /* Local aliases onto the shared design tokens (design-tokens.css) — values live there, not here. */
  --ink:var(--cv-ink);
  --ink-56:var(--cv-ink-56);
  --ink-40:var(--cv-ink-40);
  --ink-16:var(--cv-ink-16);
  --link:var(--cv-link);
  --accent:var(--blue-violet);
  --accent-2:var(--blue-violet-2);
  --paper:var(--cv-paper);
  --line:var(--cv-line);
  --font-meta:var(--font-system);
  --font-display:var(--font-system);
  --maxw:920px;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-display);
  font-size:var(--fs-base);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:color-mix(in srgb, var(--link) 68%, transparent);}
a:focus-visible, button:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:2px;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

.toolbar{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px 0;border-bottom:1px solid var(--line);
  position:sticky;top:0;background:color-mix(in srgb, var(--paper) 92%, transparent);backdrop-filter:blur(6px);
  z-index:10;
}
.toolbar .wrap{width:100%;display:flex;justify-content:space-between;align-items:center;padding:0 24px;}
.toolbar-left{display:flex;align-items:center;gap:16px;}
.back{font-family:var(--font-meta);font-size:var(--fs-sm);color:var(--ink-56);text-decoration:none;}
.back:hover{color:var(--link);}
.langswitch{display:flex;align-items:center;gap:2px;font-family:var(--font-meta);font-size:var(--fs-2xs);border:1px solid var(--ink-40);border-radius:999px;padding:2px;position:relative;left:-8px;}
.langswitch a{color:var(--ink);text-decoration:none;padding:3px 10px;border-radius:999px;}
.langswitch a.is-active{background:var(--ink);color:var(--paper);}
.langswitch a:hover:not(.is-active){color:var(--ink);}
.actions{display:flex;align-items:center;gap:8px;}
.btn{
  font-family:var(--font-meta);font-size:var(--fs-sm);font-weight:500;line-height:1;
  border:1px solid var(--ink-56);background:var(--paper);color:var(--ink);
  padding:9px 16px;border-radius:999px;cursor:pointer;
  text-decoration:none;display:inline-flex;align-items:center;gap:6px;
}
.btn-primary{background:var(--ink);color:var(--paper);}
.btn-ghost{border-color:transparent;background:transparent;}

header.cv-head{padding:56px 0 40px;}
h1.name{font-family:"Cormorant Garamond",Georgia,serif;font-weight:700;font-size:var(--fs-display);margin:0 0 -32px;letter-spacing:-.01em;position:relative;left:-3px;}
html:lang(ru) h1.name{margin-bottom:-16px;}
.role{font-family:var(--font-body-brand);font-weight:500;font-size:var(--fs-lg);color:var(--black);margin:0 0 4px;}
.loc{font-family:var(--font-meta);font-size:var(--fs-xs);color:var(--ink-40);margin:0 0 20px;}
.links{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-family:var(--font-meta);font-size:var(--fs-sm);margin-bottom:24px;}
.links a{white-space:nowrap;}
.links .dot{color:var(--ink-16);}
.intro{font-size:var(--fs-base);line-height:calc(1.5em + 2px);max-width:60ch;color:var(--ink);}
.intro p{margin:0 0 8px;}

.grid{display:grid;grid-template-columns:1fr 260px;gap:112px;align-items:start;padding-bottom:80px;}
main h2, aside h2{font-size:var(--fs-eyebrow);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-headline);font-weight:600;color:var(--ink);margin:0 0 24px;}

.timeline{position:relative;padding-left:28px;}
.job{position:relative;margin-bottom:60px;}
.job:not(:last-child)::after{
  content:"";position:absolute;left:-20px;top:12px;bottom:-72px;width:2px;background:var(--ink-16);
}
.job::before{
  content:"";position:absolute;z-index:1;left:-26px;top:7px;width:10px;height:10px;border-radius:50%;
  background:var(--paper);border:2px solid var(--ink);
}
.job-meta{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:2px;}
.job-company{font-weight:700;font-size:var(--fs-md);}
.job-company a{font-weight:700;}
.job-dates{font-family:var(--font-meta);font-size:var(--fs-2xs);color:var(--ink-40);white-space:nowrap;}
.job-sub{font-family:var(--font-meta);font-size:var(--fs-xs);color:var(--ink-56);margin:0 0 6px;}
.job-title{font-weight:600;font-size:var(--fs-md);margin:0 0 6px;color:color-mix(in srgb, var(--ink) 50%, black);}
details{margin-top:4px;}
summary{
  cursor:pointer;font-family:var(--font-meta);font-size:var(--fs-xs);color:var(--link);
  list-style:none;display:inline-flex;align-items:center;gap:6px;user-select:none;
}
summary::-webkit-details-marker{display:none;}
summary::before{content:url("icons/chevron-down.svg");display:inline-block;width:8px;height:8px;position:relative;top:-4px;order:1;}
.ext-link-ic{display:inline-block;width:10px;height:10px;margin-left:2px;vertical-align:middle;}
.job-body{font-size:var(--fs-md);padding-top:10px;color:var(--ink);}
.job-body p{margin:0 0 10px;}
.job-body ul{margin:0 0 10px;padding-left:18px;}
.job-body li{margin-bottom:3px;}
.job-body strong{font-weight:700;}
.case-link{display:inline-block;margin-top:8px;font-size:var(--fs-sm);}

section.edu, section.courses{margin-top:68px;}
.edu-item .deg{font-family:var(--font-meta);font-size:var(--fs-2xs);color:var(--ink-40);}
.edu-item .school a{font-weight:400;font-size:var(--fs-md);}
.courses ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:var(--fs-md);}
.courses li span{display:block;font-family:var(--font-meta);font-size:var(--fs-2xs);color:var(--ink-40);}

aside{position:sticky;top:146px;} /* 80px below the sticky toolbar */
.lang{font-family:var(--font-meta);font-size:var(--fs-sm);color:var(--ink-56);margin-bottom:24px;}
.lang strong{display:block;font-family:var(--font-meta);font-weight:400;font-size:var(--fs-xs);color:var(--ink-56);margin-bottom:2px;}
.skillgroup{margin-bottom:20px;}
.skillgroup h3{font-size:var(--fs-sm);margin:0 0 6px;}
.skillgroup p{font-family:var(--font-meta);font-size:var(--fs-xs);line-height:1.7;color:var(--ink-56);margin:0;}

footer{border-top:1px solid var(--line);padding:28px 0 60px;font-family:var(--font-meta);font-size:var(--fs-2xs);color:var(--ink-40);}
footer .links{margin-bottom:10px;}

@media (min-width:1200px){
  .back{position:absolute;left:24px;top:50%;transform:translateY(-50%);white-space:nowrap;}
  .toolbar-left{gap:20px;}
  .toolbar .wrap{display:grid;grid-template-columns:1fr 260px;gap:112px;padding:0 24px;}
  .actions{justify-self:start;margin-left:-16px;}
}

@media (max-width:820px){
  .grid{grid-template-columns:1fr;gap:40px;}
  aside{position:static;}
  .toolbar{padding:12px 0;}
}

@media (prefers-reduced-motion:no-preference){
  header.cv-head, main, aside{animation:rise .5s ease both;}
  aside{animation-delay:.08s;}
}
@keyframes rise{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

@media print{
  @page{size:A4;margin:9mm 11mm;}

  /* Compact print-only type scale — same hierarchy/ratios as the web scale, just smaller.
     --fs-display is the one exception: shrunk far more aggressively than the rest. */
  :root{
    --fs-2xs:9.5px;
    --fs-xs:10.5px;
    --fs-sm:11.5px;
    --fs-eyebrow:10.5px;
    --fs-base:13px;
    --fs-md:12px;
    --fs-lg:11.5px;
    --fs-display:30px;
    --cv-paper:#FFFFFF;
  }

  .toolbar{display:none;}
  footer{display:none;}

  header.cv-head{padding:0 0 14px;}
  h1.name, html:lang(ru) h1.name{font-family:var(--font-body-brand);font-weight:700;margin:0 0 4px;left:0;}
  .role{margin:0 0 3px;}
  .loc{margin:0 0 6px;}
  .links{margin-bottom:8px;}
  .intro p{margin:0 0 4px;}

  .grid{grid-template-columns:1fr;gap:16px;padding-bottom:0;align-items:start;}
  aside{position:static;margin-top:8px;}
  main h2, aside h2{margin:0 0 6px;}
  .lang{margin-bottom:4px;}
  .skillgroup{margin-bottom:3px;}
  .skillgroup h3{margin:0;font-size:var(--fs-sm);}
  .skillgroup p{margin:0;}

  a{color:var(--link) !important;}

  .job{margin-bottom:8px;}
  .job::before{left:-23px;top:10px;width:4px;height:4px;background:var(--ink);border:none;}
  .job-meta, .job-title{break-inside:avoid;break-after:avoid;}
  .job:not(:last-child)::after{bottom:-20px;}
  .job-sub{margin-bottom:3px;}
  .job-title{margin-bottom:3px;}
  details{display:block;margin-top:2px;}
  summary{display:none;}
  .job-body{display:block !important;content-visibility:visible !important;padding-top:4px;}
  .job-body p{margin:0 0 4px;}
  .job-body ul{margin:0 0 4px;}
  .job-body li{margin-bottom:2px;}
  .case-link{margin-top:4px;}

  section.edu, section.courses{margin-top:50px;}
  .courses ul{gap:4px;}

  .lang{margin-bottom:8px;}
  .skillgroup{margin-bottom:8px;}
  .skillgroup h3{margin:0 0 3px;}
}
