@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/inter@latest/latin-400-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/inter@latest/latin-500-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/inter@latest/latin-600-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/inter@latest/latin-700-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:900;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/inter@latest/latin-900-normal.woff2)format("woff2")}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:100%}img,video,canvas,svg{max-width:100%;height:auto;display:block}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}:root{--c-white:#fff;--c-gray-100:#f2f2f2;--c-gray-200:#e8e8e8;--c-gray-400:#8a8a8a;--c-gray-600:#50575e;--c-gray-700:#3c434a;--c-gray-900:#111;--c-blue:#3858e9;--c-border:#e8e8e8;--c-border-soft:#efefef;--bg:var(--c-white);--text-primary:var(--c-gray-900);--text-secondary:var(--c-gray-700);--text-tertiary:var(--c-gray-600);--text-muted:var(--c-gray-400);--accent:var(--c-blue);--border:var(--c-border);--border-soft:var(--c-border-soft);--surface:var(--c-gray-100);--surface-hover:var(--c-gray-200);--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:clamp(1.75rem, 4vw, 2.5rem);--flow-space:2rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--font-sans:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--fs-xs:.8125rem;--fs-sm:.9375rem;--fs-base:1rem;--fs-xl:1.25rem;--fs-2xl:1.5rem;--fs-hero:clamp(3.5rem, 12vw, 7rem);--lh-tight:1.25;--lh-snug:1.45;--lh-base:1.65;--lh-loose:1.75;--container-max:47.5rem}@media (max-width:37.5em){:root{--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:.9375rem;--fs-xl:1.125rem;--fs-2xl:1.25rem;--fs-hero:clamp(3rem, 16vw, 5rem);--space-lg:1.25rem;--space-xl:1.5rem;--space-2xl:2rem;--flow-space:1.5rem}}body{font-family:var(--font-sans);background:var(--bg);color:var(--text-primary);line-height:var(--lh-base);padding-bottom:6rem;overflow-x:hidden}:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px;border-radius:var(--radius-sm)}.container{max-width:var(--container-max);padding-inline:var(--space-lg);margin:0 auto}.vh{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{left:-9999px;top:var(--space-md);z-index:100;background:var(--text-primary);color:var(--c-white);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font-weight:600;text-decoration:none;position:absolute}.skip:focus{left:var(--space-md)}.site-header{padding-block:var(--space-xl);justify-content:space-between;align-items:center;display:flex;position:relative}.brand{font-size:inherit;font-weight:inherit;margin:0;line-height:1}.brand__link{align-items:center;gap:var(--space-sm);color:var(--text-primary);text-decoration:none;display:inline-flex}.brand__logo{flex-shrink:0;width:2.25rem;height:2.25rem;position:relative}.brand__logo:before{content:"";background:var(--text-primary);border-radius:50%;width:1.375rem;height:1.375rem;position:absolute;top:50%;left:0;transform:translateY(-50%)}.brand__logo:after{content:"";border:2px solid var(--text-primary);box-sizing:border-box;background:0 0;border-radius:50%;width:1.375rem;height:1.375rem;position:absolute;top:50%;right:0;transform:translateY(-50%)}.brand__name{letter-spacing:-.02em;font-size:1.375rem;font-weight:700;line-height:1}.site-nav{align-items:center;gap:var(--space-sm);margin-inline-end:-.3125rem;display:flex}.icon-btn{cursor:pointer;width:2rem;height:2rem;color:var(--text-primary);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:inline-flex}.icon-btn:hover{opacity:.6}.icon-btn svg{width:1.375rem;height:1.375rem}.dropdown{background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:var(--space-2xs);z-index:30;width:13rem;display:none;position:absolute;box-shadow:0 6px 20px #0000000f}.dropdown[data-state=open]{display:block}.dropdown a{align-items:center;gap:var(--space-sm);color:var(--text-secondary);font-size:var(--fs-sm);border-radius:var(--radius-sm);padding:.5625rem .75rem;font-weight:500;text-decoration:none;transition:background .12s;display:flex}.dropdown a:hover{background:var(--surface);color:var(--text-primary)}.dropdown a svg{width:1rem;height:1rem;color:var(--text-muted);flex-shrink:0}.dropdown a:hover svg{color:var(--text-primary)}#nav-dropdown{top:100%;right:var(--space-lg)}#share-dropdown{top:auto;bottom:calc(100% + var(--space-xs));z-index:60;right:0}.search-wrap{max-width:var(--container-max);padding-inline:var(--space-lg);margin:0 auto;display:none}.search-wrap[data-state=open]{padding-bottom:var(--space-md);display:block}.search-wrap input{border:1px solid var(--c-gray-400);border-radius:var(--radius-sm);width:100%;max-width:20rem;font-family:inherit;font-size:var(--fs-sm);outline:none;padding:.625rem .875rem}.search-wrap input:focus{border-color:var(--text-primary)}#home-view[data-state=closed],#reading-view[data-state=closed]{display:none}.post{margin-bottom:var(--space-2xl);cursor:pointer;transition:opacity .2s;display:block}.post:hover{opacity:.85}.post h2{font-size:var(--fs-2xl);font-weight:700;line-height:var(--lh-tight);letter-spacing:-.02em;margin-bottom:var(--space-md);text-wrap:balance}.post h2 a{color:inherit;text-decoration:none}.thumb{aspect-ratio:16/9;border-radius:var(--radius-lg);width:100%;font-weight:900;font-size:var(--fs-hero);letter-spacing:-.05em;margin-bottom:var(--space-lg);-webkit-user-select:none;user-select:none;background:var(--surface);color:var(--text-primary);justify-content:center;align-items:center;display:flex}.meta{font-size:var(--fs-xs);color:var(--text-primary);margin-bottom:var(--space-xs)}.cats{font-size:var(--fs-xs);color:var(--text-primary);margin-bottom:var(--space-md)}.cats a,.cats a:hover{color:inherit;pointer-events:none;cursor:default;text-decoration:none}.excerpt{font-size:var(--fs-base);color:var(--text-tertiary);line-height:var(--lh-snug)}.back-btn{cursor:pointer;font-family:inherit;font-size:var(--fs-xs);color:var(--text-primary);padding:var(--space-2xs) 0;margin-bottom:var(--space-2xl);background:0 0;border:none;align-items:center;gap:.375rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-flex}.back-btn:hover{opacity:.6}.back-btn__icon{flex-shrink:0;width:1rem;height:1rem}#reading-view h2{font-size:var(--fs-2xl);font-weight:700;line-height:var(--lh-tight);letter-spacing:-.02em;margin-bottom:var(--space-md);text-wrap:balance}#reading-view h3{font-size:var(--fs-xl);letter-spacing:-.01em;font-weight:700;line-height:var(--lh-snug);margin:var(--space-xl) 0 var(--space-sm)}#reading-view h4{letter-spacing:-.005em;margin:var(--space-lg) 0 var(--space-xs);font-size:1.0625rem;font-weight:600}#reading-view h5,#reading-view h6{font-size:var(--fs-base);margin:var(--space-lg) 0 var(--space-xs);font-weight:600}#reading-view .meta{margin-bottom:var(--space-xs)}#reading-view .cats{margin-bottom:var(--space-2xl)}#reading-view p,#reading-view ul,#reading-view ol,#reading-view blockquote,#reading-view pre,#reading-view img{margin-bottom:var(--flow-space)}#reading-view>:last-child{margin-bottom:0}#reading-view p{font-size:var(--fs-base);line-height:var(--lh-loose);color:var(--text-secondary)}#reading-view blockquote{padding-left:var(--space-lg);color:#4a5058;font-style:italic;font-size:var(--fs-base);line-height:var(--lh-loose);border-left:3px solid silver}#reading-view ul,#reading-view ol{margin-left:var(--space-lg);color:var(--text-secondary);line-height:var(--lh-loose);font-size:var(--fs-base)}#reading-view li{margin-bottom:var(--space-2xs)}#reading-view a{color:var(--accent);text-decoration:none}#reading-view a:hover{text-decoration:underline}#reading-view strong{font-weight:600}#reading-view code{font-family:var(--font-mono);background:var(--surface);border-radius:4px;padding:.125rem .375rem;font-size:.875em}#reading-view pre{width:100%;padding:var(--space-md);border-radius:var(--radius-sm);-webkit-overflow-scrolling:touch;font-size:.875rem;line-height:1.55;overflow-x:auto}#reading-view pre code{font-size:inherit;font-family:var(--font-mono);background:0 0;border-radius:0;padding:0}#reading-view img{border-radius:var(--radius-sm);width:100%}#reading-view p:has(>img){margin-bottom:var(--flow-space)}#reading-view p:has(>img) img{margin-bottom:0}.archive-list{gap:var(--space-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.archive-list li{align-items:baseline;column-gap:var(--space-lg);row-gap:var(--space-2xs);flex-wrap:wrap;display:flex}.archive-list time{color:var(--text-muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;letter-spacing:.01em;flex:none}.archive-list a{min-width:0;color:var(--text-primary);font-weight:500;font-size:var(--fs-base);line-height:var(--lh-snug);flex:0 auto;text-decoration:none;transition:color .12s}.archive-list a:hover{color:var(--accent);text-decoration:underline}.sub-bar{background:var(--bg);border-top:1px solid var(--border);padding:.875rem var(--space-lg);padding-bottom:calc(.875rem + env(safe-area-inset-bottom,0px));z-index:50;justify-content:space-between;align-items:center;display:flex;position:fixed;top:auto;bottom:0;left:0;right:0}.sub-btn{cursor:pointer;font-family:inherit;font-size:var(--fs-sm);color:var(--text-secondary);background:0 0;border:none;align-items:center;gap:.625rem;padding:0;font-weight:500;display:inline-flex}.sub-btn:hover{color:var(--text-primary)}.sub-btn svg{width:1.375rem;height:1.375rem}.share-wrap{position:relative}.dots-btn{cursor:pointer;color:var(--text-secondary);letter-spacing:2px;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:.875rem;line-height:1;display:inline-flex}.dots-btn:hover{color:var(--text-primary)}.modal-overlay{z-index:100;padding:var(--space-lg);background:#00000080;justify-content:center;align-items:center;display:none;position:fixed;top:0;bottom:0;left:0;right:0}.modal-overlay[data-state=open]{display:flex}.modal-content{background:var(--bg);padding:var(--space-xl) var(--space-lg) var(--space-lg);border-radius:var(--radius-lg);width:100%;max-width:25rem;position:relative}.modal-close{top:var(--space-sm);right:var(--space-sm);cursor:pointer;width:2rem;height:2rem;color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s;display:inline-flex;position:absolute}.modal-close:hover{background:var(--surface);color:var(--text-primary)}.modal-close svg{width:1.125rem;height:1.125rem}.modal-content h3{margin-bottom:var(--space-xs);font-size:var(--fs-xl);font-weight:700}.modal-content p{margin-bottom:var(--space-md);color:var(--text-tertiary);font-size:var(--fs-sm)}.modal-content input{border:1px solid var(--c-gray-400);border-radius:var(--radius-sm);width:100%;margin-bottom:var(--space-md);font-family:inherit;font-size:var(--fs-base);outline:none;padding:.75rem .875rem}.modal-content input:focus{border-color:var(--text-primary)}.modal-content .btn-primary{background:var(--text-primary);width:100%;color:var(--c-white);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--fs-base);cursor:pointer;border:none;padding:.75rem;font-weight:600}.modal-content .btn-primary:hover{opacity:.9}@media (max-width:37.5em){.site-header{padding-block:var(--space-lg)}#nav-dropdown{left:var(--space-lg);right:var(--space-lg);width:auto}#reading-view pre{padding:var(--space-sm);font-size:.75rem}}