@font-face {
   font-family: 'JetBrainsMono';
   src: url('https://cdn.jsdelivr.net/gh/JetBrains/JetBrainsMono/web/woff2/JetBrainsMono-Regular.woff2') format('woff2'),
        url('https://cdn.jsdelivr.net/gh/JetBrains/JetBrainsMono/web/woff/JetBrainsMono-Regular.woff') format('woff'),
        url('https://cdn.jsdelivr.net/gh/JetBrains/JetBrainsMono/ttf/JetBrainsMono-Regular.ttf') format('truetype');
   font-weight: 400;
   font-style: normal;
}

html {
   -webkit-font-smoothing: antialiased;
}

body {
   --timeline-bg: #000000;
   --timeline-border: rgba(255, 255, 255, 0.28);
   --timeline-line: rgba(255, 255, 255, 0.42);
   --timeline-panel: rgba(255, 255, 255, 0.06);
   margin: 40px auto;
   max-width: 650px;
   line-height: 1.6;
   font-size: 14px;
   font-family: JetBrainsMono, sans-serif;
   color: white;
   background-color: #000000;
   padding: 10px;
}

body:has(.professional-card) {
   max-width: 460px;
}

body.games-page {
   max-width: 920px;
}

h1,
h2,
h3 {
   line-height: 1.2;
}

body > header h1 {
   display: flex;
   align-items: center;
   justify-content: center;
   margin: 0;
   font-size: 18px;
   font-weight: 400;
}

a {
   color: white;
}

.socials {
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 20px;
   margin-top: 40px;
}

.socials a {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 40px;
   height: 40px;
   opacity: 1;
   text-decoration: none;
   transition: 0.3s opacity ease;
}

.socials a:hover {
   opacity: 0.8;
}

.socials svg path {
   fill: white;
}

.stack-note {
   position: fixed;
   inset: auto max(14px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) auto;
   z-index: 10;
   width: max-content;
   max-width: min(260px, calc(100vw - 28px));
   margin: 0;
   color: rgba(255, 255, 255, 0.78);
   font-size: 11px;
   line-height: 1.4;
   pointer-events: none;
   text-align: right;
}

ul {
   text-align: left;
   margin: 0 auto;
   max-width: fit-content;
}

li {
   display: list-item;
   list-style-position: inside;
}

.plain-list {
   list-style: none;
   padding-left: 0;
}

.plain-list li {
   list-style: none;
}

.content-container {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   margin: 0 auto;
   max-width: fit-content;
}

.professional-card {
   margin-top: 4em;
}

.professional-card p {
   margin: 0 0 1.8em;
}

.games-page .content-container {
   width: 100%;
   max-width: 860px;
}

.movie-list,
.game-list {
   text-align: left;
   margin: 0;
   padding-left: 0;
}

.games-platform {
   width: 100%;
   max-width: 860px;
   margin-top: 28px;
}

.games-platform h3 {
   margin: 0 0 14px;
}

.platform-legend {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   max-width: none;
   margin: 0 0 18px;
   padding: 0;
   list-style: none;
}

.platform-legend li {
   list-style: none;
}

.game-timeline {
   position: relative;
   margin: 0;
   padding: 8px 0 4px 64px;
}

.game-timeline::before {
   content: "";
   position: absolute;
   top: 0;
   bottom: 0;
   left: 23px;
   width: 2px;
   background: var(--timeline-line);
}

.timeline-block {
   position: relative;
   margin: 0 0 22px;
}

.timeline-marker {
   position: absolute;
   top: 0;
   left: -64px;
   z-index: 1;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 48px;
   height: 48px;
   border: 1px solid currentColor;
   border-radius: 50%;
   background: var(--timeline-bg);
   font-size: 12px;
}

.timeline-card {
   padding: 14px 16px;
   border: 1px solid var(--timeline-border);
   border-radius: 8px;
   background: var(--timeline-panel);
}

.timeline-games {
   max-width: none;
   margin: 0;
   padding: 0;
   list-style: none;
}

.timeline-games li {
   list-style: none;
}

.timeline-games li + li {
   margin-top: 6px;
}

.timeline-game {
   --platform-color: currentColor;
   display: grid;
   grid-template-columns: 72px minmax(0, 1fr);
   gap: 10px;
   align-items: baseline;
}

.platform-label {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   min-width: 60px;
   padding: 2px 6px;
   border: 1px solid var(--platform-color);
   border-radius: 999px;
   color: var(--platform-color);
   font-size: 11px;
   line-height: 1.3;
}

.game-platform--gamecube {
   --platform-color: #7dd3fc;
}

.game-platform--pc {
   --platform-color: #bef264;
}

.game-platform--xbox-360 {
   --platform-color: #fbbf24;
}

.game-platform--n64 {
   --platform-color: #c084fc;
}

@media (min-width: 780px) {
   .game-timeline {
      padding: 10px 0;
   }

   .game-timeline::before {
      left: 50%;
      transform: translateX(-50%);
   }

   .timeline-block {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 88px minmax(0, 1fr);
      align-items: start;
      margin-bottom: 26px;
   }

   .timeline-marker {
      position: relative;
      left: auto;
      grid-column: 2;
      justify-self: center;
   }

   .timeline-card {
      grid-column: 3;
   }

   .timeline-block:nth-child(even) .timeline-card {
      grid-column: 1;
      grid-row: 1;
   }
}

.cv-list {
   margin: 0 0 1em;
   padding-left: 0;
}

.cv-page {
   font-size: 15px;
}

.cv-page .cv-section-spaced {
   margin-top: 3.6em;
}
