﻿@font-face{font-family:"Jetbrains Mono";font-style:normal;font-weight:400;src:url("fonts/JetbrainsMono/JetBrainsMono-Regular.ttf"),local("ttf");font-display:swap}@font-face{font-family:"Jetbrains Mono";font-style:normal;font-weight:700;src:url("fonts/JetbrainsMono/JetBrainsMono-Bold.ttf"),local("ttf");font-display:swap}@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:400;src:url("fonts/SpaceGrotesk/SpaceGrotesk-Regular.ttf"),local("ttf");font-display:swap}@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:700;src:url("fonts/SpaceGrotesk/SpaceGrotesk-Bold.ttf"),local("ttf");font-display:swap}@font-face{font-family:"ZedTextFtl";src:url(fonts/zed-fonts/ZedTextL-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"ZedTextFtl";src:url(fonts/zed-fonts/ZedTextL-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"ZedDisplayFtl";src:url(fonts/zed-fonts/ZedDisplayL-Heavy.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}.cards{column-count:2;column-gap:20px;padding:12px 0}@media (max-width: 640px){.cards{column-count:1}}@media (max-width: 720px){.cards{gap:16px}}.card{display:flex;flex-direction:column;background:var(--bg-1);border:2px solid var(--border-color);border-radius:10px;break-inside:avoid;margin-bottom:20px;position:relative;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.card:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.card-media{width:100%;height:200px;overflow:hidden;background:var(--bg-2);flex-shrink:0}@media (max-width: 720px){.card-media{height:160px}}.card-image,.card-video{width:100%;height:100%;object-fit:cover;display:block}.card-video{border-radius:8px}.card-content{flex:1;display:flex;flex-direction:column;gap:12px;padding:20px}@media (max-width: 720px){.card-content{padding:16px}}.card-title{margin:0;line-height:1.3}@media (max-width: 720px){.card-title{font-size:1.1rem}}.card-tagline{margin:0;font-size:.95rem;color:var(--text-color-secondary);line-height:1.5}.card-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;position:relative;z-index:10}.card-links{display:flex;gap:10px;flex-shrink:0;position:relative;z-index:10}.card-tags{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;align-items:center}.card-tag{font-size:.7rem;color:var(--text-1);white-space:nowrap}.character-note{display:flex;flex-direction:row;margin-block:1.5rem;margin-inline-start:auto;margin-inline-end:auto}.character-note.character-right{flex-direction:row-reverse}.character-note.character-right .character-avatar img{transform:scaleX(-1)}.character-note.character-left{flex-direction:row}.character-note .character-avatar{font-size:2rem;align-self:flex-start;flex-shrink:0}.character-note .character-avatar img{--head-size: 3.2em;width:var(--head-size);height:var(--head-size)}.character-note .character-content{font-size:var(--font-size);align-self:flex-start;max-width:min(93%,45em);overflow:hidden}.character-note .character-bubble{--character-bubble-bg: var(--bg-1);--character-bubble-border: var(--border-color);--character-code-bg: var(--bg-0);background:var(--character-bubble-bg);border:1px solid var(--character-bubble-border);border-radius:.5rem;padding-inline:.9em;padding-block:.2em}:root{--code-font: var(--code-font), monospace;--bg-primary: var(--bg-1);--text-color: var(--text-0);--label-color: #f0f0f0;--highlight-color: #f0f0f0}:root.dark{--highlight-color: #204e8a}pre{background-color:var(--bg-primary) !important;border-radius:5px;border:1px solid var(--border-color);line-height:1.4;overflow-x:auto;padding:1em;margin-top:.75rem;position:relative}pre mark{background-color:var(--highlight-color) !important;padding:0;border-radius:0px}.code-label{background:#333;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-js{background:#f7df1e;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-yaml{background:#f71e6a;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-shell{background:#4eaa25;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-json{background:#1e90ff;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-python{background:#3572a5;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-css{background:#264de4;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-go{background:#00add8;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-markdown{background:blue;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-rust{background:#ff4647;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-java{background:#f89820;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-csharp{background:#178600;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-ruby{background:#701516;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-swift{background:#f05138;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-php{background:#777bb4;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-typescript{background:#3178c6;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-scala{background:#c22d40;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-kotlin{background:#f18e33;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-lua{background:navy;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-perl{background:#0298c3;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-haskell{background:#5e5086;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-r{background:#198ce7;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-dart{background:#00d2b8;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-elixir{background:#6e4a7e;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-clojure{background:#5881d8;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-bash{background:#4eaa25;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-sh{background:#4eaa25;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-zsh{background:#4eaa25;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-shellscript{background:#4eaa25;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-shell-script{background:#4eaa25;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}.label-default{background:#333;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:11px;font-weight:700;letter-spacing:.025rem;padding:.2rem .6rem;text-align:center;text-transform:uppercase;position:absolute;right:2.8rem;top:0;border-radius:0 0 4px 4px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,.1);user-select:none}code{background-color:var(--bg-primary);padding:.1em .2em;border-radius:5px;border:1px solid var(--border-color);font-family:var(--code-font)}pre code{background-color:rgba(0,0,0,0) !important;color:var(--text-color);font-size:100%;padding:0;border:none;font-family:var(--code-font)}pre code table{margin:0;border-collapse:collapse;font-family:var(--code-font)}pre code table mark{display:block;color:unset;padding:0;background-color:var(--highlight-color) !important;filter:brightness(1.2)}pre code td,pre code th,pre code tr{padding:0;border:none}pre code tbody td:first-child{text-align:center;user-select:none;min-width:60px;border-right:none}pre code tbody tr:nth-child(even),pre code thead tr{background-color:unset}.clipboard-button{appearance:none;background:var(--bg-0);border:1px solid var(--border-color);border-radius:6px;width:32px;height:32px;padding:0;margin:0;cursor:pointer;position:absolute;top:0;right:.5rem;border-top:none;border-radius:0 0 6px 6px;z-index:10;display:flex;align-items:center;justify-content:center;color:var(--text-2);transition:all .2s cubic-bezier(.4, 0, .2, 1);box-shadow:0 2px 5px rgba(0,0,0,.1);opacity:.8;user-select:none;overflow:visible}.clipboard-button:hover{opacity:1;color:var(--primary-color);background-color:var(--bg-1);border-color:var(--primary-color);box-shadow:0 4px 10px rgba(0,0,0,.2)}.clipboard-button:active{transform:translateY(0)}.clipboard-button svg{width:16px;height:16px;stroke:currentColor;fill:none;display:block;pointer-events:none;transition:transform .1s ease}.clipboard-button:active svg{transform:scale(.9)}.page-header{font-size:2.5em;line-height:100%;font-family:var(--header-font);margin:4rem 0px 1rem 0px}.not-found-header{font-family:var(--header-font);position:absolute;top:40%;left:50%;transform:translate(-50%, -50%);text-align:center;font-size:3em}nav{position:sticky;top:0;z-index:100;background:var(--bg-0);padding:calc(1rem + env(safe-area-inset-top)) 0 .5rem 0;margin-top:-1rem;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;}@media (max-width: 600px){nav{flex-direction:column}}nav .left-nav{display:flex;flex-direction:row;align-items:center;gap:12px;font-size:1.5rem;justify-content:space-between;width:100%}@media (min-width: 601px){nav .left-nav{width:auto}}nav .left-nav .socials{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:flex-end;gap:8px}nav .left-nav .socials .social img{width:16px;height:16px}nav .left-nav .socials .social{padding:.4rem;border-radius:8px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}nav .left-nav .socials .social:hover{background-color:var(--bg-1)}nav .mobile-menu-btn{display:none;background:none;border:none;cursor:pointer;padding:.5rem;color:var(--text-0)}@media (max-width: 600px){nav .mobile-menu-btn{display:flex;align-items:center;justify-content:center}}nav .mobile-menu-btn svg{width:24px;height:24px;fill:currentColor}nav #dark-mode-toggle,nav .search-button{padding:.4rem;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s ease;background:none;border:none;cursor:pointer;color:var(--text-0)}nav #dark-mode-toggle:hover,nav .search-button:hover{background-color:var(--bg-1)}nav #dark-mode-toggle>img,nav .search-button>img{width:16px;height:16px;transition:transform .3s cubic-bezier(.175, .885, .32, 1.275)}nav #dark-mode-toggle{margin-left:.2rem}nav #dark-mode-toggle:hover>img{transform:scale(1.2) rotate(15deg)}nav #dark-mode-toggle:active{animation:button-bounce .4s cubic-bezier(.175, .885, .32, 1.275)}nav .right-nav{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:1.5rem}@media (max-width: 600px){nav .right-nav{width:100%;flex-direction:column;align-items:stretch;padding-top:0;gap:0;max-height:0;opacity:0;overflow:hidden;visibility:hidden;transition:all .4s cubic-bezier(.16, 1, .3, 1);transform:translateY(-10px)}nav .right-nav.active{max-height:500px;opacity:1;visibility:visible;transform:translateY(0);padding-top:1rem;gap:.75rem}nav .right-nav a{padding:.5rem 0;border-bottom:1px solid var(--border-color);width:100%}}nav .right-nav a{font-family:var(--header-font);font-weight:500;font-size:.95rem;text-decoration:none;color:var(--text-1);transition:color .2s ease}nav .right-nav a:hover{color:var(--primary-color);background-color:rgba(0,0,0,0)}@keyframes theme-pop{0%{transform:scale(1)}50%{transform:scale(1.4) rotate(-10deg)}100%{transform:scale(1)}}@keyframes button-bounce{0%{transform:scale(1)}35%{transform:scale(.82) rotate(-3deg)}65%{transform:scale(1.1) rotate(2deg)}100%{transform:scale(1) rotate(0)}}.theme-icon-pop{animation:theme-pop .5s cubic-bezier(.34, 1.56, .64, 1)}@keyframes slideDownNav{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.logo{display:flex;align-items:center;gap:.8rem;text-decoration:none;font-weight:bold;font-size:1.2rem;padding:.4rem .6rem;margin:-.4rem -.6rem;border-radius:8px;transition:all .2s ease;border-bottom:unset;background-image:unset}.logo>img{border:unset;width:auto;height:1.8rem;vertical-align:middle}.logo:hover{background-color:var(--bg-1);color:var(--primary-color) !important}.meta{color:#999;display:flexbox;align-items:center;flex-wrap:wrap}h1,h2,h3,h4,h5,h6{font-family:var(--header-font);font-weight:600;letter-spacing:-.02em;margin-top:1.5em;margin-bottom:.5em}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit}h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{background-color:rgba(0,0,0,0) !important;color:inherit !important}h1{font-size:2.25rem}h2{font-size:1.8rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.1rem}h6{font-size:1rem}[data-hint]{position:relative}[data-hint]::after{content:attr(data-hint);position:absolute;bottom:-30px;left:50%;transform:translateX(-50%) translateY(5px);background:var(--bg-1);color:var(--text-0);padding:.25rem .6rem;border-radius:6px;font-size:.75rem;font-weight:600;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:all .2s cubic-bezier(.16, 1, .3, 1);border:1px solid var(--border-color);box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:1000}[data-hint]:hover::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.logo[data-hint]::after{bottom:-35px}img{max-width:100%;border-radius:.5rem}figure{box-sizing:border-box;display:inline-block;margin:0;max-width:100%}figure img{max-height:500px}@media screen and (min-width: 600px){figure{padding:0 40px}}figure h4{font-size:1rem;margin:0;margin-bottom:1em}figure h4::before{content:"↳ "}.next-image-wrapper{position:relative;overflow:hidden;width:100%;background-size:cover;background-position:center;background-color:var(--bg-2, #1a1a1a);transform:translateZ(0);}.next-image-target{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;color:rgba(0,0,0,0)}@media only screen and (max-width: 1365px){.toc{display:none}}.toc li,.toc a{font-family:sans-serif;color:var(--text-2);transition:none;border-bottom:none}.toc a:hover{background-color:var(--primary-color);color:var(--hover-color) !important;transition:none}.toc .heading{font-weight:700}.toc ul{list-style-type:none;padding-left:1em;margin-top:0;margin-bottom:0}.toc>ul{padding-left:0}.toc li.selected,.toc li.selected>a{color:var(--text-0)}.toc .parent>a{color:var(--text-0)}:root{--note-header-bg: var(--bg-2);--note-header-color: var(--text-0);--note-content-bg: var(--bg-1)}.note-container{border-radius:4px;overflow:hidden;margin:1em 0;position:relative;border-left:3px solid var(--primary-color);font-family:var(--paragraph-font)}.note-toggle,.note-header{color:var(--note-header-color);background-color:var(--note-header-bg);padding:10px 25px;text-align:left;border:none;width:100%;position:relative;outline:none;font-size:1.2em;transition:background-color .3s ease}.note-toggle p,.note-header p{margin:0}.note-toggle .note-center,.note-header .note-center{text-align:center;padding-right:50px}.note-toggle .note-icon,.note-toggle .note-icon,.note-header .note-icon,.note-header .note-icon{padding-left:25px}.note-toggle{font-family:inherit;padding:10px 25px;cursor:pointer;position:relative}.note-toggle::before{content:"▼";position:absolute;right:20px;top:50%;transform:translateY(-50%);}.note-toggle:hover,.note-toggle:focus{color:var(--note-header-color);background-color:var(--note-header-bg);outline:none}.note-content{padding:10px 20px;background-color:var(--note-content-bg)}.note-icon::before{content:"✎";color:var(--primary-color);position:absolute;left:20px;top:50%;transform:translateY(-50%)}summary{padding-left:.5em}summary:hover{background-color:var(--primary-color);color:var(--hover-color);cursor:pointer}.primary-color{color:var(--primary-color)}.draft-label{color:var(--hover-color);text-decoration:none;padding:2px 4px;border-radius:4px;margin-left:6px;background-color:var(--primary-color)}::-moz-selection{background:var(--primary-color);color:var(--hover-color);text-shadow:none}::selection{background:var(--primary-color);color:var(--hover-color)}hr{color:var(--border-color);background:none;margin:1.2rem auto}blockquote{border-left:3px solid var(--primary-color);color:#737373;margin:0;padding-left:1em}a{color:inherit;text-decoration:none;}a:hover{background-color:var(--primary-color);color:var(--hover-color)}a:hover>code{background-color:var(--primary-color);color:var(--hover-color);border:none;padding:0 .2em}a.talk-video:hover{background-color:rgba(0,0,0,0);color:inherit}main a{border-bottom:2px solid var(--primary-color);z-index:1}main a:not(.stretched-link){position:relative}main .meta a,main .talks-grid a,main .cards a{border-bottom:none}main .zola-anchor{border-bottom:none}time{color:var(--text-1)}.post-list>ul,.tag-list>ul{margin:0;padding:1rem 0 0 0}.post-list .list-item,.tag-list .list-item{margin-bottom:1rem;list-style-type:none;border:1px solid var(--border-color);border-radius:8px;padding:1rem 1.25rem;background:var(--bg-1);position:relative;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.post-list .list-item:hover,.tag-list .list-item:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.post-list .list-item:hover .readmore,.tag-list .list-item:hover .readmore{text-decoration:underline;text-decoration-color:var(--primary-color)}.post-list .post-header,.tag-list .post-header{display:grid;align-items:center}@media all and (max-width: 640px){.post-list .post-header,.tag-list .post-header{grid-template-rows:auto 1fr;gap:.5rem}}@media all and (min-width: 640px){.post-list .post-header,.tag-list .post-header{grid-template-columns:auto 1fr;gap:1.5rem}}.post-list .post-header h1,.tag-list .post-header h1{margin:0;font-size:1.15rem;font-weight:600;font-family:var(--header-font)}.post-list .post-header h1 a,.tag-list .post-header h1 a{border-bottom:none}.post-list .post-header time,.tag-list .post-header time{font-family:var(--mono-text-font);text-align:left;color:var(--text-2);font-size:.9rem;margin:0}del{text-decoration-color:var(--primary-color);text-decoration-thickness:3px}.MathJax_Display,.MJXc-display,.MathJax_SVG_Display{overflow-x:auto;overflow-y:hidden}.readmore{display:inline-block;margin-top:.5rem;color:var(--primary-color);font-weight:500;font-size:.9rem;text-decoration:none;}.readmore:hover{text-decoration:underline;text-decoration-color:var(--primary-color)}.stretched-link{text-decoration:none !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;content:"";pointer-events:auto;}table{border-spacing:0;border-collapse:collapse;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;max-width:100%}table th{padding:6px 13px;border:1px solid #dfe2e5;font-size:large}table td{padding:6px 13px;border:1px solid #dfe2e5}.authors a::before{content:"@";display:inline;white-space:nowrap !important}.mermaid{text-align:center;margin-top:1em;margin-bottom:1em}.mermaid strong{font-weight:bold}.search-button{background:none;border:none;padding:2px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;margin-left:.25em}.search-button img{border:none}.search-button .search-icon{width:16px;height:16px}.search-button:hover{background-color:rgba(0,0,0,0)}.search-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;background:rgba(0,0,0,.2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.search-modal #modal-content{position:relative;margin:8% auto;width:80%;max-width:28rem;background-color:var(--bg-0);border:1px solid var(--bg-1);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1)}.search-modal #searchBar{display:flex;align-items:center;padding:1rem;gap:.5rem}.search-modal #searchBar #searchInput{flex:1;padding:.75rem 2.5rem .75rem 1rem;font-size:16px !important;color:var(--text-0);background:var(--bg-1);border:1px solid var(--bg-1);border-radius:20px;width:100%;box-sizing:border-box}.search-modal #searchBar #searchInput:focus{outline:none;border-color:var(--primary-color)}.search-modal #searchBar #searchInput::placeholder{color:var(--text-1)}.search-modal #searchBar .close-icon{position:absolute;right:1.5rem;display:none;padding:4px;cursor:pointer}.search-modal #searchBar .close-icon svg{width:1.3rem;height:1.3rem;fill:var(--text-1)}.search-modal #results-container{display:none;border-top:1px solid var(--bg-1)}.search-modal #results-container #results-info{padding:.5rem;color:var(--text-1);font-size:.8rem;text-align:center}.search-modal #results-container #results{max-height:50vh;overflow-y:auto}.search-modal #results-container #results>div{padding:.75rem 1rem;cursor:pointer}.search-modal #results-container #results>div[aria-selected=true]{background:var(--primary-color)}.search-modal #results-container #results>div[aria-selected=true] *{color:var(--hover-color) !important}.search-modal #results-container #results>div span:first-child{display:block;color:var(--text-0);font-weight:500;margin-bottom:.25rem}.search-modal #results-container #results>div span:nth-child(2){display:block;color:var(--text-1);font-size:.9rem}.search-modal #results-container #results>div:hover:not([aria-selected=true]){background:var(--bg-1)}.search-modal #modal-content{position:relative;margin:8% auto;width:80%;max-width:28rem;background-color:var(--bg-0);border:1px solid var(--bg-1);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);padding:calc(1rem + env(safe-area-inset-top)) calc(1rem + env(safe-area-inset-right)) calc(1rem + env(safe-area-inset-bottom)) calc(1rem + env(safe-area-inset-left))}.search-modal #modal-content h1{margin-top:0;margin-bottom:1rem;font-size:1.2rem}#searchBar{position:relative;display:flex;align-items:center;padding:1rem}#searchBar .clear-button{position:absolute;right:1.5rem;background:none;border:none;padding:4px;cursor:pointer;display:none;width:24px;height:24px}#searchBar .clear-button svg{width:100%;height:100%;fill:var(--text-1)}#searchBar .clear-button:hover svg{fill:var(--primary-color)}#searchBar #searchInput{padding-right:2.5rem}@media only screen and (max-width: 600px){.search-modal #modal-content{margin:4% auto;width:95%;padding:.5rem}.search-modal #searchBar{padding:.5rem}.search-modal #results{max-height:70vh}}.talks-grid{display:grid;gap:24px;padding:12px 0;grid-template-rows:max-content;grid-auto-rows:1fr}@media all and (min-width: 640px) and (max-width: 1023.98px){.talks-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}}.talk-card{background:var(--bg-1);border:2px solid var(--border-color);border-radius:10px;overflow:hidden;display:flex;flex-direction:row;}@media all and (max-width: 1023.98px){.talk-card{flex-direction:column}}.talk-card .talk-video{position:relative;flex-shrink:0;aspect-ratio:16/9}@media all and (min-width: 1024px){.talk-card .talk-video{width:364.4444444444px;min-height:205px;height:100%}}.talk-card .talk-video .talk-image{border:unset;position:absolute;width:100%;height:100%;color:rgba(0,0,0,0);top:0;left:0;bottom:0;right:0;display:block;object-fit:cover;filter:brightness(75%) grayscale(50%)}.talk-card .talk-video .video-play-btn{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.talk-card .talk-video .video-play-btn .rounded-btn{background-color:var(--bg-2);border-radius:9999px;padding:1rem;display:flex;align-items:center;justify-content:center}.talk-card .talk-info{padding:1.5rem;padding-top:1rem;padding-bottom:1rem;display:flex;flex-direction:column;flex-grow:1}.talk-card .talk-info .talk-title{margin:0}.talk-card .talk-info .talk-description{margin-top:.5rem;margin-bottom:1rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.talk-card .talk-info .meta{display:flex;flex-wrap:wrap;gap:8px}.icon-button{display:inline-flex;align-items:center;padding:4px 8px;gap:3px;background:var(--bg-2);font-size:.75rem;color:var(--text-color);border:1px solid var(--border-color) !important;border-radius:6px}.icon-button svg,.icon-button img{flex-shrink:0;width:16px;height:16px}.icon-button img{filter:var(--icon-filter)}.icon-button:hover{cursor:pointer;background:var(--bg-1);color:var(--text-color);border:1px solid var(--border-color)}:root{--font-size-base: 15px;--mono-text-font: "JetBrains Mono", monospace;--text-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--header-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--code-font: "JetBrains Mono", monospace;--line-height: 1.6;--page-width: 920px}html{background-color:var(--bg-0);color:var(--text-0);font-family:var(--text-font);font-size:var(--font-size-base);line-height:var(--line-height)}@media (max-width: 992px){html{font-size:calc(var(--font-size-base)*.97)}}@media (max-width: 768px){html{font-size:calc(var(--font-size-base)*.95)}}@media (max-width: 576px){html{font-size:calc(var(--font-size-base)*.92)}}body{display:flex;flex-grow:1;padding:.9rem;padding-left:calc(.9rem + env(safe-area-inset-left));padding-right:calc(.9rem + env(safe-area-inset-right));padding-bottom:calc(1.5rem + env(safe-area-inset-bottom));margin-bottom:1.5rem;min-height:calc(100vh - 150px)}@media (min-width: 992px){body{flex-direction:row;justify-content:center;align-items:flex-start}}body .content{width:100%;max-width:var(--page-width);flex-shrink:0;padding-bottom:1.5rem;margin-bottom:1.5rem;word-wrap:break-word}body .content section.body{font-size:.925rem}body .content .section-content{font-size:.925rem}body .left-content{width:100%}@media (min-width: 992px){body .left-content{flex:1 1 0;min-width:0}}body .right-content{width:100%}@media (min-width: 992px){body .right-content{flex:1 1 0;min-width:0;position:sticky;top:60px;padding:1em;overflow-y:auto;max-height:calc(100vh - 100px)}}:root{--hdr-red: oklch(0.6 0.3 25);--reveal-r: 0px}@media (dynamic-range: high){:root{--hdr-red: oklch(0.65 0.35 25)}}html.theme-preparing{transform-origin:var(--reveal-x, 50%) var(--reveal-y, 50%);animation:implode-pull 1.2s cubic-bezier(.4, 0, 1, 1) both}html.theme-preparing::before{content:"";position:fixed;inset:0;z-index:99999;pointer-events:none;background:radial-gradient(circle at var(--reveal-x, 50%) var(--reveal-y, 50%), rgba(0,0,0,0) 0%, rgba(0,0,0,0) 15%, rgba(0,0,0,.8) 100%);animation:vignette-in 1.2s cubic-bezier(.4, 0, 1, 1) both}html.theme-preparing::after{content:"";position:fixed;left:var(--reveal-x, 50%);top:var(--reveal-y, 50%);transform:translate(-50%, -50%);width:0;height:0;z-index:100000;pointer-events:none;border-radius:50%;background:#fff;box-shadow:0 0 80px 40px #fff,0 0 160px 80px var(--hdr-red);animation:flash-collapse 1.2s cubic-bezier(.4, 0, 1, 1) both}@keyframes implode-pull{0%{transform:scale(1);filter:none}30%{transform:scale(.998);filter:saturate(1.2)}50%{transform:scale(.993);filter:saturate(1.6) brightness(.95)}65%{transform:scale(.98);filter:saturate(2) brightness(.85)}75%{transform:scale(.965) translate3d(-5px, 0, 0);filter:saturate(2.5) brightness(.8)}80%{transform:scale(.96) translate3d(6px, 0, 0)}85%{transform:scale(.96) translate3d(-7px, 0, 0)}90%{transform:scale(.965) translate3d(4px, 0, 0)}95%{transform:scale(.975) translate3d(-2px, 0, 0)}100%{transform:scale(1);filter:brightness(1.5)}}@keyframes vignette-in{0%{opacity:0}30%{opacity:.2}60%{opacity:.7}85%{opacity:1}100%{opacity:0}}@keyframes flash-collapse{0%, 80%{width:0;height:0;opacity:0}90%{width:40px;height:40px;opacity:.7}95%{width:120px;height:120px;opacity:1}100%{width:300px;height:300px;opacity:0}}::view-transition-old(root){z-index:1;animation:none}::view-transition-new(root){z-index:2;animation:none;clip-path:circle(0px at 50% 50%);filter:drop-shadow(1px 0 0 rgba(255,0,0,.5)) drop-shadow(-1px 0 0 rgba(0,255,255,.5)) drop-shadow(0 0 10px var(--hdr-red))}.ripple-ring{position:fixed;border-radius:50%;pointer-events:none;z-index:100001;border:2px solid var(--hdr-red);box-shadow:0 0 8px var(--hdr-red),inset 0 0 8px var(--hdr-red);transform:translate(-50%, -50%)}