::selection{background-color:#f56416}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-optical-sizing:auto;font-style:normal;font-size:16px;height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.5;color:#0d0a0b;background:#dfdfe0;height:100vh;overflow:hidden;display:flex;flex-direction:column;margin:0}.sans{font-family:"Rethink Sans",sans-serif}.serif{font-family:"Playfair Display",serif}main::-webkit-scrollbar{width:10px;height:10px}main::-webkit-scrollbar-track{background:rgba(0,0,0,0);border-radius:10px}main::-webkit-scrollbar-thumb{background:rgba(69,73,85,.15);border-radius:0;border:2px solid rgba(0,0,0,0);background-clip:padding-box}main::-webkit-scrollbar-thumb:hover{background:rgba(69,73,85,.25)}main::-webkit-scrollbar-thumb:active{background:#87a330}main{scrollbar-width:thin;scrollbar-color:rgba(69,73,85,.15) rgba(0,0,0,0)}main:hover{scrollbar-color:rgba(69,73,85,.25) rgba(0,0,0,0)}.home-page{-ms-overflow-style:none;scrollbar-width:none}.home-page::-webkit-scrollbar{display:none}nav{position:relative;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:#dfdfe0;border-bottom:1px solid rgba(0,0,0,0);flex-shrink:0;transition:box-shadow .3s ease,border-color .3s ease}nav.scrolled{box-shadow:0 2px 20px rgba(69,73,85,.08);border-bottom-color:rgba(69,73,85,.1)}nav .name{font-size:1.2rem;font-weight:600;text-decoration:none;color:#0d0a0b;margin-right:auto}nav a:hover{color:#87a330}@media(max-width: 768px){nav{flex-direction:column;align-items:center;padding:1rem}nav .name{margin-right:0;margin-bottom:1rem;font-size:1.4rem}}.nav-links{display:flex;gap:2rem}.nav-links a{text-decoration:none;color:#0d0a0b;transition:color .3s ease}@media(max-width: 768px){.nav-links{gap:1.5rem;flex-wrap:wrap;justify-content:center}.nav-links a{font-size:.95rem}}main{flex:1;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;position:relative}body:not(.home-page) main{overflow-y:auto;overflow-y:overlay}.banner{font-family:"Playfair Display",serif;font-weight:400;color:#0d0a0b;z-index:1;position:relative;line-height:1.5;letter-spacing:.02em;margin-bottom:8rem;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.banner>div{font-weight:600;width:fit-content;padding:.25rem}.banner>.title{font-size:1.5rem}@media(max-width: 768px){.banner>.title{font-size:1.2rem}}.banner>.subtitle{font-size:1.25rem;font-weight:300}@media(max-width: 768px){.banner>.subtitle{font-size:1rem}}@media(max-height: 600px){.banner{display:none;margin-bottom:5rem}}.home-page nav{background:rgba(0,0,0,0);border-bottom:none}.home-page main{justify-content:center;align-items:center;text-align:center;overflow:hidden;padding-bottom:10vh}@media(max-width: 768px){.home-page main{padding-bottom:15vh}}.scene{position:relative;perspective:1000px}@keyframes float{0%,100%{transform:rotate3d(1, 0, 1, 0deg) translateY(0)}25%{transform:rotate3d(1, 0, 1, 2deg) translateY(-2px)}50%{transform:rotate3d(1, 0, 1, -1deg) translateY(-3px)}75%{transform:rotate3d(1, 0, 1, -2deg) translateY(-1px)}}.floating-group{position:relative;animation:float 10s ease-in-out infinite;margin-top:0}.dot-matrix-floor{position:absolute;width:300vw;height:500vh;left:50%;top:20%;transform:translateX(-50%) rotateX(75deg) rotateY(0deg) rotateZ(0deg);transform-style:preserve-3d;transform-origin:center top;z-index:0;pointer-events:none;background-image:linear-gradient(to top, rgba(223, 223, 224, 0) 0%, rgba(223, 223, 224, 0.1) 10%, rgba(223, 223, 224, 0.7) 100%),radial-gradient(circle at center, #0d0a0b 0%, #0d0a0b 8%, transparent 8%, transparent 100%);background-size:100% 100%,20px 20px;background-position:center,0 0}.stick-figure{position:absolute;bottom:60px;left:50%;transform:translateX(-50%) translateY(40px);color:#0d0a0b;z-index:2;shape-rendering:geometricPrecision}.block-3d{position:relative;width:200px;height:50px;transform-style:preserve-3d;transform:rotateX(-10deg) rotateY(45deg);margin-top:60px}.block-face{position:absolute;border:.5px solid #dfdfe0;box-sizing:border-box}.block-shadow{position:absolute;box-sizing:border-box;width:205px;height:205px;background:#454955;transform:rotateX(-90deg) translateZ(25px);left:0;top:-40px;opacity:.5;filter:blur(15px)}.block-top{width:200px;height:200px;background:#87a330;transform:rotateX(90deg) translateZ(25px);left:0;top:-75px}.block-bottom{width:200px;height:200px;background:#a1c349;transform:rotateX(-90deg) translateZ(25px);left:0;top:-75px}.block-front{width:200px;height:50px;background:linear-gradient(to bottom, #87a330, #a1c349);transform:translateZ(100px);left:0;top:0}.block-back{width:200px;height:50px;background:linear-gradient(to bottom, #87a330, #a1c349);transform:translateZ(-100px);left:0;top:0}.block-left{width:200px;height:50px;background:linear-gradient(to right, #a1c349, #87a330);transform:rotateY(-90deg) translateZ(100px);left:0;top:0}.block-right{width:200px;height:50px;background:linear-gradient(to left, #a1c349, #87a330);transform:rotateY(90deg) translateZ(100px);left:0;top:0}main>section,main>article{max-width:720px;margin:0 auto;padding:2rem 2rem;box-sizing:border-box}@media(min-width: 769px){main>section,main>article{padding-right:2.5rem}}main>section section,main>section article,main>article section,main>article article{margin:2rem 0}main>section h1,main>article h1{font-family:"Playfair Display",serif;font-size:2.5rem;font-weight:600;margin-bottom:2.5rem;color:#0d0a0b}@media(max-width: 768px){main>section h1,main>article h1{font-size:2rem;margin-bottom:2rem}}main>section h2,main>article h2{font-family:"Playfair Display",serif;font-size:1.5rem;font-weight:500;margin-bottom:2rem;color:#0d0a0b}@media(max-width: 768px){main>section h2,main>article h2{font-size:1.25rem;margin-bottom:1.5rem}}main>section p,main>article p{font-family:"Rethink Sans",sans-serif;font-size:1.125rem;line-height:1.5;margin:1.5rem 0;color:#0d0a0b}@media(max-width: 768px){main>section p,main>article p{font-size:1rem;margin:1.25rem 0}}main>section a,main>article a{color:#0d0a0b;text-decoration:none;border-bottom:1px solid #87a330;transition:all .3s ease;line-height:1.5;margin-bottom:1.5rem}main>section a:hover,main>article a:hover{color:#87a330}main>section .link-list,main>article .link-list{list-style:disc;font-size:1.125rem;padding-left:1.5rem}main>section .link-list li,main>article .link-list li{padding-left:1rem;margin-bottom:.5rem;line-height:1.5}section.writing{padding-bottom:3rem}section.writing .writing-item{padding-bottom:2rem;border-bottom:1px solid rgba(69,73,85,.1)}section.writing .writing-item header{margin:.5rem 0}section.writing .writing-item:last-child{border-bottom:none}section.writing .writing-item h2{margin-bottom:.5rem}section.writing .writing-item h2 a{border-bottom:none}@media(max-width: 768px){section.writing .writing-item h2{font-size:1.5rem}}section.writing .writing-item .writing-meta{display:flex;gap:1rem;font-size:1rem;color:#454955;align-items:center;font-style:italic}section.writing .writing-item .writing-meta time{font-family:"Rethink Sans",sans-serif}section.writing .writing-item .writing-description{font-size:1rem;line-height:1.6;color:#454955;margin:0}.writing-single .writing-header{margin-bottom:2rem}.writing-single .writing-header h1{margin-bottom:1rem;line-height:1.2}.writing-single .writing-header .writing-meta{display:flex;gap:1rem;font-size:.95rem;color:#454955;align-items:center;font-style:italic}.writing-single .writing-header .writing-meta time{font-family:"Rethink Sans",sans-serif}.writing-single .writing-content{padding-bottom:3rem}.writing-single .writing-content h1{font-size:2rem;margin:2.5rem 0 1.5rem}@media(max-width: 768px){.writing-single .writing-content h1{font-size:1.75rem}}.writing-single .writing-content h2{font-size:1.5rem;margin:2rem 0 1rem}@media(max-width: 768px){.writing-single .writing-content h2{font-size:1.25rem}}.writing-single .writing-content p{margin-bottom:1.5rem}.writing-single .writing-content pre,.writing-single .writing-content code{font-family:"Courier New",monospace;background:rgba(69,73,85,.05);padding:.125rem .25rem;border-radius:3px;font-size:.95rem}.writing-single .writing-content pre{padding:1rem;overflow-x:auto;margin:1.5rem 0}.writing-single .writing-content blockquote{margin:2rem 0;padding-left:1.5rem;border-left:3px solid #87a330;font-style:italic;color:#454955}.writing-single .writing-content ul,.writing-single .writing-content ol{margin:1.5rem 0;padding-left:2rem}.writing-single .writing-content ul li,.writing-single .writing-content ol li{margin-bottom:.5rem;line-height:1.6}section.gallery{padding-bottom:3rem}section.gallery .gallery-item{display:flex;gap:2rem;padding-bottom:2rem;margin-bottom:2rem;border-bottom:1px solid rgba(69,73,85,.1)}section.gallery .gallery-item:last-child{border-bottom:none}section.gallery .gallery-item .gallery-preview-image{flex-shrink:0;display:block;width:200px;overflow:hidden;border-radius:8px;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 0 25px rgba(0,0,0,.25)}section.gallery .gallery-item .gallery-preview-image:hover{transform:scale(1.05);box-shadow:0 0 15px rgba(0,0,0,.25)}section.gallery .gallery-item .gallery-preview-image img{width:100%;height:100%;object-fit:cover}@media(max-width: 768px){section.gallery .gallery-item .gallery-preview-image{width:120px}}section.gallery .gallery-item .gallery-item-content{flex:1}section.gallery .gallery-item .gallery-item-content header{margin:0 0 .5rem 0}section.gallery .gallery-item .gallery-item-content h2{margin-bottom:.5rem}section.gallery .gallery-item .gallery-item-content h2 a{border-bottom:none}@media(max-width: 768px){section.gallery .gallery-item .gallery-item-content h2{font-size:1.5rem}}section.gallery .gallery-item .gallery-item-content .gallery-meta{display:flex;gap:1rem;font-size:1rem;color:#454955;align-items:center;font-style:italic}section.gallery .gallery-item .gallery-item-content .gallery-meta time{font-family:"Rethink Sans",sans-serif}section.gallery .gallery-item .gallery-item-content .gallery-description{font-size:1rem;line-height:1.6;color:#454955;margin:.5rem 0 0 0}@media(max-width: 768px){section.gallery .gallery-item{gap:1rem}}.gallery-entry .gallery-header{margin-bottom:2rem;text-align:center}.gallery-entry .gallery-header h1{margin-bottom:1rem;line-height:1.2}.gallery-entry .gallery-header .gallery-meta{display:flex;justify-content:center;gap:1rem;font-size:.95rem;color:#454955;align-items:center;font-style:italic}.gallery-entry .gallery-header .gallery-meta time{font-family:"Rethink Sans",sans-serif}.gallery-entry .gallery-image{margin:0 0 3rem 0;text-align:center}.gallery-entry .gallery-image img{max-width:100%;height:auto;border-radius:8px;box-shadow:0 0 25px rgba(0,0,0,.25)}.gallery-entry .gallery-text{padding-bottom:3rem;max-width:700px;margin:0 auto}.gallery-entry .gallery-text h1{font-size:2rem;margin:2.5rem 0 1.5rem}@media(max-width: 768px){.gallery-entry .gallery-text h1{font-size:1.75rem}}.gallery-entry .gallery-text h2{font-size:1.5rem;margin:2rem 0 1rem}@media(max-width: 768px){.gallery-entry .gallery-text h2{font-size:1.25rem}}.gallery-entry .gallery-text p{margin-bottom:1.5rem}section.code{padding-bottom:3rem}section.code .code-item{display:flex;gap:2rem;padding-bottom:2rem;margin-bottom:2rem;border-bottom:1px solid rgba(69,73,85,.1)}section.code .code-item:last-child{border-bottom:none}section.code .code-item .code-preview-image{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:200px;height:200px;overflow:hidden;border-radius:8px;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 0 25px rgba(0,0,0,.25)}section.code .code-item .code-preview-image:hover{transform:scale(1.05);box-shadow:0 0 15px rgba(0,0,0,.25)}section.code .code-item .code-preview-image img{width:100%;height:100%;object-fit:cover}@media(max-width: 768px){section.code .code-item .code-preview-image{width:120px;height:120px}}section.code .code-item .code-item-content{flex:1}section.code .code-item .code-item-content header{margin:0 0 .5rem 0}section.code .code-item .code-item-content h2{margin-bottom:.5rem}section.code .code-item .code-item-content h2 a{border-bottom:none}section.code .code-item .code-item-content h2 a .code-item-suffix{content:".com";font-size:.8em;opacity:.5}@media(max-width: 768px){section.code .code-item .code-item-content h2{font-size:1.5rem}}section.code .code-item .code-item-content .code-description{font-size:1rem;line-height:1.6;color:#454955;margin:.5rem 0 0 0}@media(max-width: 768px){section.code .code-item{gap:1rem}}