/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace,monospace;font-size:1em;}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}*,*::before,*::after{box-sizing:border-box}@font-face{font-family:"Geist";src:url("/fonts/Geist-Variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:"Geist Mono";src:url("/fonts/GeistMono-Variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--color-mode: light;--ctp-rosewater: #dc8a78;--ctp-flamingo: #dd7878;--ctp-pink: #ea76cb;--ctp-mauve: #8839ef;--ctp-red: #d20f39;--ctp-maroon: #e64553;--ctp-peach: #fe640b;--ctp-yellow: #df8e1d;--ctp-green: #40a02b;--ctp-teal: #179299;--ctp-sky: #04a5e5;--ctp-sapphire: #209fb5;--ctp-blue: #1e66f5;--ctp-lavender: #7287fd;--ctp-text: #4c4f69;--ctp-subtext1: #5c5f77;--ctp-subtext0: #6c6f85;--ctp-overlay2: #7c7f93;--ctp-overlay1: #8c8fa1;--ctp-overlay0: #9ca0b0;--ctp-surface2: #acb0be;--ctp-surface1: #bcc0cc;--ctp-surface0: #ccd0da;--ctp-base: #eff1f5;--ctp-mantle: #e6e9ef;--ctp-crust: #dce0e8;--h1-color: var(--ctp-text);--font-color: var(--ctp-text);--heading-color: var(--ctp-text);--background: var(--ctp-base);--dark-font-color: var(--ctp-text);--medium-font-color: var(--ctp-subtext1);--light-font-color: var(--ctp-subtext0);--light-background: var(--ctp-mantle);--light-background-hover: var(--ctp-surface0);--border: var(--ctp-surface0);--link-color: var(--ctp-blue);--link-color-darker: var(--ctp-sapphire);--link-hover-color: var(--ctp-sapphire);--navbar-color: var(--ctp-base);--blockquote: var(--ctp-mantle);--blockquote-left: var(--ctp-surface0);--transparent-text: var(--ctp-overlay2);--transparent-bg: var(--ctp-surface1);--light-transparent-bg: var(--ctp-surface0);--input-color: var(--ctp-text);--accent-primary: var(--ctp-mauve);--accent-secondary: var(--ctp-teal);--accent-tertiary: var(--ctp-peach);--accent-success: var(--ctp-green)}:root{--sys-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--base-font-family: "Geist", var(--sys-font-family);--code-font-family: "Geist Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--article-font-family: var(--base-font-family)}.flex{display:flex;align-items:center}.flex-row{display:flex;flex-direction:column}@media screen and (min-width: 800px){.flex-row{flex-direction:row}}.flex-col{flex:1}.flex-two-thirds{flex:2}.justify-center{justify-content:center}html{font-family:var(--base-font-family);color:var(--font-color);font-weight:400;font-size:1rem;line-height:1.75}body{background:var(--background);margin:0;padding:0}section{margin:2rem 0}section:first-of-type{margin-top:0}section>h2{display:flex;align-items:center;font-size:1.6rem;margin-top:0;margin-bottom:.5rem}@media screen and (min-width: 800px){section>h2{margin-bottom:2rem}}.index h2,section>h2{border-bottom-width:0}@media screen and (min-width: 800px){.index h2,section>h2{border-bottom-width:4px}}a.section-button{font-weight:500;background:var(--light-background);color:var(--dark-font-color);padding:.4rem .6rem;font-size:.8rem;border-radius:.3rem;border-width:0 !important;white-space:nowrap;line-height:1;margin-left:2rem;margin-top:.5rem}a.section-button:hover{background:var(--light-background-hover);color:var(--heading-color)}@media screen and (min-width: 800px){section{margin:3.5rem 0}section>h2{font-size:2rem;margin:0 0 1rem}}.container{max-width:830px;padding:0 1.5rem;margin-left:auto;margin-right:auto}.container.page p{max-width:600px}@media screen and (min-width: 800px){.container{padding:0 2rem}}img{display:inline-block;max-width:100%;height:auto}p,ol,ul,dl,table,blockquote{font-size:1.05rem;margin:0 0 1.5rem 0}blockquote p{margin:0}ul{padding:0 1rem}@media screen and (min-width: 800px){p,ol,ul,dl,table,blockquote{font-size:1.125rem}ul{padding:0 2rem}}ul li p{margin:0}ul li ul{padding-left:1rem;margin:0}ul li ul li{margin:0}ol li ol{margin-bottom:0}.task-list-item [type=checkbox]{margin-right:.5rem}blockquote{margin:2rem 0;padding:1rem;background:var(--blockquote);font-weight:400;border-left:5px solid var(--blockquote-left)}blockquote :not(pre)>code[class*=language-]{background:rgba(0,0,0,.1) !important}@media screen and (min-width: 800px){blockquote{padding:2rem 0 2rem 2rem}}::selection{background:#3b5bdb;color:#fff}h1{color:var(--h1-color)}h3,h4{color:var(--medium-font-color)}h2,h5{color:var(--heading-color)}h1,h2,h3,h4,h5{margin:0 0 1.5rem 0;font-weight:700;line-height:1.2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1:not(:first-child),h2:not(:first-child),h3:not(:first-child),h4:not(:first-child){margin-top:3rem}h1{font-size:2.5rem;line-height:1.1}h2{font-size:1.75rem;padding-bottom:.5rem;border-bottom:4px solid var(--light-background)}h2 code{font-size:1.75rem !important}h3{font-size:1.5rem;color:var(--font-color);font-weight:600;margin-bottom:1rem}h3 code{font-size:1.4rem !important}h4{font-size:1.3rem;color:var(--font-color);font-weight:500;margin-bottom:1rem;border-bottom:2px solid var(--light-background);padding-bottom:.25rem}h5{font-size:1.2rem;margin-bottom:1rem}@media screen and (min-width: 800px){h1{font-size:3rem}h2{font-size:1.9rem}h2 code{font-size:1.9rem !important}h3{font-size:1.7rem;color:var(--font-color);font-weight:600}h3 code{font-size:1.6rem !important}h4{font-weight:400;font-size:1.4rem}}a.link{display:block;padding:.25rem 0;margin:.25rem 0;border-radius:.35rem;font-weight:600;color:var(--dark-font-color)}a.link:hover{color:var(--link-color)}a.button{display:inline-block;border:2px solid var(--link-color);padding:.3rem .6rem;margin-right:.75rem;font-weight:500;background:var(--link-color);color:#fff;border-radius:.35rem;font-size:.9rem}a.button.large{padding:.8rem 1rem;font-size:1.05rem}a.button.secondary{border:2px solid #edf2ff;background:#edf2ff;color:#3b5bdb}a.button:hover,a.button.secondary:hover{border:2px solid var(--link-color-darker);background:var(--link-color-darker);color:#fff}@media screen and (min-width: 800px){a.button{font-size:.9rem}a.button.large{padding:1rem 1.5rem;font-size:1.1rem}}p.subtitle{color:var(--medium-font-color);font-size:1.3rem;font-weight:300;margin-bottom:0}@media screen and (min-width: 800px){p.subtitle{font-size:1.5rem}}a{color:inherit;text-decoration:none}a.image-link{border-width:0}a code[class*=language-]{color:var(--link-color) !important}a code[class*=language-]:hover{background:var(--link-color) !important;color:#fff !important}main{margin-top:50px}@media screen and (min-width: 800px){main{margin-top:0}}.emoji{margin:0 .4rem 0 .1rem}.navbar{width:100%;position:fixed;top:0;left:0;background:var(--navbar-color);z-index:2;padding:.5rem}.navbar .flex{justify-content:space-between}.navbar a{border-radius:.35rem;margin:0 .05rem;color:rgba(255,255,255,.65);font-weight:400;font-size:.85rem;border:1px solid rgba(0,0,0,0);padding:0 .3rem;background:rgba(0,0,0,0)}.navbar a:first-of-type{margin-left:-1rem}.navbar a .emoji{display:none}.navbar a.brand{font-weight:500;color:#fff;white-space:nowrap;border:none;display:flex;align-items:center;gap:.5rem;line-height:1;background:rgba(0,0,0,0)}.navbar a.brand .emoji{display:inline-block !important}.navbar a.brand .brand-logo{height:28px;width:28px;border-radius:6px;object-fit:contain}.navbar a.brand .brand-text{font-weight:600;letter-spacing:-.01em}.navbar button{font-size:1rem;margin-right:-1rem}@media screen and (min-width: 500px){.navbar a{font-size:.95rem;padding:.5rem}}@media screen and (min-width: 800px){.emoji{margin:0 .5rem 0 .1rem}.navbar{position:static;padding:1.5rem 0;background:rgba(0,0,0,0);box-shadow:none}.navbar .flex{justify-content:space-between}.navbar a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.navbar a:first-of-type{margin-left:-1.5rem}.navbar a:hover{background:var(--light-background);color:var(--dark-font-color)}.navbar a[aria-current=page]{background:var(--light-background);border-bottom:2px solid var(--accent-primary);color:var(--dark-font-color)}.navbar a.brand{font-size:1.3rem;margin-right:3rem;border:none;background:rgba(0,0,0,0) !important;color:var(--dark-font-color)}.navbar a.brand:hover{background:var(--light-background) !important}.navbar a.brand .brand-logo{height:32px;width:32px}.navbar a.brand .brand-text{font-weight:700}#dark-mode-button:hover{background:var(--light-background)}}@media print{.navbar{display:none}}#dark-mode-button{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:2px solid var(--border);border-radius:50%;background:var(--light-background);cursor:pointer;overflow:hidden;transition:all .5s cubic-bezier(.4, 0, .2, 1);box-shadow:0 2px 4px rgba(0,0,0,.05),inset 0 -2px 4px rgba(0,0,0,.05)}#dark-mode-button:hover{transform:scale(1.05);border-color:var(--accent-primary);box-shadow:0 4px 12px rgba(0,0,0,.1),inset 0 -2px 4px rgba(0,0,0,.05),0 0 0 4px rgba(136,57,239,.1)}#dark-mode-button:active{transform:scale(.95)}#dark-mode-button:focus{outline:none;box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 4px rgba(136,57,239,.2)}#dark-mode-button .theme-toggle-inner{position:relative;width:20px;height:20px}#dark-mode-button svg{position:absolute;top:0;left:0;width:20px;height:20px;transition:all .6s cubic-bezier(.68, -.55, .27, 1.55)}#dark-mode-button .sun-icon{opacity:1;transform:rotate(0deg) scale(1);color:#fbbf24}#dark-mode-button .moon-icon{opacity:0;transform:rotate(180deg) scale(0);color:#818cf8}[data-user-color-scheme=dark] #dark-mode-button{background:var(--light-background)}[data-user-color-scheme=dark] #dark-mode-button .sun-icon{opacity:0;transform:rotate(-180deg) scale(0)}[data-user-color-scheme=dark] #dark-mode-button .moon-icon{opacity:1;transform:rotate(0deg) scale(1)}@keyframes sparkle{0%, 100%{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.8}}#dark-mode-button.transitioning{animation:sparkle .6s cubic-bezier(.68, -.55, .27, 1.55)}@media screen and (min-width: 800px){#dark-mode-button{width:52px;height:52px}#dark-mode-button .theme-toggle-inner{width:22px;height:22px}#dark-mode-button svg{width:22px;height:22px}}.my{padding-top:2rem}.my a{border:none;margin-right:1rem}.my a:hover{border:none}.post-row{display:flex;align-items:center;width:100%}.post-row time{display:block;flex:0 0 100px;font-size:.85rem;color:var(--font-color);opacity:.7;font-variant-numeric:tabular-nums}.post-row h3{flex:1}.posts .post:last-of-type a{border-bottom-width:0}.post a{display:flex;align-items:center;justify-content:stretch;padding:1rem 0;border-bottom:1px solid rgba(0,0,0,.04);transition:all .2s cubic-bezier(.4, 0, .2, 1)}.post a:hover{transform:translateX(4px)}.post h3{margin-top:0;margin-bottom:0;font-size:1.05rem;font-weight:500;color:var(--heading-color)}@media screen and (min-width: 800px){.posts{margin-left:-1rem;margin-right:-1rem}.post a{padding:1.25rem 1rem;border-bottom-color:rgba(0,0,0,.04);border-radius:12px}.post a:hover{background:var(--light-background);border-bottom-color:rgba(0,0,0,0)}.post h3{font-size:1.2rem}.post-row time{flex:0 0 110px;font-size:.9rem}}.new-post,.popular-post{display:inline-block;color:#111;padding:.3rem .4rem;border-radius:.3rem;font-size:.85rem;margin-left:1rem}.new-post{background:var(--accent-success);color:var(--background)}.popular-post{background:var(--accent-primary);color:var(--background)}@media screen and (min-width: 800px){.new-post,.popular-post{margin-bottom:0}}.footer{padding:2rem 0}.footer>.flex{flex-direction:column;align-items:center;justify-content:center}.footer img{height:30px;width:30px}.footer a{border-radius:.35rem;margin:0 .05rem;font-weight:400;font-size:1rem;border:1px solid rgba(0,0,0,0);padding:.5rem;margin:0 .5rem;color:var(--light-font-color)}.footer a:hover{color:var(--heading-color);background:var(--light-background)}.footer a.img{display:flex;align-items:center;padding:0;margin:0 .75rem;background:none}.footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.flex nav{padding:1rem 0}@media screen and (min-width: 800px){.footer>.flex{align-items:flex-start;margin-left:-1.5rem;margin-right:-1.5rem}.footer a{padding:.75rem}.footer a.img{padding:0 .5rem;margin:0 1rem}}@media print{.footer{display:none}}.small{max-width:600px}time,.meta{color:var(--light-font-color);font-size:.85rem;white-space:nowrap;font-weight:400}.meta{color:var(--medium-font-color);font-size:1rem}table{border-collapse:separate;border-spacing:0;width:100%;max-width:100%;overflow-x:auto}thead,tbody{white-space:nowrap}th{border-bottom:2px solid var(--border)}tfoot th{border-top:1px solid var(--border)}td{border-bottom:1px solid var(--border)}th,td{text-align:left;padding:.75rem;hyphens:auto}tbody tr:nth-child(even){background-color:var(--light-background)}@media screen and (min-width: 800px){table{display:table;border:1px solid var(--border)}thead,tbody{white-space:normal}}.count{font-weight:700;color:var(--link-color)}.tags{display:flex !important;flex-wrap:wrap;align-items:center;margin-left:-.5rem;margin-right:-.5rem}.tags>a{display:block;font-weight:500;background:var(--light-background);color:var(--font-color);margin:.2rem;padding:.5rem .6rem;font-size:.8rem;border-radius:.3rem;border-bottom:0;white-space:nowrap;line-height:1}.tags>a:hover{background:var(--light-background-hover);color:var(--heading-color)}mark{background:#ffec99}.utterances{margin-left:-4px;margin-right:-4px}kbd{background-color:#f7f7f7;border:2px solid rgba(0,0,0,.3);border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 2px #fff;color:#333;display:inline-block;font-family:Helvetica Neue,Inter,-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;line-height:1.4;margin:0 .1em;padding:.1em .6em;text-shadow:0 1px 0 #fff;font-size:14px}#comments{margin-top:3rem}#comments h2{margin:0}@media print{.comments,#comments{display:none}}.search-container{position:relative;margin-bottom:3rem}#search-query{padding:1rem 1.25rem;padding-right:140px;background:var(--light-background);color:var(--input-color);border:2px solid rgba(0,0,0,.08);outline:none;width:100%;border-radius:12px;font-size:1rem;transition:all .3s cubic-bezier(.4, 0, .2, 1);box-shadow:0 2px 4px rgba(0,0,0,.02)}#search-query:focus{border-color:var(--accent-primary);box-shadow:0 4px 12px rgba(136,57,239,.08)}#search-query::placeholder{color:var(--font-color);opacity:.5}.search-shortcuts{position:absolute;right:1rem;top:50%;transform:translateY(-50%);display:flex;gap:.5rem;pointer-events:none}.search-shortcuts kbd{padding:.35rem .6rem;background:var(--background);border:1px solid rgba(0,0,0,.12);border-radius:6px;font-family:var(--code-font-family);font-size:.75rem;font-weight:500;color:var(--font-color);opacity:.6;box-shadow:0 1px 2px rgba(0,0,0,.05)}#search-results{display:none}.filter-container{display:flex;justify-content:flex-start;margin-bottom:1.5rem;flex-wrap:wrap}.filter-item{font-size:.85rem;padding:.5rem .75rem;background:var(--light-background);border-radius:4px;margin-right:.5rem;margin-bottom:.5rem;font-weight:600;cursor:pointer}.filter-item:hover{background:var(--accent-primary);color:var(--background)}.filter-item:last-of-type{margin-right:0}.filter-item.active{background:var(--accent-primary);color:var(--background)}.filter-item.active:hover{opacity:.9}.hero{margin:3rem 0;padding-bottom:2.5rem;border-bottom:none}.hero p{font-size:1.25rem;line-height:1.6;margin-bottom:.75rem;color:var(--font-color);max-width:800px;font-weight:400}.hero p:first-of-type{font-weight:600;color:var(--heading-color)}.hero p:last-of-type{font-size:1.05rem}.hero .hero-meta{margin-top:2rem;display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}.hero .hero-meta .speaking-badge{font-size:.95rem;color:var(--font-color);margin:0}.hero .hero-meta .speaking-badge strong{color:var(--accent-primary);font-weight:600}.hero .hero-meta .bio-social{display:flex;gap:1rem}.hero .hero-meta .bio-social a{color:var(--font-color);transition:all .2s ease;opacity:.8}.hero .hero-meta .bio-social a:hover{color:var(--accent-primary);opacity:1;transform:translateY(-2px)}.view-all-link{display:inline-block;margin-top:2rem;padding:.75rem 1.5rem;font-weight:500;text-decoration:none;color:var(--accent-primary);background:var(--light-background);border-radius:999px;transition:all .3s cubic-bezier(.4, 0, .2, 1)}.view-all-link:hover{background:var(--accent-primary);color:var(--background);transform:translateY(-2px);box-shadow:0 4px 12px rgba(136,57,239,.15)}.projects-section{margin-top:4rem;padding-top:3rem;border-top:1px solid rgba(0,0,0,.06)}.projects-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:2rem}.project-card{padding:2rem;border:none;border-radius:16px;background:var(--light-background);transition:all .3s cubic-bezier(.4, 0, .2, 1)}.project-card:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(0,0,0,.08)}.project-card h3{margin:0 0 .75rem 0;font-size:1.25rem;font-weight:600;color:var(--heading-color)}.project-card p{margin:0 0 1rem 0;font-size:.95rem;color:var(--font-color);line-height:1.7;opacity:.9}.project-card .status{display:inline-block;font-size:.75rem;padding:.35rem .85rem;background:var(--accent-primary);color:var(--background);border-radius:999px;font-weight:500;letter-spacing:.02em}.project-card a{font-size:.875rem;text-decoration:none;color:var(--accent-primary);font-weight:500}.project-card a:hover{text-decoration:underline}.post-tags{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.tag{display:inline-block;padding:.35rem .85rem;font-size:.75rem;font-weight:500;background:var(--light-background);border:none;border-radius:999px;color:var(--font-color);text-decoration:none;transition:all .3s cubic-bezier(.4, 0, .2, 1);opacity:.85}.tag:hover{background:var(--accent-primary);color:var(--background);opacity:1;transform:translateY(-1px)}@media screen and (min-width: 800px){.hero{margin:4rem 0 3rem}.hero p{font-size:1.4rem}.hero p:last-of-type{font-size:1.1rem}.hero .hero-meta{flex-direction:column;align-items:flex-start;gap:1.5rem;margin-top:2.5rem}.hero .hero-meta .speaking-badge{font-size:1rem}.hero .hero-meta .bio-social{gap:1.5rem}}.static-page .page-header{padding-top:2rem;margin-bottom:2rem}.static-page .page-header h1{font-size:2.5rem;font-weight:700;margin:0}.static-page .page-content{max-width:800px}.static-page .page-content h1,.static-page .page-content h2,.static-page .page-content h3,.static-page .page-content h4,.static-page .page-content h5,.static-page .page-content h6{margin-top:2rem;margin-bottom:1rem}.static-page .page-content h1{font-size:2rem;border-bottom:2px solid var(--border);padding-bottom:.5rem}.static-page .page-content h2{font-size:1.5rem}.static-page .page-content h3{font-size:1.25rem}.static-page .page-content p{margin-bottom:1.5rem;line-height:1.7}.static-page .page-content ul,.static-page .page-content ol{margin-bottom:1.5rem;padding-left:2rem}.static-page .page-content ul li,.static-page .page-content ol li{margin-bottom:.5rem;line-height:1.7}.static-page .page-content strong{font-weight:600}.static-page .page-content a{text-decoration:none}.static-page .page-content a:hover{text-decoration:underline}.static-page .page-content hr{margin:3rem 0;border:none;border-top:1px solid var(--border)}.static-page .page-content blockquote{border-left:4px solid var(--link-color);padding-left:1.5rem;margin:2rem 0;color:var(--light-font-color);font-style:italic}@media screen and (min-width: 800px){.static-page .page-header{padding-top:3rem}.static-page .page-header h1{font-size:3rem}.static-page .page-content h1{font-size:2.25rem}}header{padding:1.5rem 0}header h1{font-size:2rem;display:inline-block;font-weight:600;margin-top:1rem}header u{display:inline-block;text-decoration:none;padding:.4rem 0}.article-header{padding-top:2rem;margin-bottom:.5rem}.article-header .container{padding-left:0;padding-right:0}.article-header .thumb{display:flex;flex-direction:column}.article-header h1{font-weight:700;font-size:1.8rem;margin:0}.article-header .description{font-size:1.2rem;color:var(--light-font-color);font-weight:300;margin-top:2rem;margin-bottom:0}.post-meta{margin-top:1rem;padding:0;color:var(--light-font-color);font-size:.9rem}.post-meta a{color:var(--font-color);border-width:0}.post-meta time{margin-top:.2rem;font-size:.9rem}.post-meta .meta-line{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.post-meta .meta-line .author{font-weight:600}.post-meta .meta-line .separator{opacity:.5}.post-meta .meta-line .reading-time{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.85rem}.post-meta .article-taxonomies{margin-top:1rem;display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.post-meta .tags{display:flex;gap:.5rem;flex-wrap:wrap}.post-meta .tags a{text-decoration:none}.post-meta .series-badge{font-size:.85rem;font-weight:600}.post-meta .series-badge a{text-decoration:none;color:var(--link-color)}.post-meta .series-badge a:hover{text-decoration:underline}.article-post{margin-bottom:2rem;font-family:var(--article-font-family)}.article-post img{border-radius:5px;display:block;margin-left:auto;margin-right:auto}.article-post a{box-shadow:0px -2px 0px var(--accent-secondary) inset;transition:all .3s ease}.article-post a:hover{box-shadow:0px -10px 0px var(--accent-secondary) inset}.article-post code{overflow-x:auto}.article-post h1{position:relative}.article-post h1 .anchor{position:absolute;left:-2.5rem;top:50%;transform:translateY(-50%);color:var(--accent-primary);font-weight:600;text-decoration:none;opacity:0;transition:all .2s cubic-bezier(.4, 0, .2, 1);padding:.25rem .5rem;border-radius:6px;font-size:.9em}.article-post h1 .anchor::before{content:"#"}.article-post h1 .anchor:hover{background:var(--light-background);opacity:1 !important}.article-post h1:hover .anchor{opacity:.6}.article-post h2{position:relative}.article-post h2 .anchor{position:absolute;left:-2.5rem;top:50%;transform:translateY(-50%);color:var(--accent-primary);font-weight:600;text-decoration:none;opacity:0;transition:all .2s cubic-bezier(.4, 0, .2, 1);padding:.25rem .5rem;border-radius:6px;font-size:.9em}.article-post h2 .anchor::before{content:"#"}.article-post h2 .anchor:hover{background:var(--light-background);opacity:1 !important}.article-post h2:hover .anchor{opacity:.6}.article-post h3{position:relative}.article-post h3 .anchor{position:absolute;left:-2.5rem;top:50%;transform:translateY(-50%);color:var(--accent-primary);font-weight:600;text-decoration:none;opacity:0;transition:all .2s cubic-bezier(.4, 0, .2, 1);padding:.25rem .5rem;border-radius:6px;font-size:.9em}.article-post h3 .anchor::before{content:"#"}.article-post h3 .anchor:hover{background:var(--light-background);opacity:1 !important}.article-post h3:hover .anchor{opacity:.6}.article-post h4{position:relative}.article-post h4 .anchor{position:absolute;left:-2.5rem;top:50%;transform:translateY(-50%);color:var(--accent-primary);font-weight:600;text-decoration:none;opacity:0;transition:all .2s cubic-bezier(.4, 0, .2, 1);padding:.25rem .5rem;border-radius:6px;font-size:.9em}.article-post h4 .anchor::before{content:"#"}.article-post h4 .anchor:hover{background:var(--light-background);opacity:1 !important}.article-post h4:hover .anchor{opacity:.6}.article-post h5{position:relative}.article-post h5 .anchor{position:absolute;left:-2.5rem;top:50%;transform:translateY(-50%);color:var(--accent-primary);font-weight:600;text-decoration:none;opacity:0;transition:all .2s cubic-bezier(.4, 0, .2, 1);padding:.25rem .5rem;border-radius:6px;font-size:.9em}.article-post h5 .anchor::before{content:"#"}.article-post h5 .anchor:hover{background:var(--light-background);opacity:1 !important}.article-post h5:hover .anchor{opacity:.6}.article-post h6{position:relative}.article-post h6 .anchor{position:absolute;left:-2.5rem;top:50%;transform:translateY(-50%);color:var(--accent-primary);font-weight:600;text-decoration:none;opacity:0;transition:all .2s cubic-bezier(.4, 0, .2, 1);padding:.25rem .5rem;border-radius:6px;font-size:.9em}.article-post h6 .anchor::before{content:"#"}.article-post h6 .anchor:hover{background:var(--light-background);opacity:1 !important}.article-post h6:hover .anchor{opacity:.6}.article-post .highlight{position:relative}@media screen and (min-width: 800px){.article-post{margin-bottom:3rem}.article-post h1,.article-post h2,.article-post h3,.article-post h4,.article-post h5{padding-top:1rem}.post-meta{margin-top:.5rem;padding:.5rem 0}header h1{font-size:3rem;margin-top:2rem}header u{background:linear-gradient(rgba(0,0,0,0) 85%, #bac8ff 0)}.article-header{padding-top:3rem}.article-header h1{padding-top:0;font-size:2.5rem}.article-header .thumb{flex-direction:row}.article-header .description{font-size:1.8rem;line-height:1.5}}@media screen and (min-width: 1100px){.article-header h1{font-size:2.5rem}}.post-thumbnail{display:block !important;width:100%;height:auto;margin:1.5rem 0;border-radius:8px}.disqus-container{padding-top:2rem}#cusdis_thread{padding-top:2rem}.giscus{padding-top:2rem}code,pre{font-size:.875rem;font-family:var(--code-font-family);background:#1e1e2e}:not(pre)>code{color:var(--dark-font-color);background:var(--light-background);padding:.2em .4em;border-radius:3px;font-size:.85em}code{padding:3px 5px;border-radius:4px;color:#f8f8f2}pre>code{display:block}pre[class*=language-],.highlight>.chroma{margin:0 0 2rem;border-radius:12px;overflow:visible;box-shadow:0 0 0 1px rgba(255,255,255,.06),0 10px 15px -3px rgba(0,0,0,.3),0 4px 6px -2px rgba(0,0,0,.2);position:relative;background:linear-gradient(135deg, #1e1e2e 0%, #181825 100%);border:1px solid rgba(203,166,247,.1);}pre[class*=language-]::before,.highlight>.chroma::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(203,166,247,.3) 50%, rgba(0,0,0,0) 100%);border-radius:12px 12px 0 0}pre[class*=language-]:hover .copy-code-button,.highlight>.chroma:hover .copy-code-button{opacity:1}pre[class*=language-] code,.highlight>.chroma code{padding:60px 24px 24px;overflow-x:auto;display:block;line-height:1.7;border-radius:12px}pre[class*=language-] code[data-lang]::before,.highlight>.chroma code[data-lang]::before{position:absolute;top:0;left:0;right:0;padding:14px 24px;height:48px;font-size:.7rem;line-height:1.5;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(137,180,250,.9);background:rgba(0,0,0,.3);backdrop-filter:blur(10px);content:attr(data-lang);font-family:var(--code-font-family);border-bottom:1px solid rgba(255,255,255,.05);border-radius:12px 12px 0 0;display:flex;align-items:center}pre[class*=language-] table,.highlight>.chroma table{position:relative;border:none}pre[class*=language-] table code,.highlight>.chroma table code{padding:0}pre[class*=language-] .lntd:first-child,.highlight>.chroma .lntd:first-child{width:10px}pre[class*=language-] .lntd:first-child pre,.highlight>.chroma .lntd:first-child pre{margin:0;padding:40px 7px 10px}pre[class*=language-] .lntd:last-child,.highlight>.chroma .lntd:last-child{vertical-align:top}pre[class*=language-] .lntd:last-child pre,.highlight>.chroma .lntd:last-child pre{margin:0;padding:40px 10px 10px}pre[class*=language-] table,pre[class*=language-] tr,pre[class*=language-] td,.highlight>.chroma table,.highlight>.chroma tr,.highlight>.chroma td{margin:0;padding:0;width:100%;border-collapse:collapse;border:none}pre[class*=language-] .hl,.highlight>.chroma .hl{display:block;width:100%;background-color:#000}pre[class*=language-] .lnt,.highlight>.chroma .lnt{color:#7f7f7f}pre[class*=language-] .ln,.highlight>.chroma .ln{padding:0 .4em 0 .4em;color:#7f7f7f}pre[class*=language-] .err,.highlight>.chroma .err{color:#960050}pre[class*=language-] .c,.highlight>.chroma .c{color:#999}pre[class*=language-] .err,.highlight>.chroma .err{color:#f2777a}pre[class*=language-] .k,.highlight>.chroma .k{color:#c9c}pre[class*=language-] .l,.highlight>.chroma .l{color:#f99157}pre[class*=language-] .n,.highlight>.chroma .n{color:#ccc}pre[class*=language-] .o,.highlight>.chroma .o{color:#6cc}pre[class*=language-] .p,.highlight>.chroma .p{color:#ccc}pre[class*=language-] .cm,.highlight>.chroma .cm{color:#999}pre[class*=language-] .cp,.highlight>.chroma .cp{color:#999}pre[class*=language-] .c1,.highlight>.chroma .c1{color:#999}pre[class*=language-] .cs,.highlight>.chroma .cs{color:#999}pre[class*=language-] .gd,.highlight>.chroma .gd{color:#f2777a}pre[class*=language-] .ge,.highlight>.chroma .ge{font-style:italic}pre[class*=language-] .gh,.highlight>.chroma .gh{color:#ccc;font-weight:bold}pre[class*=language-] .gi,.highlight>.chroma .gi{color:#9c9}pre[class*=language-] .gp,.highlight>.chroma .gp{color:#999;font-weight:bold}pre[class*=language-] .gs,.highlight>.chroma .gs{font-weight:bold}pre[class*=language-] .gu,.highlight>.chroma .gu{color:#6cc;font-weight:bold}pre[class*=language-] .kc,.highlight>.chroma .kc{color:#c9c}pre[class*=language-] .kd,.highlight>.chroma .kd{color:#c9c}pre[class*=language-] .kn,.highlight>.chroma .kn{color:#6cc}pre[class*=language-] .kp,.highlight>.chroma .kp{color:#c9c}pre[class*=language-] .kr,.highlight>.chroma .kr{color:#c9c}pre[class*=language-] .kt,.highlight>.chroma .kt{color:#fc6}pre[class*=language-] .ld,.highlight>.chroma .ld{color:#9c9}pre[class*=language-] .m,.highlight>.chroma .m{color:#f99157}pre[class*=language-] .s,.highlight>.chroma .s{color:#9c9}pre[class*=language-] .na,.highlight>.chroma .na{color:#69c}pre[class*=language-] .nb,.highlight>.chroma .nb{color:#ccc}pre[class*=language-] .nc,.highlight>.chroma .nc{color:#fc6}pre[class*=language-] .no,.highlight>.chroma .no{color:#f2777a}pre[class*=language-] .nd,.highlight>.chroma .nd{color:#6cc}pre[class*=language-] .ni,.highlight>.chroma .ni{color:#ccc}pre[class*=language-] .ne,.highlight>.chroma .ne{color:#f2777a}pre[class*=language-] .nf,.highlight>.chroma .nf{color:#69c}pre[class*=language-] .nl,.highlight>.chroma .nl{color:#ccc}pre[class*=language-] .nn,.highlight>.chroma .nn{color:#fc6}pre[class*=language-] .nx,.highlight>.chroma .nx{color:#69c}pre[class*=language-] .py,.highlight>.chroma .py{color:#ccc}pre[class*=language-] .nt,.highlight>.chroma .nt{color:#6cc}pre[class*=language-] .nv,.highlight>.chroma .nv{color:#f2777a}pre[class*=language-] .ow,.highlight>.chroma .ow{color:#6cc}pre[class*=language-] .w,.highlight>.chroma .w{color:#ccc}pre[class*=language-] .mf,.highlight>.chroma .mf{color:#f99157}pre[class*=language-] .mh,.highlight>.chroma .mh{color:#f99157}pre[class*=language-] .mi,.highlight>.chroma .mi{color:#f99157}pre[class*=language-] .mo,.highlight>.chroma .mo{color:#f99157}pre[class*=language-] .sb,.highlight>.chroma .sb{color:#9c9}pre[class*=language-] .sc,.highlight>.chroma .sc{color:#ccc}pre[class*=language-] .sd,.highlight>.chroma .sd{color:#999}pre[class*=language-] .s2,.highlight>.chroma .s2{color:#9c9}pre[class*=language-] .se,.highlight>.chroma .se{color:#f99157}pre[class*=language-] .sh,.highlight>.chroma .sh{color:#9c9}pre[class*=language-] .si,.highlight>.chroma .si{color:#f99157}pre[class*=language-] .sx,.highlight>.chroma .sx{color:#9c9}pre[class*=language-] .sr,.highlight>.chroma .sr{color:#9c9}pre[class*=language-] .s1,.highlight>.chroma .s1{color:#9c9}pre[class*=language-] .ss,.highlight>.chroma .ss{color:#9c9}pre[class*=language-] .bp,.highlight>.chroma .bp{color:#ccc}pre[class*=language-] .vc,.highlight>.chroma .vc{color:#f2777a}pre[class*=language-] .vg,.highlight>.chroma .vg{color:#f2777a}pre[class*=language-] .vi,.highlight>.chroma .vi{color:#f2777a}pre[class*=language-] .il,.highlight>.chroma .il{color:#f99157}.copy-code-button{position:absolute;top:10px;right:16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:6px 10px;color:rgba(205,214,244,.8);cursor:pointer;font-size:.7rem;font-weight:500;font-family:var(--code-font-family);opacity:0;transition:all .2s cubic-bezier(.4, 0, .2, 1);backdrop-filter:blur(8px);display:flex;align-items:center;gap:5px;z-index:10;text-transform:uppercase;letter-spacing:.05em}.copy-code-button:hover{background:rgba(255,255,255,.12);border-color:rgba(203,166,247,.5);color:#cdd6f4;transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,.2)}.copy-code-button:active{transform:translateY(0) scale(.98)}.copy-code-button.copied{background:rgba(166,227,161,.15);border-color:rgba(166,227,161,.5);color:#a6e3a1}.copy-code-button.copied svg{animation:checkmark .3s ease-in-out}.copy-code-button svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2}@keyframes checkmark{0%, 100%{transform:scale(1)}50%{transform:scale(1.2)}}.side{width:200px;margin:0 auto}.side p{margin:0}.side-right{float:right;clear:right;margin-right:calc(-200px - 2em);background-color:var(--light-background);padding:1rem;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.06)}.side-right p{font-size:.9rem;line-height:1.6}.footnotes{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--light-background)}.footnotes::before{content:"Notes";display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-primary);margin-bottom:1.5rem;font-family:monospace}.footnotes ol{padding-left:0;counter-reset:footnote-counter;list-style:none}.footnotes ol li{position:relative;padding-left:2.5rem;margin-bottom:1.25rem;line-height:1.7}.footnotes ol li::before{content:counter(footnote-counter);counter-increment:footnote-counter;position:absolute;left:0;top:.1rem;display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;background:var(--light-background);color:var(--accent-primary);font-size:.75rem;font-weight:600;font-family:monospace;border-radius:4px;padding:0 .25rem}.footnotes ol li p{margin:0;font-size:.9rem;color:var(--font-color);opacity:.85;font-style:italic}.footnotes ol li::marker{display:none}.footnotes hr{display:none}.footnote-ref{display:inline-block;padding:.15rem .5rem;margin:0 .15rem;background:var(--accent-primary);color:var(--background);font-size:.75rem;font-weight:600;border-radius:6px;text-decoration:none;vertical-align:super;line-height:1;transition:all .2s cubic-bezier(.4, 0, .2, 1);box-shadow:none !important}.footnote-ref:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(136,57,239,.3) !important}.footnote-backref{display:inline-block;margin-left:.5rem;padding:.25rem .5rem;background:var(--light-background);color:var(--accent-primary);border-radius:6px;text-decoration:none;font-size:.85rem;transition:all .2s cubic-bezier(.4, 0, .2, 1);box-shadow:none !important}.footnote-backref:hover{background:var(--accent-primary);color:var(--background);transform:translateX(-2px)}.note-ref{cursor:pointer;border:none;box-shadow:none !important}.note-ref:hover{box-shadow:none;border:none}.bg-number{display:inline-block;background:var(--light-background);font-size:.85rem;color:var(--font-color);text-decoration:none;padding:.25rem .6rem;border-radius:8px;font-weight:500;transition:all .2s cubic-bezier(.4, 0, .2, 1)}.bg-number:hover{background:var(--accent-primary);color:var(--background);transform:translateY(-1px)}@media (max-width: 1280px){.side{width:100%;padding:0 2em}.side-right{float:none;clear:both;margin:1em auto;background:none}}@media (min-width: 1280px){.note-ref:hover~.side{display:inline-block;position:absolute;margin-left:1rem;padding:1rem;box-sizing:content-box;background:var(--light-background);border-radius:12px;box-shadow:0 4px 16px rgba(0,0,0,.1);animation:fadeInUp .2s cubic-bezier(.4, 0, .2, 1)}@keyframes fadeInUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}.suggested{flex-direction:column;align-items:stretch;margin-left:-1rem;margin-right:-1rem;padding:0;margin-top:3rem}.suggested span{font-weight:400;display:block;font-size:.85rem;color:var(--transparent-text);margin-bottom:.5rem}.suggested strong{display:block;margin-top:.25rem;color:var(--heading-color);font-weight:600}.suggested a{background:none;margin:.5rem 1rem;border-bottom:none;transition:all .2s ease;padding:1.5rem;border-radius:.35rem;background:var(--light-background);border:1px solid var(--border);color:var(--font-color);text-decoration:none}.suggested a:hover{transform:translate3D(0, -1px, 0);background:var(--light-background-hover);border-color:var(--link-color)}.suggested a:hover strong{color:var(--link-color)}@media screen and (min-width: 800px){.suggested{flex-direction:row}.suggested a{flex:0 0 calc(50% - 2rem)}.suggested a:first-of-type{text-align:right}}.projects .project:last-of-type{border-bottom-width:0}.project{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:2px solid var(--light-background)}.project .icon{font-size:1.5rem;width:40px}.project a{display:flex;align-items:center;margin-bottom:.25rem;border-width:0}.project a:hover h3{text-decoration:underline}.project a.button{margin-left:1.5rem;border-width:2px}.project h3{font-size:1.2rem;margin:0}.project .description{font-size:1.1rem;color:var(--light-font-color)}@media screen and (min-width: 800px){.project{border-bottom-width:0}.project h3{font-size:1.3rem}.project .description{font-size:1rem}}.terms a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color);border-radius:.35rem}.terms a:hover{background:var(--light-background);color:var(--dark-font-color)}.pagination{display:flex}.pagination .prev-page,.pagination .next-page{flex-grow:1;flex-shrink:1;display:flex}.pagination .next-page{justify-content:flex-end}.pagination a{border-radius:.35rem;padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.pagination a:hover,.pagination a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}#scroll-to-top{position:fixed;bottom:2rem;right:2rem;width:48px;height:48px;background:var(--accent-primary);color:var(--background);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s cubic-bezier(.4, 0, .2, 1);box-shadow:0 4px 12px rgba(136,57,239,.3);z-index:100}#scroll-to-top svg{width:24px;height:24px}#scroll-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}#scroll-to-top:hover{transform:translateY(-4px);box-shadow:0 8px 20px rgba(136,57,239,.4)}#scroll-to-top:active{transform:translateY(-2px)}@media screen and (max-width: 800px){#scroll-to-top{bottom:1.5rem;right:1.5rem;width:44px;height:44px}#scroll-to-top svg{width:20px;height:20px}}@media (prefers-color-scheme: dark){:root{--color-mode: dark}:root:not([data-user-color-scheme]){--ctp-rosewater: #f5e0dc;--ctp-flamingo: #f2cdcd;--ctp-pink: #f5c2e7;--ctp-mauve: #cba6f7;--ctp-red: #f38ba8;--ctp-maroon: #eba0ac;--ctp-peach: #fab387;--ctp-yellow: #f9e2af;--ctp-green: #a6e3a1;--ctp-teal: #94e2d5;--ctp-sky: #89dceb;--ctp-sapphire: #74c7ec;--ctp-blue: #89b4fa;--ctp-lavender: #b4befe;--ctp-text: #cdd6f4;--ctp-subtext1: #bac2de;--ctp-subtext0: #a6adc8;--ctp-overlay2: #9399b2;--ctp-overlay1: #7f849c;--ctp-overlay0: #6c7086;--ctp-surface2: #585b70;--ctp-surface1: #45475a;--ctp-surface0: #313244;--ctp-base: #1e1e2e;--ctp-mantle: #181825;--ctp-crust: #11111b;--h1-color: var(--ctp-text);--font-color: var(--ctp-text);--heading-color: var(--ctp-lavender);--dark-font-color: var(--ctp-text);--background: var(--ctp-base);--medium-font-color: var(--ctp-subtext1);--light-font-color: var(--ctp-subtext0);--light-background: var(--ctp-mantle);--light-background-hover: var(--ctp-surface0);--code-background-color: var(--ctp-mantle);--border: var(--ctp-surface0);--link-color: var(--ctp-sapphire);--link-color-darker: var(--ctp-blue);--link-hover-color: var(--ctp-mauve);--navbar-color: var(--ctp-base);--blockquote: var(--ctp-mantle);--blockquote-left: var(--ctp-mauve);--transparent-text: var(--ctp-overlay1);--transparent-bg: var(--ctp-surface0);--light-transparent-bg: var(--ctp-surface1);--input-color: var(--ctp-text);--accent-primary: var(--ctp-mauve);--accent-secondary: var(--ctp-teal);--accent-tertiary: var(--ctp-peach);--accent-success: var(--ctp-green)}}[data-user-color-scheme=dark]{--ctp-rosewater: #f5e0dc;--ctp-flamingo: #f2cdcd;--ctp-pink: #f5c2e7;--ctp-mauve: #cba6f7;--ctp-red: #f38ba8;--ctp-maroon: #eba0ac;--ctp-peach: #fab387;--ctp-yellow: #f9e2af;--ctp-green: #a6e3a1;--ctp-teal: #94e2d5;--ctp-sky: #89dceb;--ctp-sapphire: #74c7ec;--ctp-blue: #89b4fa;--ctp-lavender: #b4befe;--ctp-text: #cdd6f4;--ctp-subtext1: #bac2de;--ctp-subtext0: #a6adc8;--ctp-overlay2: #9399b2;--ctp-overlay1: #7f849c;--ctp-overlay0: #6c7086;--ctp-surface2: #585b70;--ctp-surface1: #45475a;--ctp-surface0: #313244;--ctp-base: #1e1e2e;--ctp-mantle: #181825;--ctp-crust: #11111b;--h1-color: var(--ctp-text);--font-color: var(--ctp-text);--heading-color: var(--ctp-lavender);--dark-font-color: var(--ctp-text);--background: var(--ctp-base);--medium-font-color: var(--ctp-subtext1);--light-font-color: var(--ctp-subtext0);--light-background: var(--ctp-mantle);--light-background-hover: var(--ctp-surface0);--code-background-color: var(--ctp-mantle);--border: var(--ctp-surface0);--link-color: var(--ctp-sapphire);--link-color-darker: var(--ctp-blue);--link-hover-color: var(--ctp-mauve);--navbar-color: var(--ctp-base);--blockquote: var(--ctp-mantle);--blockquote-left: var(--ctp-mauve);--transparent-text: var(--ctp-overlay1);--transparent-bg: var(--ctp-surface0);--light-transparent-bg: var(--ctp-surface1);--input-color: var(--ctp-text);--accent-primary: var(--ctp-mauve);--accent-secondary: var(--ctp-teal);--accent-tertiary: var(--ctp-peach);--accent-success: var(--ctp-green)}