:root{--color-bg: #ffffff;--color-bg-secondary: #f8f9fa;--color-text: #1a1a1a;--color-text-secondary: #6c757d;--color-border: #e1e4e8;--color-accent: #0366d6;--color-accent-hover: #0256c7;--color-shadow: rgba(0, 0, 0, 0.1);--color-overlay: rgba(0, 0, 0, 0.7);--spacing-xs: 0.5rem;--spacing-sm: 1rem;--spacing-md: 2rem;--spacing-lg: 3rem;--spacing-xl: 4rem;--font-mono: "JetBrains Mono", "SF Mono", "Roboto Mono", "Courier New", monospace;--font-sans: "Roboto", -apple-system, system-ui, sans-serif;--font-serif: var(--font-sans);--font-size-base: 15px;--font-size-sm: 0.8125rem;--font-size-lg: 1.0625rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--font-size-3xl: 2.5rem;--line-height-tight: 1.3;--line-height-normal: 1.65;--line-height-relaxed: 1.8;--max-width: 1400px;--header-height: 70px;--border-radius: 12px;--transition-speed: 0.2s;--transition-ease: cubic-bezier(0.4, 0, 0.2, 1);--gallery-gap: 1rem;--gallery-columns: 4}[data-theme=dark]{--color-bg: #0d1117;--color-bg-secondary: #161b22;--color-text: #e6edf3;--color-text-secondary: #8b949e;--color-border: #30363d;--color-accent: #58a6ff;--color-accent-hover: #79b8ff;--color-shadow: rgba(0, 0, 0, 0.3);--color-overlay: rgba(0, 0, 0, 0.85)}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base);scroll-behavior:smooth}body{font-family:var(--font-mono);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-bg);transition:background-color var(--transition-speed),color var(--transition-speed);min-height:100vh;display:flex;flex-direction:column;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-ligatures:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-mono);font-weight:700;line-height:var(--line-height-tight);margin-bottom:var(--spacing-sm);color:var(--color-text);letter-spacing:-.01em;text-transform:uppercase}h1{font-size:var(--font-size-3xl);font-weight:800;letter-spacing:-.02em}h2{font-size:var(--font-size-2xl);font-weight:700}h3{font-size:var(--font-size-xl);font-weight:700}h4{font-size:var(--font-size-lg);font-weight:600}p{margin-bottom:var(--spacing-sm);color:var(--color-text);font-weight:400}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-speed);font-weight:500}a:hover,a:focus{color:var(--color-accent-hover);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}code{font-family:var(--font-mono);font-size:var(--font-size-sm);padding:.125rem .5rem;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:4px;font-weight:500}.page-body,.section-body{font-family:var(--font-sans);font-weight:400}.page-body code,.section-body code{font-family:var(--font-mono)}.site-header{background-color:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100;transition:background-color var(--transition-speed),border-color var(--transition-speed);backdrop-filter:blur(10px);background-color:rgba(var(--color-bg), .9)}.nav-container{max-width:var(--max-width);margin:0 auto;padding:0 var(--spacing-md);height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}@keyframes wiggle{0%, 100%{transform:rotate(0deg)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.nav-brand .site-title{font-family:var(--font-mono);font-size:var(--font-size-xl);font-weight:800;color:var(--color-text);letter-spacing:-.01em;text-transform:uppercase;display:inline-flex;align-items:center;gap:0;text-decoration:none}.nav-brand .site-title .logo-prefix{color:var(--color-text)}.nav-brand .site-title .logo-icon{display:inline-block}.nav-brand .site-title .logo-name{margin-left:.15em}.nav-brand .site-title:hover{text-decoration:none}.nav-brand .site-title:hover .logo-icon{animation:wiggle .5s ease-in-out}.nav-links{display:flex;list-style:none;gap:var(--spacing-md);margin:0}.nav-links li{margin:0}.nav-links a{color:var(--color-text-secondary);font-weight:500;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius);transition:color var(--transition-speed),background-color var(--transition-speed)}.nav-links a:hover,.nav-links a.active{color:var(--color-text);background-color:var(--color-bg-secondary)}.theme-toggle{background:none;border:1px solid var(--color-border);border-radius:var(--border-radius);width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text);transition:all var(--transition-speed)}.theme-toggle:hover{background-color:var(--color-bg-secondary);border-color:var(--color-accent)}.theme-toggle:focus{outline:2px solid var(--color-accent);outline-offset:2px}.theme-toggle svg{width:20px;height:20px}.theme-toggle .sun-icon,.theme-toggle .moon-icon{display:none}[data-theme=light] .theme-toggle .sun-icon{display:block}[data-theme=dark] .theme-toggle .moon-icon{display:block}main{flex:1;width:100%}.gallery-section{max-width:var(--max-width);margin:0 auto;padding:var(--spacing-xl) var(--spacing-md)}.gallery-header{text-align:center;margin-bottom:var(--spacing-xl)}.gallery-header h1{margin-bottom:var(--spacing-sm);font-size:clamp(1.75rem,5vw,2.75rem);font-weight:800}.gallery-header .gallery-subtitle{font-family:var(--font-mono);color:var(--color-text-secondary);font-size:var(--font-size-lg);font-weight:400;text-transform:lowercase}.pswp-gallery{display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));gap:var(--gallery-gap);padding:0}.gallery-item{position:relative;display:block;overflow:hidden;border-radius:var(--border-radius);background-color:var(--color-bg-secondary);aspect-ratio:1/1;transition:transform var(--transition-speed),box-shadow var(--transition-speed);cursor:pointer}.gallery-item::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg, var(--color-bg-secondary) 0%, var(--color-border) 50%, var(--color-bg-secondary) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite;z-index:1;opacity:1;transition:opacity .3s}.gallery-item img{position:relative;z-index:2}.gallery-item:has(img)::before{opacity:0}.gallery-item:hover{transform:translateY(-4px);box-shadow:0 12px 28px var(--color-shadow)}.gallery-item:hover .gallery-caption{opacity:1;transform:translateY(0)}.gallery-item:hover img{transform:scale(1.05)}.gallery-item:active{transform:translateY(-2px)}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s cubic-bezier(.4, 0, .2, 1)}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.gallery-caption{position:absolute;bottom:0;left:0;right:0;padding:var(--spacing-md) var(--spacing-sm);background:linear-gradient(to top, rgba(0,0,0,.9), rgba(0,0,0,.7) 50%, rgba(0,0,0,0));color:#fff;font-size:var(--font-size-sm);font-weight:500;opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .3s ease;pointer-events:none}.empty-gallery{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.empty-gallery code{color:var(--color-accent)}.empty-gallery .empty-hint{margin-top:var(--spacing-sm);font-size:var(--font-size-sm)}.page-content,.section-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-md)}.page-header,.section-header{margin-bottom:var(--spacing-lg)}.page-header h1,.section-header h1{margin-bottom:var(--spacing-sm)}.page-header .page-description,.page-header .section-description,.section-header .page-description,.section-header .section-description{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--spacing-xs)}.page-header .page-date,.section-header .page-date{color:var(--color-text-secondary);font-size:var(--font-size-sm);display:block}.page-body,.section-body{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed)}.page-body img,.section-body img{max-width:100%;height:auto;border-radius:var(--border-radius);margin:var(--spacing-md) 0}.page-body ul,.page-body ol,.section-body ul,.section-body ol{margin-left:var(--spacing-md);margin-bottom:var(--spacing-sm)}.page-body li,.section-body li{margin-bottom:var(--spacing-xs)}.page-body blockquote,.section-body blockquote{border-left:4px solid var(--color-accent);padding-left:var(--spacing-md);margin:var(--spacing-md) 0;color:var(--color-text-secondary);font-style:italic}.page-gallery{display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:var(--spacing-md);margin-top:var(--spacing-lg)}.page-gallery-item{display:block;border-radius:var(--border-radius);overflow:hidden;transition:transform var(--transition-speed),box-shadow var(--transition-speed)}.page-gallery-item:hover{transform:scale(1.02);box-shadow:0 4px 16px var(--color-shadow)}.page-gallery-item img{width:100%;height:auto;display:block;margin:0}.site-footer{background-color:var(--color-bg-secondary);border-top:1px solid var(--color-border);margin-top:auto;transition:background-color var(--transition-speed),border-color var(--transition-speed)}.footer-content{max-width:var(--max-width);margin:0 auto;padding:var(--spacing-md);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.footer-content p{margin:0}.footer-content a{color:var(--color-text-secondary);text-decoration:underline}.footer-content a:hover{color:var(--color-accent)}@media (max-width: 1200px){:root{--gallery-columns: 3}}@media (max-width: 768px){:root{--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 2.5rem;--header-height: 60px;--font-size-3xl: 2rem;--font-size-2xl: 1.5rem;--gallery-gap: 0.75rem}.pswp-gallery{grid-template-columns:repeat(auto-fill, minmax(150px, 1fr))}.nav-container{padding:0 var(--spacing-sm)}.nav-brand .site-title{font-size:var(--font-size-lg)}.nav-links{gap:var(--spacing-sm)}.nav-links a{padding:var(--spacing-xs);font-size:var(--font-size-sm)}.page-content,.section-content{padding:var(--spacing-md) var(--spacing-sm)}.gallery-section{padding:var(--spacing-md) var(--spacing-sm)}.gallery-header h1{font-size:var(--font-size-2xl)}}@media (max-width: 480px){.pswp-gallery{grid-template-columns:repeat(auto-fill, minmax(150px, 1fr))}.nav-links a{padding:var(--spacing-xs) var(--spacing-xs)}}.pswp{--pswp-bg: var(--color-overlay);--pswp-icon-color: #ffffff;--pswp-icon-color-secondary: #cccccc;--pswp-error-text-color: #ffffff;z-index:9999}.gallery-item{-webkit-tap-highlight-color:rgba(0,0,0,0);user-select:none}.pswp__button{background-color:rgba(0,0,0,.5) !important;backdrop-filter:blur(10px);border-radius:50% !important;transition:all .2s ease}.pswp__button:hover{background-color:rgba(0,0,0,.7) !important;transform:scale(1.1)}.pswp__counter{background-color:rgba(0,0,0,.5);backdrop-filter:blur(10px);border-radius:20px;padding:4px 12px;font-size:14px;font-weight:500}.pswp__error-msg{background:rgba(0,0,0,.8);color:#fff;padding:2rem;border-radius:12px;font-size:1rem;text-align:center}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:4px}.gallery-item:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px;transform:translateY(-4px);box-shadow:0 12px 28px var(--color-shadow)}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}@media (prefers-contrast: high){:root{--color-border: currentColor}}