@font-face{font-family:noto sans;src:url(/fonts/NotoSans-Variable.woff2)format("woff2-variations");font-weight:100 900;font-stretch:62.5% 100%;font-style:normal;font-display:swap}@font-face{font-family:noto sans;src:url(/fonts/NotoSans-Italic-Variable.woff2)format("woff2-variations");font-weight:100 900;font-stretch:62.5% 100%;font-style:italic;font-display:swap}:root{--color-background:#0F0E17;--color-surface:#1A1A24;--color-text:#FFFFFF;--color-text-muted:#B8BAD0;--color-accent:#FFA600;--color-accent-secondary:#B8BAD0;--font-weight-light:300;--font-weight-regular:400;--font-weight-medium:500;--font-weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--container-max:1120px;--container-narrow:720px;--container-padding:var(--space-5);--transition-fast:150ms ease;--transition-base:250ms ease}.sr-nav{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-nav:focus-within{position:fixed;top:0;left:0;right:0;width:auto;height:auto;margin:0;clip:auto;overflow:visible;background-color:var(--color-background);border-bottom:2px solid var(--color-accent);padding:var(--space-4)var(--space-5);z-index:200}.sr-nav ul{display:flex;gap:var(--space-6);justify-content:center}.sr-nav a{color:var(--color-text);font-size:14px;font-weight:var(--font-weight-medium)}.sr-nav a:focus{outline:2px solid var(--color-accent);outline-offset:2px}.skip-link{position:absolute;top:-100%;left:var(--space-4);background-color:var(--color-accent);color:var(--color-background);padding:var(--space-2)var(--space-4);font-size:14px;font-weight:var(--font-weight-bold);border-radius:0 0 4px 4px;z-index:300}.skip-link:focus{top:0;color:var(--color-background)}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}body{font-family:noto sans,system-ui,-apple-system,sans-serif;font-weight:var(--font-weight-regular);font-size:18px;color:var(--color-text);background-color:var(--color-background);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}main{flex:1}img{max-width:100%;height:auto;display:block}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-text);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.nav-link:hover,.breadcrumb-link:hover,.breadcrumb-back:hover,.footer-link:hover{color:var(--color-text);text-decoration:none}ul,ol{list-style:none}::selection{background-color:var(--color-text);color:var(--color-background)}::-moz-selection{background-color:var(--color-text);color:var(--color-background)}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding-left:var(--container-padding);padding-right:var(--container-padding)}.container--narrow{max-width:var(--container-narrow)}.site-header{padding:var(--space-5)0;border-bottom:1px solid var(--color-surface)}.site-header .container{display:flex;align-items:center;justify-content:space-between}.site-logo{font-weight:var(--font-weight-bold);font-size:1.25rem;color:var(--color-text)}.nav-toggle{display:flex;flex-direction:column;gap:4px;background:0 0;border:none;cursor:pointer;padding:var(--space-2)}.nav-toggle-bar{display:block;width:24px;height:2px;background-color:var(--color-text);transition:transform var(--transition-base),opacity var(--transition-base)}.nav-toggle[aria-expanded=true] .nav-toggle-bar:nth-child(1){transform:translateY(6px)rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-bar:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] .nav-toggle-bar:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.nav-list{display:none;position:absolute;top:100%;left:0;right:0;background-color:var(--color-surface);padding:var(--space-4);flex-direction:column;gap:var(--space-3)}.nav-list.is-open{display:flex}.site-nav{position:relative}.nav-link{color:var(--color-text-muted);font-weight:var(--font-weight-medium);transition:color var(--transition-fast)}.nav-link--active{color:var(--color-accent)}@media(min-width:768px){.nav-toggle{display:none}.nav-list{display:flex;position:static;background:0 0;padding:0;flex-direction:row;gap:var(--space-8)}}.home{padding:var(--space-20)0;text-align:center}.home-title{font-size:30px;font-weight:var(--font-weight-bold);line-height:1.15;margin-bottom:var(--space-16)}:where(.home-title) a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}.home-block{margin-bottom:var(--space-16)}.home-block:last-child{margin-bottom:0}.home-block p{font-size:18px;line-height:1.75;color:var(--color-text)}.inline-link{color:var(--color-accent);font-weight:var(--font-weight-bold);text-decoration:none;transition:color var(--transition-fast)}@media(min-width:768px){.home{padding:var(--space-24)0}}.list-page{padding:var(--space-10)0;padding-bottom:72px;overflow:visible}.list-layout{display:block}.breadcrumb{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);font-size:14px;padding-bottom:var(--space-4);margin-bottom:var(--space-8)}.list-sidebar .breadcrumb{width:100%;padding-bottom:var(--space-4);border-bottom:2px solid var(--color-accent)}.breadcrumb-link{color:var(--color-text-muted);transition:color .2s ease;animation:breadcrumbIn .25s ease-out both;animation-delay:.25s}.breadcrumb-sep{color:var(--color-text-muted);opacity:.5;animation:breadcrumbIn .25s ease-out both;animation-delay:.2s}.breadcrumb-current{color:var(--color-text-muted);transition:color .2s ease}.breadcrumb-arrow{display:flex;align-items:center;color:var(--color-text-muted);transition:color .2s ease,transform .2s ease}.breadcrumb-arrow svg{width:16px;height:16px}.breadcrumb-back{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted);transition:color .2s ease;animation:breadcrumbIn .25s ease-out both;animation-delay:.05s}.breadcrumb-back:hover .breadcrumb-current,.breadcrumb-back:hover .breadcrumb-arrow{color:var(--color-text)}.breadcrumb:hover .breadcrumb-arrow{transform:translateX(-2px)}@keyframes breadcrumbIn{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}@media(prefers-reduced-motion:reduce){.breadcrumb-link,.breadcrumb-sep,.breadcrumb-current,.breadcrumb-arrow,.breadcrumb-back{animation:none}}.list-sidebar{display:none}.list-mobile-header{margin-bottom:var(--space-10)}.list-title{font-size:30px;font-weight:var(--font-weight-bold);line-height:1.2;margin-bottom:var(--space-3)}.list-subtitle{color:var(--color-text-muted);font-size:.9375rem}.go-back-bar{position:fixed;bottom:0;left:0;right:0;background-color:var(--color-background);border-top:2px solid var(--color-accent);padding:var(--space-3)var(--space-5);z-index:100}.go-back-bar .breadcrumb{justify-content:flex-end;margin-bottom:0;padding-bottom:0;gap:var(--space-3);font-size:16px}.go-back-bar .breadcrumb-link,.go-back-bar .breadcrumb-back{padding:var(--space-2)var(--space-1);min-height:44px;display:flex;align-items:center}.go-back-bar .breadcrumb-arrow{min-height:44px;display:flex;align-items:center}.go-back-bar .breadcrumb-current{padding:var(--space-2)var(--space-1);min-height:44px;display:flex;align-items:center}.list-items{display:flex;flex-direction:column}.list-item{display:block;padding:var(--space-6)0;color:var(--color-text)}.list-item:hover{color:var(--color-text);text-decoration:none}.list-item-title{font-size:20px;font-weight:var(--font-weight-bold);margin-bottom:var(--space-2);display:inline-block;padding-bottom:2px;border-bottom:2px solid transparent;transition:border-color var(--transition-fast)}.list-item:hover .list-item-title{border-bottom-color:var(--color-accent)}.list-item-summary{color:var(--color-text);font-size:18px;line-height:1.5;margin-bottom:var(--space-2)}.list-item-meta{font-size:14px;color:var(--color-text-muted)}.pagination{display:flex;gap:0;margin-top:var(--space-10);border-top:1px solid var(--color-surface);padding-top:var(--space-6)}.pagination-item{display:flex;align-items:center;justify-content:center;width:48px;height:48px;color:var(--color-text-muted);font-size:1rem;border:1px solid var(--color-surface);transition:color var(--transition-fast)}.pagination-item:hover{color:var(--color-text)}.pagination-item--active{color:var(--color-text);border-bottom:2px solid var(--color-accent)}@media(min-width:768px){.list-page{padding:var(--space-10)0;padding-bottom:0}.list-layout{display:grid;grid-template-columns:280px 1fr;gap:var(--space-16);overflow:visible}.list-layout>:nth-child(2),.list-layout>:nth-child(3){min-width:0;overflow:visible}.list-sidebar{display:block;position:sticky;top:var(--space-10);align-self:start;z-index:50;background-color:var(--color-background);padding-top:var(--space-4);padding-bottom:var(--space-4)}.list-mobile-header{display:none}.go-back-bar{display:none}}@media(min-width:1024px){.list-layout{grid-template-columns:320px 1fr}}.single-content{max-width:660px;overflow:visible}.single-meta{font-size:14px;color:var(--color-text-muted);margin-bottom:var(--space-4)}.single-title{font-size:30px;font-weight:var(--font-weight-bold);line-height:1.2;margin-bottom:var(--space-3)}.single-subtitle{font-size:18px;color:var(--color-text-muted);margin-bottom:var(--space-8)}.single-body{font-size:18px;line-height:1.7;margin-top:var(--space-12)}.single-body h2{font-size:20px;font-weight:var(--font-weight-bold);margin-top:var(--space-10);margin-bottom:var(--space-4)}.single-body h3{font-size:18px;font-weight:var(--font-weight-bold);margin-top:var(--space-8);margin-bottom:var(--space-3)}.single-body h4{font-size:16px;font-weight:var(--font-weight-bold);color:var(--color-text-muted);margin-top:var(--space-8);margin-bottom:var(--space-3)}.single-body p{color:var(--color-text-muted);margin-bottom:var(--space-4)}.single-body ul,.single-body ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}.single-body ul{list-style:disc}.single-body ol{list-style:decimal}.single-body li{color:var(--color-text-muted);margin-bottom:var(--space-2)}.single-body blockquote{border-left:3px solid var(--color-accent);padding-left:var(--space-4);color:var(--color-text-muted);margin-bottom:var(--space-4);font-style:italic}.single-body code{background-color:var(--color-surface);padding:2px 6px;border-radius:4px;font-size:.875em}.single-body pre{background-color:var(--color-surface);padding:var(--space-4);border-radius:8px;overflow-x:auto;margin-bottom:var(--space-4)}.single-body pre code{background:0 0;padding:0}.single-body a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.single-body img{border-radius:8px;margin-bottom:var(--space-4)}.image-figure{margin:var(--space-8)0}.image-frame{display:block}.image-figure img{width:100%;height:auto;display:block;border-radius:8px;margin-bottom:0}.image-caption{font-size:14px;color:var(--color-text-muted);margin-top:var(--space-2)}.has-placeholder{background-color:var(--color-surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Crect width='1600' height='900' fill='%231A1A24'/%3E%3Ccircle cx='800' cy='380' r='120' fill='none' stroke='%23B8BAD0' stroke-width='6'/%3E%3Cpath d='M620,620L760,460L860,560L980,420L1100,620Z' fill='none' stroke='%23B8BAD0' stroke-width='6' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:8px;overflow:hidden}.has-placeholder img{transition:opacity var(--transition-base)}.has-placeholder img.is-loading{opacity:0}@media(prefers-reduced-motion:reduce){.has-placeholder img{transition:none}}.before-after{margin:var(--space-8)0}.before-after-wrapper{position:relative;overflow:hidden;border-radius:8px;cursor:ew-resize;user-select:none;-webkit-user-select:none}.before-after-wrapper img{display:block;width:100%;height:auto;border-radius:0;margin-bottom:0}.before-after-before{position:absolute;top:0;left:0;bottom:0;width:50%;overflow:hidden}.before-after-before img{display:block;position:absolute;top:0;left:0;height:100%;width:auto;max-width:none}.before-after-handle{position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;width:40px;pointer-events:none}.before-after-handle-line{flex:1;width:2px;background-color:var(--color-text)}.before-after-handle-grip{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background-color:var(--color-background);border:2px solid var(--color-text);color:var(--color-text);flex-shrink:0}.before-after-handle-grip svg{width:14px;height:14px}.before-after-labels{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-2)}.before-after-label{font-size:14px;color:var(--color-text-muted)}.before-after-lightbox .before-after{width:min(92vw,1100px,142vh);margin:0}.before-after-lightbox .before-after-fs{display:none}.quote{margin:var(--space-8)0;padding-left:var(--space-6);border-left:3px solid var(--color-accent)}.quote-text{font-size:20px;font-style:italic;line-height:1.6;color:var(--color-text)}.quote-text p{margin-bottom:var(--space-2)}.quote-text p:last-child{margin-bottom:0}.quote-author{margin-top:var(--space-3);font-size:14px;color:var(--color-text-muted);font-style:normal}.divider{border:none;width:100%;margin:var(--space-8)0}.divider--2px{height:2px}.divider--4px{height:4px}.divider--6px{height:6px}.divider--muted{background-color:var(--color-text-muted)}.divider--accent{background-color:var(--color-accent)}.btn{display:inline-block;padding:var(--space-3)var(--space-6);background-color:var(--color-accent);color:var(--color-background);font-weight:var(--font-weight-bold);font-size:.9375rem;border-radius:6px;transition:opacity var(--transition-fast)}.btn:hover{opacity:.85;color:var(--color-background)}.page,.post,.project{padding:var(--space-16)0}.page-title,.post-title,.project-title{font-size:30px;font-weight:var(--font-weight-bold);line-height:1.2;margin-bottom:var(--space-4)}.post-date{display:block;color:var(--color-text-muted);font-size:14px;margin-bottom:var(--space-8)}.project-summary{font-size:18px;color:var(--color-text-muted);margin-bottom:var(--space-8)}.post-header{margin-bottom:var(--space-8)}.project-header{margin-bottom:var(--space-8)}.site-footer{padding:var(--space-10)0 var(--space-8);border-top:1px solid var(--color-surface);color:var(--color-text-muted);font-size:.875rem;text-align:center}.footer-nav{display:grid;grid-template-columns:1fr 1fr;margin-bottom:var(--space-8)}.footer-nav .footer-link{padding:var(--space-5)0;border-bottom:1px solid var(--color-surface)}.footer-nav .footer-link:nth-child(odd){text-align:left}.footer-nav .footer-link:nth-child(even){text-align:right}.footer-link{color:var(--color-text-muted);transition:color var(--transition-fast)}.footer-copy{display:flex;align-items:center;justify-content:center;gap:var(--space-3);font-size:14px}.footer-divider{width:1px;height:12px;background-color:var(--color-text-muted);opacity:.5}@media(min-width:768px){.footer-nav{display:flex;justify-content:center;gap:var(--space-8);margin-bottom:var(--space-6)}.footer-nav .footer-link{padding:0;border-bottom:none}}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease}.fade-in.is-visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.fade-in{opacity:1;transform:none;transition:none}}.gallery{margin:var(--space-8)0}.gallery-viewport{position:relative;overflow:hidden;border-radius:8px;background-color:var(--color-surface)}.gallery-slide{margin:0;display:none}.gallery-slide.is-active{display:block;animation:galleryFade var(--transition-base)}.gallery-slide img{width:100%;height:auto;display:block;border-radius:8px;cursor:zoom-in}@keyframes galleryFade{from{opacity:0}to{opacity:1}}.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-3)}.gallery-status{display:flex;align-items:baseline;gap:var(--space-3);margin:0;font-size:14px;color:var(--color-text-muted)}.gallery-counter{flex-shrink:0;color:var(--color-text);font-variant-numeric:tabular-nums}.gallery-caption{font-weight:var(--font-weight-regular)}.gallery-arrows{display:flex;flex-shrink:0;gap:var(--space-2)}.gallery-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:0 0;border:none;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast)}.gallery-btn:hover{color:var(--color-accent)}.gallery-btn svg{width:24px;height:24px}.js-lightbox{cursor:zoom-in}.lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-12)var(--space-5);background-color:rgba(15,14,23,.96);opacity:0;visibility:hidden;transition:opacity var(--transition-base),visibility var(--transition-base)}.lightbox.is-open{opacity:1;visibility:visible}body.lightbox-open{overflow:hidden}.lightbox-figure{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);max-width:100%;max-height:100%;margin:0}.lightbox-img{max-width:90vw;max-height:80vh;width:auto;height:auto;display:block;border-radius:8px;object-fit:contain}.lightbox-meta{display:flex;align-items:baseline;justify-content:center;gap:var(--space-3);font-size:14px;color:var(--color-text-muted);text-align:center}.lightbox-counter{color:var(--color-text);font-variant-numeric:tabular-nums}.lightbox-caption{font-weight:var(--font-weight-regular)}.lightbox-close,.lightbox-nav{position:fixed;display:flex;align-items:center;justify-content:center;padding:0;background:0 0;border:none;color:var(--color-text);cursor:pointer;transition:color var(--transition-fast)}.lightbox-close:hover,.lightbox-nav:hover{color:var(--color-accent)}.lightbox-close{top:var(--space-5);right:var(--space-5);width:44px;height:44px}.lightbox-close svg{width:28px;height:28px}.lightbox-nav{top:50%;transform:translateY(-50%);width:56px;height:56px}.lightbox-nav svg{width:32px;height:32px}.lightbox-prev{left:var(--space-3)}.lightbox-next{right:var(--space-3)}@media(max-width:767px){.lightbox-nav{top:auto;bottom:var(--space-6);transform:none}}@media(prefers-reduced-motion:reduce){.lightbox{transition:none}.gallery-slide.is-active{animation:none}}