@font-face{font-family:PP Nikki Maru;src:url(/fonts/PPNikkeiMaru-UltraboldItalic.otf) format("opentype");font-weight:800;font-style:italic;font-display:swap}@font-face{font-family:PP Nikki Maru;src:url(/fonts/PPNikkeiMaru-Ultrabold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:PP Nikki Maru;src:url(/fonts/PPNikkeiMaru-Light.otf) format("opentype");font-weight:300;font-style:normal;font-display:swap}:root{--color-bg: #f7f3ed;--color-bg-alt: #eee8de;--color-surface: #fcfaf7;--color-text: #2a2622;--color-text-muted: #7a746c;--color-accent: #b85c38;--color-accent-hover: #9a4a2c;--color-secondary: #5a7a64;--color-border: #ddd6ca;--color-border-strong: #c4bba8;--font-display: "PP Nikki Maru", Georgia, serif;--font-body: "Source Serif 4", Georgia, serif;--font-mono: "SF Mono", "Fira Code", "Consolas", monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 2rem;--space-xl: 4rem;--space-2xl: 6rem;--max-width: 944px;--border-radius: 0}html.theme-dark{--color-bg: #181614;--color-bg-alt: #221f1c;--color-surface: #2a2724;--color-text: #ece6dc;--color-text-muted: #a09890;--color-accent: #d4795a;--color-accent-hover: #e8937a;--color-secondary: #8cb896;--color-border: #3a3632;--color-border-strong: #4d4840}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}html.theme-transitioning,html.theme-transitioning *,html.theme-transitioning *:before,html.theme-transitioning *:after{transition:background-color .3s ease,border-color .3s ease,color .3s ease!important}body{margin:0;padding:0;min-height:100vh;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-weight:300;font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;display:flex;flex-direction:column}::selection{background:var(--color-accent);color:var(--color-bg)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.25;margin:0 0 var(--space-md) 0;color:var(--color-text)}h1{font-size:clamp(2.25rem,7vw,3rem);font-weight:800;font-style:italic;letter-spacing:-.02em;line-height:1.1}h2{font-size:clamp(1.5rem,4vw,1.875rem);font-weight:700;letter-spacing:-.015em}h3{font-size:1.25rem;font-weight:700;letter-spacing:-.01em}p{margin:0 0 var(--space-lg) 0}a{color:var(--color-accent);text-decoration:none;transition:color .2s ease;position:relative}a:hover{color:var(--color-accent-hover)}strong{font-weight:700}em{font-style:italic}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-lg)}.main-header{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:100;width:100%;max-width:var(--max-width);display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);background:var(--color-bg);border-bottom:1px solid var(--color-border)}.main-header .logo{display:flex;align-items:baseline;gap:.4em;font-family:var(--font-mono);font-size:.9375rem}.main-header .logo>a{font-family:var(--font-mono);font-weight:600;color:var(--color-text);text-decoration:none}.main-header .logo>a:hover{color:var(--color-accent)}.nav-link-gray{color:var(--color-text-muted);font-weight:400}.shell-path{display:inline-flex;gap:.4em}.shell-path a.shell-flag{font-family:var(--font-mono);font-weight:600;color:var(--color-accent);text-decoration:none;transition:color .2s ease}.shell-path a.shell-flag:hover{color:var(--color-accent-hover)}.shell-path .shell-arg{color:var(--color-text)}.main-nav{display:flex;gap:var(--space-lg);align-items:center}.main-nav .nav-link{font-family:var(--font-mono);font-size:.9375rem;color:var(--color-text-muted);text-decoration:none;transition:color .2s ease}.main-nav .nav-link:hover{color:var(--color-accent)}.theme-toggle{width:32px;height:32px;padding:0;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);transition:color .2s ease}.theme-toggle:hover{color:var(--color-accent)}.theme-toggle svg{width:18px;height:18px}.main-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:var(--space-xl) var(--space-lg) var(--space-2xl);padding-top:calc(var(--space-xl) + 80px)}.bun{width:min(280px,60vw);height:min(420px,50vh);background-image:url(/lisbun.png);background-size:contain;background-repeat:no-repeat;background-position:center;mix-blend-mode:multiply}html.theme-dark .bun{filter:invert(1) hue-rotate(180deg);mix-blend-mode:screen}.latest-posts{width:100%;max-width:420px;margin-top:var(--space-xl);text-align:left}.latest-posts h3{font-family:var(--font-mono);font-size:.8125rem;color:var(--color-text-muted);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}.latest-posts ul{list-style:none;padding:0;margin:0}.latest-posts li{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-lg);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border);transition:padding .2s ease,background .2s ease;margin:0 calc(-1 * var(--space-sm));padding-left:var(--space-sm);padding-right:var(--space-sm)}.latest-posts li:last-child{border-bottom:none}.latest-posts li:hover{background:var(--color-bg-alt)}.latest-posts a{font-family:var(--font-mono);font-size:.875rem;color:var(--color-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .2s ease}.latest-posts a:hover{color:var(--color-accent)}.post-date{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-muted);flex-shrink:0}.blog-content{flex:1;width:100%;max-width:var(--max-width);margin:0 auto;padding:calc(var(--space-xl) + 60px) var(--space-lg) var(--space-2xl)}.blog-header{margin-bottom:var(--space-lg)}.blog-post-meta{display:flex;align-items:center;gap:var(--space-md);font-family:var(--font-mono);font-size:.8125rem;color:var(--color-text-muted)}.meta-separator{color:var(--color-border)}.blog-post-date,.blog-reading-time{color:var(--color-text-muted)}.blog-nav{margin-top:var(--space-md)}.nav-link{color:var(--color-accent);font-size:.9375rem}.blog-post-image{margin:var(--space-lg) 0}.blog-post-image img{width:100%;height:auto;display:block;border:1px solid var(--color-border)}.blog-main{line-height:1.75}.blog-post-content{font-size:1.125rem;line-height:1.75}.blog-post-content h1,.blog-post-content h2,.blog-post-content h3,.blog-post-content h4,.blog-post-content h5,.blog-post-content h6{margin-top:var(--space-lg);margin-bottom:var(--space-sm)}.blog-post-content h2{font-family:var(--font-mono);font-size:1.25rem;font-weight:600;color:var(--color-text);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border)}.blog-post-content h3{font-family:var(--font-mono);font-size:1.0625rem;font-weight:600;color:var(--color-text)}.blog-post-content h4{font-family:var(--font-mono);font-size:.9375rem;font-weight:600;color:var(--color-text-muted)}.blog-post-content p{margin-bottom:var(--space-md)}.blog-post-content a{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.blog-post-content a:hover{text-decoration-thickness:2px}.blog-post-content code{font-family:var(--font-mono);font-size:.85em;background:#f2e9e1;color:#575279;padding:.2em .5em;border:1px solid #dfdad5}html.theme-dark .blog-post-content code{background:#393552;color:#e0def4;border-color:#4a465d}.blog-post-content pre{background:#faf4ed!important;border:1px solid #dfdad5;padding:var(--space-md);overflow-x:auto;margin:var(--space-md) 0;font-family:var(--font-mono);font-size:.875rem;line-height:1.6}html.theme-dark .blog-post-content pre{background:#232136!important;border-color:#393552}.blog-post-content pre code{background:transparent!important;border:none;padding:0;font-size:inherit}.shiki,.shiki span{color:var(--shiki-light)!important;background-color:transparent!important}html.theme-dark .shiki,html.theme-dark .shiki span{color:var(--shiki-dark)!important;background-color:transparent!important}.blog-post-content img{max-width:100%;height:auto;margin:var(--space-md) 0;border:1px solid var(--color-border)}.blog-post-content blockquote{margin:var(--space-md) 0;padding:var(--space-sm) var(--space-md);border-left:2px solid var(--color-accent);background:var(--color-bg-alt);font-style:italic;color:var(--color-text-muted)}.blog-post-content blockquote p:last-child{margin-bottom:0}.blog-post-content ul,.blog-post-content ol{margin:0 0 var(--space-md) 0;padding-left:var(--space-lg)}.blog-post-content li{margin-bottom:var(--space-xs)}.blog-post-content hr{border:none;height:1px;background:var(--color-border);margin:var(--space-lg) 0;position:relative}.blog-post-content hr:after{content:"*";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--color-bg);padding:0 var(--space-md);color:var(--color-text-muted);font-family:var(--font-display);font-size:1.25rem;font-style:italic}.timeline{position:relative;padding-left:var(--space-xl)}.timeline:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:1px;background:var(--color-border)}.timeline-item{position:relative;margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.timeline-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:calc(-1 * var(--space-xl) - 4px);top:8px;width:9px;height:9px;background:var(--color-bg);border:2px solid var(--color-border-strong);border-radius:50%;transition:all .2s ease}.timeline-item:hover:before{background:var(--color-accent);border-color:var(--color-accent)}.timeline-date{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-muted);margin-bottom:var(--space-xs)}.timeline-content h2{font-family:var(--font-mono);font-size:1rem;font-weight:600;margin:0 0 var(--space-xs) 0;line-height:1.4}.timeline-content h2 a{color:var(--color-text);text-decoration:none;transition:color .2s ease}.timeline-content h2 a:hover{color:var(--color-accent)}.timeline-meta{font-family:var(--font-body);font-size:.9375rem;color:var(--color-text-muted);line-height:1.6}.about-content{font-size:1.125rem}@media (max-width: 1024px){:root{--max-width: 680px}}@media (max-width: 768px){:root{--space-lg: 1.5rem;--space-xl: 3rem;--space-2xl: 4rem}.main-header{padding:var(--space-sm) var(--space-md)}.main-header .logo{font-size:.875rem;flex-shrink:1;min-width:0;overflow:hidden}.shell-arg{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.main-nav{gap:var(--space-md);flex-shrink:0}.main-nav .nav-link{font-size:.875rem}.theme-toggle{width:28px;height:28px}.theme-toggle svg{width:16px;height:16px}.bun{width:min(240px,60vw);height:min(360px,45vh)}.latest-posts{max-width:100%;padding:0 var(--space-sm)}.blog-content{padding-top:calc(var(--space-xl) + var(--space-md));padding-left:var(--space-md);padding-right:var(--space-md)}.blog-title{max-width:100%}.blog-header-row{flex-direction:column}.timeline{padding-left:var(--space-lg)}.timeline-item:before{left:calc(-1 * var(--space-lg) - 3px)}}@media (max-width: 480px){:root{--space-md: .75rem;--space-lg: 1rem;--space-xl: 2rem;--space-2xl: 3rem}html{font-size:15px}.main-header{padding:var(--space-sm)}.main-nav{gap:var(--space-sm)}.main-nav .nav-link{font-size:.8125rem}.bun{width:min(200px,70vw);height:min(300px,40vh)}.latest-posts h3,.latest-posts a{font-size:.875rem}.post-date{font-size:.6875rem}.blog-post-content{font-size:1.0625rem}.blog-post-content h2{font-size:1.125rem}.blog-post-content h3{font-size:1rem}.timeline-content h2{font-size:1.125rem}}@media print{.main-header{display:none}.blog-content{padding-top:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
