/* Figma typography: explicit font families, widths, weights and optical sizes. */
@font-face {
 font-family: "TikTok Portfolio";
 src: url("assets/tiktok-variable.ttf") format("truetype");
 font-style: normal;
 font-weight: 300 900;
 font-stretch: 75% 150%;
 font-display: swap;
}
@font-face {
 font-family: "Zen Kaku Gothic Antique";
 src: url("assets/zen-kaku-antique-900.ttf") format("truetype");
 font-style: normal;
 font-weight: 900;
 font-display: swap;
 unicode-range: U+0030-0039;
}
:root {
 --font-portfolio: "TikTok Portfolio", "TikTok Sans", "PingFang SC", sans-serif;
 --font-chinese: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}
.chapter {
 font-family: var(--font-portfolio);
 font-weight: 400;
 font-stretch: 100%;
 font-optical-sizing: none;
 font-variation-settings: "opsz" 36, "slnt" 0;
 font-synthesis: none;
 letter-spacing: 0;
}
/* The draft names this variable face TikTok2025030311VF Medium,
   but its actual axis value is wght 700, wdth 120 and opsz 30. */
.section-title, .contents-label, .profile-caption h2, .resume h2 {
 font-family: var(--font-portfolio);
 font-weight: 700;
 font-stretch: 120%;
 font-optical-sizing: none;
 font-variation-settings: "wght" 700, "wdth" 120, "opsz" 30, "slnt" 0;
 letter-spacing: 0;
 line-height: 1.25;
}
.chapter-number {
 font-family: "Zen Kaku Gothic Antique", sans-serif;
 font-weight: 900;
 font-stretch: normal;
 font-variation-settings: normal;
 letter-spacing: 0;
 line-height: 1.2;
 color: rgb(255 255 255 / .6);
}
.profile-caption p, .profile-caption a, .job, .job h3, .education .muted {
 font-weight: 500;
 line-height: normal;
}
.profile-caption p { margin-bottom: .3em; }
.education p { font-family: var(--font-chinese); line-height: normal; }
.education .muted { font-family: var(--font-portfolio); }
.experience article p { font-weight: 400; line-height: normal; }
.internship-description, .project-title {
 font-family: var(--font-chinese);
 font-weight: 400;
 font-stretch: normal;
 font-variation-settings: normal;
 letter-spacing: 0;
 line-height: normal;
}
.project-counts span { font-weight: 800; line-height: normal; }
.project-counts strong { font-weight: 600; line-height: normal; }
.case-copy h2 { font-weight: 800; letter-spacing: 0; line-height: normal; }
.case-copy h3, .case-principles, .case-summary {
 font-family: var(--font-chinese);
 font-weight: 500;
 font-variation-settings: normal;
 letter-spacing: 0;
 line-height: normal;
}
.case-copy h3 { font-size: calc(1.875 * var(--page-unit)); }
.case-principles, .case-summary { font-size: calc(.78125 * var(--page-unit)); }

 .section-title { font-size: calc(2.708333 * var(--page-unit)); }
 .contents-label { font-size: calc(2.083333 * var(--page-unit)); }
 .chapter-number { font-size: calc(5 * var(--page-unit)); }
 .profile-caption h2, .resume h2, .project-counts span { font-size: calc(1.666667 * var(--page-unit)); }
 .profile-caption p, .profile-caption a, .education p, .job { font-size: calc(1.25 * var(--page-unit)); }
 .experience article p { font-size: calc(1.041667 * var(--page-unit)); }
 .internship-description { font-size: calc(1.25 * var(--page-unit)); }
 .project-title { font-size: calc(1.458333 * var(--page-unit)); }
 .project-counts strong { font-size: calc(6.666667 * var(--page-unit)); }
 .case-copy h2 { font-size: calc(3.333333 * var(--page-unit)); }
 .case-copy h3 { font-size: calc(1.875 * var(--page-unit)); }
 .case-principles, .case-summary { font-size: calc(.78125 * var(--page-unit)); }
