/* Local overrides for pinned Even: WenKai reading and dependency-free controls. */
:root{color-scheme:light dark;--reading-font:"LXGW WenKai","Kaiti SC",KaiTi,serif;--even-red:#c05b4d;--canvas:#fefefe;--panel-bg:#fff;--muted:#8a8a8a;--control-line:#e8dfdd;--image-line:#eee;--scroll-track:#f8f5ec;--code-bg:#f8f5ec;--code-text:#34495e}
html,body{background:var(--canvas)}
@font-face{font-family:"NodeAlpha Manrope";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/manrope-medium.woff2") format("woff2")}
.header .logo-wrapper .logo,.mobile-navbar .mobile-header-logo .logo{font-family:"NodeAlpha Manrope",system-ui,sans-serif;font-weight:500;font-style:normal}
body,.post .post-header .post-title,.post .post-content,.menu,.archive,.terms{font-family:var(--reading-font)}
.post .post-content{font-size:19px;line-height:1.9;overflow-wrap:anywhere}.post .post-summary{font-size:18px;line-height:1.9}
.post .post-content h1,.post .post-content h2,.post .post-content h3,.post .post-content h4{font-family:var(--reading-font);line-height:1.6}
.post .post-content p{margin:1.25em 0}.post .post-content img{display:block;max-width:100%;height:auto;margin:1.25em auto}
.post .post-content pre{max-width:100%;overflow-x:auto;white-space:pre;overflow-wrap:normal;line-height:1.7}
.post .post-content code{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono","LXGW WenKai",monospace;font-size:14px}
.post .post-content pre,.post .post-content pre>code{color:var(--code-text);background:var(--code-bg)}
.post .post-content table{display:block;max-width:100%;overflow-x:auto}.post .post-content .image-link{border:0;background:none}
.post-category a+a{margin-left:8px}.post .post-footer .post-nav a{overflow-wrap:anywhere}.archive .archive-post .archive-post-title{overflow-wrap:anywhere}
.back-to-top{border:0;background:transparent;padding:0}.back-to-top.is-visible{display:block}
.mobile-navbar-icon{border:0;background:transparent;padding:0;cursor:pointer}.mobile-menu[hidden]{display:none!important}
.gallery .prose>p:has(>.image-link){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.gallery .prose>p:has(>.image-link) img{width:100%;margin:0}
.post .post-content .carousel-track{display:flex;gap:18px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--even-red) var(--scroll-track);padding:12px 0 18px;margin:1.3em 0 .4em;align-items:center}
.carousel-track>.image-link{flex:0 0 auto;scroll-snap-align:start;display:block;max-width:100%}
.post .post-content .carousel-track img{height:min(550px,70vh);width:auto;max-width:100%;object-fit:contain;margin:0;border:1px solid var(--image-line);border-radius:3px}
.carousel-controls{display:flex;justify-content:center;align-items:center;gap:20px;margin:4px 0 22px;font-size:14px;color:var(--muted)}
.carousel-controls button{font:inherit;cursor:pointer;color:var(--even-red);background:transparent;border:1px solid var(--control-line);border-radius:3px;padding:3px 14px}
.carousel-controls button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,.carousel-track:focus-visible{outline:2px solid var(--even-red);outline-offset:4px}
@media(max-width:768px){.post .post-content{font-size:18px}.post .post-summary{font-size:17px}.post .post-content .carousel-track img{height:min(480px,65svh)}.gallery .prose>p:has(>.image-link){gap:12px}
 #mobile-panel{position:relative;z-index:1;min-height:100vh;background:var(--panel-bg);transition:transform 300ms ease}
 .slideout-open #mobile-panel,.slideout-open .mobile-navbar{transform:translate3d(180px,0,0)}
 .slideout-open,.slideout-open body{overflow:hidden}
 .mobile-menu:not([hidden]){display:block;top:0;bottom:0;left:0;width:180px;z-index:0;overflow-y:auto;overscroll-behavior:contain}
 .mobile-menu .mobile-menu-list{margin-top:50px;padding:0}.mobile-menu .mobile-menu-list .mobile-menu-item{padding:0;list-style:none}.mobile-menu .mobile-menu-item a{display:block;padding:10px 30px}
 .post .post-content pre{font-size:12px}.post .post-content code{font-size:13px}}
@media(prefers-reduced-motion:reduce){html,body{scroll-behavior:auto}#mobile-panel,.mobile-navbar{transition:none}}
/* Article/page images: native modal top layer, no gallery library. */
html.lightbox-open,html.lightbox-open body{overflow:hidden}
.gallery-lightbox{color-scheme:dark;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#0c0e11f5;color:#fff;overflow:hidden;overscroll-behavior:contain}
.gallery-lightbox::backdrop{background:#0c0e11f5}.gallery-lightbox [hidden]{display:none!important}
.lightbox-stage{position:absolute;inset:64px 76px 24px;touch-action:pan-y pinch-zoom;user-select:none}
.lightbox-image{display:block;width:100%;height:100%;object-fit:contain;margin:0}
.gallery-lightbox button{position:absolute;z-index:1;display:grid;place-items:center;width:46px;height:46px;margin:0;padding:0;border:1px solid #ffffff40;border-radius:50%;background:#ffffff14;color:#fff;font:32px/1 system-ui,sans-serif;cursor:pointer}
.gallery-lightbox button:hover:not(:disabled){background:#ffffff2e}.gallery-lightbox button:disabled{opacity:.25;cursor:default}
.gallery-lightbox .lightbox-close{top:max(12px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));font-size:28px}
.lightbox-prev{left:16px;top:calc(50% - 23px)}.lightbox-next{right:16px;top:calc(50% - 23px)}
.lightbox-status{position:absolute;inset:45% 60px auto;text-align:center;font-size:16px;color:#ddd;pointer-events:none}
@media(max-width:768px){.lightbox-stage{inset:64px 12px calc(78px + env(safe-area-inset-bottom))}.lightbox-prev,.lightbox-next{top:auto;bottom:calc(14px + env(safe-area-inset-bottom))}.lightbox-prev{left:24px}.lightbox-next{right:24px}}
@media(prefers-color-scheme:dark){
 :root{--even-red:#df9b8d;--canvas:#1b1d22;--panel-bg:#1b1d22;--muted:#a3a7ae;--control-line:#535861;--image-line:#414650;--scroll-track:#282c33;--code-bg:#242830;--code-text:#dad7d1}
 ::selection{background:#824e46;color:#fff}
 .post .post-content blockquote{color:#c9c5be;background:#25282f;border-left-color:#a96e62}
 .post .post-content table{border-color:#414650}.post .post-content th,.post .post-content td{border-color:#414650}.post .post-content thead,.post .post-content tr:hover{background:#282c33}
 .post .post-content kbd{color:#dad7d1;background:#282c33;border-color:#535861;box-shadow:inset 0 -1px 0 #535861}
 .not-found .error-emoji,.not-found .error-text{color:#a3a7ae}
}
