*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}@font-face{font-family:HerculesRegular;src:url(/assets/HerculesRegular-Cj0vgy3z.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Apple Garamond;src:url(/assets/AppleGaramond-B-uhgcPi.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Apple Garamond;src:url(/assets/AppleGaramond-Bold-7CvnEgsn.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Apple Garamond;src:url(/assets/AppleGaramond-Italic-d2Ol8oWt.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Apple Garamond;src:url(/assets/AppleGaramond-BoldItalic-Ca0pwoPX.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Apple Garamond;src:url(/assets/AppleGaramond-Light-CcDGGGE9.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Apple Garamond;src:url(/assets/AppleGaramond-LightItalic-BHAZDKoW.ttf) format("truetype");font-weight:300;font-style:italic;font-display:swap}:root{--color-bg: #0e0f12;--color-fg: #e6e6e6;--color-muted: #9aa4b2;--color-accent: #7c5cff;--max-width: 1200px}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";background:var(--color-bg);color:var(--color-fg)}a{color:inherit;text-decoration:none}.container{max-width:var(--max-width);margin:0 auto;padding:0 1rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.app-root{position:relative;min-height:80vh}.app-root main{position:relative;z-index:1}.container{padding-top:100px}.about,.projects,.blog,.notfound{padding-top:80px}.container[data-bg-ready=false]{opacity:0!important;transform:translateY(8px)!important;transition:opacity .2s ease,transform .2s ease}.footer{padding:2rem 0;margin-top:auto}.footer-inner{display:flex;justify-content:center;align-items:center;max-width:1400px;margin:0 auto;padding:0 2rem}.footer-content{display:flex;flex-direction:column;align-items:center;gap:2rem;width:100%}.footer-text{display:flex;flex-direction:column;gap:.5rem;text-align:center}.footer-text p{margin:0;color:#fff;font-size:.9rem}.footer-text .muted{color:#fff9;font-size:.8rem}.social-links{display:flex;gap:1.5rem;align-items:center;justify-content:center;position:relative}.social-link-wrapper{display:flex;align-items:center;justify-content:center;padding:16px;margin:-16px;transition:all .1s ease-out}.social-link{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#ffffff14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:50%;color:#000;text-decoration:none;transition:all .15s cubic-bezier(.25,.46,.45,.94);position:relative;overflow:hidden;cursor:pointer;transform-origin:center;z-index:10;will-change:transform}.social-link:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);border-radius:9999px 9999px 0 0;transition:opacity .2s ease;opacity:0}.social-link:hover:before{opacity:.8}.social-link:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,255,255,.1) 0%,transparent 70%);opacity:0;transition:opacity .15s ease;pointer-events:none}.social-link:hover:after{opacity:1}.social-link svg{position:relative;z-index:10;width:28px;height:28px;color:#fff}.social-link:hover{background:#ffffff1f;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px -1px #00000026,0 4px 8px -1px #00000014,inset 0 1px #fff3;transform:scale(1.05)}.social-link:active{transition:all .1s cubic-bezier(.25,.46,.45,.94)}@media (max-width: 768px){.footer-inner{padding:0 1rem}.footer-content{gap:1.5rem}.social-links{gap:1rem}.social-link{width:44px;height:44px}.social-link svg{width:24px;height:24px}.social-link:hover{background:#ffffff14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);box-shadow:none;transform:none}.social-link:hover:before{opacity:0}.social-link:hover:after{opacity:0}.social-link:active{transform:scale(.95);transition:all .1s cubic-bezier(.25,.46,.45,.94)}}@media (max-width: 480px){.footer{padding:1.5rem 0}.social-link-wrapper{padding:16px;margin:-16px}.social-link{width:40px;height:40px}.social-link svg{width:22px;height:22px}}.tooltip-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.tooltip{position:absolute;z-index:1000;pointer-events:none}.tooltip-content{background:#000000e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;padding:.5rem .75rem;border-radius:6px;font-size:.8rem;font-weight:500;white-space:nowrap;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 12px #0006}.tooltip-arrow{position:absolute;width:0;height:0}.tooltip--top{bottom:calc(100% + 8px);left:0;right:0;transform:translate(0);display:flex;justify-content:center}.tooltip--top .tooltip-arrow{top:100%;left:50%;transform:translate(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(0,0,0,.9)}.tooltip--bottom{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip--bottom .tooltip-arrow{bottom:100%;left:50%;transform:translate(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid rgba(0,0,0,.9)}.tooltip--left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip--left .tooltip-arrow{left:100%;top:50%;transform:translateY(-50%);border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid rgba(0,0,0,.9)}.tooltip--right{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip--right .tooltip-arrow{right:100%;top:50%;transform:translateY(-50%);border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid rgba(0,0,0,.9)}.navbar{position:fixed;top:0;left:0;right:0;z-index:50;background:transparent;border-bottom:none;transform:translateY(0);opacity:1;transition:transform .3s ease,opacity .3s ease}.navbar--hidden{transform:translateY(-100%);opacity:0}.navbar--hidden .nav-links-pill{animation:blurOut .2s ease forwards}.navbar:not(.navbar--hidden) .nav-links-pill{animation:blurIn .4s ease .3s forwards}.navbar[data-page*="/notebook/"] .nav-links-pill,.navbar[data-page*="/notebook/"] .mobile-menu-btn{border:1px solid rgba(0,0,0,.3)}.navbar-content{width:100%;height:100%}.navbar .container{margin-top:4rem;padding-left:0;margin-left:0;margin-right:0}.nav-inner{display:flex;align-items:center;justify-content:space-between}.nav-brand{display:flex;align-items:center;margin-left:clamp(1rem,4vw,4rem);z-index:2}.brand-name{font-weight:600;font-size:1.1rem;color:#fff;letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:all .3s ease}.brand-name:hover{color:#fffc;transform:scale(1.05)}.brand-name:active{transform:scale(.95)}.brand-mobile{display:none}.brand-full{display:inline}.nav-links-container{display:flex;align-items:center;justify-content:center;width:100%;position:fixed;left:0;right:0}.nav-links-pill{display:flex;align-items:center;pointer-events:auto;background:#ffffff14;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);border:1px solid rgba(255,255,255,.15);border-radius:9999px;padding:.75rem 2rem;gap:2.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f,inset 0 1px #ffffff1a;position:relative;overflow:hidden;min-width:500px;transition:all .4s cubic-bezier(.25,.46,.45,.94);cursor:pointer;transform-origin:center}.nav-links-pill:hover{background:#ffffff1f;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px -1px #00000026,0 4px 8px -1px #00000014,inset 0 1px #fff3;transform:scale(1.05) translateY(-2px);border-radius:50px;padding:.85rem 2.2rem;min-width:520px}.nav-links-pill:active{transform:scale(.95) translateY(1px);transition:all .2s cubic-bezier(.25,.46,.45,.94);border-radius:45px;padding:.7rem 1.9rem;min-width:490px}.nav-links-pill:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);border-radius:9999px 9999px 0 0;transition:opacity .4s ease}.nav-links-pill:hover:before{opacity:.8}.nav-links-pill:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(255,255,255,.1) 0%,transparent 50%);opacity:0;transition:opacity .3s ease;pointer-events:none}.nav-links-pill:hover:after{opacity:1}.nav-links-pill:before{content:"";position:absolute;inset:-2px;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.05) 50%,transparent 70%);border-radius:inherit;transition:all .4s cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(1.1)}.nav-links-pill:hover:before{opacity:1;transform:scale(1)}.nav-links-pill .fluid-ripple{position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:50%;transform:translate(-50%,-50%);transition:all .6s cubic-bezier(.25,.46,.45,.94);pointer-events:none}.nav-links-pill:hover .fluid-ripple{width:200px;height:200px;opacity:0}.nav-links-pill a{color:#fffc;text-decoration:none;font-weight:500;font-size:1rem;white-space:nowrap;position:relative;z-index:1;padding:.5rem .75rem;border-radius:6px}.nav-links-pill a:hover{color:#fff}.nav-links-pill a.active{color:#fff;font-weight:600}.mobile-menu-btn{display:none;align-items:center;justify-content:center;width:48px;height:48px;background:#ffffff14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:50%;cursor:pointer;transition:all .3s ease;border:none;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f,inset 0 1px #ffffff1a;z-index:1001;overflow:hidden}.mobile-menu-btn.hidden{opacity:0;transform:scale(.8);pointer-events:none}.mobile-menu-btn:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);border-radius:50px 50px 0 0}.mobile-menu-btn:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,255,255,.1) 0%,transparent 70%);opacity:.5;transition:opacity .3s ease;pointer-events:none}.mobile-menu-btn:active{transform:scale(.95)}.mobile-menu-btn .dot{display:inline-block;margin:0 2px;width:4px;height:4px;background:#fff;border-radius:50%;transition:all .3s ease;position:relative;z-index:1}.mobile-menu-circular{position:fixed;top:50vh;left:50vw;transform:translate(-50%,-50%);width:250px;height:250px;z-index:1002;animation:circularMenuAppear .2s ease both}.mobile-menu-circular.closing{animation:circularMenuDisappear .2s ease both}.circular-menu-item{position:absolute;top:50%;left:50%;width:60px;height:60px;background:#ffffff14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:50%;color:#fffc;text-decoration:none;font-weight:500;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f,inset 0 1px #ffffff1a;transform:translate(-50%,-50%) rotate(calc(360deg / var(--total) * var(--index))) translateY(-120px) rotate(calc(-360deg / var(--total) * var(--index)));animation:menuItemAppear .3s ease calc(var(--index) * .05s) both,orbitFloat 8s ease-in-out infinite calc(var(--index) * .5s)}@keyframes orbitFloat{0%,to{transform:translate(-50%,-50%) rotate(calc(360deg / var(--total) * var(--index))) translateY(-120px) rotate(calc(-360deg / var(--total) * var(--index)))}25%{transform:translate(-50%,-50%) rotate(calc(360deg / var(--total) * var(--index))) translateY(-125px) rotate(calc(-360deg / var(--total) * var(--index))) translate(3px)}50%{transform:translate(-50%,-50%) rotate(calc(360deg / var(--total) * var(--index))) translateY(-115px) rotate(calc(-360deg / var(--total) * var(--index)))}75%{transform:translate(-50%,-50%) rotate(calc(360deg / var(--total) * var(--index))) translateY(-125px) rotate(calc(-360deg / var(--total) * var(--index))) translate(-3px)}}.circular-menu-item .menu-icon{font-size:1.5rem}.circular-menu-item .menu-label{position:absolute;top:70px;left:50%;transform:translate(-50%);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;line-height:1;white-space:nowrap;color:#ffffffe6;text-shadow:0 1px 2px rgba(0,0,0,.5)}.mobile-menu-circular.closing .circular-menu-item{animation:menuItemDisappear .2s ease calc((var(--total) - var(--index) - 1) * .02s) both}.circular-menu-item:active{transform:translate(-50%,-50%) rotate(calc(360deg / var(--total) * var(--index))) translateY(-115px) rotate(calc(-360deg / var(--total) * var(--index))) scale(.95);background:#ffffff1f}.circular-menu-item.active{color:#fff;background:#ffffff26;font-weight:600;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f,inset 0 1px #fff3}@keyframes circularMenuAppear{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes circularMenuDisappear{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.5)}}@keyframes menuItemAppear{0%{opacity:0;transform:translate(-50%,-50%) rotate(calc(360deg / var(--total) * var(--index))) translateY(-60px) rotate(calc(-360deg / var(--total) * var(--index))) scale(.5)}to{opacity:1;transform:translate(-50%,-50%) rotate(calc(360deg / var(--total) * var(--index))) translateY(-120px) rotate(calc(-360deg / var(--total) * var(--index))) scale(1)}}@keyframes menuItemDisappear{0%{opacity:1;transform:translate(-50%,-50%) rotate(calc(360deg / var(--total) * var(--index))) translateY(-120px) rotate(calc(-360deg / var(--total) * var(--index))) scale(1)}to{opacity:0;transform:translate(-50%,-50%) rotate(calc(360deg / var(--total) * var(--index))) translateY(-60px) rotate(calc(-360deg / var(--total) * var(--index))) scale(.5)}}.mobile-menu-fullscreen-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:1000;animation:fadeIn .3s ease;cursor:pointer;transition:opacity .2s ease,backdrop-filter .2s ease}.mobile-menu-fullscreen-overlay.closing{opacity:0;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}@keyframes menuContentAppear{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes blurIn{0%{backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}to{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}@keyframes blurOut{0%{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}to{backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1180px){.brand-full{display:none}.brand-mobile{display:inline}}@media (max-width: 768px){.nav-links-container{display:none}.mobile-menu-btn{display:flex}.nav-brand{left:0}.navbar .container{margin-top:2rem}.brand-name:hover{color:#fff;transform:none}.nav-links-pill:hover{background:#ffffff14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f,inset 0 1px #ffffff1a;transform:none;border-radius:9999px;padding:.75rem 2rem;min-width:500px}.nav-links-pill:hover:before{opacity:0}.nav-links-pill:hover:after{opacity:0}.nav-links-pill a:hover{color:#fffc}.mobile-menu-btn:hover{background:#ffffff14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);transform:none}.mobile-menu a:hover{color:#fffc;background:none}}@media (min-width: 769px){.mobile-menu-btn{display:none!important}}.tile-bg{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-2;overflow:hidden}.tile-pattern{position:absolute;top:-50%;left:-50%;width:200%;height:200%;background-image:repeating-linear-gradient(0deg,transparent,transparent 29px,#ffffff 29px,#ffffff 30px),repeating-linear-gradient(90deg,transparent,transparent 29px,#ffffff 29px,#ffffff 30px);opacity:.3;animation:diagonal-scroll 3s linear infinite}.tile-fade-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at center,#0000,#0000004d 40%,#0009,#000000e6);pointer-events:none}.tile-bg:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to bottom,#000000f2,#0000 20% 80%,#000000f2);pointer-events:none;z-index:2}.tile-bg:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to right,#000000f2,#0000 20% 80%,#000000f2);pointer-events:none;z-index:2}@keyframes diagonal-scroll{0%{transform:translate(0)}to{transform:translate(30px,-30px)}}.home{position:relative;min-height:100vh}.home-content{pointer-events:none}.scroll-section{width:100%}.network-intro{position:fixed;inset:0;z-index:0;pointer-events:none}.network-intro[aria-hidden=true]{display:none}.network-intro canvas{display:block;width:100%;height:100%}.decrypting-text{font-family:JetBrains Mono,Fira Code,monospace;letter-spacing:.05em}.decrypting-char{position:relative;display:inline-block}.decrypting-char--decrypting{position:relative;color:#0f8;animation:simple-glow .2s ease-out}@keyframes simple-glow{0%{color:#fff;text-shadow:0 0 5px rgba(0,255,136,.8)}to{color:#0f8;text-shadow:none}}@keyframes formatReveal{0%{transform:scale(1);text-shadow:none}50%{transform:scale(1.05);text-shadow:0 0 10px rgba(255,255,255,.8),0 0 20px rgba(255,255,255,.4)}to{transform:scale(1);text-shadow:none}}.llama-ascii{font-family:Monaco,Menlo,Consolas,monospace;font-size:.7rem;line-height:1.1;color:#0f8;text-shadow:0 0 10px rgba(0,255,136,.3);white-space:pre;letter-spacing:.05em;display:block;position:relative;z-index:2}.about-page{padding-top:7rem;min-height:80vh;position:relative}.container{max-width:1200px;margin:0 auto;padding:0 20px;position:relative;z-index:10}.about-title{font-family:Apple Garamond,serif;font-size:4rem;margin:2rem 0;font-weight:700;text-shadow:0 0 20px rgba(0,0,0,.8),0 0 40px rgba(0,0,0,.6),0 0 60px rgba(0,0,0,.4);letter-spacing:-.02em;text-align:center}.about-content{display:flex;flex-direction:column;gap:3rem}.about-section{background:#ffffff0d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:2px solid rgba(200,200,200,.3);border-radius:16px;padding:2.5rem;box-shadow:0 8px 32px #0009,0 0 0 1px #c8c8c81a;transition:all .3s ease;position:relative;overflow:hidden}.about-llama{position:absolute;bottom:0;right:1.5rem;opacity:.7;pointer-events:none;z-index:1}.about-llama .llama-ascii{font-size:.8rem;color:#00ff80;margin:0}.about-section:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ffffff1a,#ffffff0d,#ffffff1a);opacity:0;transition:opacity .4s ease;z-index:-1}.about-section:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);opacity:0;transition:all .6s ease;z-index:-2}.about-section:hover{border-color:#c8c8c880;transform:translateY(-1px);box-shadow:0 12px 40px #000000b3,0 0 0 1px #c8c8c833}.about-section:hover:before{opacity:.1}.about-section:hover:after{opacity:.3}.about-section:active{transform:translateY(-1px) scale(.998);transition:all .1s ease}.about-text h2{font-size:2rem;margin-bottom:1.5rem;color:#fff;font-weight:600;text-shadow:0 0 15px rgba(0,0,0,.8)}.about-text p{font-size:1.1rem;line-height:1.7;margin-bottom:1.5rem;color:#fffffff2;text-shadow:0 0 10px rgba(0,0,0,.7)}.about-text p:last-child{margin-bottom:0}.about-link{color:#0f8;text-decoration:none;border-bottom:1px solid transparent;transition:all .2s ease;font-weight:500}.about-link:hover{border-bottom-color:#0f8}.about-text strong{background:#c8c8c833;padding:.2rem .4rem;border-radius:4px;color:#fff;font-weight:600}.about-image-section{display:flex;justify-content:center;align-items:center;padding:2rem 0;margin-top:2rem}@media (max-width: 768px){.about-page{padding-top:80px}.container{padding:0 16px}.about-section{padding:1.5rem}.about-image-section{padding:1.5rem 0;margin-top:1.5rem}.gpg-section p{flex-direction:column;align-items:flex-start;gap:.75rem}.gpg-section code{word-break:break-all;font-size:.8rem}.copy-gpg-btn{align-self:flex-start;min-width:100px}}.gpg-section{margin-top:2rem}.gpg-section p{display:flex;align-items:center;gap:1rem;font-size:1rem;color:#ffffffe6;margin:0}.gpg-section code{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;color:#0f8;background:#80808033;padding:.5rem .75rem;border-radius:6px;letter-spacing:.5px}.copy-gpg-btn{background:#00ff881a;border:1px solid rgba(0,255,136,.3);color:#0f8;padding:.75rem 1.25rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .3s ease;white-space:nowrap;min-width:80px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.copy-gpg-btn:hover{background:#0f83;border-color:#00ff8880;transform:translateY(-1px)}.copy-gpg-btn:active{background:#00ff884d;border-color:#0f89;transform:translateY(0) scale(.98);transition:all .1s ease}.copy-gpg-btn.copied{background:#00ff884d;border-color:#0f89;color:#fff;transform:scale(1.05)}.copy-gpg-btn.copied:hover{background:#0f86;border-color:#00ff88b3}.placeholder-container{text-align:center;background:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:2px solid rgba(200,200,200,.2);border-radius:16px;padding:4rem 2rem;box-shadow:0 8px 32px #0009;width:500px;height:400px;display:flex;flex-direction:column;justify-content:center;transition:none}.placeholder-icon{font-size:4rem;margin-bottom:1.5rem}.placeholder-container h1{font-family:Apple Garamond,serif;font-size:3.5rem;font-weight:700;color:#fff;margin-bottom:1rem;text-shadow:0 0 20px rgba(0,0,0,.8),0 0 40px rgba(0,0,0,.6),0 0 60px rgba(0,0,0,.4);letter-spacing:-.02em}.placeholder-container p{font-size:1.2rem;color:#fffc;margin-bottom:2rem;line-height:1.6}.status-badge{display:inline-block;padding:.75rem 1.5rem;background:#00ff881a;border:1px solid rgba(0,255,136,.3);border-radius:25px;color:#0f8;font-weight:600;font-size:.9rem}@media (max-width: 768px){.placeholder-container{width:90vw;max-width:400px;height:350px;padding:3rem 1.5rem}.placeholder-container h1{font-size:2rem}.placeholder-icon{font-size:3rem}}.playground-page{min-height:70vh;padding:8rem 0 0;display:flex;align-items:center;justify-content:center}.playground-header{text-align:left;padding:2rem 0 4rem;position:relative;z-index:10;max-width:1200px;margin:0 auto;padding-left:20px;padding-right:20px}.playground-title{font-family:Apple Garamond,serif;font-size:3.5rem;font-weight:700;margin-bottom:1rem;color:#fff;text-shadow:0 0 20px rgba(0,0,0,.8),0 0 40px rgba(0,0,0,.6),0 0 60px rgba(0,0,0,.4);letter-spacing:-.02em}.playground-subtitle{font-size:1.2rem;color:#ffffffb3;margin:0;font-weight:300}@media (max-width: 768px){.playground-page{padding:6rem 1rem 2rem}.playground-header{padding:1rem 0 2rem}.playground-title{font-size:2.5rem}.playground-subtitle{font-size:1rem;padding:0 1rem}}.timeline-node{position:relative;width:200px;height:200px;margin:0;cursor:pointer;opacity:.6;transform-origin:center;overflow:visible;pointer-events:auto}.timeline-node-canvas{width:100%;height:100%;display:block;position:absolute;top:0;left:0}.timeline-node:hover{opacity:.8}.timeline-node:active{transform:scale(.95)}.job-timeline{position:fixed;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:2rem;z-index:10;-webkit-user-select:none;user-select:none}.timeline-nodes{position:relative;width:400px;height:600px;display:flex;align-items:center;justify-content:left}.timeline-nodes-container{position:relative;width:200px;height:600px}.timeline-line{position:absolute;top:0;bottom:0;width:2px;left:50%;transform:translate(-50%);background:linear-gradient(180deg,transparent 0%,rgba(170,190,255,.3) 10%,rgba(170,190,255,.7) 50%,rgba(170,190,255,.3) 90%,transparent 100%);box-shadow:0 0 10px #aabeff80;z-index:-1}.timeline-node-wrapper{position:absolute;left:0;z-index:1}@media (max-width: 768px){.job-timeline{display:none}.timeline-nodes{width:300px;height:100vh;justify-content:flex-start}.timeline-nodes-container{height:100vh}.timeline-line{width:3px;left:50%;transform:translate(-50%);top:0;bottom:0;height:100vh}.timeline-hint{display:none}.timeline-progress{flex-direction:column;gap:.5rem}.timeline-progress-bar{width:3px;height:40px}.timeline-progress-text{font-size:.7rem}}.horizontal-timeline{position:relative;width:100%;height:9rem;z-index:20;display:flex;align-items:center;padding:0 1rem;margin-top:4rem}.horizontal-timeline-container{width:100%;height:100%;position:relative;display:flex;align-items:center}.horizontal-timeline-line{position:absolute;top:50%;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,rgba(170,190,255,.3) 10%,rgba(170,190,255,.7) 50%,rgba(170,190,255,.3) 90%,transparent 100%);box-shadow:0 0 10px #aabeff80;z-index:1}.horizontal-timeline-nodes{display:flex;justify-content:center;align-items:center;width:100%;height:100%;position:relative;z-index:2}.horizontal-timeline-nodes::-webkit-scrollbar{display:none}.horizontal-timeline-node-wrapper{display:flex;align-items:center;justify-content:center;width:160px;flex-shrink:0}.horizontal-timeline-placeholder{visibility:hidden}.job-display{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:2rem;position:fixed;inset:0;pointer-events:none}.job-content{max-width:800px;width:100%;padding:3rem;background:transparent;position:relative;pointer-events:auto}.job-header{margin-bottom:2rem;text-align:center}.job-title{font-family:Apple Garamond,serif;font-size:2.5rem;margin-bottom:1rem;color:#fff}.job-meta{display:flex;justify-content:center;align-items:center;gap:.75rem;margin-bottom:.5rem;font-size:1.1rem}.job-company{color:#00ff88e6;font-weight:600}.job-separator{color:#fff6}.job-location{color:#ffffffb3}.job-period{color:#fff9;font-size:.9rem;font-style:italic}.job-description{margin-bottom:2rem}.job-description p{font-size:1.1rem;line-height:1.6;color:#ffffffd9;text-align:justify}.job-technologies{margin-bottom:2rem}.job-technologies h3{font-size:1.2rem;margin-bottom:1rem;color:#00ff88e6;font-weight:600}.tech-tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.tech-tag{background:#00ff881a;border:1px solid rgba(0,255,136,.3);color:#00ff88e6;padding:.4rem .8rem;border-radius:20px;font-size:.9rem;font-weight:500;transition:all .3s ease}.tech-tag:hover{background:#0f83;border-color:#00ff8880;transform:translateY(-2px)}@media (max-width: 1050px){.job-display{position:static;padding:0 1rem 2rem;min-height:30vh;display:flex;justify-content:center;align-items:center;width:100%;pointer-events:auto}.job-content{padding:1rem;margin:0 auto;max-width:none;width:100%;text-align:left}.job-title{font-size:1.8rem}.job-meta{flex-direction:column;gap:.25rem}.tech-tags{justify-content:center}.job-description p,.job-header{text-align:center}}.portfolio-page{min-height:70vh;position:relative;overflow:hidden;background:transparent}.portfolio-content{position:relative;z-index:5;height:fit-content;display:flex;align-items:center;justify-content:center;margin-left:8rem;margin-right:8rem}@media (max-width: 1050px){.portfolio-content{margin-left:0;margin-right:0;width:100vw;margin-left:calc(-50vw + 50%)}.portfolio-page{overflow-y:auto}}.blog-post-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:2rem;margin-bottom:1.5rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all .3s cubic-bezier(.25,.46,.45,.94);cursor:pointer}.blog-post-card:hover{background:#ffffff14;border-color:#fff3;transform:translateY(-4px)}.blog-post-card__content{transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.blog-post-card:hover .blog-post-card__content{transform:scale(1.01)}.blog-post-card__title{margin:0 0 1rem;font-size:1.5rem;line-height:1.3;color:#fff;font-weight:600}.blog-post-card__meta{display:flex;gap:1rem;margin-bottom:1rem;font-size:.9rem;color:#fff9}.blog-post-card__date{font-weight:500;color:#0f8}.blog-post-card__updated{font-style:italic}.blog-post-card__excerpt{color:#fffc;line-height:1.6;margin:0 0 1.5rem;font-size:1rem}.blog-post-card__tags{display:flex;gap:.75rem;flex-wrap:wrap}.blog-post-card__tag{background:#00ff8826;color:#0f8;padding:.375rem .75rem;border-radius:6px;font-size:.85rem;font-weight:500;border:1px solid rgba(0,255,136,.3);transition:all .2s ease}.blog-post-card__tag:hover{background:#00ff8840;border-color:#00ff8880}@media (max-width: 768px){.blog-post-card{padding:1.5rem;margin-bottom:1rem}.blog-post-card__title{font-size:1.25rem}.blog-post-card__meta{flex-direction:column;gap:.25rem}.blog-post-card__tags{gap:.5rem}}.blog-list{max-width:800px!important;width:100%;margin:0 auto;padding:2rem 1rem}.blog-list--empty{min-height:70vh;padding:0;margin-top:-8rem;padding-top:8rem;display:flex;flex-direction:column;align-items:center;justify-content:center}.blog-list--empty .container{display:flex;flex-direction:column;align-items:center;justify-content:center}.blog-list--empty .llama-ascii{align-self:flex-start}.blog-list__meta{display:flex;justify-content:center;align-items:center;gap:2rem;font-size:.95rem;color:#fff9}.blog-list__count{font-weight:500}.blog-list__rss-link{color:#0f8;text-decoration:none;font-weight:500;padding:.5rem 1rem;border:1px solid rgba(0,255,136,.3);border-radius:6px;background:#00ff881a;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.blog-list__rss-link:hover{background:#0f83;border-color:#00ff8880;transform:translateY(-2px)}.blog-list__refresh{background:#0f83;border:1px solid rgba(0,255,136,.5);color:#0f8;padding:.5rem 1rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.blog-list__refresh:hover{background:#00ff884d;border-color:#0f8;transform:translateY(-2px)}.blog-list__error{text-align:center;padding:4rem 2rem;background:#ffffff0d;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.blog-list__error p{color:#fffc;margin:.5rem 0;font-size:1.1rem}.blog-list__retry{background:#ff636333;border:1px solid rgba(255,99,99,.5);color:#ff6363;padding:.75rem 1.5rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .3s ease;margin-top:1rem}.blog-list__retry:hover{background:#ff63634d;border-color:#ff6363;transform:translateY(-2px)}.blog-list__posts{display:flex;flex-direction:column}.blog-list__empty{text-align:center;padding:4rem 2rem;background:#ffffff0d;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.blog-list__empty h2{color:#fff;margin:0 0 1rem;font-size:1.5rem}.blog-list__empty p{color:#ffffffb3;margin:0;font-size:1.1rem}@media (max-width: 768px){.blog-list{padding:1rem .5rem}.blog-list__header{margin-bottom:2rem}.blog-list__description{font-size:1rem}.blog-list__meta{flex-direction:column;gap:1rem}}.notebook-page{min-height:70vh;padding:8rem 0 4rem;display:flex;flex-direction:column}.notebook__header{margin-top:2rem;text-align:center}.notebook__title{font-family:Apple Garamond,serif;margin:0 0 1rem;font-size:4rem;font-weight:700;color:#fff;text-shadow:0 0 20px rgba(0,0,0,.8),0 0 40px rgba(0,0,0,.6),0 0 60px rgba(0,0,0,.4);letter-spacing:-.02em}.notebook__description{color:#fffc;font-size:1.2rem;margin:0 0 1.5rem;line-height:1.5}.notebook__archive-btn{display:inline-block;background:#0f83;border:1px solid rgba(0,255,136,.5);color:#0f8;padding:.75rem 1.5rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-decoration:none;font-size:1rem}.notebook__archive-btn:hover{background:#00ff884d;border-color:#0f8;transform:translateY(-2px)}@media (max-width: 768px){.notebook-page{padding:6rem 1rem 2rem}.blog-list__description{font-size:1rem}.notebook__archive-btn{font-size:.9rem;padding:.6rem 1.2rem}}.dithered-image{width:100%;line-height:0}.dithered-image--placeholder{aspect-ratio:3 / 2;background:#16171b}.dithered-image img{width:100%;height:auto;display:block;image-orientation:from-image}.lightbox{position:fixed;inset:0;background:#000000f5;display:flex;align-items:center;justify-content:center;z-index:9999;cursor:pointer}.lightbox__img{max-width:90vw;max-height:90vh;object-fit:contain;cursor:default}.lightbox__close{position:absolute;top:1.25rem;right:1.5rem;background:none;border:none;color:#ffffff80;font-size:2.25rem;line-height:1;padding:.5rem;cursor:pointer;transition:color .18s}.lightbox__close:hover{color:#fff}.gallery-grid__loading,.gallery-grid__error,.gallery-grid__empty{text-align:center;padding:4rem 2rem;color:var(--color-muted);font-family:Apple Garamond,serif;font-style:italic;font-size:1.1rem}.gallery-grid__loading{display:flex;flex-direction:column;align-items:center;gap:1rem}.gallery-grid__loading:after{content:"";width:20px;height:20px;border:1.5px solid rgba(255,255,255,.1);border-top-color:var(--color-muted);border-radius:50%;animation:gallery-spin .8s linear infinite}@keyframes gallery-spin{to{transform:rotate(360deg)}}.gallery-grid__error{color:#c05}.gallery-grid__masonry{display:flex;gap:16px;align-items:flex-start;position:relative}.gallery-grid__col{flex:1;display:flex;flex-direction:column;gap:16px}.gallery-grid__item{position:relative;cursor:pointer;background:#16171b;overflow:hidden;border-radius:12px;animation:gallery-item-in .5s ease-out backwards}.gallery-grid__item:nth-child(1){animation-delay:.05s}.gallery-grid__item:nth-child(2){animation-delay:.1s}.gallery-grid__item:nth-child(3){animation-delay:.15s}.gallery-grid__item:nth-child(4){animation-delay:.2s}.gallery-grid__item:nth-child(5){animation-delay:.25s}.gallery-grid__item:nth-child(6){animation-delay:.3s}.gallery-grid__item:nth-child(7){animation-delay:.35s}.gallery-grid__item:nth-child(8){animation-delay:.4s}.gallery-grid__item:nth-child(9){animation-delay:.45s}.gallery-grid__item:nth-child(n+10){animation-delay:.5s}@keyframes gallery-item-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.gallery-grid__item-color{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease;pointer-events:none}@media (hover: hover) and (pointer: fine){.gallery-grid__item:hover .gallery-grid__item-color{opacity:1}}.gallery-grid__item-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#00000073;opacity:0;transition:opacity .22s ease;pointer-events:none;padding:1rem;z-index:1}@media (hover: hover) and (pointer: fine){.gallery-grid__item:hover .gallery-grid__item-overlay{opacity:1}}.gallery-grid__item-date{font-family:Monaco,Courier New,monospace;font-size:10px;color:#fff;letter-spacing:.05em;text-transform:uppercase}.gallery-grid__item-tags{font-family:Monaco,Courier New,monospace;font-size:10px;color:#fff9;letter-spacing:.03em;text-align:center}.gallery-page{padding:8rem 0 6rem;min-height:70vh}.gallery-page__header{text-align:center;margin-bottom:3rem}.gallery-page__title{font-family:Apple Garamond,serif;font-size:4rem;font-weight:700;color:#fff;letter-spacing:-.02em;text-align:center;margin:2rem 0;text-shadow:0 0 20px rgba(0,0,0,.8),0 0 40px rgba(0,0,0,.6),0 0 60px rgba(0,0,0,.4)}.gallery-page__grid-wrap{max-width:1300px;margin:0 auto;padding:0 1rem;position:relative}.gallery-page__blog-link{display:inline-block;margin-top:.75rem;background:#0f83;border:1px solid rgba(0,255,136,.5);color:#0f8;padding:.75rem 1.5rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-decoration:none;font-size:1rem}.gallery-page__blog-link:hover{background:#00ff884d;border-color:#0f8;transform:translateY(-2px)}.gallery-page__llama{display:flex;justify-content:flex-start;pointer-events:none}@media (max-width: 768px){.gallery-page{padding:6rem 0 4rem}.gallery-page__header{margin-bottom:2rem}}.notfound-page{min-height:70vh;padding:8rem 0 0;display:flex;align-items:center;justify-content:center}.notfound-content{display:flex;flex-direction:column;align-items:center;text-align:center;background:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:2px solid rgba(200,200,200,.2);border-radius:16px;padding:3rem;box-shadow:0 8px 32px #0009;width:400px;max-width:600px;transition:none}.ascii-container{position:relative}.ascii-art{font-family:Monaco,Menlo,Consolas,monospace;font-size:.9rem;line-height:1.1;color:#0f8;text-shadow:0 0 10px rgba(0,255,136,.3);white-space:pre;letter-spacing:.05em}.error-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.error-code{font-size:4rem;font-weight:800;color:#fff;margin:0;text-shadow:0 0 20px rgba(0,0,0,.8)}.error-title{font-size:2rem;font-weight:600;color:#fff;margin:0;text-shadow:0 0 15px rgba(0,0,0,.8)}.error-message{font-size:1.1rem;color:#fffc;line-height:1.6;margin:0 0 1.5rem}.home-button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 2rem;background:#00ff881a;border:1px solid rgba(0,255,136,.3);border-radius:25px;color:#0f8;text-decoration:none;font-weight:600;font-size:1rem;transition:all .3s ease}.home-button:hover{background:#0f83;border-color:#00ff8880;transform:translateY(-2px);box-shadow:0 5px 15px #0f83}@media (max-width: 768px){.notfound-page{padding:6rem 1rem 2rem}.notfound-content{width:100%;max-width:90vw;padding:1.5rem;gap:1.5rem}.ascii-art{font-size:.7rem}.error-code{font-size:3rem}.error-title{font-size:1.5rem}.error-message{font-size:1rem}.home-button{padding:.75rem 1.5rem;font-size:.9rem}}
