@import "./tokens.css"; html { font-size: 20px; } @media only screen and (max-width: 768px) { html { font-size: 18px; } } body { margin: 0; padding: 0; } html.dark body { background-color: var(--color-text-strong); color: var(--color-blog-gray-220); } #app { box-sizing: border-box; width: 80%; max-width: 760px; margin: 2rem auto; font-family: Arial, Helvetica, sans-serif; color: var(--color-text-strong); } @media only screen and (max-width: 768px) { #app { width: 100%; padding: 0 1rem; max-width: unset; } } html.dark #app { background-color: var(--color-text-strong); color: var(--color-blog-gray-170); } a, a:visited { color: var(--color-text-strong); } html.dark a, html.dark a:visited { color: var(--color-blog-neutral-100); } ol, ul { padding-left: 1rem; margin: 0; } ol li, ul li { margin-bottom: 1rem; } blockquote { margin: 0; padding-left: 1rem; border-left: 8px solid var(--color-blog-gray-170); } code { font-size: 0.9rem; background-color: var(--color-blog-neutral-120); } pre code { overflow: scroll; display: block; padding: 1rem 0.5rem; } .unfinished-setup { width: 80%; margin: 0 auto; text-align: center; } .header.home h1 { font-size: 3rem; } .header .external-link { text-align: right; margin-top: -1rem; font-size: 0.8em; color: var(--color-blog-gray-220); } @media only screen and (max-width: 768px) { .header .external-link { margin-bottom: 1rem; margin-right: 2.5rem; } } .header .external-link a { text-decoration: underline; color: var(--color-blog-gray-220); } .header .picture-container { position: relative; display: inline-block; width: 2.5rem; height: 2.5rem; overflow: hidden; border-radius: 50%; margin-bottom: -0.25rem; } .header .picture-container img { position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; object-fit: cover; transform: translate(-50%, -50%); clip-path: circle(50%); } .header.note .picture-container { width: 1.5rem; height: 1.5rem; margin-bottom: -0.4rem; } .header a { text-decoration: none; } .header a span { text-decoration: underline; } html.dark .header a:visited { color: var(--color-blog-gray-220); } html.dark .header .external-link, html.dark .header .external-link a { color: var(--color-blog-gray-440); } .topic-wrapper { margin-bottom: 1.5rem; display: flex; flex-direction: row; flex-wrap: wrap; row-gap: 1rem; } .topic-wrapper div { display: inline-grid; margin-right: 1rem; } .topic-wrapper div a { padding: 0.4rem 1rem; background-color: var(--color-blog-gray-190); text-decoration: none; border-radius: 4px; } .topic-wrapper div a:hover { background-color: var(--color-blog-gray-170); } .topic-wrapper div a.selected { background-color: var(--color-text-strong); color: var(--color-blog-neutral-100); } html.dark .topic-wrapper div a { background-color: var(--color-blog-gray-440); color: var(--color-text-strong); } html.dark .topic-wrapper div a:hover { background-color: var(--color-blog-neutral-100); } html.dark .topic-wrapper div a.selected { background-color: var(--color-blog-gray-220); } .externalLink { display: block; text-align: right; margin-top: -1rem; font-size: 0.8em; color: var(--color-blog-gray-220); } .externalLink a { color: var(--color-blog-gray-220); } .about { margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 8px solid var(--color-blog-gray-170); } html.dark .about { border-bottom: 8px solid var(--color-card); } .separator { margin-bottom: 2rem; border-bottom: 8px solid var(--color-blog-gray-170); } html.dark .separator { border-bottom: 8px solid var(--color-card); } .top-notes { display: flex; color: var(--color-blog-gray-440); flex-wrap: wrap; justify-content: space-between; gap: 2rem; width: 100%; margin-bottom: 1rem; padding-bottom: 2rem; border-bottom: 8px solid var(--color-blog-neutral-100); } @media only screen and (max-width: 768px) { .top-notes { display: block; } } @media only screen and (max-width: 768px) { .top-notes { padding-bottom: 0rem; } } .top-notes .note { flex: 1 1 calc(50% - 2rem); box-sizing: border-box; } @media only screen and (max-width: 768px) { .top-notes .note { margin-bottom: 2rem; } } .top-notes .note a { text-decoration: none; } .top-notes .note img { width: 100%; height: 200px; object-fit: cover; margin-bottom: 0.5rem; border-radius: 4px; } .top-notes .note .title { display: block; margin-bottom: 0.4rem; font-size: 1.1rem; font-weight: bolder; } .top-notes .note .summary { margin-bottom: 0.4rem; font-size: 0.9rem; } .top-notes .note .date { font-size: 0.8rem; color: var(--color-blog-gray-275); } html.dark .top-notes { color: var(--color-blog-gray-220); border-bottom: 8px solid var(--color-card); } .short-notes { border-bottom: 8px solid var(--color-blog-neutral-100); padding-bottom: 1rem; margin-bottom: 2rem; } .short-notes .splide__slide { font-size: 0.9rem; overflow-wrap: break-word; } .short-notes .splide__slide a { text-decoration: none; } .short-notes .splide__slide .date { font-size: 0.8rem; color: var(--color-blog-gray-275); margin-bottom: 0.3rem; } .short-notes .splide__arrow--prev { left: -3em; } .short-notes .splide__arrow--next { right: -3em; } @media only screen and (max-width: 768px) { .short-notes .splide__arrow--prev, .short-notes .splide__arrow--next { display: none; } } .short-notes .splide__arrow { background: none; } .short-notes .splide__arrow svg { fill: var(--color-blog-gray-275); } html.dark .short-notes { border-bottom: 8px solid var(--color-card); } html.dark .short-notes a { color: var(--color-blog-gray-220); } .listing-notes { margin-top: 1rem; color: var(--color-blog-gray-440); } .listing-notes.short-feed-full li { margin-bottom: 2rem; } .listing-notes.short-feed-full .summary { color: var(--color-text-strong); } .listing-notes ul { list-style-type: none; padding: 0; margin: 0; } .listing-notes ul li { margin-bottom: 1rem; } .listing-notes ul li h2 { font-size: 1.1rem; margin-bottom: 0.5rem; } .listing-notes ul li h2 a { display: block; font-size: 1.1rem; } .listing-notes ul li .summary { margin-bottom: 0.4rem; overflow-wrap: break-word; } .listing-notes ul li .summary p { margin: 0; } .listing-notes ul li .summary img { display: block; margin: 2rem auto; max-width: 100%; border-radius: 4px; } .listing-notes ul li .summary video { width: 100%; margin: 2rem auto; } .listing-notes ul li .summary audio { width: 100%; margin: 2rem auto; } .listing-notes ul li .date { font-size: 0.8rem; color: var(--color-blog-gray-275); } html.dark .listing-notes { color: var(--color-blog-gray-220); } html.dark .listing-notes.short-feed-full .summary { color: var(--color-white); } h1 { font-size: 2rem; line-height: 0.9; margin-top: 0; } @media only screen and (max-width: 768px) { h1 { font-size: 1.6rem; } } .note-wrapper { position: relative; margin-top: 2rem; overflow-wrap: break-word; } .note-wrapper h1, .note-wrapper h2, .note-wrapper h3 { margin-top: 1.4rem; margin-bottom: 0.6rem; } .note-wrapper h1:first-of-type { margin-top: 0rem; } .note-wrapper .content { margin-top: 1.5rem; } .note-wrapper p { line-height: 1.3rem; margin-top: 0rem; } .note-wrapper .date { display: block; margin-bottom: 0.5rem; font-size: 0.8rem; color: var(--color-blog-gray-275); } .note-wrapper img { display: block; margin: 2rem auto; max-width: 100%; border-radius: 4px; } .note-wrapper img.note-banner { margin: 2.5rem auto 3.5rem; transform: scale(1.1); } .note-wrapper video { width: 100%; margin: 2rem auto; } .note-wrapper audio { width: 100%; margin: 2rem auto; } .footer { margin-top: 4rem; padding-top: 2rem; margin-bottom: 2rem; border-top: 8px solid var(--color-blog-gray-170); font-size: 0.8rem; text-align: center; color: var(--color-blog-gray-220); } .footer a { color: var(--color-blog-gray-220); } html.dark .footer { border-top: 8px solid var(--color-card); color: var(--color-blog-gray-440); } html.dark .footer a, html.dark .footer a:visited { color: var(--color-blog-gray-440); } zap-threads { font-size: 0.9rem; } .splide__container { box-sizing: border-box; position: relative; } .splide__list { backface-visibility: hidden; display: -ms-flexbox; display: flex; height: 100%; margin: 0 !important; padding: 0 !important; } .splide.is-initialized:not(.is-active) .splide__list { display: block; } .splide__pagination { -ms-flex-align: center; align-items: center; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -ms-flex-pack: center; justify-content: center; margin: 0; pointer-events: none; } .splide__pagination li { display: inline-block; line-height: 1; list-style-type: none; margin: 0; pointer-events: auto; } .splide:not(.is-overflow) .splide__pagination { display: none; } .splide__progress__bar { width: 0; } .splide { position: relative; visibility: hidden; } .splide.is-initialized, .splide.is-rendered { visibility: visible; } .splide__slide { backface-visibility: hidden; box-sizing: border-box; -ms-flex-negative: 0; flex-shrink: 0; list-style-type: none !important; margin: 0; position: relative; } .splide__slide img { vertical-align: bottom; } .splide__spinner { animation: splide-loading 1s linear infinite; border: 2px solid var(--color-blog-gray-300); border-left-color: transparent; border-radius: 50%; bottom: 0; contain: strict; display: inline-block; height: 20px; left: 0; margin: auto; position: absolute; right: 0; top: 0; width: 20px; } .splide__sr { clip: rect(0 0 0 0); border: 0; height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } .splide__toggle.is-active .splide__toggle__play, .splide__toggle__pause { display: none; } .splide__toggle.is-active .splide__toggle__pause { display: inline; } .splide__track { overflow: hidden; position: relative; z-index: 0; } @keyframes splide-loading { 0% { transform: rotate(0); } to { transform: rotate(1turn); } } .splide__track--draggable { -webkit-touch-callout: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; } .splide__track--fade > .splide__list > .splide__slide { margin: 0 !important; opacity: 0; z-index: 0; } .splide__track--fade > .splide__list > .splide__slide.is-active { opacity: 1; z-index: 1; } .splide--rtl { direction: rtl; } .splide__track--ttb > .splide__list { display: block; } .splide__arrow { -ms-flex-align: center; align-items: center; background: var(--color-blog-gray-210); border: 0; border-radius: 50%; cursor: pointer; display: -ms-flexbox; display: flex; height: 2em; -ms-flex-pack: center; justify-content: center; opacity: 0.7; padding: 0; position: absolute; top: 50%; transform: translateY(-50%); width: 2em; z-index: 1; } .splide__arrow svg { fill: var(--color-black); height: 1.2em; width: 1.2em; } .splide__arrow:hover:not(:disabled) { opacity: 0.9; } .splide__arrow:disabled { opacity: 0.3; } .splide__arrow:focus-visible { outline: 3px solid var(--color-blog-sky-500); outline-offset: 3px; } .splide__arrow--prev { left: 1em; } .splide__arrow--prev svg { transform: scaleX(-1); } .splide__arrow--next { right: 1em; } .splide.is-focus-in .splide__arrow:focus { outline: 3px solid var(--color-blog-sky-500); outline-offset: 3px; } .splide__pagination { bottom: 0.5em; left: 0; padding: 0 1em; position: absolute; right: 0; z-index: 1; } .splide__pagination__page { background: var(--color-blog-gray-210); border: 0; border-radius: 50%; display: inline-block; height: 8px; margin: 3px; opacity: 0.7; padding: 0; position: relative; transition: transform 0.2s linear; width: 8px; } .splide__pagination__page.is-active { background: var(--color-white); transform: scale(1.4); z-index: 1; } .splide__pagination__page:hover { cursor: pointer; opacity: 0.9; } .splide__pagination__page:focus-visible { outline: 3px solid var(--color-blog-sky-500); outline-offset: 3px; } .splide.is-focus-in .splide__pagination__page:focus { outline: 3px solid var(--color-blog-sky-500); outline-offset: 3px; } .splide__progress__bar { background: var(--color-blog-gray-210); height: 3px; } .splide__slide { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .splide__slide:focus { outline: 0; } @supports (outline-offset: -3px) { .splide__slide:focus-visible { outline: 3px solid var(--color-blog-sky-500); outline-offset: -3px; } } @media screen and (-ms-high-contrast: none) { .splide__slide:focus-visible { border: 3px solid var(--color-blog-sky-500); } } @supports (outline-offset: -3px) { .splide.is-focus-in .splide__slide:focus { outline: 3px solid var(--color-blog-sky-500); outline-offset: -3px; } } @media screen and (-ms-high-contrast: none) { .splide.is-focus-in .splide__slide:focus { border: 3px solid var(--color-blog-sky-500); } .splide.is-focus-in .splide__track > .splide__list > .splide__slide:focus { border-color: var(--color-blog-sky-500); } } .splide__toggle { cursor: pointer; } .splide__toggle:focus-visible { outline: 3px solid var(--color-blog-sky-500); outline-offset: 3px; } .splide.is-focus-in .splide__toggle:focus { outline: 3px solid var(--color-blog-sky-500); outline-offset: 3px; } .splide__track--nav > .splide__list > .splide__slide { border: 3px solid transparent; cursor: pointer; } .splide__track--nav > .splide__list > .splide__slide.is-active { border: 3px solid var(--color-black); } .splide__arrows--rtl .splide__arrow--prev { left: auto; right: 1em; } .splide__arrows--rtl .splide__arrow--prev svg { transform: scaleX(1); } .splide__arrows--rtl .splide__arrow--next { left: 1em; right: auto; } .splide__arrows--rtl .splide__arrow--next svg { transform: scaleX(-1); } .splide__arrows--ttb .splide__arrow { left: 50%; transform: translate(-50%); } .splide__arrows--ttb .splide__arrow--prev { top: 1em; } .splide__arrows--ttb .splide__arrow--prev svg { transform: rotate(-90deg); } .splide__arrows--ttb .splide__arrow--next { bottom: 1em; top: auto; } .splide__arrows--ttb .splide__arrow--next svg { transform: rotate(90deg); } .splide__pagination--ttb { bottom: 0; display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column; left: auto; padding: 1em 0; right: 0.5em; top: 0; } .loader-container.svelte-181fgen { display: flex; align-items: center; justify-content: center; } .loader.svelte-181fgen { display: inline-block; width: 92px; height: 92px; opacity: 0; animation: svelte-181fgen-fade-in 0.5s 0.4s forwards, svelte-181fgen-loader-animation 2s linear infinite 0.4s; } .loader.svelte-181fgen:after { content: " "; display: block; width: 64px; height: 64px; margin: 8px; border-radius: 50%; border: 6px solid var(--color-blog-gray-275); border-color: var(--color-blog-gray-275) transparent var(--color-blog-gray-275) transparent; animation: svelte-181fgen-loader-animation 2s linear infinite; } @keyframes svelte-181fgen-loader-animation { 0% { transform: rotate(0); } to { transform: rotate(360deg); } } @keyframes svelte-181fgen-fade-in { to { opacity: 1; } } html.dark .loader.svelte-181fgen:after { border: 6px solid var(--color-card); border-color: var(--color-card) transparent var(--color-card) transparent; } #theme-toggle.svelte-bxrhh.svelte-bxrhh { display: none; } #theme-toggle.svelte-bxrhh + label.svelte-bxrhh { display: inline-block; cursor: pointer; height: 1rem; width: 1rem; position: absolute; top: 1rem; right: 3rem; border-radius: 9px; transition-duration: 0.3s; content: ""; } @media only screen and (max-width: 768px) { #theme-toggle.svelte-bxrhh + label.svelte-bxrhh { right: 1rem; } } #theme-toggle.svelte-bxrhh:not(:checked) + label.svelte-bxrhh { background-color: var(--color-blog-gray-180); } #theme-toggle.svelte-bxrhh:checked + label.svelte-bxrhh { background-color: transparent; box-shadow: inset -6px -6px 1px 1px var(--color-card); } .ztr-nowrap { white-space: nowrap; }