@import"https://fonts.googleapis.com/css2?family=Urbanist:ital,wght@0,400;0,600;1,600&family=JetBrains+Mono:wght@400;500&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}@media (prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}ul,ol{list-style:none}a:not([class]){text-decoration-skip-ink:auto}textarea:not([rows]){min-height:10em}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*{margin:0;padding:0;box-sizing:border-box}h1{font-weight:400}.about-image-container h1 em,.about-image-container h1 strong{font-weight:600;font-style:italic;display:inline-block}:root{--spacing: 1.5rem;--spacing-sm: .5rem;--background-color: #ffffff;--text-color: #000000;--text-color-rgb: 0, 0, 0;--nav-bg: rgba(255, 255, 255, .1);--nav-border: rgba(51, 51, 51, .2);--nav-hover-bg: rgba(51, 51, 51, .1);--header-hover-bg: #ffffff;--nav-light-bg: rgba(255, 255, 255, .1);--nav-light-text: #000000;--nav-light-border: rgba(51, 51, 51, .2);--nav-light-hover: rgba(51, 51, 51, .1);--nav-dark-bg: rgba(0, 0, 0, .1);--nav-dark-text: #ffffff;--nav-dark-border: rgba(255, 255, 255, .2);--nav-dark-hover: rgba(255, 255, 255, .1);--code-bg: rgba(0, 0, 0, .05);--inline-code-bg: rgba(0, 0, 0, .1);--theme-transition-duration: .3s}[data-theme=dark]{--background-color: #000000;--text-color: #ffffff;--text-color-rgb: 255, 255, 255;--nav-bg: rgba(0, 0, 0, .1);--nav-border: rgba(255, 255, 255, .2);--nav-hover-bg: rgba(255, 255, 255, .1);--header-hover-bg: #000000;--code-bg: rgba(255, 255, 255, .05);--inline-code-bg: rgba(255, 255, 255, .1)}@keyframes morphTriangle{0%,24%{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}25%,49%{clip-path:polygon(2% 2%,98% 1%,99% 98%,1% 99%)}50%,74%{clip-path:polygon(3% 1%,99% 3%,97% 97%,2% 98%)}75%,to{clip-path:polygon(1% 3%,97% 2%,98% 99%,3% 97%)}}body{font-family:Urbanist,Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Arial,sans-serif;transition:background-color .3s ease,color .3s ease;background-color:var(--background-color);color:var(--text-color)}html{scroll-behavior:smooth}html[data-no-smooth-scroll]{scroll-behavior:auto}#root{min-height:100vh;position:relative}header{position:fixed;top:0;left:0;height:10vh;z-index:2000;width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing);background-color:transparent}.current-section{display:none;color:var(--text-color);font-size:clamp(1.25rem,3.5vw,1.5rem);position:absolute;left:50%;transform:translate(-50%);font-weight:600;opacity:.8}body.menu-open .current-section{display:none!important}.current-section[data-section=software]{font-family:JetBrains Mono,Fira Code,Courier New,monospace}.header-text{position:relative;font-size:clamp(1.5rem,2vw,2.25rem);cursor:pointer;margin:0;white-space:nowrap;color:var(--text-color);min-width:fit-content;transition:all .3s ease;font-weight:400}.initials{opacity:1;padding:0 var(--spacing-sm) 0 var(--spacing-sm);transition:opacity .3s ease;font-weight:400}.full-name{position:absolute;left:0;top:0;opacity:0;padding:0 var(--spacing-sm) 0 var(--spacing-sm);font-weight:700;background-color:var(--text-color);color:var(--background-color)}.header-text:hover{background-color:transparent}.header-text:hover .initials{opacity:0}.header-text:hover .full-name{opacity:1;animation:morphTriangle .5s infinite steps(1)}main{min-height:100vh;width:calc(100vw - 10rem);position:relative;margin-left:10rem;overflow-x:hidden}main section{min-height:100vh;width:100%;display:flex;flex-direction:column;justify-content:center;padding:var(--spacing);position:relative;color:var(--text-color)}section#about{justify-content:flex-end;padding-bottom:10vh}section#contact{min-height:auto;padding:4rem 2rem;border-top:1px solid var(--text-color)}#about{padding:0}#intro{background:var(--intro-bg) center/cover no-repeat}#design{background:var(--design-bg) center/cover no-repeat}#software{background:var(--background-color)}#else{background:var(--else-bg) center/cover no-repeat}#intro:before,#design:before,#else:before{content:"";position:absolute;inset:0;background:var(--section-overlay);z-index:1}section>*{position:relative;z-index:2}.mobile-menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:0;width:24px;height:20px;position:relative;z-index:201}.mobile-menu-toggle span{display:block;width:100%;height:1.5px;background-color:var(--text-color);position:absolute;left:0;transition:all .3s ease}.mobile-menu-toggle span:first-child{top:25%}.mobile-menu-toggle span:nth-child(2){top:75%}.mobile-menu-toggle span:last-child{display:none}.mobile-menu-toggle.open span:first-child{top:50%;transform:translateY(-50%) rotate(45deg)}.mobile-menu-toggle.open span:nth-child(2){top:50%;transform:translateY(-50%) rotate(-45deg)}nav{position:fixed;top:0;padding:var(--spacing) var(--spacing) 10vh var(--spacing);width:10rem;height:100vh;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;border-radius:0;transition:background-color var(--theme-transition-duration) ease,color var(--theme-transition-duration) ease,border-color var(--theme-transition-duration) ease,transform var(--theme-transition-duration) ease,opacity var(--theme-transition-duration) ease;background-color:var(--background-color);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}nav[data-theme=light]{--nav-bg: var(--nav-light-bg);--nav-text: var(--nav-light-text);--nav-border: var(--nav-light-border);--nav-hover: var(--nav-light-hover);--nav-hover-bg: var(--nav-light-text);--nav-hover-text: var(--nav-dark-text);background-color:#fffc}nav[data-theme=dark]{--nav-bg: var(--nav-dark-bg);--nav-text: var(--nav-dark-text);--nav-border: var(--nav-dark-border);--nav-hover: var(--nav-dark-hover);--nav-hover-bg: var(--nav-dark-text);--nav-hover-text: var(--nav-light-text);background-color:#000c}.nav-container{display:flex;flex-direction:column;justify-content:center}nav a{text-decoration:none;color:var(--nav-text);transition:all .3s ease;font-weight:400;padding:0 var(--spacing-sm) 0 var(--spacing-sm);opacity:.6;position:relative;overflow:hidden}nav a:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--nav-hover-bg);opacity:0;transition:opacity .3s ease;z-index:-1}nav a:hover:before{opacity:1;animation:morphTriangle .5s infinite steps(1)}nav a.active{font-weight:700;opacity:1}nav a:hover{color:var(--nav-hover-text);font-weight:700;opacity:1}.about-content{display:flex;align-items:flex-start;width:100%;gap:2rem}.about-content h2{flex-shrink:0}.about-image-container{width:100%;position:relative;display:flex;align-items:center;min-height:70vh;padding:0 var(--spacing)}.about-image-container h1{position:absolute;left:0;top:50%;transform:translateY(-50%);z-index:2;font-size:clamp(2rem,5vw,3rem);padding:0 var(--spacing);line-height:1.2;max-width:80%;white-space:normal;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.about-image-container img{max-height:70vh;display:block;margin-left:auto;object-fit:contain}.image-wrapper{position:relative;margin-left:auto}.image-wrapper img{transition:opacity .3s ease}@media screen and (min-width: 1920px){.image-wrapper>img:first-child{opacity:1}}@media screen and (min-width: 1600px) and (max-width: 1919px){.image-wrapper>img:first-child{opacity:.9}}@media screen and (min-width: 1280px) and (max-width: 1599px){.image-wrapper>img:first-child{opacity:.6}}@media screen and (min-width: 769px) and (max-width: 1279px){.image-wrapper>img:first-child{opacity:.3}}@media screen and (max-width: 768px){.image-wrapper>img:first-child{opacity:1}}.image-wrapper:after{content:"";position:absolute;bottom:0;left:-100vw;right:-100vw;height:1px;background-color:var(--text-color)}.chrome-notice{position:absolute;bottom:-30px;right:0;font-size:.8rem;display:flex;align-items:center;gap:.5rem}.chrome-notice img{width:16px;height:16px;object-fit:contain;opacity:.6}@media screen and (max-width: 1200px){.about-image-container h1{font-size:clamp(1.75rem,4vw,2.5rem);max-width:50%}.else-subsection .text-content{flex:0 0 40%}.else-subsection .media-content{flex:0 0 60%}}@media screen and (max-width: 992px){.about-image-container{flex-direction:column;align-items:flex-start;padding-top:4rem}.about-image-container h1{position:relative;transform:none;top:0;margin-bottom:2rem;max-width:100%;font-size:clamp(1.5rem,3.5vw,2rem);white-space:normal;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.about-image-container img{margin:0 auto;max-width:100%;max-height:50vh}.else-subsection .text-content,.else-subsection .media-content{flex:1}}@media screen and (max-width: 768px){.mobile-menu-toggle,.current-section{display:block}.contact-links a{width:auto}.contact-links a:after{content:attr(data-mobile-text)}.contact-links a{font-size:1rem}.contact-links a span{display:none}main{width:100%;margin-left:0;padding:0}nav{position:fixed;top:0;right:-100%;width:100%;height:100vh;background-color:var(--background-color);transition:right .3s ease;z-index:100;display:flex;flex-direction:column;padding-top:15vh}nav.open{right:0;opacity:1}.nav-container{display:flex;flex-direction:column;align-items:flex-end;padding:0 var(--spacing)}nav a{font-size:2rem;margin:.5rem 0;text-align:right;width:auto;padding:.5rem 1rem}header{padding:0 var(--spacing);background-color:transparent}.header-text{font-size:clamp(1.35rem,4vw,1.75rem);margin:0}body.menu-open .header-text .initials{opacity:0}body.menu-open .header-text .full-name{opacity:1;animation:morphTriangle .5s infinite steps(1);background-color:var(--text-color);color:var(--background-color)}.else-subsection,.else-subsection.food{flex-direction:column;padding:.5rem 0;gap:1rem;align-items:flex-start}.else-subsection.photography{margin-bottom:2rem}.else-subsection .text-content,.else-subsection .media-content{width:100%}.else-subsection.food{flex-direction:column!important}.else-subsection.food .text-content{order:-1}section#else .else-subsection .text-content{text-align:left}section#else .else-subsection .text-content h3,section#else .else-subsection .text-content p{text-align:left}.carousel-container{aspect-ratio:3/2}}@media screen and (max-width: 480px){header{padding:0 calc(var(--spacing) * .75)}.header-text{font-size:clamp(1.25rem,3.5vw,1.5rem);margin:0}.mobile-menu-toggle{width:24px;height:20px}.about-image-container h1{font-size:clamp(1.25rem,3vw,1.75rem);white-space:normal;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.about-image-container h1 br{display:block}}@media (hover: hover){.carousel-container,.software-carousel{position:relative}.carousel-container:before,.carousel-container:after,.software-carousel:before,.software-carousel:after{content:"";position:absolute;top:0;height:100%;width:50%;z-index:10}.carousel-container:before,.software-carousel:before{left:0;cursor:w-resize}.carousel-container:after,.software-carousel:after{right:0;cursor:e-resize}.carousel-container:active,.software-carousel:active{cursor:grabbing}.carousel-controls{z-index:11}}@media (hover: none){.carousel-container,.software-carousel{cursor:default}.carousel-container:before,.carousel-container:after,.software-carousel:before,.software-carousel:after{display:none}}.flag-emoji{font-size:.6em;vertical-align:super;position:relative;top:-.2em;margin-left:.1em}.section-link{color:var(--text-color);text-decoration:none;position:relative;transition:opacity .3s ease}.section-link:after{content:"";position:absolute;width:100%;height:2px;bottom:-4px;left:0;background-color:var(--text-color);transform:scaleX(0);transform-origin:bottom right;transition:transform .3s ease}.section-link:hover{opacity:.8}.section-link:hover:after{transform:scaleX(1);transform-origin:bottom left}.contact-links{display:flex;gap:2rem;justify-content:center}.contact-links a{color:var(--text-color);text-decoration:none;transition:all .3s ease;font-weight:400;padding:.5rem 1rem;opacity:.6;position:relative;overflow:hidden;width:240px;text-align:center}.contact-links a:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--text-color);opacity:0;transition:opacity .3s ease;z-index:-1}.contact-links a:hover:before{opacity:1;animation:morphTriangle .5s infinite steps(1)}.contact-links a:hover{color:var(--background-color);font-weight:700;opacity:1}#contact{min-height:auto;padding:4rem 2rem}section#else{background-color:var(--background-color);display:flex;flex-direction:column;align-items:center;min-height:100vh;position:relative}.else-wrapper{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;padding:2rem 0}section#else>.else-wrapper>h1{text-align:right;padding-right:2rem;font-size:clamp(2rem,5vw,3rem);line-height:1.2;font-weight:600;margin-bottom:2rem;margin-top:2rem;width:100%;max-width:1200px}.else-subsection{display:flex;align-items:flex-start;width:100%;max-width:1200px;gap:2rem;padding:1rem var(--spacing);margin:0 auto}.else-subsection.photography{margin-bottom:3rem}.else-subsection .text-content{flex:0 0 30%;display:flex;flex-direction:column;justify-content:flex-start;padding:0;margin:0}.else-subsection .text-content h3{margin:0 0 .75rem;font-size:clamp(1.5rem,3vw,2rem)}.else-subsection .text-content p{margin:0;line-height:1.6;font-size:clamp(1rem,2vw,1.2rem)}.else-subsection .media-content{flex:0 0 65%;max-width:800px;padding:0;margin:0;width:100%}.carousel-container{position:relative;width:100%;aspect-ratio:4/3;overflow:visible;border-radius:0;cursor:pointer;margin:0;padding:0}@media screen and (max-width: 1200px){section#else>h1,.else-subsection{padding-left:var(--spacing);padding-right:var(--spacing)}}@media screen and (max-width: 768px){.else-subsection,.else-subsection.food{flex-direction:column;padding:.5rem var(--spacing);gap:1rem;align-items:center;text-align:center}.else-subsection .text-content,.else-subsection.photography .text-content,.else-subsection.food .text-content{width:100%;padding:0;text-align:center}.else-subsection .media-content{width:100%;max-width:none;padding:0}.carousel-slide .image-caption,.else-subsection.photography .image-caption,.else-subsection.food .image-caption{text-align:center;margin-top:1.5rem}.else-subsection .text-content h3,.else-subsection .text-content p{text-align:center}section#else>h1{text-align:left;padding-left:var(--spacing)}}.carousel-arrow{display:none}@media (hover: none){.carousel-container{cursor:default}.carousel-container:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100px;height:100px;background:#fff3;border-radius:50%;opacity:0;transition:opacity .3s ease;pointer-events:none;animation:swipeHint 2s ease-in-out infinite}}@keyframes swipeHint{0%{opacity:0;transform:translate(-80%,-50%)}50%{opacity:.5;transform:translate(-20%,-50%)}to{opacity:0;transform:translate(20%,-50%)}}.carousel-slide{position:absolute;width:100%;height:100%;opacity:0;transition:opacity .5s ease-in-out;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;pointer-events:none}.carousel-slide.active{opacity:1}.carousel-slide img{width:100%;height:100%;object-fit:cover;border-radius:0;pointer-events:none;-webkit-user-select:none;user-select:none}.carousel-slide .image-caption{margin:.75rem 0 0;padding:0;font-size:.9rem;color:var(--text-color);opacity:.8}.else-subsection.photography .text-content,.else-subsection.photography .image-caption{text-align:right}.else-subsection.food .text-content,.else-subsection.food .image-caption{text-align:left}@media screen and (max-width: 768px){.carousel-slide .image-caption,.else-subsection.photography .image-caption,.else-subsection.food .image-caption{text-align:center;margin-top:1.5rem}}.carousel-controls{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:1rem;z-index:11;pointer-events:auto;padding:8px;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:fit-content;margin:0 auto;border-radius:20px;transform:translateY(50%)}@-moz-document url-prefix(){.carousel-controls{bottom:0;margin-bottom:-18px}}.carousel-dot{width:10px;height:10px;border-radius:50%;background:#ffffff80;border:none;cursor:pointer;transition:all .3s ease;padding:0;margin:0}.carousel-dot.active{background:#fff;transform:scale(1.2)}.software-carousel .carousel-controls{background:var(--background-color);border:1px solid var(--text-color);position:absolute;bottom:-40px;left:50%;transform:translate(-50%);margin:0;z-index:20;border-radius:20px}.software-carousel .carousel-dot{background:var(--text-color);opacity:.3}.software-carousel .carousel-dot.active{opacity:1;transform:scale(1.3)}.software-carousel{width:100%;height:500px;position:relative;overflow:visible;border-radius:12px;cursor:pointer;margin:2rem 0 0;display:flex;flex-direction:column}.software-slide{position:absolute;width:100%;height:100%;opacity:0;transition:opacity .5s ease-in-out;display:flex;align-items:center;justify-content:center;padding:1rem}.software-slide.active{opacity:1}.software-slide img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.software-description{max-width:800px;text-align:right;font-size:1.2rem;line-height:1.6;margin:calc(var(--spacing) * 3) 0 0 auto;color:var(--text-color)}@media (max-width: 768px){.software-wrapper{min-height:100vh;padding-bottom:4rem}.software-carousel{height:min(300px,40vh);margin:1rem 0 3.5rem;min-height:40vh}.software-description{font-size:1rem;margin:2rem auto;padding:0 1rem;text-align:center}}@media screen and (min-width: 1201px){.else-subsection{padding:1rem 0}}@media screen and (max-width: 1200px){.else-subsection{gap:1.5rem}.else-subsection .text-content{flex:0 0 35%}.else-subsection .media-content{flex:0 0 60%}}@media screen and (max-width: 992px){.else-subsection{gap:1rem}.else-subsection .text-content{flex:0 0 40%}.else-subsection .media-content{flex:0 0 55%}}@media screen and (max-width: 768px){.else-subsection,.else-subsection.food{flex-direction:column;padding:.5rem var(--spacing);gap:1rem;align-items:flex-start}.else-subsection .text-content{width:100%;padding:0}.else-subsection .media-content{width:100%;max-width:none;padding:0}}.software-link{font-family:JetBrains Mono,Fira Code,Courier New,monospace}.else-subsection.food{flex-direction:row-reverse}.header-text,.header-text .initials,.header-text .full-name,.mobile-menu-toggle span,nav,nav a,.contact-links a{transition:all .3s ease}.mobile-menu-toggle span{background-color:var(--text-color)}.software-wrapper{min-height:100vh;width:100%;display:flex;flex-direction:column;padding:2rem;box-sizing:border-box;max-width:1200px;margin:0 auto}.software-wrapper h2{font-size:2.5rem;margin:2rem 0;text-align:left}.software-wrapper h2 a{color:inherit;text-decoration:none;position:relative;transition:opacity .3s ease}.software-wrapper h2 a:after{content:"";position:absolute;width:100%;height:2px;bottom:-4px;left:0;background-color:var(--text-color);transform:scaleX(0);transform-origin:bottom right;transition:transform .3s ease}.software-wrapper h2 a:hover{opacity:.8}.software-wrapper h2 a:hover:after{transform:scaleX(1);transform-origin:bottom left}#software,#software *{font-family:JetBrains Mono,Fira Code,Courier New,monospace}.about-image-container h1 em.software-link,#software,#software *{font-family:JetBrains Mono,Fira Code,Courier New,monospace}nav a[href="#software"]{font-family:JetBrains Mono,Fira Code,Courier New,monospace}.section-link.software-link{font-family:JetBrains Mono,Fira Code,Courier New,monospace}.design-wrapper{display:flex;justify-content:center;align-items:center;height:100%;text-align:center}.design-wrapper h2{font-size:2rem;opacity:.8}.blog-wrapper{min-height:100vh;width:100%;display:flex;flex-direction:column;padding:2rem;box-sizing:border-box;max-width:1200px;margin:0 auto}.blog-wrapper h1{padding-right:2rem;font-size:clamp(2rem,5vw,3rem);line-height:1.2;font-weight:600;margin-bottom:2rem;margin-top:2rem;width:100%;max-width:1200px}.blog-progress-container{width:100%;height:6px;background-color:rgba(var(--text-color-rgb),.1);margin-top:1.5rem;position:relative;border-radius:3px;overflow:hidden}.blog-progress-indicator{position:absolute;top:0;left:0;height:100%;background-color:var(--text-color);opacity:.8;transition:width .1s linear;border-radius:3px}.blog-container{display:flex;gap:2rem;overflow-x:auto;padding:1rem 0 2rem;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.blog-container::-webkit-scrollbar{display:none}.blog-container::-webkit-scrollbar-track,.blog-container::-webkit-scrollbar-thumb{display:none}.blog-container:after{display:none}.blog-card{flex:0 0 auto;width:300px;background:var(--background-color);border:1px solid var(--text-color);padding:1.5rem;scroll-snap-align:start;transition:transform .3s ease,border-color .3s ease;cursor:pointer}.blog-card:hover{transform:translateY(-5px);border-color:var(--text-color)}.blog-card h3{font-size:1.5rem;margin:0 0 1rem;line-height:1.3}.blog-meta{display:flex;justify-content:space-between;font-size:.9rem;color:var(--text-color);opacity:.8;margin-bottom:1rem}.blog-description{font-size:1rem;line-height:1.6;margin-bottom:1.5rem}.blog-tags{display:flex;flex-wrap:wrap;gap:.5rem}.blog-tag{font-size:.8rem;padding:.25rem .75rem;background:rgba(var(--text-color-rgb),.1);color:var(--text-color);border-radius:20px;font-weight:500}.blog-tag:hover{background:rgba(var(--text-color-rgb),.2);transition:background .3s ease}[data-theme=dark] .blog-tag{background:rgba(var(--text-color-rgb),.2)}[data-theme=dark] .blog-tag:hover{background:rgba(var(--text-color-rgb),.3)}@media screen and (max-width: 768px){.blog-wrapper{padding:1rem}.blog-wrapper h1{text-align:left;padding-left:var(--spacing)}.blog-container{padding-bottom:1.5rem}.blog-card{width:280px;padding:1.25rem}.blog-card h3{font-size:1.25rem}}.blog-modal-overlay{position:fixed;top:0;left:10rem;width:calc(100vw - 10rem);height:100vh;background:var(--background-color);display:flex;z-index:2001;animation:slideIn .3s ease;overflow-y:auto}@keyframes slideIn{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideOut{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}nav a.inactive{pointer-events:none;opacity:.3}@media screen and (max-width: 768px){.blog-modal-overlay{left:0;width:100vw}}.modal-close-arrow{position:relative;display:block;width:40px;height:40px;margin:0 auto 1rem;background:transparent;border:none;cursor:pointer;transition:transform .3s ease;z-index:1001;padding:0;opacity:.8}.modal-close-arrow:before{content:"";position:absolute;top:50%;left:50%;width:12px;height:12px;border:solid var(--text-color);border-width:0 2px 2px 0;transform:translate(-50%,-75%) rotate(45deg);transition:all .3s ease}.modal-close-arrow:hover{transform:translateY(4px);opacity:1}.modal-close-arrow:hover:before{border-width:0 3px 3px 0}.blog-modal{width:100%;height:100%;position:relative;background:var(--background-color);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--text-color) transparent}.blog-modal::-webkit-scrollbar{width:6px}.blog-modal::-webkit-scrollbar-track{background:transparent}.blog-modal::-webkit-scrollbar-track-piece:start{background:transparent;margin-top:240px}.blog-modal::-webkit-scrollbar-thumb{background-color:var(--text-color);opacity:.3;border-radius:3px}.blog-modal-content{position:relative;width:100%;max-width:800px;margin:0 auto;padding:2rem;background:var(--background-color);border-radius:8px;overflow:visible}.blog-modal-body{margin-top:2rem;font-size:1.1rem;line-height:1.8}.blog-modal-body p:first-child{margin-top:0}.blog-modal h1{font-size:clamp(2rem,5vw,3rem);line-height:1.2;font-weight:600}.blog-modal-meta{display:flex;justify-content:space-between;align-items:center;font-size:1rem;color:var(--text-color);opacity:.8;margin-bottom:2rem;width:100%}.blog-modal-meta span{font-size:.9rem}.blog-modal-body{line-height:1.6}.blog-modal-body h1,.blog-modal-body h2,.blog-modal-body h3,.blog-modal-body h4,.blog-modal-body h5,.blog-modal-body h6{margin-top:1.5em;margin-bottom:.5em}.blog-modal-body p{margin-bottom:1em}.blog-modal-body code{background:var(--inline-code-bg);padding:.2em .4em;border-radius:4px;font-size:.9em;font-family:JetBrains Mono,Fira Code,monospace}.blog-modal-body pre{margin:1.5em 0;border-radius:8px;overflow:hidden}.blog-modal-body pre>div{margin:0!important;padding:1em!important;background:var(--code-bg)!important;border-radius:8px!important;font-size:.9em!important;font-family:JetBrains Mono,monospace!important;line-height:1.5!important}.blog-modal-body pre code{background:transparent;padding:0;border-radius:0}.blog-modal-body ul,.blog-modal-body ol{margin:1em 0;padding-left:2em}.blog-modal-body li{margin-bottom:.5em}.blog-modal-body blockquote{border-left:4px solid var(--accent-color);margin:1em 0;padding-left:1em;color:var(--text-muted)}.blog-modal-body img{max-width:100%;height:auto;margin:1em 0;border-radius:5px}.blog-modal-body a{color:#06c;text-decoration:underline}.blog-modal-body a:hover{color:#0052a3}.blog-modal-body hr{border:none;border-top:1px solid var(--border-color);margin:2em 0}.blog-modal-body pre,.blog-modal-body code{font-family:JetBrains Mono,monospace;font-size:.9em}.blog-modal-body pre>div{margin:0!important;padding:1em!important;background:var(--code-bg)!important;border-radius:8px!important;font-family:JetBrains Mono,monospace!important;font-size:.9em!important;line-height:1.5!important}.blog-modal-body pre,.blog-modal-body code,.blog-modal-body pre code,.blog-modal-body pre span{font-family:JetBrains Mono,monospace!important}.blog-modal-body pre>div{margin:0!important;padding:1em!important;background:var(--code-bg)!important;border-radius:8px!important;font-size:.9em!important;line-height:1.5!important}.blog-modal-body :not(pre)>code{font-family:JetBrains Mono,monospace!important;background:var(--inline-code-bg);padding:.2em .4em;border-radius:4px;font-size:.9em}.blog-modal-body ul{list-style-type:disc;margin:1em 0;padding-left:2em}.blog-modal-body ol{list-style-type:decimal;margin:1em 0;padding-left:2em}.blog-modal-body ul li,.blog-modal-body ol li{margin-bottom:.5em;padding-left:.5em}.blog-modal-body ul ul,.blog-modal-body ol ul{list-style-type:circle;margin:.5em 0}.blog-modal-body ul ul ul,.blog-modal-body ol ul ul{list-style-type:square}.blog-modal-body li>p{margin:0}.blog-modal{scrollbar-gutter:stable;padding-right:calc(6px + 1rem)}@supports (-moz-appearance: none){.blog-modal{margin-right:calc(-6px - 1rem)}}.app-container{opacity:1;visibility:visible;transition:opacity .2s ease-out}.app-container.loading{opacity:0;visibility:hidden}body,nav,main,.blog-modal-overlay,.blog-modal,.blog-modal-content,.blog-card,.blog-tag,.modal-close-arrow:before,.blog-modal-body code,.blog-modal-body pre>div{transition:background-color var(--theme-transition-duration) ease,color var(--theme-transition-duration) ease,border-color var(--theme-transition-duration) ease}nav{transition:background-color var(--theme-transition-duration) ease,color var(--theme-transition-duration) ease,border-color var(--theme-transition-duration) ease,transform var(--theme-transition-duration) ease,opacity var(--theme-transition-duration) ease}@media screen and (max-width: 768px){.app-container[data-blog-route] header{display:none}}
