*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.14 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;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}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-inset-y-5{top:-1.25rem;bottom:-1.25rem}.-top-\[90px\]{top:-90px}.bottom-0{bottom:0}.left-0{left:0}.left-1\/2{left:50%}.left-5{left:1.25rem}.right-0{right:0}.top-\[-15px\]{top:-15px}.z-10{z-index:10}.z-50{z-index:50}.z-\[10000\]{z-index:10000}.z-\[9999\]{z-index:9999}.z-\[99\]{z-index:99}.m-0{margin:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.ml-auto{margin-left:auto}.mr-0{margin-right:0}.mr-2{margin-right:.5rem}.mr-5{margin-right:1.25rem}.mt-0\.5{margin-top:.125rem}.box-border{box-sizing:border-box}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.size-6{width:1.5rem;height:1.5rem}.h-1{height:.25rem}.h-11{height:2.75rem}.h-3{height:.75rem}.h-4{height:1rem}.h-8{height:2rem}.h-\[120px\]{height:120px}.h-\[30px\]{height:30px}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.min-h-\[370px\]{min-height:370px}.w-16{width:4rem}.w-24{width:6rem}.w-3{width:.75rem}.w-4{width:1rem}.w-\[95\%\]{width:95%}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0}.max-w-\[95\%\]{max-width:95%}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-4{--tw-translate-y:1rem}.transform,.translate-y-4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-content-start{place-content:start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-3{gap:.75rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.gap-y-3{row-gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overscroll-contain{overscroll-behavior:contain}.rounded-\[0\.375em\]{border-radius:.375em}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.rounded-t-\[25px\]{border-top-left-radius:25px;border-top-right-radius:25px}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0}.border-r{border-right-width:1px}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-\[var\(--bg-hover\)\]{border-color:var(--bg-hover)}.border-\[var\(--border-light\)\]{border-color:var(--border-light)}.border-\[var\(--border-secondary\)\]{border-color:var(--border-secondary)}.bg-\[rgba\(0\2c 0\2c 0\2c 0\.4\)\]{background-color:rgba(0,0,0,.4)}.bg-\[var\(--bg-hover\)\]{background-color:var(--bg-hover)}.bg-\[var\(--bg-primary\)\]{background-color:var(--bg-primary)}.bg-\[var\(--border-secondary\)\]{background-color:var(--border-secondary)}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-2{padding:.5rem}.p-\[0\.1875em\]{padding:.1875em}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-1{padding-bottom:.25rem}.text-left{text-align:left}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-sm\/tight{font-size:.875rem;line-height:1.25}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.tracking-widest{letter-spacing:.1em}.text-\[var\(--border-secondary\)\]{color:var(--border-secondary)}.text-\[var\(--text-body\)\]{color:var(--text-body)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-primary\)\]{color:var(--text-primary)}.text-\[var\(--text-subtle\)\]{color:var(--text-subtle)}.opacity-0{opacity:0}.opacity-100{opacity:1}.mix-blend-multiply{mix-blend-mode:multiply}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06))}.drop-shadow-md,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-transform{will-change:transform}*,:after,:before{margin-block:0;padding:0;text-rendering:optimizeLegibility;box-sizing:border-box}[x-cloak]{display:none}:root{--bg-primary:#faf9f9;--bg-navbar:hsla(0,9%,98%,.7);--bg-hover:#e6e5e5;--text-primary:#0d0d0d;--color-accent:#e09f3e;--color-accent-rgb:224,159,62;--text-body:#292929;--text-subtle:#707070;--text-muted:#4d4c4c;--bg-avatar:hsla(0,0%,100%,.15);--border-primary:#404040;--border-secondary:#aeaeae;--border-light:#d9d9d9;--border-light-hover:var(--border-secondary);--bg-tag:#f0f0f0;--swiper-active:#fff;--swiper-inactive:hsla(0,0%,100%,.75);--bg-table-stripe:#f6f6f6;--text-subtle:grey;--font-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI Variable Display",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-serif:"Libre Baskerville",serif;--font-mono:ui-monospace,"SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:0.9375rem;--text-lg:1rem;--text-xl:1.125rem;--text-2xl:1.25rem;--text-3xl:1.5rem;--text-4xl:1.625rem;--text-5xl:2rem;--font-normal:400;--font-medium:500;--font-semibold:600;--leading-tight:1.125;--leading-normal:1.5;--tracking-tight:-0.0125rem;--tracking-base:-0.00625rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-14:3.5rem;--space-16:4rem;--space-24:6rem;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px}.dark{--bg-primary:#0f0f0f;--bg-navbar:hsla(0,0%,6%,.7);--bg-hover:#262626;--text-primary:#f2f2f2;--color-accent:#e09f3e;--color-accent-rgb:224,159,62;--text-body:#e0e0e0;--text-subtle:#8a8a8a;--text-muted:#c7c7c7;--bg-avatar:rgba(0,0,0,.15);--border-primary:#dcdcdc;--border-secondary:#646464;--border-light:#858585;--border-light-hover:#a0a0a0;--bg-tag:#282828;--bg-table-stripe:rgba(25,25,25,.5)}body{display:block;color:var(--text-primary);background-color:var(--bg-primary);font-family:var(--font-sans);font-size:var(--text-base);letter-spacing:var(--tracking-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;hanging-punctuation:first allow-end last;transition:background-color .4s ease-in-out,color .4s ease-in-out;overflow-x:hidden}main{min-height:70vh;max-width:600px;margin:0 auto}.theme-transition{transition:background-color .4s ease-in-out,color .4s ease-in-out,border-color .4s ease-in-out}.menu,body footer,body h1,body h2,body h3,body h4{max-width:600px}body h1,body h2,body h3,body h4{font-weight:var(--font-medium);text-wrap:balance}body h4 .lucide{color:var(--text-subtle);margin-left:var(--space-1)}body a .lucide,body p .lucide{color:var(--text-subtle);margin-left:.3125rem;width:var(--space-5);min-width:var(--space-5);max-width:var(--space-5)}body strong{color:var(--text-primary);font-weight:var(--font-semibold);transition:color .4s ease-in-out}body em{font-family:var(--font-serif);font-size:var(--text-lg);letter-spacing:normal;line-height:normal}body figcaption,body li,body ol,body p,body ul{color:var(--text-body);font-weight:var(--font-normal);max-width:600px;margin:var(--space-4) auto;text-wrap:pretty;transition:color .4s ease-in-out}body ul{margin:var(--space-2) auto var(--space-5)}body ol li,body ul li{margin:var(--space-2) 0 var(--space-2) var(--space-6)}body li{padding-left:var(--space-2)}.subtle,body li::marker{color:hsl(from var(--text-body) h s l/30%);transition:color .4s ease-in-out}body figcaption{color:var(--text-muted);text-align:center;font-size:.8125rem}hr.divider-standard{max-width:600px;height:0;border-top:1px dashed hsl(from var(--text-primary) h s l/20%);margin:var(--space-3) auto var(--space-8);transition:border-color .4s ease-in-out}a{display:inline;color:var(--text-subtle);text-decoration:underline;-webkit-text-decoration:underline;text-decoration-style:dashed;-webkit-text-decoration-style:dashed;text-decoration-color:hsl(from var(--text-body) h s l/30%);-webkit-text-decoration-color:hsl(from var(--text-body) h s l/30%);text-decoration-thickness:.0625rem;-webkit-text-decoration-thickness:.0625rem;text-underline-offset:var(--space-1);-webkit-text-underline-offset:var(--space-1);transition:all .12s ease-in-out}a:hover{color:var(--text-body);text-decoration-color:hsl(from var(--text-body) h s l/50%);-webkit-text-decoration-color:hsl(from var(--text-body) h s l/40%)}a h4{color:var(--text-primary);transition:color .4s ease-in-out}p.hero-links a{margin-right:var(--space-5);margin-bottom:var(--space-1)}p.hero-links a:hover,p.hero-links a:hover .lucide{color:var(--text-body)}a.link-with-icon{display:inline-flex;align-items:center;text-decoration:none;-webkit-text-decoration:none}a.link-with-icon:hover .lucide{color:var(--text-body);transition:color .12s ease-in-out}a.link-with-icon:not(:hover) .lucide{transition:color .12s ease-in-out,transition-delay .12s}.site-navigation{position:sticky;top:0;background-color:var(--bg-navbar);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:98;transition:background-color .4s ease-in-out}.navigation-container{display:flex;margin-inline:auto;justify-content:space-between;align-items:center;max-width:600px;padding:var(--space-3) 0}.navigation-left{display:flex;align-items:center;margin-left:0}.navigation-left .navigation-brand{display:flex;align-items:center;color:var(--text-primary);font-weight:var(--font-semibold);margin-right:var(--space-6);transition:all .12s ease-in-out;text-decoration:none}.navigation-left .navigation-brand .back{color:inherit;transition:color .12s ease-in-out}.navigation-left .navigation-brand:hover .back{color:inherit}.navigation-left .navigation-brand:hover{color:var(--text-subtle);text-decoration-line:none;-webkit-text-decoration-line:none}.navigation-right{display:flex;align-items:center;margin-right:0}.navigation-links{display:flex}.navigation-links a{color:var(--text-primary);font-weight:var(--font-medium);text-decoration:none;-webkit-text-decoration:none;margin-right:var(--space-6);transition:all .12s ease-in-out}.navigation-links a:hover{color:var(--text-subtle)}.theme-toggle{position:relative;z-index:50;width:auto;height:auto}.theme-toggle button{display:flex;align-items:center;justify-content:center;width:var(--space-8);height:var(--space-8);margin-left:var(--space-1);background-color:var(--bg-hover);border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm);cursor:pointer}.theme-toggle button:hover{background-color:var(--border-secondary)}.theme-toggle button:active{background-color:var(--border-light)}.theme-toggle [data-icon]{display:none}.theme-toggle[data-mode=dark] [data-icon=dark],.theme-toggle[data-mode=light] [data-icon=light],.theme-toggle[data-mode=system] [data-icon=system]{display:block}.back{width:16px;height:16px;margin-right:var(--space-2);color:inherit;transform:translateY(1px);margin-left:0!important}.command{position:absolute;top:-15px;left:20px;display:flex;justify-content:center;align-items:center;padding:3px 15px;border-radius:var(--radius-full);border:2px solid var(--border-light);background:var(--bg-primary);line-height:normal;transition:none;z-index:9999}.command p{margin:0}.hero-avatar-wrapper{position:relative;display:inline-block}.hero-avatar{width:88px;height:88px;border-radius:33% 67% 40% 60%/66% 39% 61% 34%;box-shadow:0 .7px 1.9px -24px rgba(0,0,0,.124),0 1.7px 4.9px -24px rgba(0,0,0,.177),0 3.5px 9.9px -24px rgba(0,0,0,.223),0 7.3px 20.4px -24px rgba(0,0,0,.276),0 20px 56px -24px rgba(0,0,0,.4);position:relative;opacity:.85}.hero-avatar:hover{transform:translateY(-4px);transition:transform .2s ease-in-out}.hero-avatar:not(:hover){transform:translate(0);transition:transform .2s ease-in-out,transition-delay .2s}.email-tooltip-wrapper{display:inline-block;white-space:nowrap}.email-tooltip{position:absolute;background-color:var(--text-primary);color:var(--bg-primary);text-align:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-medium);visibility:hidden;transform:translateX(-50%);left:50%;bottom:calc(100% + 4px);transition:visibility 80ms ease-in-out}.email-tooltip-wrapper:hover .email-tooltip{visibility:visible}h1.hero-title{font-size:var(--text-3xl);font-weight:var(--font-normal);line-height:1.2;letter-spacing:var(--tracking-tight);text-wrap:pretty;max-width:28ch;margin-top:var(--space-6);margin-bottom:var(--space-4);margin-left:0}.hero-section{margin:var(--space-24) auto var(--space-16);max-width:600px}h1.main-title{font-size:var(--text-4xl);font-family:var(--font-serif);line-height:var(--leading-tight)}.page-header{margin:var(--space-24) auto var(--space-8)}h2.section-heading{font-size:1.4rem;font-family:var(--font-serif);line-height:var(--leading-tight);margin:var(--space-14) auto var(--space-3)}h2.section-title_process{font-size:var(--text-2xl);line-height:1;margin:var(--space-10) auto var(--space-2)}.hero-section p{max-width:44ch;margin-left:0}.hero-title-accent{font-family:var(--font-serif);color:var(--text-muted);line-height:normal;transition:color .4s ease-in-out}.text-italic{font-style:italic}.compact-heading{color:var(--text-primary);margin:var(--space-10) auto var(--space-4)}.posts-grid,.projects-grid{max-width:600px;margin:1.2rem auto 0}.project-card-title{line-height:var(--leading-normal);display:flex;align-items:center;margin:0}.project-card{display:flex;align-items:flex-start;gap:var(--space-4);text-decoration:none;-webkit-text-decoration:none;padding:var(--space-2) 0}.project-card-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;margin-top:4px}.project-card-icon svg{width:18px;height:18px;color:var(--secondaryi)}div.project-card-content{display:flex;flex-direction:column;gap:.125rem;border:none;padding:0;margin-bottom:var(--space-2);transition:background-color .12s ease-in-out;flex-grow:1}p.project-card-description{color:var(--text-subtle);line-height:1.4;max-width:56ch;margin:0}a.project-card{text-decoration:none;-webkit-text-decoration:none}a.project-card:hover .lucide{color:var(--text-body);transform:translate(3px);transition:all .12s ease-in-out}a.project-card:not(:hover) .lucide{transform:translate(0);transition:all .12s ease-in-out,transition-delay .12s}.projects-view-all-link{border-radius:var(--radius-full);border:2px solid var(--border-light);padding:4px var(--space-3);transition:all .12s ease-in-out}.projects-view-all-link:hover{border:2px solid var(--border-light-hover)}.posts-grid{margin-bottom:7px}.post-card{display:flex;flex-direction:column;align-items:flex-start;gap:0;width:100%;position:relative;overflow:hidden;padding:var(--space-2) 0 var(--space-3);outline:none;transition:none}.post-card-link{width:100%;gap:10px}.post-card-title{display:flex;align-items:center;margin-bottom:var(--space-2);text-decoration:underline;-webkit-text-decoration:underline}.post-card-title svg{position:relative;top:1px;width:18px;height:18px;margin-right:var(--space-2);color:var(--text-subtle);transition:color .12s ease-in-out}.post-card-separator{flex:1 1 0%;border:.5px solid hsl(from var(--text-primary) h s l/10%);position:relative}.post-card a:hover .post-card-separator{border-color:hsl(from var(--text-primary) h s l/15%)}.post-card-date{margin-left:auto}.music-widget{margin:var(--space-8) auto 0 auto;flex-direction:column;max-width:600px}.music-player,.music-widget{position:relative;display:flex;width:100%;box-sizing:border-box;gap:15px}.music-player{margin-inline:0;max-width:350px;border-radius:var(--radius-2xl);border:2px solid var(--border-secondary);align-items:center;padding:15px;justify-content:space-between;transition:all .12s ease-in-out}.music-album-cover{order:-1;width:70px;height:70px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.music-album-cover img{width:100%;height:100%;border-radius:12.5px;-o-object-fit:cover;object-fit:cover}.music-player-info{display:flex;flex-direction:column;flex-grow:1;overflow:hidden;white-space:normal}.music-track-title{color:var(--border-primary)!important;font-weight:var(--font-semibold);margin-bottom:.15rem!important;margin:0;overflow:hidden;transition:color .12s ease-in-out}.music-track-title a{color:var(--border-primary)}.music-track-artist{color:var(--border-secondary);line-height:1.2;font-size:var(--text-sm);margin:0;overflow:hidden;transition:color .12s ease-in-out}.music-player-label{position:absolute;top:-13px;left:20px;display:flex;justify-content:center;align-items:center;padding:3px 15px;border-radius:var(--radius-full);border:2px solid var(--border-light);background:var(--bg-primary);height:auto;line-height:normal;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,transform .15s ease-in-out}.music-player-label p{color:var(--border-primary);font-size:var(--text-xs);font-weight:var(--font-medium);margin:0;transition:color .12s ease-in-out}.music-player-status{width:35px;height:35px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:auto}.music-equalizer{position:relative;align-items:center;display:flex;height:20px;justify-content:space-between;overflow:hidden;width:25px}.music-equalizer-bar{position:absolute;bottom:0;width:2px;background-color:var(--border-secondary);transition:height .15s ease-in-out,background-color .12s ease-in-out;will-change:height;transform-origin:bottom;height:10%}.music-equalizer-bar:first-child{left:0}.music-equalizer-bar:nth-child(2){left:5px}.music-equalizer-bar:nth-child(3){left:10px}.music-equalizer-bar:nth-child(4){left:15px}.music-equalizer-bar:nth-child(5){left:20px}.music-equalizer-bar:first-child{animation:equaliser-wave 2s ease-in-out 1s infinite alternate}.music-equalizer-bar:nth-child(2){animation:equaliser-wave 2s ease-in-out .5s infinite alternate}.music-equalizer-bar:nth-child(3){animation:equaliser-wave 2s ease-in-out 1.5s infinite alternate}.music-equalizer-bar:nth-child(4){animation:equaliser-wave 2s ease-in-out .25s infinite alternate}.music-equalizer-bar:nth-child(5){animation:equaliser-wave 2s ease-in-out .75s infinite alternate}@keyframes equaliser-wave{0%{height:10%}10%{height:30%}20%{height:50%}30%{height:20%}40%{height:70%}50%{height:90%}60%{height:30%}70%{height:80%}80%{height:50%}90%{height:30%}to{height:10%}}.location-widget{margin:var(--space-8) auto 0;flex-direction:column;max-width:600px}.location-display,.location-widget{position:relative;display:flex;width:100%;box-sizing:border-box;gap:15px}.location-display{margin-inline:0;align-items:left;max-width:350px;justify-content:space-between;transition:all .12s ease-in-out}.location-map{position:relative;display:inline-block;overflow:hidden;border-radius:var(--radius-2xl);z-index:2;border:2px solid var(--border-secondary);box-shadow:inset 0 0 29px 0 rgba(0,0,0,.8)}.location-display-label{position:absolute;top:-12px;left:22px;z-index:10;display:flex;justify-content:center;align-items:center;padding:3px 15px;border:2px solid var(--border-light);border-radius:var(--radius-full);background:var(--bg-primary);height:auto;line-height:normal;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,transform .15s ease-in-out}.location-display-label p{color:var(--border-primary);font-size:var(--text-xs);font-weight:var(--font-medium);margin:0;transition:color .12s ease-in-out}.location-map-cloud{position:absolute;opacity:.75;animation:cloud 120s linear infinite;filter:blur(4px)}.dark .location-map-cloud{opacity:.2;transition:filter .4s ease-in-out}.location-map-plane{position:absolute;transform:translateX(-384px);animation:plane 30s linear infinite;animation-delay:5s}.location-map-plane-shadow{position:absolute;transform:translateX(-384px);animation:plane-shadow 30s linear infinite;animation-delay:5s}.location-map-image{width:100%;height:100%;display:block;content:url(/src/assets/map/map_light.webp)}.dark .location-map-image{content:url(/src/assets/map/map_dark.webp)}.location-map-link{position:absolute;bottom:1px;right:1px;margin:var(--space-3);z-index:10;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:var(--radius-lg);border:2px solid var(--border-light);background-color:var(--bg-primary);padding:.375rem var(--space-2);font-size:var(--text-xs);color:var(--border-primary);text-decoration:none}.location-map-marker-dot{width:var(--space-4);height:var(--space-4);animation:marker 4s ease-out infinite}.location-map-marker-dot,.location-map-marker-ring{position:absolute;left:35%;top:65%;z-index:2;transform:translate(-50%,-50%);border-radius:50%;background-color:#3b82f6}.location-map-marker-ring{width:1.75rem;height:1.75rem;border:4px solid #f9fafb;box-shadow:0 0 10px rgba(0,0,0,.3)}@keyframes cloud{0%{transform:translate(-350px,-350px)}25%{transform:translate(350px,350px)}50%{transform:translate(600px,-350px)}75%{transform:translate(-400px,350px)}to{transform:translate(-350px,-350px)}}@keyframes marker{0%{transform:translate(-50%,-50%) scale(1);opacity:1}35%{transform:translate(-50%,-50%) scale(6);opacity:0}to{transform:translate(-50%,-50%) scale(6);opacity:0}}@keyframes plane{0%{transform:translate(50px,350px) rotate(30deg)}40%{transform:translate(300px,-60px) rotate(30deg)}to{transform:translate(300px,-60px) rotate(30deg)}}@keyframes plane-shadow{0%{transform:translate(50px,410px) rotate(30deg)}40%{transform:translate(300px,-20px) rotate(30deg)}to{transform:translate(300px,-20px) rotate(30deg)}}@keyframes pulse{50%{opacity:.5}}body footer{margin:var(--space-16) auto 0}footer .hero-links{margin-bottom:.6rem;padding:0;max-height:30px;overflow:visible}footer .hero-links p{display:flex;margin:0;padding:0}footer .hero-links a{margin-right:var(--space-5);margin-bottom:var(--space-1)}footer .link-with-icon{display:inline-flex;align-items:center;gap:.2em}.email-tooltip-wrapper{display:inline-flex;align-items:center;position:relative}.footer-avatar-wrapper{width:26px;height:26px;margin-left:auto;position:relative;top:-26px}.footer-avatar-wrapper .hero-avatar{position:relative;width:104px;height:104px;top:-40px;left:-40px;border-radius:100%;background:var(--bg-primary);border:4px solid var(--text-subtle);box-shadow:inset 10px -10px 16px var(--text-subtle);transform:scale(.25);transform-origin:center center;animation:head-rotation 8s ease infinite;cursor:pointer;will-change:transform;backface-visibility:hidden;perspective:1000px;transform-style:preserve-3d;transform:scale(.25) translateZ(0);-webkit-transform:scale(.25) translateZ(0);-moz-transform:scale(.25) translateZ(0);image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;image-rendering:pixelated;filter:blur(0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;contain:layout style paint;isolation:isolate;transform-box:border-box;transition:none;opacity:1;visibility:visible}.footer-avatar-wrapper .hero-avatar:after,.footer-avatar-wrapper .hero-avatar:before{content:"";height:var(--space-3);width:var(--space-3);border-radius:100%;background:var(--text-subtle);position:absolute;top:40px;will-change:transform;backface-visibility:hidden;animation:eye-movement 8s ease infinite;transform-style:preserve-3d;filter:blur(0);image-rendering:crisp-edges}.footer-avatar-wrapper .hero-avatar:before{left:40px}.footer-avatar-wrapper .hero-avatar:after{left:72px}.footer-avatar-wrapper .hero-avatar:focus-visible,.footer-avatar-wrapper .hero-avatar:hover{animation:intense-shadow 1s ease-in-out infinite;outline:none}.footer-avatar-wrapper .hero-avatar:focus-visible:after,.footer-avatar-wrapper .hero-avatar:focus-visible:before,.footer-avatar-wrapper .hero-avatar:hover:after,.footer-avatar-wrapper .hero-avatar:hover:before{animation:intense-stare .5s ease-in-out infinite}.footer-avatar-wrapper .hero-avatar:focus-visible:before,.footer-avatar-wrapper .hero-avatar:hover:before{width:16px;height:16px;top:36px;left:36px}.footer-avatar-wrapper .hero-avatar:focus-visible:after,.footer-avatar-wrapper .hero-avatar:hover:after{width:16px;height:16px;top:36px;left:68px}@keyframes head-rotation{0%{box-shadow:inset 10px -10px 16px var(--text-subtle)}20%{box-shadow:inset 18px -10px 16px var(--text-subtle)}30%{box-shadow:inset 10px -10px 16px var(--text-subtle)}55%{box-shadow:inset 18px 6px 16px var(--text-subtle)}65%{box-shadow:inset 10px -10px 16px var(--text-subtle)}to{box-shadow:inset 10px -10px 16px var(--text-subtle)}}@keyframes eye-movement{0%{transform:translateX(0) translateY(0) scaleY(1)}20%{transform:translateX(8px) translateY(0) scaleY(1)}30%{transform:translateX(-8px) translateY(0) scaleY(1)}55%{transform:translateX(0) translateY(16px) scaleY(1)}65%{transform:translateX(0) translateY(0) scaleY(.5)}70%{transform:translateX(0) translateY(0) scaleY(1)}to{transform:translateX(0) translateY(0) scaleY(1)}}@keyframes intense-stare{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes intense-shadow{0%,to{box-shadow:inset 10px -10px 16px var(--text-subtle)}50%{box-shadow:inset 18px -18px 24px var(--text-subtle)}}.footer-meta{display:flex;margin:0 auto;justify-content:space-between;align-items:center;border-top:1px solid hsl(from var(--text-primary) h s l/15%);padding:var(--space-2) 0 var(--space-12) 0;transition:border-color .4s ease-in-out}.footer-meta-left{display:inline-flex;align-items:center;gap:var(--space-1)}.footer-meta-left,.footer-meta-right{color:var(--text-subtle);font-size:.8125rem;letter-spacing:normal;margin:0}a.email-link:hover{text-decoration:none;-webkit-text-decoration:none;cursor:pointer}.email-link svg{width:14px;height:14px;margin-left:var(--space-1)}hr.divider-thin{max-width:600px;height:0;border-top:1px solid hsl(from var(--text-primary) h s l/10%);margin:var(--space-2) auto;transition:border-color .4s ease-in-out}.now-status-item{max-width:600px}.text-center{text-align:center}.swiper{width:100vw;margin-left:calc(50% - 50vw)!important;height:clamp(250px,40vw,400px);cursor:grab;margin-bottom:var(--space-16)}.swiper:active{cursor:grabbing}.swiper-slide{display:flex;align-items:center;justify-content:center;transition:transform .4s ease}.swiper-slide,.swiper-slide-active{transform:scale(1)}.swiper-slide img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.swiper-pagination{bottom:10px!important;left:50%!important;transform:translateX(-50%)!important;width:-moz-fit-content!important;width:fit-content!important;background-color:rgba(0,0,0,.2);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:20px;position:relative;height:24px;display:flex!important;align-items:center;justify-content:center}.pagination-viewport{--viewport-width:120px;width:var(--viewport-width);height:16px;overflow:hidden;position:relative;display:flex;align-items:center}.pagination-container{display:flex;align-items:center;gap:16px;transition:transform .3s ease;position:absolute}.pagination-indicator{width:var(--space-2);height:var(--space-2);border-radius:50%;background-color:hsla(0,0%,100%,.4);cursor:pointer;transition:all .3s ease;flex-shrink:0}.pagination-indicator.active{background-color:#fff;transform:scale(1.3);box-shadow:0 0 6px hsla(0,0%,100%,.4)}.pagination-indicator.edge{transform:scale(.7);opacity:.6}.pagination-indicator.edge.active{transform:scale(.9);opacity:1}.about-profile-image{display:block;width:150px;height:300px;border-radius:var(--radius-lg);background-image:url(/about/me-still.png);background-size:cover;background-repeat:no-repeat;background-position:50%;transition:all .5s ease;opacity:.85;position:relative;box-shadow:0 10px 20px rgba(0,0,0,.1);float:left;margin-right:20px;margin-bottom:5px}.about-profile-image:hover{background-image:url(/about/me.gif)}.page-content-wrapper{max-width:600px;margin:0 auto}.about-page p{text-align:justify}.contact-link-inline{display:inline-flex;align-items:center}.page-content-wrapper:after{content:"";display:table;clear:both}.animate-on-scroll{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}.animate-on-scroll.visible{opacity:1;transform:translateY(0)}.signature-section{display:block;margin:0 auto;max-width:600px;position:relative}.signature-canvas{display:flex;min-height:80px;max-width:-moz-fit-content;max-width:fit-content;justify-content:left;align-items:left;cursor:pointer;transition:all .6s ease;padding:20px;border-radius:24px}.signature-letter-templates{display:none}.signature-letter-lowercase,.signature-letter-uppercase{display:inline-block;max-height:65px;width:auto}.signature-letter-uppercase.signature-letter-p{margin:0 -12px 0 -3px}.signature-letter-uppercase.signature-letter-l{margin:0 -15px 0 -10px}.signature-letter-lowercase.signature-letter-i{margin:0 -3.5px 0 1px}.signature-letter-lowercase.signature-letter-e{margin:0 -4px 0 0}.signature-letter-lowercase.signature-letter-r{margin:0 -3px 0 -1px}.signature-letter-lowercase.signature-letter-o{margin:0 -2.5px 0 0}.signature-letter-lowercase.signature-letter-u{margin:0 -4.5px 0 0}.signature-letter-lowercase.signature-letter-s{margin:0 -4px}.signature-word-space{min-width:0}.signature-canvas svg path{stroke-linejoin:round;stroke-linecap:round;stroke-width:1.5;stroke:var(--border-primary);fill:none;transition:stroke-dashoffset .8s ease;stroke-dasharray:0;stroke-dashoffset:0}.social-platforms-grid{max-width:600px;margin:0 auto;font-size:large}.social-platform-card{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;margin:auto}.social-platform-info{width:150px;display:flex;align-items:center;font-weight:var(--font-semibold);gap:var(--space-2);color:var(--brand-color)}.social-platform-icon{width:28px;height:28px;border-radius:5px;display:flex;align-items:center;justify-content:center;background-color:rgba(var(--brand-color-rgb,0,0,0),.15)}.social-platform-icon svg{width:18px;height:18px;fill:var(--brand-color);stroke:var(--brand-color);opacity:1;z-index:10}.social-platform-handle{max-width:200px;flex:1;text-align:center;margin-left:16px;margin-right:16px}.social-platform-handle p{text-align:start;color:#666;padding:0;margin:0}.social-platform-action{max-width:130px;text-align:right;display:inline-flex;align-items:center}.social-platform-action svg{width:16px;height:16px}.social-platform-action:hover svg{color:var(--text-primary);transform:translate(3px,-3px);transition:all .12s ease-in-out}:root{.email-adress{--brand-color:#000;--brand-color-rgb:0,0,0}.github{--brand-color:#181717;--brand-color-rgb:24,23,23}.linkedin{--brand-color:#0a66c2;--brand-color-rgb:10,102,194}.medium{--brand-color:#000;--brand-color-rgb:0,0,0}.instagram{--brand-color:#c13584;--brand-color-rgb:193,53,132}.discord{--brand-color:#404eed;--brand-color-rgb:64,78,237}.lastfm{--brand-color:#d51007;--brand-color-rgb:213,16,7}.babelio{--brand-color:#d99b06;--brand-color-rgb:217,155,6}.letterboxd{--brand-color:#202830;--brand-color-rgb:32,40,48}}.dark{.email-adress,.github{--brand-color:#fff;--brand-color-rgb:255,255,255}.linkedin{--brand-color:#0a66c2;--brand-color-rgb:10,102,194}.medium{--brand-color:#fff;--brand-color-rgb:255,255,255}.instagram{--brand-color:#e4405f;--brand-color-rgb:228,64,95}.discord{--brand-color:#5865f2;--brand-color-rgb:88,101,242}.lastfm{--brand-color:#ff1919;--brand-color-rgb:255,25,25}.babelio{--brand-color:#fbb91e;--brand-color-rgb:251,185,30}.letterboxd{--brand-color:#fff;--brand-color-rgb:255,255,255}}.page-subtitle{font-size:1.075rem;font-family:var(--font-serif);line-height:var(--leading-tight);margin:var(--space-6) auto var(--space-3)}.credits-grid{max-width:600px;margin:var(--space-8) auto var(--space-16);padding-left:15px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3)}.credits-grid a:before{position:absolute;content:"‒";left:-1em}.certification-badges{width:100%;max-width:600px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--space-2);margin-top:var(--space-4)}.certification-badges .carbon-badge{height:150px;width:auto;border-radius:var(--radius-xl)}.projects-showcase{margin:var(--space-14) auto var(--space-3);gap:var(--space-10)}.project-showcase-card,.projects-showcase{max-width:600px;display:flex;flex-direction:column}.project-showcase-card{gap:var(--space-4);padding-bottom:var(--space-8);border-bottom:1px solid hsl(from var(--text-primary) h s l/10%)}.project-showcase-card:last-child{border-bottom:none}.project-showcase-content{display:flex;flex-direction:column;gap:.2rem;max-width:600px;margin-top:var(--space-2)}.project-showcase-content h2{margin-top:var(--space-4);font-size:var(--text-xl)}.project-showcase-content p{margin-bottom:.6rem}.project-showcase-meta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-4)}.project-tech-stack{display:flex;flex-wrap:wrap;gap:var(--space-2)}.project-tech-stack span{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);background-color:var(--bg-tag);border-radius:24px;color:var(--text-subtle)}.project-action-buttons{display:flex;gap:var(--space-3)}.project-action-button{display:inline-flex;align-items:center;gap:.1rem;font-size:var(--text-sm);text-decoration:none;color:var(--border-secondary);border-radius:var(--radius-sm);padding:.3rem .6rem;transition:all .2s ease}.project-action-button svg{transition:transform .2s ease}.project-action-button:hover svg{transform:translateX(2px)}.project-action-button.visit{color:var(--text-subtle)}.project-action-button:hover{background-color:var(--bg-hover);color:var(--text-body)}.project-preview-gallery{display:flex;gap:var(--space-3);flex-wrap:wrap}.project-preview-image{width:130px;height:80px;-o-object-fit:cover;object-fit:cover;border-radius:var(--radius-sm);cursor:pointer;transition:transform .2s ease,opacity .2s ease;border:1px solid var(--border-light)}.project-preview-image:hover{transform:scale(1.05);opacity:.9}.image-lightbox{inset:0;z-index:1000;width:100%;height:100%;background-color:rgba(0,0,0,.85)}.image-lightbox.open{display:flex}.image-lightbox-content{max-width:90%;max-height:90%;-o-object-fit:contain;object-fit:contain}.image-lightbox-close{top:20px;right:30px;font-size:30px;font-weight:700}.tech-stack-sections{display:flex;flex-direction:column;margin:var(--space-12) auto;max-width:600px}.tech-stack-footer{max-width:600px;margin:var(--space-16) auto var(--space-8);text-align:center;padding-top:var(--space-6);transition:border-color .4s ease-in-out}.tech-stack-footer-dots{display:flex;justify-content:center;gap:var(--space-2)}.tech-stack-footer-dots span{width:3px;height:3px;background:var(--text-subtle);border-radius:50%;opacity:.5}.timeline-page{max-width:600px;margin:0 auto}.timeline-filters{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-12) auto var(--space-4)}.timeline-filter{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-weight:var(--font-medium);transition:all .12s ease-in-out;border:1px solid var(--border-secondary);background-color:var(--bg-primary);border-radius:var(--radius-full);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);color:var(--text-muted);text-decoration:none;cursor:pointer}.timeline-filter:last-child{margin-left:var(--space-5)}.timeline-filter:hover{border-color:var(--text-subtle);background-color:var(--bg-tag);color:var(--text-body)}.timeline-filter.active{background-color:var(--bg-hover);border-color:var(--text-primary);color:var(--text-primary)}.timeline-filter svg{width:var(--space-4);height:var(--space-4);margin-right:.35rem}.timeline-item[style*="display: none"]{margin:0}.content-timeline{border-top:1px solid hsl(from var(--text-primary) h s l/10%)}.content-timeline-header{display:flex}.content-timeline-year{width:10%;min-width:2ch}.content-timeline-month-header h3,.content-timeline-year h2{position:sticky;background-color:none;padding:var(--space-1) 0;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--text-muted);font-weight:var(--font-medium);margin:var(--space-4) 0}.content-timeline-year h2{top:56px;z-index:11}.content-timeline-month-header h3{top:56px;z-index:10}.content-timeline-content{flex:1;display:flex;flex-direction:column}.content-timeline-month{display:flex;border-bottom:1px solid hsl(from var(--text-primary) h s l/10%)}.content-timeline-month:last-child{border-bottom:none}.content-timeline-month-header{width:10%;min-width:2ch}.content-timeline-month-items{flex:1;display:flex;flex-direction:column}.timeline-item{border-bottom:1px solid hsl(from var(--text-primary) h s l/10%)}.timeline-item:last-child{border-bottom:none}.timeline-item a{display:flex;flex-direction:column;padding:var(--space-4) var(--space-2);text-decoration:none;color:inherit;transition:all .12s ease-in-out}.timeline-item-title{display:flex;align-items:center;margin-bottom:var(--space-2)}.timeline-item-title svg{position:relative;top:2px;width:20px;height:20px;margin-right:var(--space-2);color:var(--text-subtle);transition:color .12s ease-in-out}.timeline-item-title .link-text{color:var(--text-primary);-webkit-text-decoration:underline solid var(--border-secondary);text-decoration:underline solid var(--border-secondary);transition:all .12s ease-in-out}.timeline-item a:hover .link-text{text-decoration-color:var(--text-primary)}.post-card a:hover svg,.timeline-item a:hover svg{color:var(--text-primary)}.external-link-icon{display:inline-flex;align-items:center;font-size:var(--text-sm);color:var(--text-subtle);text-decoration:none;transition:color .12s ease-in-out}.timeline-item a:hover .external-link-icon{color:var(--text-primary)}.external-link-icon svg{top:0!important;width:1.25em!important;height:1.25em!important;margin:0 0 0 .2em!important}.timeline-item-meta{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.timeline-item-meta img{width:18px;height:18px;border-radius:.125rem}.dark img[src="/src/assets/profile.png"]{filter:invert(1) hue-rotate(180deg)}.timeline-item-meta span{line-height:1.75;padding-bottom:2px}.timeline-item-description,.timeline-item-meta span{flex-shrink:0;font-size:var(--text-sm);color:var(--text-muted)}.timeline-item-description{margin-top:var(--space-3);border-left:2px solid var(--border-light);padding-left:var(--space-4)}#posts .timeline-item-description{margin-top:var(--space-1)}.timeline-item-preview{margin-top:var(--space-3);display:grid;gap:var(--space-2)}.timeline-item-preview figure{display:flex;flex-direction:column;overflow:hidden;margin:0;border-radius:var(--radius-md);background-color:var(--bg-tag);padding:0!important}.timeline-item-preview img{width:100%;height:auto;max-height:300px;-o-object-fit:cover;object-fit:cover;border-radius:inherit;transition:all .12s ease-in-out}article{line-height:var(--leading-normal);color:var(--text-body);transition:color .4s ease-in-out}article h1,article h2,article h3,article h4,article h5,article h6{color:var(--text-primary);font-weight:var(--font-medium);text-wrap:balance;margin:var(--space-8) auto var(--space-4);transition:color .4s ease-in-out}article h1{font-size:var(--text-4xl);font-family:var(--font-serif);line-height:var(--leading-tight);margin-top:var(--space-12);padding-bottom:var(--space-3);border-bottom:1px dashed hsl(from var(--text-primary) h s l/20%)}article .article-meta-data{display:flex;align-items:flex-end;gap:var(--space-2)}article .article-meta-data h1{margin:var(--space-8) 0 var(--space-4);flex:1}article .article-publish-date{padding-bottom:.5rem;white-space:nowrap}article h2{font-size:var(--text-3xl);font-family:var(--font-serif);line-height:var(--leading-tight);margin-top:var(--space-10)}article h3{font-size:var(--text-2xl);line-height:1;margin-top:var(--space-8)}article h4{font-weight:var(--font-semibold)}article h4,article h5,article h6{font-size:var(--text-base);line-height:var(--leading-normal);margin-top:var(--space-6)}article h5,article h6{font-weight:var(--font-medium);color:var(--text-subtle)}article p{font-size:var(--text-base);letter-spacing:var(--tracking-base);line-height:var(--leading-normal);color:var(--text-body);margin:var(--space-4) auto;max-width:none;text-wrap:pretty}article strong{color:var(--text-primary);font-weight:var(--font-semibold)}article em{font-family:var(--font-serif);font-size:var(--text-lg);letter-spacing:normal;line-height:normal}article u{text-decoration:underline;text-decoration-style:wavy;text-decoration-color:var(--color-accent);text-underline-offset:.125rem}article del{text-decoration:line-through;color:var(--text-subtle)}article mark{background:linear-gradient(110deg,transparent 0,rgba(var(--color-accent-rgb),.2) 0,rgba(var(--color-accent-rgb),.3) 50%,rgba(var(--color-accent-rgb),.2) 100%,transparent 100%);padding:.1rem .3rem;border-radius:var(--radius-sm);position:relative;color:var(--text-primary)}article mark:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,rgba(var(--color-accent-rgb),.1),transparent 60%);border-radius:var(--radius-sm);z-index:-1}article .subtle{color:hsl(from var(--text-body) h s l/30%)}article .article-meta-data{color:var(--text-muted);font-size:.8125rem}article code{font-family:var(--font-mono);color:var(--text-primary);padding:.125rem .375rem;font-size:var(--text-sm);font-weight:var(--font-medium)}article code,article pre{background-color:var(--bg-tag);border-radius:var(--radius-sm)}article pre{padding:var(--space-4);margin:var(--space-6) auto;overflow-x:auto;position:relative}article pre code{background:none;padding:0;font-size:var(--text-sm);line-height:var(--leading-normal)}article .token.comment{color:var(--text-subtle)}article .token.keyword{color:var(--color-accent);font-weight:var(--font-semibold)}article .token.string{color:var(--text-muted)}article .token.number{color:var(--color-accent)}article .token.function{color:var(--text-primary);font-weight:var(--font-medium)}article .token.operator{color:var(--text-body)}article .token.punctuation{color:var(--text-subtle)}code[class*=language-],pre[class*=language-]{background-color:var(--bg-tag)!important}.dark article code,.dark article pre,.dark code[class*=language-],.dark pre[class*=language-]{background-color:var(--bg-tag)!important;color:var(--text-primary)!important;text-shadow:none!important}.token.operator,.token.punctuation{background:none!important}article .article-math-display{margin:var(--space-6) auto;text-align:center;overflow-x:auto;color:var(--text-primary)}article .article-math-inline{color:var(--text-primary)}article blockquote{margin:var(--space-6) auto;padding-left:var(--space-4);border-left:2px solid var(--border-light);color:var(--text-body)}article blockquote p{font-family:var(--font-serif);font-style:italic;margin:0}article .article-callout{background:var(--bg-tag);color:var(--text-body);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin:var(--space-6) auto;transition:background-color .4s ease-in-out}article .article-callout-inner{display:flex;align-items:flex-start;gap:var(--space-3)}article .article-callout .icon{flex:none;margin-top:.3rem;color:inherit}article .article-callout .icon svg{stroke:currentColor;width:var(--space-4);height:var(--space-4)}article .article-callout .content{font-size:var(--text-base);line-height:var(--leading-normal)}article .article-callout .content>*{margin:0}.dark article .article-callout{background:var(--bg-tag)}article hr{max-width:600px;height:0;border-top:1px solid hsl(from var(--text-primary) h s l/10%);margin:var(--space-8) auto;transition:border-color .4s ease-in-out}article ol,article ul{margin:var(--space-4) auto;list-style:none;padding-left:0}article ol{counter-reset:list-counter}article ol li,article ul li{margin:var(--space-2) 0 var(--space-2) var(--space-6);padding-left:var(--space-2);color:var(--text-body);position:relative}article ol li{counter-increment:list-counter}article ul li:before{content:"•";font-weight:700;left:-1rem}article ol li:before,article ul li:before{color:var(--color-accent);position:absolute}article ol li:before{content:counter(list-counter) ".";font-weight:var(--font-semibold);left:-1.5rem;width:var(--space-4);text-align:right}article .article-task-list{list-style:none;padding-left:0;margin:var(--space-4) auto}article .article-task-list li{margin:var(--space-2) 0;padding-left:0;display:flex;align-items:flex-start;gap:var(--space-2)}article .article-task-list li:before{display:none}article .article-task-list input[type=checkbox]{margin-top:.2rem;accent-color:var(--color-accent);flex-shrink:0}article table{width:100%;border-collapse:collapse;margin:var(--space-6) auto;border-radius:var(--radius-sm);overflow:hidden;background-color:var(--bg-primary)}article th{text-align:left;font-weight:var(--font-medium);color:var(--text-primary);background-color:var(--bg-tag);border-bottom:1px solid var(--border-light)}article td,article th{padding:var(--space-3);font-size:var(--text-base)}article td{color:var(--text-body);border-bottom:1px solid hsl(from var(--border-light) h s l/50%)}article tbody tr:nth-child(2n){background-color:var(--bg-table-stripe)}article tbody tr:last-child td{border-bottom:none}article img{max-width:100%;height:auto;border-radius:var(--radius-sm);margin:var(--space-6) auto;display:block;border:1px solid var(--border-light);cursor:zoom-in;transition:opacity .12s ease-in-out}article img:hover{opacity:.9}.article-embed{max-width:600px;width:100%;height:200px;border:none;display:block}.avatar-embed{height:575px!important}.image-lightbox{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.9);z-index:9999;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.image-lightbox.active{display:flex}.image-lightbox img{max-width:90vw;max-height:90vh;-o-object-fit:contain;object-fit:contain;border:none;margin:0;cursor:default}.image-lightbox-close{position:absolute;top:var(--space-8);right:var(--space-8);background:hsla(0,0%,100%,.1);border:none;color:#fff;font-size:var(--text-5xl);padding-bottom:var(--space-2);cursor:pointer;width:var(--space-12);height:var(--space-12);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .12s ease-in-out}.image-lightbox-close:hover{background:hsla(0,0%,100%,.2)}article video{max-width:100%;height:auto;display:block;margin:var(--space-6) auto;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-primary);accent-color:var(
    --color-accent
  );outline:none}article dl{margin:var(--space-4) auto}article dt{font-weight:var(--font-medium);color:var(--text-primary);margin:var(--space-4) 0 var(--space-2) 0;position:relative}article dd{margin:0 0 var(--space-4) var(--space-8);color:var(--text-body);position:relative}article dd:before{content:"";position:absolute;left:-1.5rem;top:.2rem;width:var(--space-4);height:var(--space-4);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23707070' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m15 10 5 5-5 5'/%3E%3Cpath d='M4 4v7a4 4 0 0 0 4 4h12'/%3E%3C/svg%3E") no-repeat 50%;background-size:contain;opacity:.7}article sub,article sup{font-size:var(--text-xs);line-height:0;position:relative;vertical-align:baseline}article sub{bottom:-.25em}article sup{top:-.5em}article .article-footnote-ref{color:var(--color-accent);text-decoration:none;font-weight:var(--font-medium);font-size:.8125rem;padding:.1rem var(--space-1);border-radius:3px}article .article-footnote-ref a{text-decoration:none}article .article-footnotes{margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--border-light)}article .article-footnotes ol{counter-reset:footnote-counter;list-style:none;padding-left:0}article .article-footnotes li{font-size:var(--text-sm);color:var(--text-subtle);counter-increment:footnote-counter;position:relative;padding-left:var(--space-8);margin-bottom:var(--space-4)}article .article-footnotes li:before{content:counter(footnote-counter) ".";position:absolute;left:0;color:var(--color-accent);font-weight:var(--font-semibold);padding:1px 3px 0 0}article .article-footnote-backref{color:var(--text-muted);text-decoration:none;display:inline-flex;align-items:center;gap:var(--space-1);border-radius:3px;padding-left:var(--space-2);transform:translateY(1px);transition:all .12s ease-in-out}article .article-footnote-backref:hover{background:var(--bg-hover);color:var(--text-body)}article .article-footnotes-separator{display:none}ul.article-contains-task-list,ul.article-task-list{list-style:none;margin:0;padding:0}li.article-task-list-item::marker,li.article-task-list-item:before{content:none!important}.article-task-list-item{margin-left:-.4em}.article-task-list-checkbox{margin-right:.4em}@media screen and (max-width:768px){body{padding:0}.command{display:none}.navigation-container{padding-left:var(--space-5);padding-right:var(--space-5)}.article-embed,.project-preview-gallery,.projects-view-all,.signature,.tech-stack-sections,.timeline-page,article dl,article h5,article h6,body figure,body footer,body h1,body h2,body h3,body h4,body ol,body p,body ul{padding:0 var(--space-5)!important}.credits-grid{padding-left:calc(var(--space-5) + 15px)!important}.post-card,.project-card{padding:.3rem var(--space-5)}.project-card-description,.project-card-title{padding-left:0!important;padding-right:0!important}footer p.hero-links{padding:0}.footer-decoration{display:none}.about-profile-image,img.hero-avatar{margin-left:var(--space-5)}h1.main-title{margin:var(--space-16) auto var(--space-4)}.location-widget,.music-widget{padding:0 20px}.location-display-label p,.music-player-label p,.music-track-artist,.music-track-title{padding:0!important}.footer-meta-left,.footer-meta-right,.hero-links p{padding:0!important;margin-right:0!important}.social-platforms-grid{max-width:90%}.timeline-filter:last-child{margin-left:0}article h1{font-size:var(--text-3xl);padding:0 0 var(--space-3) 0!important}article h2{font-size:var(--text-2xl)}article table{font-size:var(--text-sm)}article td,article th{padding:var(--space-2)}article .article-meta-data{padding:0 var(--space-5)}article .article-callout,article blockquote,article pre{margin-left:var(--space-5)!important;margin-right:var(--space-5)!important}article img,article table,article video{width:calc(100% - var(--space-10))}article blockquote p{padding:0}article .article-footnotes li{padding:0;margin:0}.image-lightbox-close{top:var(--space-4);right:var(--space-4);width:var(--space-10);height:var(--space-10);font-size:var(--text-3xl)}}@media screen and (max-width:640px){.content-timeline-year{width:20%;min-width:4ch;padding-right:var(--space-4)}.content-timeline-month-header h3,.content-timeline-year h2{margin:var(--space-2) 0}.content-timeline-content{flex:1}.content-timeline-month{display:block;border-bottom:1px solid hsl(from var(--text-primary) h s l/10%)}.content-timeline-month:last-child{border-bottom:none}.content-timeline-month-header{width:100%;border-bottom:1px solid hsl(from var(--text-primary) h s l/10%)}.content-timeline-month-items{display:block}.timeline-item a{padding:var(--space-3) var(--space-2)}.full-year{display:inline}}@media (max-width:600px){.social-platform-handle{display:none}.avatar-embed{height:750px!important}}@media (max-width:480px){.footer-meta{display:flex;flex-direction:column;align-items:start}.hero-links{text-align:left;margin:0}.location-display,.music-player{flex-direction:row;align-items:center;gap:10px}.music-album-cover{transform:translateY(2px);width:60px;height:60px}.music-player-info{margin-left:0;text-align:left;font-size:14px}.music-track-title{font-size:14px}.music-track-artist{font-size:var(--text-xs)}.music-player-status{margin-left:auto}.music-player-status,.music-player-status svg{width:30px;height:30px}.location-display-label,.music-player-label{font-size:small;padding:2px var(--space-2)}.location-display-label p,.music-player-label p{padding:2px}.location-map-marker-dot{width:var(--space-4);height:var(--space-4)}.location-map-marker-ring{width:var(--space-6);height:var(--space-6)}@keyframes plane{0%{transform:translate(-50px,350px) rotate(30deg)}40%{transform:translate(200px,-60px) rotate(30deg)}to{transform:translate(200px,-60px) rotate(30deg)}}@keyframes plane-shadow{0%{transform:translate(-50px,410px) rotate(30deg)}40%{transform:translate(200px,-20px) rotate(30deg)}to{transform:translate(200px,-20px) rotate(30deg)}}.about-profile-image{width:auto;height:200px;float:none}.category-number{width:24px;height:24px;font-size:.6875rem}.category-title{font-size:var(--text-base)}.item-name{font-size:var(--text-sm)}.tech-stack-section{flex-direction:column;gap:var(--space-2);padding:var(--space-2) 0}.tech-stack-category{width:auto;margin-top:var(--space-8);margin-bottom:var(--space-2);position:relative}.tech-stack-separator{display:none}.tech-stack-items{gap:var(--space-3) var(--space-3)}.tech-stack-items a{line-height:normal}.content-timeline,.content-timeline-content,.content-timeline-header,.content-timeline-month,.content-timeline-month-items{display:block}.content-timeline-year{width:100%;padding-right:0;border-bottom:1px solid hsl(from var(--text-primary) h s l/10%)}.content-timeline-month-header h3{top:calc(56px + 1.8125rem)}.content-timeline-month-header{width:100%;border-bottom:1px solid hsl(from var(--text-primary) h s l/10%)}}@media (max-width:320px){.hero-links{font-size:smaller}.hero-links a{margin:5px!important}.music-player-status{display:none!important}}@media (min-width:768px){.post-card{flex-direction:row;align-items:center;gap:var(--space-3)}.post__title{width:auto}}@media (min-width:640px){.full-year{display:none}}.placeholder\:text-\[var\(--border-secondary\)\]::-moz-placeholder{color:var(--border-secondary)}.placeholder\:text-\[var\(--border-secondary\)\]::placeholder{color:var(--border-secondary)}.hover\:bg-\[var\(--border-secondary\)\]:hover{background-color:var(--border-secondary)}.focus\:border-0:focus{border-width:0}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.active\:bg-\[var\(--border-light\)\]:active{background-color:var(--border-light)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}@media (min-width:640px){.sm\:relative{position:relative}.sm\:bottom-auto{bottom:auto}.sm\:left-auto{left:auto}.sm\:mr-2{margin-right:.5rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:hidden{display:none}.sm\:h-full{height:100%}.sm\:max-w-full{max-width:100%}.sm\:-translate-x-0{--tw-translate-x:-0px}.sm\:-translate-x-0,.sm\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:translate-y-0{--tw-translate-y:0px}.sm\:scale-100{--tw-scale-x:1;--tw-scale-y:1}.sm\:scale-100,.sm\:scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:rounded-\[25px\]{border-radius:25px}.sm\:border-2{border-width:2px}.sm\:pb-0{padding-bottom:0}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:w-28{width:7rem}.md\:gap-4{gap:1rem}.md\:py-1{padding-top:.25rem;padding-bottom:.25rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}}@media (prefers-color-scheme:dark){.dark\:mix-blend-normal{mix-blend-mode:normal}}