@import"https://fonts.loli.net/css2?family=Noto+Serif+SC:wght@200..900&display=swap";@import"https://fonts.cdnfonts.com/css/libertinus-serif";:root{--background-color: #fdfdfd;--font-color: #374151;--accent-color: #3b82f6;--accent-color-hover: #2563eb;--selection-bg: #3b82f63f;--font-family: "Libertinus Serif", "Georgia", "Noto Serif SC", songti sc, serif}@media (prefers-color-scheme: dark){:root{--background-color: #111827;--font-color: #d1d5db;--accent-color: #60a5fa;--accent-color-hover: #93c5fd;--selection-bg: #60a5fa3f}}body{font-family:var(--font-family);color:var(--font-color);background-color:var(--background-color);transition:background-color .3s,color .3s}*{-webkit-tap-highlight-color:transparent}*::-moz-selection{background-color:var(--selection-bg)}*::selection{background-color:var(--selection-bg)}body{outline:none}a{color:var(--accent-color);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-color-hover);text-decoration:underline}body>#global-background{display:none}html{padding-right:calc(100% - 100vw);overflow-x:hidden}html.sr .rv{visibility:hidden}.indent{text-indent:2.25rem}.no-select{-webkit-user-select:none;-moz-user-select:none;user-select:none}#app{width:100vw}.fade-out{opacity:0;scale:.99;transition:all .1s ease-in}rt[data-v-31cf0f93]{text-align:center;font-size:.75rem;line-height:1rem}[data-v-4e539c2b]{--color: #5b8db2;--color-hover: #005d92;--color-active: #0d77b4}@media (prefers-color-scheme: dark){[data-v-4e539c2b]{--color: #81beff;--color-hover: #90c1f5;--color-active: #accff5}}a[data-v-4e539c2b]{color:var(--color);transition:color .1s}a[data-v-4e539c2b]:hover{color:var(--color-hover)}a[data-v-4e539c2b]:active{color:var(--color-active)}.section-container[data-v-bfd772ee]{padding:2rem 0;margin-top:2rem}.section-title[data-v-bfd772ee]{font-size:1.75rem;font-weight:600;margin-bottom:1.5rem;text-align:left}.project-list[data-v-bfd772ee]{list-style:none;padding:0;margin:0}.project-item[data-v-bfd772ee]{display:flex;gap:2rem;padding:2rem 0;border-bottom:1px solid #e5e7eb}.project-item[data-v-bfd772ee]:first-child{padding-top:0}.project-item[data-v-bfd772ee]:last-child{border-bottom:none;padding-bottom:0}@media (prefers-color-scheme: dark){.project-item[data-v-bfd772ee]{border-bottom-color:#374151}}.project-image-wrapper[data-v-bfd772ee]{width:220px;flex-shrink:0}.project-image[data-v-bfd772ee]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:.5rem;border:1px solid #e5e7eb}@media (prefers-color-scheme: dark){.project-image[data-v-bfd772ee]{border-color:#4b5563}}.project-content[data-v-bfd772ee]{display:flex;flex-direction:column}.project-title[data-v-bfd772ee]{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.project-description[data-v-bfd772ee]{font-size:1rem;line-height:1.6;color:var(--font-color);opacity:.9;flex-grow:1;margin-bottom:1.25rem}.tags-container[data-v-bfd772ee]{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.5rem}.tag[data-v-bfd772ee]{background-color:#1876f21a;color:#2563eb;font-size:.8rem;font-weight:600;padding:.3rem .75rem;border-radius:9999px}@media (prefers-color-scheme: dark){.tag[data-v-bfd772ee]{background-color:#65b0fb26;color:#93c5fd}}.project-footer[data-v-bfd772ee]{display:flex;justify-content:flex-start;gap:1rem;margin-top:auto}.project-link[data-v-bfd772ee]{font-weight:500;color:var(--accent-color);text-decoration:none;padding:.4rem .8rem;border:1px solid #d1d5db;border-radius:.5rem;transition:background-color .2s,color .2s,border-color .2s}.project-link[data-v-bfd772ee]:hover{background-color:#f3f4f6;border-color:var(--accent-color)}@media (prefers-color-scheme: dark){.project-link[data-v-bfd772ee]{border-color:#4b5563}.project-link[data-v-bfd772ee]:hover{background-color:#374151;border-color:var(--accent-color)}}@media (max-width: 640px){.project-item[data-v-bfd772ee]{flex-direction:column;gap:1.5rem}.project-image-wrapper[data-v-bfd772ee]{width:100%}}.section-container[data-v-c62b162f]{padding:2rem 0;margin-top:3rem;border-top:1px solid #e5e7eb}@media (prefers-color-scheme: dark){.section-container[data-v-c62b162f]{border-top-color:#374151}}.section-title[data-v-c62b162f]{font-size:1.75rem;font-weight:600;margin-bottom:1.5rem;text-align:left}.course-list[data-v-c62b162f]{list-style:none;padding:0;margin:0}.course-item[data-v-c62b162f]{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1.5rem 0;border-bottom:1px solid #e5e7eb}.course-item[data-v-c62b162f]:first-child{padding-top:0}.course-item[data-v-c62b162f]:last-child{border-bottom:none;padding-bottom:0}@media (prefers-color-scheme: dark){.course-item[data-v-c62b162f]{border-bottom-color:#374151}}.course-content[data-v-c62b162f]{flex-grow:1}.course-title[data-v-c62b162f]{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.takeaways-list[data-v-c62b162f]{font-size:1rem;padding-left:1.25rem;margin:0;line-height:1.7;color:var(--font-color);opacity:.9}.course-footer[data-v-c62b162f]{flex-shrink:0;padding-top:.25rem}.notes-link[data-v-c62b162f]{font-weight:500;color:var(--accent-color);text-decoration:none;transition:color .2s}.notes-link[data-v-c62b162f]:hover{color:var(--accent-color-hover);text-decoration:none}@media (max-width: 640px){.course-item[data-v-c62b162f]{flex-direction:column;align-items:stretch}.course-footer[data-v-c62b162f]{text-align:left;margin-top:1rem}}.layout{--hover-color: #f3f4f6;--font-size-title: 3rem;--font-size-subtitle: 1.125rem;--font-size-body: 1.125rem;--font-size-small: .9rem;--font-size-table: 1.125rem;--font-size-table-span: 1rem;--font-size-timeline: 1rem;--font-size-year: 6rem;--line-height-body: 1.8;--line-height-table: 1.75rem;--line-height-table-span: 1.5rem;--line-height-timeline: 2.25rem;--spacing-top: 8rem;--spacing-bottom: 10rem;--width-max: 42rem;width:95%;max-width:var(--width-max);margin:0 auto;padding-top:var(--spacing-top);padding-bottom:var(--spacing-bottom);text-align:justify}.layout .title{font-size:var(--font-size-title);letter-spacing:.05em;margin-bottom:1.5rem}.layout .subtitle{font-weight:700}.layout .subtitle,.layout p{font-size:var(--font-size-body);line-height:var(--line-height-body);margin-bottom:1rem}blockquote{margin:2rem 0;padding:.5rem 0 .5rem 1.5rem;font-style:italic;color:var(--font-color);opacity:.85;border-left:3px solid var(--accent-color)}.song-wrapper{display:flex;align-items:center;gap:.75rem;margin-top:2rem;font-size:var(--font-size-small);opacity:.9}.music-icon{width:1.125rem;height:1.125rem;flex-shrink:0}.layout hr{height:0px;border:none;border-top:1px solid #e5e7eb;margin:1.5rem .5rem}.layout p.small{font-size:var(--font-size-small);opacity:.8}.layout .table ul{margin:0 8px;padding:0 40px}.layout .table li{font-size:var(--font-size-table);line-height:var(--line-height-table);padding:2px 16px;margin:4px 0;border-radius:8px;transition:background-color .2s}.layout .table li:hover{background-color:var(--hover-color)}.layout .table li a{display:inline-block;min-width:13rem;padding:6px 0}.layout .table li span{font-size:var(--font-size-table-span);line-height:var(--line-height-table-span)}.layout .timeline ul.tl{margin:0 8px;padding:28px 40px}.layout .timeline li.tl{display:block;margin-bottom:56px;padding:8px 0}.layout .timeline li.tl:last-child{margin-bottom:0}.layout .timeline .year{display:block;font-weight:700;font-size:var(--font-size-year);-webkit-user-select:none;-moz-user-select:none;user-select:none;color:#f5f5f4;transform:translate(-8rem,3.5rem) rotate(-90deg);position:absolute}.layout .timeline ul.yr{min-height:210px}.layout .timeline li.yr{font-size:var(--font-size-timeline);line-height:var(--line-height-timeline);margin-left:2rem;margin-bottom:8px;padding:0 16px;border-radius:4px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transition:background-color .3s}.layout .timeline li.yr:hover{background-color:var(--hover-color)}.layout .timeline .date{display:inline-block;min-width:10rem}.layout .timeline hr:first-child{margin-bottom:0}.layout .timeline hr:last-child{margin-top:0;margin-bottom:1.3rem}.layout .sponsor{margin:12px 0 12px 22px}.layout .sponsor img{margin:0 13px;border:1px solid #e5e7eb;border-radius:4px;box-sizing:border-box;width:220px;aspect-ratio:621 / 843;max-width:50%;display:inline-block}@media (prefers-color-scheme: dark){.layout{--hover-color: #181818}.layout blockquote{border-left-color:var(--accent-color)}.layout .sponsor img{border-color:#4a525a;filter:brightness(.8)}.layout .timeline .year{color:#292a2b}}@media (max-width: 768px){.layout{--spacing-top: 5rem;--spacing-bottom: 5rem;--font-size-title: 2.5rem;--font-size-body: 1rem;--line-height-body: 1.7}.layout .title{margin-bottom:1rem}.layout .table ul{padding:0 10px}.layout .table li{font-size:1rem;margin:10px 0}.layout .table li a{width:100%}.layout .table li span{font-size:.9rem}.layout .table li:hover{background-color:unset}.layout .timeline ul.tl{padding:28px 15px}.layout .timeline li.tl{display:block;margin-bottom:56px;padding:8px 0}.layout .timeline .year{transform:translate(-6rem,2.5rem) rotate(-90deg)}.layout .timeline li.yr{font-size:.9rem;line-height:2.1rem;padding:0 0 0 16px}.layout .timeline li.yr:hover{background-color:unset}.layout .timeline .date{display:none}.layout .sponsor{margin:12px 0;display:flex;gap:10px}.layout .sponsor img{margin:0;max-width:calc((100% - 10px)/2)}}*{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}a{text-decoration:none}:root{--cursor-bg: rgba(0, 0, 0, .25);--cursor-hover-bg: rgba(0, 0, 0, .1);--cursor-hover-scale: 2.5;--cursor-active-bg: rgba(0, 0, 0, .5);--cursor-active-scale: .5;--cursor-size: 16px;--cursor-transition-duration: .2s;--cursor-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' width='8px' height='8px'><circle cx='4' cy='4' r='4' opacity='.5'/></svg>") 4 4, auto}@media (prefers-color-scheme: dark){:root{--cursor-bg: rgba(255, 255, 255, .25);--cursor-hover-bg: rgba(255, 255, 255, .1);--cursor-active-bg: rgba(255, 255, 255, .5);--cursor-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' width='8px' height='8px'><circle cx='4' cy='4' r='4' fill='white' opacity='.8'/></svg>") 4 4, auto}}@media screen and (pointer: coarse){#cursor{display:none}}#cursor{position:fixed;width:var(--cursor-size);height:var(--cursor-size);background:var(--cursor-bg);border-radius:calc(var(--cursor-size) / 2);z-index:10086;pointer-events:none;transition:all var(--cursor-transition-duration) ease-in-out;transition-property:background,transform;perspective:1000px}#cursor.hidden{background:transparent}#cursor.hover{background:var(--cursor-hover-bg);transform:scale(var(--cursor-hover-scale))}#cursor.active{background:var(--cursor-active-bg);transform:scale(var(--cursor-active-scale))}*{cursor:var(--cursor-image)}
