.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.command-palette-backdrop[data-astro-cid-wozhyvwc]{position:fixed;inset:0;background-color:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:9999;display:none;align-items:flex-start;justify-content:center;padding-top:min(20vh,160px)}.command-palette-backdrop[data-astro-cid-wozhyvwc]:not([hidden]){display:flex;animation:cpFadeIn .15s var(--ease-out)}@keyframes cpFadeIn{0%{opacity:0}to{opacity:1}}.command-palette[data-astro-cid-wozhyvwc]{width:100%;max-width:520px;background-color:var(--background);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 70px #00000059;overflow:hidden;animation:cpSlideIn .15s var(--ease-out)}@keyframes cpSlideIn{0%{opacity:0;transform:scale(.98) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.command-palette-search[data-astro-cid-wozhyvwc]{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-md);border-bottom:1px solid var(--border)}.command-palette-icon[data-astro-cid-wozhyvwc]{color:var(--muted-foreground);flex-shrink:0}.command-palette-input[data-astro-cid-wozhyvwc]{flex:1;border:none;background:transparent;font-size:var(--font-size-base);color:var(--foreground);font-family:inherit;outline:none;min-width:0}.command-palette-input[data-astro-cid-wozhyvwc]::placeholder{color:var(--muted-foreground)}.command-palette-kbd[data-astro-cid-wozhyvwc]{font-size:var(--font-size-xs);padding:2px 6px;border:1px solid var(--border);border-radius:4px;background-color:var(--muted);color:var(--muted-foreground);font-family:inherit;font-weight:500;line-height:1.4;flex-shrink:0}.command-palette-results[data-astro-cid-wozhyvwc]{max-height:320px;overflow-y:auto;padding:var(--spacing-sm) 0;overscroll-behavior:contain}.command-palette-results[data-astro-cid-wozhyvwc]::-webkit-scrollbar{width:4px}.command-palette-results[data-astro-cid-wozhyvwc]::-webkit-scrollbar-track{background:transparent}.command-palette-results[data-astro-cid-wozhyvwc]::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.command-group-label[data-astro-cid-wozhyvwc]{font-size:11px;font-weight:500;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;padding:var(--spacing-sm) var(--spacing-md) var(--spacing-xs)}.command-item[data-astro-cid-wozhyvwc]{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);margin:0 var(--spacing-xs);border-radius:6px;cursor:pointer;transition:background-color 80ms ease}.command-item[data-astro-cid-wozhyvwc].selected{background-color:var(--muted)}.command-item-content[data-astro-cid-wozhyvwc]{display:flex;align-items:center;gap:var(--spacing-sm);min-width:0}.command-item-title[data-astro-cid-wozhyvwc]{font-size:var(--font-size-sm);color:var(--foreground);font-weight:400}.command-item[data-astro-cid-wozhyvwc].selected .command-item-title[data-astro-cid-wozhyvwc]{font-weight:500}.command-item-shortcut[data-astro-cid-wozhyvwc]{font-size:var(--font-size-xs);padding:2px 6px;border:1px solid var(--border);border-radius:4px;background-color:var(--muted);color:var(--muted-foreground);font-family:inherit;font-weight:500;line-height:1.4}.command-empty[data-astro-cid-wozhyvwc]{padding:var(--spacing-xl) var(--spacing-md);text-align:center;color:var(--muted-foreground);font-size:var(--font-size-sm)}@media(max-width:640px){.command-palette[data-astro-cid-wozhyvwc]{max-width:calc(100% - 2rem);margin:0 1rem}}@media(prefers-reduced-motion:reduce){.command-palette-backdrop[data-astro-cid-wozhyvwc]:not([hidden]){animation:none}.command-palette[data-astro-cid-wozhyvwc]{animation:none}}:root{--font-sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", system-ui, sans-serif;--background: #111;--foreground: #eee;--muted: #222;--muted-foreground: #bbb;--border: #333;--ring: #555;--accent: #ddd;--accent-foreground: #eee;--logo-bg: #fff;--logo-fill: #111;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-lg: 1rem;--font-size-xl: 1.0625rem;--font-size-2xl: 1.1875rem;--font-size-3xl: 1.375rem;--font-size-4xl: 1.625rem;--font-size-5xl: 2rem;--font-size-6xl: 2.5rem;--font-size-7xl: 3rem;--font-size-8xl: 3.5rem;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 40px;--spacing-2xl: 64px;--spacing-3xl: 96px;--spacing-4xl: 128px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.45, 0, .55, 1);--duration-fast: .18s;--duration-base: .28s;--duration-slow: .5s;--separator: linear-gradient(90deg, transparent 0%, var(--border) 12%, var(--border) 88%, transparent 100%)}html[data-theme=dark]{color-scheme:dark}html[data-theme=light]{color-scheme:light;--background: #fafafa;--foreground: #111;--muted: #e5e5e5;--muted-foreground: #666;--border: #ddd;--ring: #999;--accent: #333;--accent-foreground: #111;--logo-bg: #e5e5e5;--logo-fill: #111}@media(prefers-contrast:more){:root{--muted-foreground: #bbb;--accent: #eee}html[data-theme=light]{--muted-foreground: #555;--accent: #111;--border: #ccc}}@supports (font-variation-settings: normal){:root{--font-sans: InterVariable, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", system-ui, sans-serif}}*{box-sizing:border-box}img,video,iframe{max-width:100%}.skip-link{position:absolute;top:-100px;left:0;background:var(--foreground);color:var(--background);padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;font-weight:600;z-index:1000;border-radius:4px;transition:top var(--duration-base) var(--ease-out)}.skip-link:focus{top:var(--spacing-md);outline:2px solid var(--accent);outline-offset:2px}html{width:100%;min-height:100%;overflow-x:clip;background-color:var(--background);position:relative;font-size:16px;line-height:1.5;scroll-behavior:smooth;scrollbar-gutter:stable}body{--content-max-width: 40rem;width:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative;font-family:var(--font-sans);background-color:var(--background);color:var(--muted-foreground);text-align:left;margin:0;padding:0;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);align-items:center;justify-content:flex-start;padding-top:var(--spacing-xl);font-size:var(--font-size-base);line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.nav{width:100%;max-width:var(--content-max-width);padding:0;box-sizing:border-box;margin:0 auto var(--spacing-2xl) auto}.nav-container{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.nav-photo{position:relative;display:flex;align-items:center;justify-content:center;text-decoration:none;flex-shrink:0;min-width:44px;min-height:44px}.nav-photo-img{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--border);transition:transform var(--duration-base) var(--ease-out)}.nav-logo{display:block;border-radius:50%;border:1px solid var(--border);transition:transform var(--duration-base) var(--ease-out)}.nav-logo-circle{fill:var(--logo-bg)}.nav-logo-mark{fill:var(--logo-fill)}.nav-photo:hover .nav-photo-img{transform:scale(1.1)}.status-dot{position:absolute;bottom:5px;right:5px;width:8px;height:8px;background-color:#22c55e;border:2px solid var(--background);border-radius:50%;box-shadow:0 0 0 2px var(--background);transition:background-color .3s ease}.status-dot[data-status=away]{background-color:#9ca3af}.nav-links{display:flex;gap:var(--spacing-lg);align-items:center}.nav .nav-link{display:inline-flex;align-items:center;padding:var(--spacing-sm) 0;min-height:44px;font-size:var(--font-size-base);font-weight:500;color:var(--muted-foreground);text-decoration:none;transition:color var(--duration-fast) var(--ease-in-out);white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.nav .nav-link:hover{color:var(--foreground)}.nav .nav-link.active,.nav .nav-link.active:visited{color:var(--foreground);font-weight:600}.nav .nav-link:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:2px}.note-list{list-style:none;margin:0;padding:0}.note-list li{border-bottom:1px solid var(--border)}.note-list li:last-child{border-bottom:none}.note-list-link{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-lg);min-height:44px;padding:var(--spacing-md) 0;color:inherit;text-decoration:none;transition:opacity var(--duration-base) var(--ease-out);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.note-list-link:hover{opacity:.6}.note-list-link:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:2px}.note-list-title{font-weight:500;color:var(--foreground);min-width:0}.note-list-date{flex-shrink:0;font-size:var(--font-size-sm);color:var(--muted-foreground);font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace}@media(max-width:768px){.note-list-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.empty-state-box{padding:var(--spacing-2xl);border:2px dashed var(--border);border-radius:8px;text-align:center}.empty-state-box .text{margin:0}.notes-with-timeline{position:relative;width:100%}.notes-year-sections{width:100%}.notes-year-section{margin-bottom:var(--spacing-2xl)}.notes-year-section:last-child{margin-bottom:0}.year-timeline{position:fixed;left:0;top:33vh;width:40px;z-index:10;transition:width var(--duration-base) var(--ease-out)}.year-timeline:hover{width:100px}.year-timeline-nav{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-xs) 0}.year-timeline-item{position:relative;display:block;height:14px;font-size:var(--font-size-sm);font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace;color:var(--muted-foreground);text-decoration:none;transition:color var(--duration-fast) var(--ease-in-out)}.year-timeline-item:before{content:"";position:absolute;top:50%;left:0;transform:translateY(-50%);width:8px;height:2px;border-radius:4px;background:var(--muted-foreground);opacity:.85;transition:width var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out),opacity var(--duration-fast) var(--ease-in-out)}.year-timeline-item:hover:before{opacity:1;background:var(--muted-foreground)}.year-timeline-item.active:before{width:12px;background:var(--foreground);opacity:1}.year-timeline-item span{position:absolute;left:26px;top:50%;transform:translateY(-50%) translate(-6px);font-size:var(--font-size-sm);color:var(--muted-foreground);white-space:nowrap;line-height:1;opacity:0;pointer-events:none;transition:opacity var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}.year-timeline:hover .year-timeline-item span{opacity:1;transform:translateY(-50%) translate(0);pointer-events:auto}.year-timeline-item.active span{color:var(--foreground);font-weight:600}.year-timeline-item:hover{color:var(--foreground)}.year-timeline-item:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:2px}@media(max-width:1024px){.year-timeline{display:none}}.timeline-layout{position:relative;width:100%}.timeline-year-section{margin-bottom:var(--spacing-2xl)}.timeline-year-section:last-child{margin-bottom:0}.container{width:100%;max-width:var(--content-max-width);padding:var(--spacing-lg) 0 0;box-sizing:border-box;background:transparent;flex-grow:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;margin:0 auto}.section{width:100%;text-align:left}.page-enter{width:100%;flex:1;display:flex;flex-direction:column;min-height:0}.section-mb-sm{margin-bottom:var(--spacing-lg)}.section-mb-md{margin-bottom:var(--spacing-xl)}.section-mb-lg{margin-bottom:var(--spacing-2xl)}.prose{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:0;width:100%}.prose p{margin:0 0 var(--spacing-lg) 0;font-size:var(--font-size-base);color:var(--muted-foreground);line-height:1.7;letter-spacing:.01em}.prose p:last-child{margin-bottom:0}.prose p.highlight{color:var(--foreground)}.prose strong{font-weight:600;color:var(--foreground)}.prose ul,.prose ol{margin:0 0 var(--spacing-lg) 0;padding-left:var(--spacing-lg)}.prose li{margin-bottom:var(--spacing-sm);color:var(--muted-foreground);line-height:1.6;overflow-wrap:break-word}.prose li:last-child{margin-bottom:0}.prose a:any-link{color:var(--accent);text-decoration:none;font-weight:500;transition:opacity var(--duration-fast) var(--ease-in-out);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.prose p a:any-link{text-decoration:underline;text-underline-offset:.2em}.prose p a:any-link:hover{text-decoration:none}.prose a:any-link:hover{opacity:.85}.prose a:any-link:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:2px}.prose h2:first-of-type,.prose>*:first-of-type+h2,.prose>p:first-of-type+h2{margin-top:var(--spacing-xl)}.prose blockquote{margin:0 0 var(--spacing-lg) 0;padding-left:var(--spacing-lg);border-left:3px solid var(--border);color:var(--muted-foreground);font-style:italic;line-height:1.7}.prose .footnotes{margin-top:var(--spacing-2xl);padding-top:var(--spacing-lg);border-top:none;background-image:var(--separator);background-size:100% 1px;background-repeat:no-repeat;background-position:top;font-size:var(--font-size-sm)}.prose .footnotes ol{list-style:none;padding:0;counter-reset:sidenote-counter}.prose .footnotes li{margin-bottom:var(--spacing-md);counter-increment:sidenote-counter;position:relative;padding-left:var(--spacing-lg)}.prose .footnotes li:before{content:counter(sidenote-counter);position:absolute;left:0;top:0;font-size:var(--font-size-xs);color:var(--muted-foreground);font-weight:600}.prose .footnotes p{margin:0;color:var(--muted-foreground);line-height:1.6}.prose a[data-footnote-ref]{text-decoration:none;font-size:.75em;vertical-align:super;color:var(--accent);font-weight:600;padding:0 2px}.prose a[data-footnote-ref]:hover{text-decoration:underline}@media(min-width:1200px){.prose{position:relative}.prose .footnotes{position:absolute;right:calc(-250px - var(--spacing-xl));width:250px;margin-top:0;padding-top:0;border-top:none}.prose .footnotes li{font-size:var(--font-size-xs);margin-bottom:var(--spacing-lg);padding:var(--spacing-sm);background-color:var(--muted);border-radius:6px;border:1px solid var(--border)}.prose .footnotes li:before{position:static;display:inline;margin-right:var(--spacing-xs)}}.timeline-entry{display:grid;grid-template-columns:1fr 2fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl);align-items:start;position:relative}.timeline-entry:last-child{margin-bottom:0}.timeline-date{font-size:var(--font-size-base);color:var(--muted-foreground);font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;position:sticky;top:var(--spacing-xl)}.timeline-content{min-width:0}.timeline-content h2{margin-top:0;margin-bottom:var(--spacing-sm);color:var(--foreground)}.timeline-content p{margin:0 0 var(--spacing-md) 0;font-size:var(--font-size-base);color:var(--muted-foreground);line-height:1.6}.timeline-content p:last-child{margin-bottom:0}.timeline-content ul{margin:0 0 var(--spacing-md) 0;padding-left:var(--spacing-lg)}.timeline-content li{margin-bottom:var(--spacing-xs)}.timeline-content a:any-link{color:var(--accent);text-decoration:none;font-weight:500;transition:opacity var(--duration-fast) var(--ease-in-out);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.timeline-content p a:any-link{text-decoration:underline;text-underline-offset:.2em}.timeline-content p a:any-link:hover{text-decoration:none}.timeline-content a:any-link:hover{opacity:.85}.timeline-content a:any-link:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:2px}@media(max-width:768px){.timeline-entry{grid-template-columns:1fr;gap:var(--spacing-sm)}.timeline-date{position:static}}h1,h2,h3,h4,h5,h6{color:var(--foreground);font-weight:600;position:relative}.heading-anchor{margin-left:.35em;color:var(--muted-foreground);text-decoration:none;opacity:0;transition:opacity var(--duration-fast) var(--ease-in-out),color var(--duration-fast) var(--ease-in-out);font-weight:400;font-size:.75em}h1:hover .heading-anchor,h2:hover .heading-anchor,h3:hover .heading-anchor,h4:hover .heading-anchor,h5:hover .heading-anchor,h6:hover .heading-anchor,.heading-anchor:focus{opacity:1}@media(prefers-reduced-motion:reduce){.heading-anchor{opacity:1}}.heading-anchor:hover{color:var(--foreground)}.heading-anchor .icon{display:none}.heading-anchor:after{content:"#"}h1,.section h1{font-size:var(--font-size-6xl);font-weight:600;letter-spacing:-.035em;line-height:1.1;margin:0 0 var(--spacing-lg) 0;scroll-margin-top:var(--spacing-xl)}h2,.section h2{font-size:var(--font-size-4xl);font-weight:600;letter-spacing:-.025em;line-height:1.2;margin:var(--spacing-2xl) 0 var(--spacing-lg) 0;scroll-margin-top:var(--spacing-xl)}h2:first-child,.section h2:first-child{margin-top:0}h3{font-size:var(--font-size-3xl);font-weight:600;letter-spacing:-.02em;line-height:1.3;margin:var(--spacing-xl) 0 var(--spacing-md) 0;scroll-margin-top:var(--spacing-lg)}h4{font-size:var(--font-size-2xl);font-weight:600;letter-spacing:-.015em;line-height:1.35;margin:var(--spacing-lg) 0 var(--spacing-md) 0;scroll-margin-top:var(--spacing-lg)}h5{font-size:var(--font-size-xl);font-weight:600;line-height:1.4;margin:var(--spacing-md) 0 var(--spacing-sm) 0;scroll-margin-top:var(--spacing-md)}h6{font-size:var(--font-size-lg);font-weight:600;line-height:1.4;margin:var(--spacing-md) 0 var(--spacing-sm) 0;scroll-margin-top:var(--spacing-md)}p,ul,ol,li{color:var(--muted-foreground)}.text{font-size:var(--font-size-base);color:var(--muted-foreground);line-height:1.6;font-weight:400}.text-lg{font-size:var(--font-size-lg);line-height:1.7}.text-muted{color:var(--muted-foreground)}.highlight{color:var(--foreground);font-weight:600}.prose code,.timeline-content code,.greeting-tagline code{font-family:ui-monospace,SF Mono,Cascadia Code,Roboto Mono,Consolas,monospace;font-size:.85em;padding:.15em .3em;background:var(--muted);border:1px solid var(--border);border-radius:4px;color:var(--foreground);overflow-wrap:break-word}html[data-theme=dark] [data-theme="github-dark github-light"] span[style]{color:var(--shiki-dark)}html[data-theme=light] [data-theme="github-dark github-light"] span[style]{color:var(--shiki-light)}figure[data-rehype-pretty-code-figure]{margin:0 0 var(--spacing-lg) 0;position:relative;border-radius:6px;border:1px solid var(--border);overflow:hidden}figure[data-rehype-pretty-code-figure]>figcaption[data-rehype-pretty-code-title]{display:flex;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--muted);border-bottom:1px solid var(--border);font-family:ui-monospace,SF Mono,Cascadia Code,Roboto Mono,Consolas,monospace;font-size:var(--font-size-xs);color:var(--muted-foreground);text-align:left;margin:0;letter-spacing:.02em}.prose pre,.timeline-content pre{margin:0 0 var(--spacing-lg) 0;padding:var(--spacing-md) 0;background:var(--muted)!important;border-radius:6px;overflow-x:auto;overscroll-behavior-x:contain;font-family:ui-monospace,SF Mono,Cascadia Code,Roboto Mono,Consolas,monospace;font-size:var(--font-size-sm);line-height:1.7;color:var(--foreground);position:relative;border:1px solid var(--border)}figure[data-rehype-pretty-code-figure]>pre{margin:0;border:none;border-radius:0}.prose pre[data-language],.timeline-content pre[data-language]{background:var(--background)!important}.prose pre[data-language]:before,.timeline-content pre[data-language]:before{content:"";position:absolute;top:0;left:0;right:0;height:34px;background:var(--muted);border-bottom:1px solid var(--border);pointer-events:none}figure[data-rehype-pretty-code-figure]>pre[data-language]:before{border-radius:0}.prose pre[data-language]>code,.timeline-content pre[data-language]>code{background:transparent;margin:0;padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.prose pre[data-language]:after,.timeline-content pre[data-language]:after{content:attr(data-language);position:absolute;top:0;left:0;height:34px;padding:0 var(--spacing-md);line-height:34px;font-family:ui-monospace,SF Mono,Cascadia Code,Roboto Mono,Consolas,monospace;font-size:var(--font-size-xs);font-weight:400;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.08em;opacity:.6;pointer-events:none}.prose pre[data-language],.timeline-content pre[data-language]{padding-top:34px;padding-bottom:0}figure[data-rehype-pretty-code-figure]>pre[data-language]{background:var(--background)!important}@media(max-width:768px){.prose pre,.timeline-content pre{font-size:var(--font-size-xs)}.prose pre[data-language]:before,.timeline-content pre[data-language]:before{height:32px}.prose pre[data-language]:after,.timeline-content pre[data-language]:after{height:32px;line-height:32px;font-size:10px;letter-spacing:.06em}.prose pre[data-language],.timeline-content pre[data-language]{padding-top:32px}}.prose pre code,.timeline-content pre code{padding:0;background:none;border:none;border-radius:0;font-size:inherit;overflow-wrap:normal;display:grid;counter-reset:line}.prose pre>code>[data-line],.timeline-content pre>code>[data-line]{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.prose pre>code[data-line-numbers]>[data-line],.timeline-content pre>code[data-line-numbers]>[data-line]{padding-left:0}.prose pre>code[data-line-numbers]>[data-line]:before,.timeline-content pre>code[data-line-numbers]>[data-line]:before{counter-increment:line;content:counter(line);display:inline-block;width:2ch;margin-right:var(--spacing-md);padding-left:var(--spacing-md);text-align:right;color:var(--muted-foreground);opacity:.3;font-variant-numeric:tabular-nums;user-select:none}.prose pre>code[data-line-numbers-max-digits="2"]>[data-line]:before,.timeline-content pre>code[data-line-numbers-max-digits="2"]>[data-line]:before{width:3ch}.prose pre>code[data-line-numbers-max-digits="3"]>[data-line]:before,.timeline-content pre>code[data-line-numbers-max-digits="3"]>[data-line]:before{width:4ch}.prose pre>code [data-highlighted-line],.timeline-content pre>code [data-highlighted-line]{background-color:#ffffff0f;border-left:2px solid var(--accent);padding-left:calc(var(--spacing-md) - 2px)}html[data-theme=light] .prose pre>code [data-highlighted-line],html[data-theme=light] .timeline-content pre>code [data-highlighted-line]{background-color:#0000000a}.prose pre>code [data-line][data-diff="+"],.timeline-content pre>code [data-line][data-diff="+"]{background-color:#2ea0431f;border-left:2px solid rgba(46,160,67,.6);padding-left:calc(var(--spacing-md) - 2px)}.prose pre>code [data-line][data-diff="-"],.timeline-content pre>code [data-line][data-diff="-"]{background-color:#f851491f;border-left:2px solid rgba(248,81,73,.5);padding-left:calc(var(--spacing-md) - 2px);opacity:.7}.prose pre>code [data-line][data-diff="!"],.timeline-content pre>code [data-line][data-diff="!"]{background-color:#d299221f;border-left:2px solid rgba(210,153,34,.6);padding-left:calc(var(--spacing-md) - 2px)}a:any-link{color:var(--foreground);text-decoration:none}p a:any-link{color:var(--accent);text-decoration:underline;text-underline-offset:.2em;transition:opacity var(--duration-fast) var(--ease-in-out)}p a:any-link:hover{opacity:.85;text-decoration:none}p a[href^=http]:not([href*="djimi.dev"]):after{content:"↗";margin-left:.2em;font-size:.85em;display:inline-block;vertical-align:.05em;text-decoration:none;transition:transform var(--duration-base) var(--ease-out)}p a[href^=http]:not([href*="djimi.dev"]):hover:after{transform:translate(2px,-2px)}.link{color:var(--foreground);text-decoration:none;font-weight:500;transition:color var(--duration-fast) var(--ease-in-out),opacity var(--duration-fast) var(--ease-in-out);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.link:hover{color:var(--accent);opacity:1}.link:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:2px}.link-animated{display:inline-flex;align-items:center;gap:.5rem;color:var(--accent);text-decoration:none;font-weight:600;font-size:var(--font-size-base);transition:opacity var(--duration-fast) var(--ease-in-out);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.link-animated:hover{opacity:.85}.link-arrow{display:inline-flex;line-height:1}.link-animated:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:2px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.note-list-link:hover{opacity:1}.nav-photo:hover .nav-photo-img,.theme-toggle:active{transform:none}html[data-theme],html[data-theme] *,html[data-theme] *:before,html[data-theme] *:after{transition:none}p a[href^=http]:not([href*="djimi.dev"]):hover:after{transform:none}}.profile-section{margin-bottom:var(--spacing-xl)}.profile-section h1{font-size:var(--font-size-6xl);margin:0 0 var(--spacing-lg) 0;font-weight:600;letter-spacing:-.04em;line-height:1.3;color:var(--foreground)}.greeting-name{display:block}.greeting-tagline{display:block;font-size:var(--font-size-3xl);font-weight:500;letter-spacing:-.02em;color:var(--muted-foreground)}.profile-section p{margin-bottom:0}.now-last-updated{font-size:var(--font-size-sm);color:var(--muted-foreground);margin-top:var(--spacing-xl)}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-sm);font-weight:500;color:var(--muted-foreground);text-decoration:none;margin-bottom:var(--spacing-sm);min-height:44px;padding:var(--spacing-xs) var(--spacing-sm);background:transparent;border:none;border-radius:6px;transition:color var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out)}.back-link:hover{color:var(--foreground);background:color-mix(in srgb,var(--foreground) 8%,transparent)}.back-link:focus-visible{outline:2px solid var(--ring);outline-offset:2px}footer{width:100%;max-width:100%;overflow:visible;padding:var(--spacing-xl) 0 max(var(--spacing-xl),env(safe-area-inset-bottom)) 0;font-size:var(--font-size-sm);color:var(--muted-foreground);font-weight:400}.footer-content{display:flex;flex-direction:column;align-items:stretch;width:100%;max-width:var(--content-max-width);margin:0 auto;box-sizing:border-box}.footer-copyright{text-align:left;margin:0}.footer-links{display:flex;gap:var(--spacing-lg);align-items:center}footer .footer-link{display:inline-flex;align-items:center;font-size:var(--font-size-sm);color:var(--muted-foreground);text-decoration:none;font-weight:500;min-height:44px;padding:0 var(--spacing-xs);box-sizing:border-box;transition:color var(--duration-fast) var(--ease-in-out);touch-action:manipulation;-webkit-tap-highlight-color:transparent}footer .footer-link:hover{color:var(--accent)}footer .footer-link:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:2px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0;margin:0;margin-left:var(--spacing-xs);background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent;vertical-align:middle}.theme-toggle:focus-visible{outline:none}.theme-toggle:focus-visible .theme-toggle-track{outline:2px solid var(--ring);outline-offset:2px}.theme-toggle-track{position:relative;width:28px;height:16px;border-radius:999px;background:var(--muted);border:1px solid var(--border);transition:background var(--duration-fast) var(--ease-in-out),border-color var(--duration-fast) var(--ease-in-out);flex-shrink:0;view-transition-name:theme-toggle}::view-transition-old(theme-toggle),::view-transition-new(theme-toggle){animation:none}.theme-toggle:hover .theme-toggle-track{border-color:var(--muted-foreground)}.theme-toggle:active .theme-toggle-track{opacity:.7}.theme-toggle-thumb{position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:var(--foreground);transition:transform var(--duration-base) var(--ease-out);pointer-events:none}html[data-theme=light] .theme-toggle-thumb{transform:translate(12px)}.footer-top{display:flex;justify-content:space-between;align-items:baseline;width:100%;gap:var(--spacing-md)}@media(max-width:768px){.footer-top{flex-direction:column;align-items:center;gap:var(--spacing-sm)}.footer-copyright{text-align:center}}.now-image,.prose img,.timeline-content img{border-radius:8px;border:1px solid var(--border);max-width:100%;height:auto}.prose figure,.timeline-content figure{margin:var(--spacing-xl) 0;margin-inline-start:0;margin-inline-end:0}figure img,.prose img,.timeline-content img{margin:var(--spacing-md) 0;display:block}.prose figure img,.timeline-content figure img{margin-top:0}figure figcaption,.prose figcaption,.timeline-content figcaption{margin-top:var(--spacing-sm);margin-bottom:0;font-size:var(--font-size-sm);color:var(--muted-foreground);text-align:center}@media(max-width:768px){.container{padding:var(--spacing-xl) var(--spacing-lg) 0}.nav{padding:0 var(--spacing-lg);margin-bottom:var(--spacing-xl)}.nav .nav-link.active,.nav .nav-link.active:visited{color:var(--foreground);font-weight:600}body{padding-top:var(--spacing-xl)}.profile-section{margin-bottom:var(--spacing-xl)}h1,.section h1{font-size:var(--font-size-5xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}.profile-section h1{font-size:var(--font-size-5xl)}footer{padding:var(--spacing-xl) 0 max(var(--spacing-lg),env(safe-area-inset-bottom)) 0}.footer-content{padding:0 var(--spacing-lg);align-items:stretch;gap:var(--spacing-md)}.footer-copyright{text-align:left}.footer-links{gap:var(--spacing-md)}}body.error-page{padding-top:0;justify-content:center;align-items:center}body.error-page .page-enter{flex:0 0 auto}body.error-page .error-container{flex-grow:0}.error-container{justify-content:center;align-items:center;padding:var(--spacing-lg)}.error-content{text-align:center;margin:0}.error-content h1{font-size:var(--font-size-8xl);margin:0 0 var(--spacing-md) 0;font-weight:600;letter-spacing:-.025em;line-height:1.2;color:var(--foreground)}.error-content p{font-size:var(--font-size-xl);margin:0 0 var(--spacing-lg) 0;line-height:1.6;font-weight:400;color:var(--muted-foreground)}.error-content a{color:var(--muted-foreground);text-decoration:none;font-weight:500;transition:color var(--duration-fast) var(--ease-in-out);display:inline-block}.error-content a:hover{color:var(--foreground)}@media(max-width:768px){.error-content h1{font-size:var(--font-size-7xl)}}@keyframes rainbow{0%,to{filter:hue-rotate(0deg)}50%{filter:hue-rotate(360deg)}}@keyframes slideDown{0%{transform:translate(-50%) translateY(-100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}@keyframes slideUp{0%{transform:translate(-50%) translateY(0);opacity:1}to{transform:translate(-50%) translateY(-100%);opacity:0}}
