.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.music-player{z-index:255;font-family:var(--font-body);position:fixed;bottom:20px}.music-player[data-position=left]{left:20px}.music-player[data-position=right]{right:20px}.music-player audio{display:none}.mp-fab{border:1px solid var(--border);background:var(--surface);width:48px;height:48px;color:var(--accent);box-shadow:var(--shadow-md);cursor:pointer;border-radius:50%;place-items:center;padding:0;transition:transform .2s;display:grid;overflow:hidden}.mp-fab:hover{transform:scale(1.06)}.mp-fab svg{width:22px;height:22px}.mp-fab img,.mp-panel .mp-cover img{object-fit:cover;width:100%;height:100%}.music-player.playing .mp-fab img,.music-player.playing .mp-cover img{animation:12s linear infinite mp-spin}@keyframes mp-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.music-player.playing .mp-fab img,.music-player.playing .mp-cover img{animation:none}}.mp-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:300px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-md);opacity:0;visibility:hidden;padding:14px 16px 12px;transition:opacity .22s,transform .22s,visibility .22s;position:absolute;bottom:0;transform:translateY(8px)}.music-player[data-position=left] .mp-panel{left:0}.music-player[data-position=right] .mp-panel{right:0}.music-player.open .mp-panel{opacity:1;visibility:visible;transform:translateY(0)}.music-player.open .mp-fab{opacity:0;pointer-events:none}.mp-head{align-items:center;gap:10px;min-width:0;display:flex}.mp-cover{border-radius:var(--radius-sm);background:var(--bg-soft);width:48px;height:48px;color:var(--muted);flex:none;place-items:center;display:grid;overflow:hidden}.mp-cover svg{width:20px;height:20px}.mp-meta{flex:1;min-width:0}.mp-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.mp-artist{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.mp-progress{cursor:pointer;touch-action:none;height:12px;margin-top:12px;position:relative}.mp-progress:before{content:"";background:var(--bg-soft);border-radius:999px;height:4px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.mp-progress-fill{background:var(--accent);pointer-events:none;border-radius:999px;width:0%;height:4px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.mp-time{font-family:var(--font-mono);color:var(--muted);justify-content:flex-end;gap:4px;margin-top:2px;font-size:11px;display:flex}.mp-controls{align-items:center;gap:6px;margin-top:8px;display:flex}.mp-btn{width:30px;height:30px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;transition:color .15s,background .15s;display:grid}.mp-btn:hover{color:var(--accent);background:var(--bg-soft)}.mp-btn svg{width:17px;height:17px}.mp-play{background:var(--accent);color:#fff;width:40px;height:40px;margin:0 4px}.mp-play:hover{background:var(--accent-deep);color:#fff}.mp-play svg{width:20px;height:20px}.mp-vol{color:var(--muted);align-items:center;gap:4px;margin-left:auto;display:flex}.mp-vol>svg{flex:none;width:15px;height:15px}.mp-vol-range{width:62px;accent-color:var(--accent);cursor:pointer;height:3px}.mp-extra{border-top:1px solid var(--border);align-items:center;gap:6px;margin-top:6px;padding-top:8px;display:flex}.mp-extra-hint{color:var(--muted);font-size:11px}.mp-btn.active{color:var(--accent);background:var(--bg-soft)}.mp-lrc{margin-top:10px}.mp-lrc-scroll{scrollbar-width:thin;max-height:180px;padding:4px 2px;overflow-y:auto}.mp-lrc-line{color:var(--muted);cursor:pointer;border-radius:6px;padding:5px 6px;font-size:12.5px;line-height:1.5;transition:color .2s,background .2s}.mp-lrc-line:hover{background:var(--bg-soft)}.mp-lrc-line.active{color:var(--accent);font-weight:600}.mp-lrc-empty{text-align:center;color:var(--muted);padding:14px 6px;font-size:12px}.mp-playlist{margin-top:10px}.mp-playlist-scroll{scrollbar-width:thin;max-height:180px;padding:2px;overflow-y:auto}.mp-track{border-radius:var(--radius-sm);cursor:pointer;color:var(--ink-2);align-items:center;gap:8px;padding:7px 8px;font-size:13px;transition:background .15s;display:flex}.mp-track:hover{background:var(--bg-soft)}.mp-track.active{color:var(--accent);font-weight:600}.mp-track .mp-track-artist{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:40%;margin-left:auto;font-size:11px;font-weight:400;overflow:hidden}.mp-eq{flex:none;align-items:flex-end;gap:2px;height:12px;display:inline-flex}.mp-eq i{background:var(--accent);border-radius:1px;width:2.5px;animation:.9s ease-in-out infinite mp-eq}.mp-eq i:first-child{height:60%}.mp-eq i:nth-child(2){height:100%;animation-delay:.25s}.mp-eq i:nth-child(3){height:45%;animation-delay:.5s}@keyframes mp-eq{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.mp-eq i{animation:none}}#sakura-canvas[data-astro-cid-azitv5ux]{pointer-events:none;width:100%;height:100%;position:fixed;inset:0}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--radius-sm:.25rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.col-4{grid-column:4}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mr-auto{margin-right:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.text-center{text-align:center}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}:root{--accent-h:170;--accent-s:36%;--accent-l:45%;--accent:hsl(var(--accent-h) var(--accent-s) var(--accent-l));--accent-deep:hsl(var(--accent-h) var(--accent-s) calc(var(--accent-l) - 10%));--accent-soft:hsl(var(--accent-h) calc(var(--accent-s) + 4%) 92%);--accent-ink:hsl(var(--accent-h) var(--accent-s) calc(var(--accent-l) - 15%));--bg:#f6f4ef;--bg-soft:#efede6;--surface:#fdfcf9;--ink:#2f2d2a;--ink-2:#57544e;--muted:#8b877e;--border:#e3dfd4;--border-2:#d5d0c2;--font-display:"Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;--font-body:-apple-system, "PingFang SC", "Segoe UI", "Microsoft YaHei", sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", monospace;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px #2f2d2a0d, 0 2px 8px #2f2d2a0a;--shadow-md:0 2px 6px #2f2d2a12, 0 10px 28px #2f2d2a14;--header-h:64px}html.dark{--accent:hsl(var(--accent-h) var(--accent-s) calc(var(--accent-l) + 10%));--accent-deep:hsl(var(--accent-h) var(--accent-s) calc(var(--accent-l) + 17%));--accent-soft:hsl(var(--accent-h) calc(var(--accent-s) - 16%) 20%);--accent-ink:hsl(var(--accent-h) var(--accent-s) calc(var(--accent-l) + 25%));--bg:#131516;--bg-soft:#181b1c;--surface:#1a1d1e;--ink:#e5e2db;--ink-2:#b9b5ac;--muted:#8a867e;--border:#282c2d;--border-2:#333839;--shadow-sm:0 1px 2px #00000040, 0 2px 8px #0003;--shadow-md:0 2px 6px #0000004d, 0 10px 28px #00000052}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}body{font-family:var(--font-body);color:var(--ink);background-color:var(--bg);background-image:radial-gradient(1100px 520px at 85% -10%, hsl(var(--accent-h) 32% 90% / .55), transparent 60%), radial-gradient(900px 480px at -10% 20%, hsl(var(--accent-h) 25% 88% / .4), transparent 55%);-webkit-font-smoothing:antialiased;background-attachment:fixed;font-size:16px;line-height:1.75}html.dark body{background-image:radial-gradient(1100px 520px at 85% -10%, hsl(var(--accent-h) 25% 22% / .5), transparent 60%), radial-gradient(900px 480px at -10% 20%, hsl(var(--accent-h) 20% 18% / .4), transparent 55%)}img{max-width:100%;display:block}[hidden]{display:none!important}button,input{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}a{color:var(--accent-ink);text-decoration:none}a:hover{color:var(--accent-deep)}html.dark a:hover{color:var(--accent)}::selection{background:var(--accent-soft);color:var(--accent-ink)}.shell{max-width:var(--page-width,1600px);margin-inline:auto;padding-inline:16px}@media (width>=1280px){.shell{max-width:min(92vw, var(--page-width,1600px))}}.muted{color:var(--muted)}.skip-link{z-index:200;border-radius:var(--radius-sm);background:var(--accent);color:#fff;padding:8px 16px;transition:top .2s;position:absolute;top:-48px;left:16px}.skip-link:focus{top:12px}.site-header{z-index:100;height:var(--header-h);background:var(--bg);position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.site-header{background:color-mix(in srgb, var(--bg) 78%, transparent)}}.site-header{backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}html[data-wallpaper-nav=semi] .site-header{background:var(--bg)}@supports (color:color-mix(in lab, red, red)){html[data-wallpaper-nav=semi] .site-header{background:color-mix(in srgb, var(--bg) 55%, transparent)}}html[data-wallpaper-nav=semi] .site-header{backdrop-filter:blur(var(--wp-nav-blur,5px));border-bottom-color:#0000}html[data-wallpaper-nav=semi].wp-scrolled .site-header,html[data-wallpaper-nav=semifull].wp-scrolled .site-header{background:var(--bg)}@supports (color:color-mix(in lab, red, red)){html[data-wallpaper-nav=semi].wp-scrolled .site-header,html[data-wallpaper-nav=semifull].wp-scrolled .site-header{background:color-mix(in srgb, var(--bg) 78%, transparent)}}html[data-wallpaper-nav=semi].wp-scrolled .site-header,html[data-wallpaper-nav=semifull].wp-scrolled .site-header{backdrop-filter:blur(14px);border-bottom-color:var(--border)}html[data-wallpaper-nav=semifull] .site-header,html[data-wallpaper-nav=full] .site-header{backdrop-filter:none;background:0 0;border-bottom-color:#0000}html[data-wallpaper-nav] .site-header:has(.site-nav.open){background:var(--bg)}@supports (color:color-mix(in lab, red, red)){html[data-wallpaper-nav] .site-header:has(.site-nav.open){background:color-mix(in srgb, var(--bg) 92%, transparent)}}html[data-wallpaper-nav] .site-header:has(.site-nav.open){backdrop-filter:blur(14px);border-bottom-color:var(--border)}.header-inner{height:var(--header-h);align-items:center;gap:24px;display:flex}.site-title{font-family:var(--font-display);letter-spacing:.06em;color:var(--ink);white-space:nowrap;align-items:center;gap:8px;font-size:22px;font-weight:700;display:inline-flex}.nav-logo{border-radius:5px;flex:none;width:auto;height:26px}.site-title:hover{color:var(--accent-deep)}html.dark .site-title:hover{color:var(--accent)}.site-nav{align-items:center;gap:4px;margin-left:8px;display:flex}.nav-link{color:var(--ink-2);border-radius:999px;padding:6px 14px;font-size:15px;transition:color .15s,background-color .15s}.nav-link:hover{color:var(--ink);background:var(--bg-soft)}.nav-item{position:relative}.nav-sub-toggle{cursor:pointer;font:inherit;background:0 0;border:0}.has-sub>.nav-link{align-items:center;display:inline-flex}.nav-caret{flex:none;width:14px;height:14px;margin-inline-start:4px;transition:transform .15s}.nav-item.has-sub:hover .nav-caret,.nav-item.open-sub .nav-caret{transform:rotate(180deg)}.nav-sub{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);min-width:128px;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;pointer-events:none;z-index:110;flex-direction:column;gap:2px;padding:6px;transition:opacity .15s,transform .15s,visibility .15s;display:flex;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)translateY(4px)}.nav-sub:before{content:"";height:7px;position:absolute;top:-7px;left:0;right:0}.nav-item.has-sub:hover .nav-sub,.nav-item.open-sub .nav-sub{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%)translateY(0)}.nav-sub-link{border-radius:var(--radius-sm);color:var(--ink-2);white-space:nowrap;padding:7px 12px;font-size:14px}.nav-sub-link:hover{color:var(--ink);background:var(--bg-soft)}.nav-item.is-active>.nav-link,.nav-item.is-active>.nav-sub-toggle{color:var(--accent-ink);background:var(--accent-soft)}@media (width<=860px){.nav-sub-toggle{text-align:left;justify-content:flex-start;width:100%}.nav-sub:before{content:none}.nav-sub{box-shadow:none;opacity:1;visibility:visible;pointer-events:auto;background:0 0;border:0;min-width:0;padding:2px 0 4px 14px;display:none;position:static;transform:none}.nav-item.has-sub:hover .nav-sub{opacity:1;visibility:visible;pointer-events:auto;transform:none}.nav-item.open-sub .nav-sub{display:flex;transform:none}}.nav-link.is-active{color:var(--accent-ink);background:var(--accent-soft);font-weight:500}.header-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.icon-btn{width:38px;height:38px;color:var(--ink-2);border-radius:10px;justify-content:center;align-items:center;transition:color .15s,background-color .15s;display:inline-flex}.icon-btn:hover{color:var(--ink);background:var(--bg-soft)}.icon-btn svg{width:20px;height:20px}#modeToggle .i-sun,html.dark #modeToggle .i-moon{display:none}html.dark #modeToggle .i-sun{display:block}.nav-burger{display:none}.palette-wrap{position:relative}.palette-pop{z-index:110;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:216px;box-shadow:var(--shadow-md);padding:14px;position:absolute;top:calc(100% + 10px);right:0}.palette-title{color:var(--muted);letter-spacing:.08em;margin-bottom:10px;font-size:12px}.palette-row{flex-wrap:wrap;gap:10px;display:flex}.swatch{background:var(--sw);width:28px;height:28px;box-shadow:inset 0 0 0 2px var(--surface);border:2px solid #0000;border-radius:50%;transition:transform .15s,border-color .15s}.swatch:hover{transform:scale(1.12)}.swatch.is-active{border-color:var(--accent-ink)}.hue-slider{appearance:none;cursor:pointer;outline-offset:3px;background:linear-gradient(90deg,#eb4747,#eb9947,#ebeb47,#7eeb47,#47eb7e,#47ebcf,#4799eb,#6347eb,#cf47eb,#eb4799,#eb4747);border-radius:999px;width:100%;height:14px;margin-top:14px}.hue-slider::-webkit-slider-thumb{appearance:none;background:var(--surface);border:2px solid var(--accent);width:20px;height:20px;box-shadow:var(--shadow-sm);border-radius:50%}.hue-slider::-moz-range-thumb{background:var(--surface);border:2px solid var(--accent);width:20px;height:20px;box-shadow:var(--shadow-sm);border-radius:50%}.palette-foot{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.hue-badge{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.palette-reset{color:var(--ink-2);border:1px solid var(--border);border-radius:8px;padding:3px 10px;font-size:12px;transition:color .15s,border-color .15s,background-color .15s}.palette-reset:hover{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-soft)}.search-wrap{position:relative}.nav-search{background:var(--bg-soft);height:38px;color:var(--muted);border-radius:10px;align-items:center;gap:6px;padding:0 12px;transition:background-color .15s,color .15s;display:flex}.nav-search:hover,.nav-search:focus-within{color:var(--ink-2)}.nav-search svg{flex:none;width:16px;height:16px}.nav-search input{width:150px;font:inherit;color:var(--ink);background:0 0;border:none;outline:none;font-size:14px;transition:width .2s}.nav-search input:focus{width:220px}.nav-search input::placeholder{color:var(--muted)}.nav-search input::-webkit-search-cancel-button{-webkit-appearance:none}.nav-search-toggle{display:none}.search-pop{z-index:110;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:380px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-md);position:absolute;top:calc(100% + 10px);right:0;overflow:hidden}.search-bar{border-bottom:1px solid var(--border);color:var(--muted);align-items:center;gap:8px;padding:10px 14px;display:none}.search-bar svg{flex:none;width:16px;height:16px}.search-bar input{min-width:0;font:inherit;color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:14px}.search-bar input::placeholder{color:var(--muted)}.search-bar input::-webkit-search-cancel-button{-webkit-appearance:none}.search-results{overscroll-behavior:contain;max-height:56vh;overflow-y:auto}.search-item{padding:10px 14px;transition:background-color .15s;display:block}.search-item:hover{background:var(--bg-soft)}.search-item+.search-item{border-top:1px solid var(--border)}.search-item-title{color:var(--ink);font-size:14px;font-weight:500}.search-item-excerpt{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:3px;font-size:12px;line-height:1.6;display:-webkit-box;overflow:hidden}.search-item-excerpt mark,.search-item-title mark{background:var(--accent-soft);color:var(--accent-ink);border-radius:3px;padding:0 1px}.search-hint{color:var(--muted);text-align:center;padding:14px;font-size:13px}.search-more{border-top:1px solid var(--border);background:var(--bg-soft);text-align:center;color:var(--accent-ink);padding:11px 14px;font-size:13px;transition:background-color .15s;display:block}.search-more:hover{background:var(--accent-soft)}.search-page{max-width:760px;margin:0 auto}.search-page-bar{border:1px solid var(--border);background:var(--surface);height:46px;color:var(--muted);border-radius:12px;align-items:center;gap:10px;padding:0 16px;transition:border-color .15s,color .15s;display:flex}.search-page-bar:focus-within{border-color:var(--accent-ink);color:var(--ink-2)}.search-page-bar svg{flex:none;width:18px;height:18px}.search-page-bar input{min-width:0;font:inherit;color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:16px}.search-page-bar input::placeholder{color:var(--muted)}.search-page-bar input::-webkit-search-cancel-button{-webkit-appearance:none}.search-page-meta{color:var(--muted);margin-top:14px;font-size:13px}.search-page-results{margin-top:4px}.search-page-results .search-item{padding:14px 4px}.search-page-results .search-item:hover{background:0 0}.search-page-results .search-item:hover .search-item-title{color:var(--accent-ink)}.search-page-results .search-item-title{font-size:15.5px;font-weight:600}.search-page-results .search-item-excerpt{-webkit-line-clamp:3;margin-top:4px;font-size:13px}.wp-stage{position:relative;overflow:hidden}html[data-wallpaper-mode=banner] .wp-stage{height:var(--banner-h,60vh);margin-top:calc(-1 * var(--header-h))}html[data-wallpaper-mode=fullscreen][data-wp-is-home] .wp-stage{height:100vh;margin-top:calc(-1 * var(--header-h))}html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home]):not([data-wp-fs-layout=hero]) .wp-stage{height:var(--banner-h,60vh);margin-top:calc(-1 * var(--header-h))}html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home])[data-wp-fs-layout=hero] .wp-stage{z-index:-1;pointer-events:none;height:auto;opacity:var(--wp-overlay-opacity,.8);margin-top:0;position:fixed;inset:0}html[data-wallpaper-mode=overlay] .wp-stage{z-index:-1;pointer-events:none;opacity:var(--wp-overlay-opacity,.8);position:fixed;inset:0}html[data-wallpaper-mode=none] .wp-stage,html[data-wallpaper-mode=banner] .wp-stage[data-wallpaper-hidden],html[data-wallpaper-mode=fullscreen] .wp-stage[data-wallpaper-hidden]{display:none}html[data-wallpaper-mode=banner]:not([data-wp-stage-hidden]) .site-main,html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home]):not([data-wp-fs-layout=hero]):not([data-wp-stage-hidden]) .site-main{margin-top:calc(-1 * var(--wp-overlap,64px));position:relative}html[data-wallpaper-mode=banner] .wp-stage:after,html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home]):not([data-wp-fs-layout=hero]) .wp-stage:after{content:"";height:calc(var(--wp-overlap,64px) + 56px);background:linear-gradient(to bottom, transparent, var(--bg));pointer-events:none;position:absolute;inset:auto 0 0}.wp-images{position:absolute;inset:0}.wp-img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .8s,transform .8s}.wp-img.active{opacity:1}html[data-wallpaper-mode=banner] .wp-img,html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home]):not([data-wp-fs-layout=hero]) .wp-img{object-position:var(--banner-pos,center)}html[data-wallpaper-mode=fullscreen][data-wp-is-home] .wp-img{object-position:var(--fs-pos,center)}.wp-mobile{display:none}@media (width<=767px){.wp-mobile{display:block}.wp-desktop:has(~.wp-mobile){display:none}}html[data-wallpaper-mode=overlay] .wp-img,html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home])[data-wp-fs-layout=hero] .wp-img{filter:blur(var(--wp-overlay-blur,0px));transform:scale(var(--wp-overlay-scale,1))}.wp-stage[data-effect=slide] .wp-img{transform:translate(48px)}.wp-stage[data-effect=slide] .wp-img.active{transform:translate(0)}.wp-stage[data-effect=zoom] .wp-img.active{animation:wpZoom var(--wp-interval,5s) ease-out forwards}.wp-stage[data-effect=kenburns] .wp-img.active{animation:wpKenburns var(--wp-interval,5s) linear forwards}@keyframes wpZoom{0%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes wpKenburns{0%{transform:scale(1)translate(0)}to{transform:scale(1.12)translate(-1.5%,1%)}}.wp-video{object-fit:cover;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .6s;position:absolute;inset:0}.wp-stage[data-video-playing] .wp-video{opacity:1}.wp-stage[data-video-playing] .wp-images{opacity:0;transition:opacity .6s}#wpPlayerToggle .i-pause,#wpPlayerToggle.is-playing .i-play{display:none}#wpPlayerToggle.is-playing .i-pause{display:block}.wp-dim{background:rgb(0 0 0/var(--wp-dim,.2));position:absolute;inset:0}html.dark .wp-dim{background:rgb(0 0 0/var(--wp-dim-dark,.65))}.wp-gradient{height:var(--wp-grad-h,10%);pointer-events:none;background:linear-gradient(#0000,#00000059);position:absolute;inset:auto 0 0}.wp-gradient.is-mobile{display:none}@media (width<=767px){.wp-gradient.is-mobile{display:block}.wp-gradient.is-desktop{display:none}}.wp-waves{pointer-events:none;height:90px;position:absolute;inset:auto 0 0}.wp-waves .wave{fill:#ffffff29;width:200%;height:100%;position:absolute;bottom:0;left:0}.wp-waves .wave.w1{animation:14s linear infinite wpWave}.wp-waves .wave.w2{fill:#ffffff1a;animation:22s linear infinite reverse wpWave}@keyframes wpWave{0%{transform:translate(0)}to{transform:translate(-50%)}}.wp-waves.is-mobile{display:none}@media (width<=767px){.wp-waves.is-mobile{display:block}.wp-waves.is-desktop{display:none}}.wp-hero{z-index:1;padding:var(--header-h) 24px 0;text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}html[data-wallpaper-mode=banner] .wp-hero,html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home]):not([data-wp-fs-layout=hero]) .wp-hero{padding-bottom:var(--wp-overlap,64px)}.wp-hero .hero-quote{font-size:clamp(1.8rem, 6vw + 1rem, var(--wp-hero-title-size,3.8rem));color:#fff;text-shadow:0 2px 16px #00000073}.wp-hero .hero-quote em{color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.wp-hero .hero-quote em{color:color-mix(in srgb, var(--accent) 45%, #fff)}}.wp-hero .hero-sub{min-height:1.75em;font-size:clamp(1rem, 2.5vw + .5rem, var(--wp-hero-sub-size,1.5rem));color:#ffffffe0;text-shadow:0 1px 10px #0006;margin-top:14px}.wp-scroll-hint{z-index:1;backdrop-filter:blur(6px);color:#fff;cursor:pointer;background:#ffffff29;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;transition:background .2s,opacity .5s;animation:2.2s ease-in-out infinite wpScrollHint;display:none;position:absolute;bottom:9vh;left:50%;transform:translate(-50%)}html[data-wallpaper-mode=fullscreen][data-wp-is-home] .wp-scroll-hint{display:flex}.wp-scroll-hint:hover{background:#ffffff47}.wp-scroll-hint svg{width:22px;height:22px}@keyframes wpScrollHint{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(10px)}}@media (prefers-reduced-motion:reduce){.wp-scroll-hint{animation:none}}html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero] .wp-scroll-hint{pointer-events:auto}html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero].wp-scrolled .wp-scroll-hint{opacity:0;pointer-events:none}.typewriter:after{content:"|";color:#ffffffd9;margin-left:2px;animation:1s step-end infinite wpCursor}@keyframes wpCursor{0%,to{opacity:1}50%{opacity:0}}html[data-wallpaper-mode=overlay] .card{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){html[data-wallpaper-mode=overlay] .card{background:color-mix(in srgb, var(--surface) var(--wp-card-opacity,50%), transparent)}}@media (prefers-reduced-motion:reduce){.wp-waves .wave,.wp-stage[data-effect=kenburns] .wp-img.active,.wp-stage[data-effect=zoom] .wp-img.active{animation:none}}html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home] .wp-stage{z-index:-1;pointer-events:none;height:auto;margin-top:0;position:fixed;inset:0}html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home]:not([data-wp-stage-hidden]) .site-main{margin-top:100vh}html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home] .wp-hero{transition:opacity .5s}html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home].wp-scrolled .wp-hero{opacity:0}html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home] .wp-img{transition:opacity .8s,transform .8s,filter .5s}html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home].wp-scrolled .wp-img{filter:blur(var(--wp-overlay-blur,0px));transform:scale(var(--wp-overlay-scale,1))}html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home] .wp-stage:after{content:"";background:linear-gradient(to bottom, transparent, var(--bg));opacity:0;pointer-events:none;height:40vh;transition:opacity .5s;position:absolute;inset:auto 0 0}html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home].wp-scrolled .wp-stage:after{opacity:1}html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home] .card,html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home] .post-card,html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home] .page-item,html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home])[data-wp-fs-layout=hero] .card,html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home])[data-wp-fs-layout=hero] .post-card,html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home])[data-wp-fs-layout=hero] .page-item{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home] .card,html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home] .post-card,html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero][data-wp-is-home] .page-item,html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home])[data-wp-fs-layout=hero] .card,html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home])[data-wp-fs-layout=hero] .post-card,html[data-wallpaper-mode=fullscreen]:not([data-wp-is-home])[data-wp-fs-layout=hero] .page-item{background:color-mix(in srgb, var(--surface) var(--wp-card-opacity,50%), transparent)}}html[data-wallpaper-mode=overlay] .wp-hero,html[data-wallpaper-mode=none] .wp-hero,html[data-wallpaper-mode=fullscreen][data-wp-fs-layout=hero]:not([data-wp-is-home]) .wp-hero,html[data-wp-home-text=off] .wp-hero,html[data-wp-hero=visible][data-wallpaper-mode=banner] .page-title,html[data-wp-hero=visible][data-wallpaper-mode=banner] .page-sub,html[data-wp-hero=visible][data-wallpaper-mode=banner] .post-title-lg,html[data-wp-hero=visible][data-wallpaper-mode=banner] .archive-head,html[data-wp-hero=visible][data-wallpaper-mode=fullscreen]:not([data-wp-fs-layout=hero]) .page-title,html[data-wp-hero=visible][data-wallpaper-mode=fullscreen]:not([data-wp-fs-layout=hero]) .page-sub,html[data-wp-hero=visible][data-wallpaper-mode=fullscreen]:not([data-wp-fs-layout=hero]) .post-title-lg,html[data-wp-hero=visible][data-wallpaper-mode=fullscreen]:not([data-wp-fs-layout=hero]) .archive-head,html[data-wp-waves=off] .wp-waves,html[data-wp-gradient=off] .wp-gradient,html[data-wp-sakura=off] #sakura-canvas{display:none}.ds-panel{top:calc(var(--header-h) + 12px);right:max(16px, calc((100vw - var(--page-width,1600px)) / 2));z-index:120;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:330px;max-width:calc(100vw - 32px);max-height:78vh;box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:fixed;overflow:hidden}.ds-panel[hidden]{display:none}.ds-tabs{border-bottom:1px solid var(--border);gap:4px;padding:10px 12px 0;display:flex}.ds-tab{color:var(--muted);border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 4px 10px;font-size:13px;transition:color .15s,border-color .15s;display:flex}.ds-tab svg{width:16px;height:16px}.ds-tab:hover{color:var(--ink-2)}.ds-tab.is-active{color:var(--accent-ink);border-bottom-color:var(--accent)}.ds-body{padding:14px;overflow-y:auto}.ds-page{display:none}.ds-page.is-active{display:block}.ds-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft,transparent);padding:12px}.ds-group+.ds-group{margin-top:12px}.ds-group-title{color:var(--muted);letter-spacing:.08em;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;display:flex}.ds-group-reset{color:var(--muted);border-radius:6px;padding:2px 6px;font-size:14px;line-height:1;transition:color .15s,background-color .15s}.ds-group-reset:hover{color:var(--accent-ink);background:var(--accent-soft)}.ds-mode-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ds-mode-btn{color:var(--ink-2);border:1px solid var(--border);background:var(--surface);border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:9px 6px;font-size:13px;transition:color .15s,border-color .15s,background-color .15s;display:flex}.ds-mode-btn svg{width:16px;height:16px}.ds-mode-btn:hover{border-color:var(--accent)}.ds-mode-btn.is-active{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-soft)}.ds-switch-row,.ds-slider-row{align-items:center;gap:10px;padding:7px 0;display:flex}.ds-switch-row svg,.ds-slider-row svg{width:16px;height:16px;color:var(--muted);flex-shrink:0}.ds-row-label{color:var(--ink-2);flex:1;font-size:13px}.ds-switch{background:var(--border);border-radius:999px;flex-shrink:0;width:40px;height:22px;transition:background-color .2s;position:relative}.ds-switch-knob{background:var(--surface);width:16px;height:16px;box-shadow:var(--shadow-sm);border-radius:50%;transition:transform .2s;position:absolute;top:3px;left:3px}.ds-switch[aria-checked=true]{background:var(--accent)}.ds-switch[aria-checked=true] .ds-switch-knob{transform:translate(18px)}.ds-slider{appearance:none;background:var(--border);cursor:pointer;outline-offset:3px;border-radius:999px;flex:1;min-width:0;height:6px}.ds-slider::-webkit-slider-thumb{appearance:none;background:var(--surface);border:2px solid var(--accent);width:16px;height:16px;box-shadow:var(--shadow-sm);border-radius:50%}.ds-slider::-moz-range-thumb{background:var(--surface);border:2px solid var(--accent);width:16px;height:16px;box-shadow:var(--shadow-sm);border-radius:50%}.ds-badge{text-align:right;min-width:44px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.ds-group[data-modes].is-hidden,.ds-slider-row[data-modes].ds-row-hidden{display:none}@media (width<=767px){.ds-panel{width:auto;left:12px;right:12px}}.bangumi-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:20px;display:grid}.bangumi-card{color:var(--ink);flex-direction:column;padding:0;transition:box-shadow .2s,transform .2s,border-color .2s;display:flex;overflow:hidden}.bangumi-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-2);color:var(--ink);transform:translateY(-2px)}.bangumi-cover{aspect-ratio:3/4;background:var(--border);position:relative;overflow:hidden}.bangumi-cover img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.bangumi-card:hover .bangumi-cover img{transform:scale(1.05)}html.dark .bangumi-cover img{filter:brightness(.85)saturate(.9)}.bangumi-score{color:#ffd76a;font-variant-numeric:tabular-nums;background:#0000009e;border-radius:999px;padding:2px 7px;font-size:12px;font-weight:700;position:absolute;top:8px;right:8px}.bangumi-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:10px 12px 4px;font-size:13.5px;font-weight:600;line-height:1.45;display:-webkit-box;overflow:hidden}.bangumi-meta{color:var(--ink-2);flex-wrap:wrap;gap:4px 10px;padding:0 12px 12px;font-size:12px;display:flex}.bangumi-rate{color:var(--accent,var(--ink-2))}.site-main{min-height:calc(100vh - var(--header-h) - 200px);padding:40px 0 64px}.section-title{font-family:var(--font-display);letter-spacing:.02em;margin-bottom:20px;font-size:22px;font-weight:700}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.chip{color:var(--ink-2);background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;align-items:center;padding:2px 12px;font-size:13px;font-weight:600;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.chip:hover{color:var(--accent-ink);border-color:var(--accent)}.chip.is-on{color:var(--accent-ink);background:var(--accent-soft);border-color:var(--accent)}.btn{background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:999px;align-items:center;gap:6px;padding:9px 22px;font-size:15px;transition:background-color .15s,border-color .15s,transform .15s;display:inline-flex}.btn:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}html.dark .btn:hover{background:var(--accent);border-color:var(--accent);color:#131516}.btn-ghost{color:var(--accent-ink);border-color:var(--border-2);background:0 0}.btn-ghost:hover{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(14px)}.reveal.is-in{opacity:1;transform:none}.hero{text-align:center;padding:28px 0 36px}.hero-quote{font-family:var(--font-display);letter-spacing:.04em;font-size:clamp(26px,4vw,38px);font-weight:700}.hero-quote em{color:var(--accent-ink);font-style:normal}.hero-sub{color:var(--muted);margin-top:14px;font-size:15px}.home-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:32px;display:grid}@media (width>=1025px){.home-layout{grid-template-columns:minmax(0,1fr) 280px;gap:16px}}.post-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);grid-template-columns:1fr;transition:box-shadow .2s,transform .2s,border-color .2s;display:grid;position:relative;overflow:hidden}.post-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-2);transform:translateY(-2px)}.post-cover{aspect-ratio:16/9;position:relative;overflow:hidden}.post-cover img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.post-card:hover .post-cover img{transform:scale(1.03)}.post-body{padding:22px 24px 24px}.post-card.no-cover:not(.compact) .post-body{padding-right:80px}.post-title{font-family:var(--font-display);font-size:20px;font-weight:700;line-height:1.5}.post-title a{color:var(--ink)}.post-title a:hover{color:var(--accent-deep)}html.dark .post-title a:hover{color:var(--accent)}.post-card:hover .post-title a{color:var(--accent-deep)}html.dark .post-card:hover .post-title a{color:var(--accent)}.post-excerpt{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:15px;display:-webkit-box;overflow:hidden}.post-meta{color:var(--muted);flex-wrap:wrap;gap:8px 14px;margin-top:12px;font-size:13px;display:flex}.post-meta .dot:before{content:"·";margin-right:14px}.post-tags{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.pin-badge{z-index:2;background:var(--accent);color:#fff;letter-spacing:.1em;border-radius:999px;padding:3px 12px;font-size:12px;position:absolute;top:14px;left:14px}.post-enter{z-index:2;background:var(--accent-soft);width:52px;color:var(--accent-deep);border-radius:12px;justify-content:center;align-items:center;transition:background .2s,transform .15s;display:flex;position:absolute;top:12px;bottom:12px;right:12px}.post-enter:hover{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.post-enter:hover{background:color-mix(in srgb, var(--accent) 22%, var(--surface))}}.post-enter:active{transform:scale(.95)}.post-enter svg{width:26px;height:26px}html.dark .post-enter{color:var(--accent)}.post-card.compact .post-enter{display:none}@media (width>=641px){.post-list:not(.grid-mode) .post-card.featured.has-cover .post-cover{aspect-ratio:auto;border-radius:12px;width:30%;min-height:0;position:absolute;inset:16px auto 16px 16px}.post-list:not(.grid-mode) .post-card.featured.has-cover .post-body{flex-direction:column;justify-content:center;min-height:196px;padding:28px 32px 28px calc(30% + 32px);display:flex}}.post-card.text-only .post-cover{display:none}.post-card.compact{grid-template-columns:128px 1fr}.post-card.compact .post-cover{aspect-ratio:4/3}.post-card.compact .post-body{align-self:center;padding:13px 18px}.post-card.compact .post-title{font-size:16px;line-height:1.55}.post-card.compact .post-excerpt{-webkit-line-clamp:1;margin-top:4px;font-size:13.5px}.post-card.compact .post-meta{margin-top:6px;font-size:12.5px}.post-card.compact .post-tags{display:none}.post-card.compact.text-only{grid-template-columns:1fr}.layout-switch{display:none}body[data-page=home] .layout-switch{display:inline-flex}.layout-switch .ic-grid,.layout-switch[aria-pressed=true] .ic-list{display:none}.layout-switch[aria-pressed=true] .ic-grid{display:block}.post-list.grid-mode{grid-template-columns:repeat(auto-fill, minmax(var(--col-w,320px), 1fr));align-items:stretch;gap:20px;display:grid}.post-list.grid-mode>:not(.post-card):not(:has(.post-card)){grid-column:1/-1}.post-list.grid-mode>:has(.post-card){min-width:0;display:flex}.post-list.grid-mode>:has(.post-card)>.post-card{flex:1;min-width:0}.post-list.grid-mode>:has(.post-card.featured){grid-column:1/-1}.post-list:not(.grid-mode){flex-direction:column;gap:20px;display:flex}.post-list>*{margin-block:0}.post-list.grid-mode .post-card{flex-direction:column;grid-template-columns:none;display:flex}.post-list.grid-mode .post-card.featured{grid-column:1/-1}.post-list.grid-mode .post-card.featured .post-cover{aspect-ratio:16/9;min-height:0}.post-list.grid-mode .post-card.compact .post-cover{aspect-ratio:16/9}.post-list.grid-mode .post-card.compact .post-body{align-self:auto;padding:18px 20px 20px}.post-card .post-cover img.cover-broken{visibility:hidden}@media (width<=767px){.post-list.grid-mode{flex-direction:column;gap:20px;display:flex}}@media (width>=641px){.post-list:not(.grid-mode) .post-card:not(.featured):not(.compact).has-cover .post-cover{aspect-ratio:auto;border-radius:12px;width:30%;min-height:0;position:absolute;inset:16px 16px 16px auto}.post-list:not(.grid-mode) .post-card:not(.featured):not(.compact).has-cover .post-body{flex-direction:column;justify-content:center;min-height:196px;padding:28px calc(30% + 32px) 28px 32px;display:flex}}.category-bar{align-items:center;gap:6px;margin-bottom:24px;padding:8px 12px;display:flex}.bar-scroll{scrollbar-width:none;flex:1;align-items:center;gap:6px;min-width:0;display:flex;overflow-x:auto}.bar-scroll::-webkit-scrollbar{display:none}.category-pill{color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:14px;transition:color .15s,background-color .15s;display:inline-flex}.category-pill:hover{color:var(--ink);background:var(--bg-soft)}.category-pill.is-active{color:var(--accent-ink);background:var(--accent-soft)}.pill-count{background:var(--bg-soft);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;padding:3px 7px;font-size:11px;line-height:1}.category-pill.is-active .pill-count{background:var(--accent);color:#fff}.bar-divider{background:var(--border);flex:none;width:1px;height:18px;margin-inline:4px}.bar-more{flex:none}.bar-more-arrow{width:14px;height:14px}.category-bar.is-scrollable .bar-scroll{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 36px),#0000)}.sidebar{flex-direction:column;align-self:stretch;gap:20px;min-width:0;display:flex}.side-top,.side-sticky{gap:20px;min-width:0;display:grid}@media (width>=768px){.side-sticky{top:calc(var(--header-h) + 24px);position:sticky}}@media (width<=767px){.side-hide-m{display:none!important}}.side-card{border-radius:16px;min-width:0;max-width:100%;padding:20px 16px}.side-card h3{letter-spacing:.05em;color:var(--ink);align-items:center;gap:8px;margin-bottom:12px;font-size:16px;font-weight:600;display:flex}.side-card h3:before{content:"";background:var(--accent);border-radius:2px;flex:none;width:4px;height:16px}.side-card p{color:var(--ink-2);font-size:14px}.cat-list{gap:8px;font-size:14px;display:grid}.cat-list a{color:var(--ink-2);justify-content:space-between;font-weight:600;display:flex}.cat-list a:hover{color:var(--accent-ink)}.cat-list .count{color:var(--muted);font-variant-numeric:tabular-nums}.profile-avatar-link{border-radius:12px;display:block;position:relative;overflow:hidden}.profile-avatar-link:after{content:"";background:0 0;transition:background .2s;position:absolute;inset:0}.profile-avatar-link:hover:after{background:#00000040}.profile-avatar{aspect-ratio:1;object-fit:cover;border:1px solid var(--border);border-radius:12px;width:100%;display:block}.profile-id{justify-items:center;gap:7px;margin-top:14px;display:grid}.profile-name{font-family:var(--font-display);text-align:center;color:var(--ink);font-size:20px;font-weight:700}a.profile-name:hover{color:var(--accent-deep)}html.dark a.profile-name:hover{color:var(--accent)}.profile-bar{background:var(--accent);border-radius:2px;width:20px;height:4px}.profile-bio{text-align:center;color:var(--muted);margin-top:10px;font-size:13.5px;line-height:1.7}.profile-links{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px;display:flex}.profile-links a{background:var(--bg-soft);height:40px;color:var(--ink-2);border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;transition:color .15s,background .15s;display:inline-flex}.profile-links a:hover{color:var(--accent-ink);background:var(--accent-soft)}.profile-link-icon{width:20px;height:20px;display:inline-flex}.profile-link-icon svg{width:100%;height:100%}.side-tags{flex-wrap:wrap;gap:8px;display:flex}.chip-more{color:var(--muted);border-style:dashed}.side-friends{gap:9px;display:grid}.side-announcement{white-space:pre-line}.side-announcement-foot{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.side-close{border:1px solid var(--border);width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;flex:none;font-size:12px;line-height:1;transition:color .15s,border-color .15s,background .15s}.side-close:hover{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-soft)}.advertisement-widget{position:relative}.ad-close{border:1px solid var(--border);background:var(--surface);width:24px;height:24px;color:var(--muted);cursor:pointer;opacity:0;border-radius:50%;font-size:11px;line-height:1;transition:opacity .2s;position:absolute;top:10px;right:10px}.advertisement-widget:hover .ad-close,.ad-close:focus-visible{opacity:1}.ad-close:hover{color:var(--accent-ink);border-color:var(--accent)}.ad-body{text-align:center;justify-items:center;gap:10px;display:grid}.ad-body img{border:1px solid var(--border);border-radius:10px;width:100%;height:auto}.side-friends a{color:var(--ink-2);align-items:center;gap:10px;font-size:13.5px;display:flex}.side-friends a:hover{color:var(--accent-deep)}html.dark .side-friends a:hover{color:var(--accent)}.side-friends img{border:1px solid var(--border);border-radius:50%;width:24px;height:24px}.side-more{margin-top:12px;font-size:13px;display:inline-block}.site-info{color:var(--ink-2);gap:8px;font-size:14px;display:grid}.site-info b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.site-info .row{justify-content:space-between;display:flex}qy-calendar{--cal-cell:13px;min-width:0;max-width:100%;display:block}.cal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.cal-month{color:var(--ink);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:8px;padding:4px 12px;font-family:inherit;font-size:17px;font-weight:700;transition:background .15s,color .15s}.cal-month:after{content:"▾";color:var(--muted);margin-left:6px;font-size:12px;transition:transform .15s;display:inline-block}.cal-month:hover{background:var(--bg-soft)}.cal-month.open{color:var(--accent);background:var(--accent-soft)}.cal-month.open:after{transform:rotate(180deg)}.cal-head-r{align-items:center;gap:4px;display:flex}.cal-head-c{align-items:center;gap:6px;display:flex}.cal-nav,.cal-home,.cal-py{border:1px solid var(--border);width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;place-items:center;font-family:inherit;font-size:16px;line-height:1;transition:color .2s,border-color .2s;display:grid}.cal-nav:hover:not(:disabled),.cal-home:hover:not(:disabled),.cal-py:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.cal-nav:disabled,.cal-home:disabled,.cal-py:disabled{opacity:.35;cursor:default}.cal-home{color:var(--accent);border-color:currentColor}.cal-picker{border:1px solid var(--border);background:var(--bg-soft);border-radius:10px;margin-bottom:10px;padding:10px}.cal-picker-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.cal-py-label{color:var(--ink);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.cal-picker-months{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.cal-pm{border:1px solid var(--border);color:var(--muted);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border-radius:6px;padding:5px 0;font-family:inherit;font-size:11.5px;transition:color .15s,border-color .15s,background .15s}.cal-pm:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.cal-pm.on{color:var(--accent);border-color:var(--accent);background:var(--accent-soft);font-weight:600}.cal-pm:disabled{opacity:.35;cursor:default}.cal-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-week{color:var(--muted);padding-bottom:4px;font-size:10.5px}.cal-day{aspect-ratio:1;color:var(--ink-2);font-variant-numeric:tabular-nums;border-radius:6px;place-items:center;font-size:11px;display:grid;position:relative}.cal-day.dim{color:#0000;pointer-events:none}.cal-day.has-post{background:hsl(var(--accent-h) var(--accent-s) var(--accent-l) / .16);color:var(--accent-deep);font-weight:600}html.dark .cal-day.has-post{color:var(--accent)}.cal-day.today{outline:1.5px solid var(--accent);outline-offset:-1.5px}.cal-heat{margin-top:12px}.cal-heat-labels{grid-template-columns:repeat(12,1fr);gap:2px;margin-bottom:4px;display:grid}.cal-heat-label{text-align:center;color:var(--muted);font-size:9px;font-weight:400;line-height:1}.cal-heat-grid{grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(12,1fr);row-gap:2px;display:grid}.cal-heat-cell{aspect-ratio:1;cursor:pointer;background:hsl(var(--accent-h) var(--accent-s) var(--accent-l) / max(var(--o,0), .08));border-radius:2px;width:85%;margin:auto;transition:box-shadow .15s;display:block}.cal-heat-cell:not([role=button]){cursor:default}.cal-heat-cell[role=button]:hover{box-shadow:0 0 1px 1.5px hsl(var(--accent-h) var(--accent-s) var(--accent-l))}.cal-heat-cell:focus-visible{outline:1.5px solid var(--accent);outline-offset:1px;border-radius:2px}.cal-list{flex-direction:column;gap:3px;min-width:0;margin-top:10px;display:flex}.cal-list-items{flex-direction:column;gap:2px;min-width:0;max-height:176px;display:flex;overflow-y:auto}.cal-post{color:var(--ink-2);border-radius:var(--radius-sm);justify-content:space-between;align-items:baseline;gap:8px;min-width:0;padding:4px 8px;font-size:13px;line-height:1.5;display:flex}.cal-post-title{white-space:nowrap;text-overflow:ellipsis;flex:1 1 0;min-width:0;overflow:hidden}.cal-post-date{color:var(--muted);flex-shrink:0;font-size:12px}.cal-post:hover{color:var(--accent-ink);background:var(--bg-soft)}.cal-day.has-post{cursor:pointer}.cal-day.sel{background:var(--accent);color:#fff;font-weight:600}.side-toc{gap:2px;display:grid}.side-toc a{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:3px 6px;font-size:13px;text-decoration:none;transition:color .2s,background .2s;overflow:hidden}.side-toc a:hover{color:var(--accent-deep);background:var(--accent-soft)}html.dark .side-toc a:hover{color:var(--accent)}.side-toc .toc-depth-3{padding-left:18px}.side-toc .toc-depth-4{padding-left:30px}.pagination{color:var(--muted);justify-content:center;align-items:center;gap:14px;margin-top:32px;font-size:14px;display:flex}.page-item{box-sizing:border-box;border:1px solid var(--border);min-width:38px;color:var(--ink-2);background:var(--surface);text-align:center;border-radius:6px;padding:6px 10px;line-height:1.5}a.page-item:hover{border-color:var(--accent);color:var(--accent-ink)}.page-item.disabled{color:var(--muted);opacity:.55;cursor:not-allowed}.pg-nums{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.page-item.current{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.pg-gap{color:var(--muted);padding:0 2px}.pg-adj{align-items:center;gap:14px;display:none}@media (width<=767px){.pg-nums{display:none}.pg-adj{display:flex}}.post-header{margin:0 0 28px}.post-header .chip{margin-bottom:16px}.post-title-lg{font-family:var(--font-display);letter-spacing:.02em;font-size:clamp(26px,4vw,36px);font-weight:700;line-height:1.4}.post-header .post-meta{margin-top:16px}.post-meta .meta-item{align-items:center;gap:5px;display:inline-flex}.post-meta .meta-item svg{opacity:.85;flex-shrink:0;width:14px;height:14px}.post-meta .meta-item a{color:inherit;white-space:nowrap;text-decoration:none;transition:color .15s}.post-meta .meta-item a:hover{color:var(--accent-ink)}.post-meta .tag-sep{color:var(--muted);opacity:.6}.post-meta .meta-tags-item{flex-wrap:wrap;row-gap:2px}.article-cover{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);cursor:zoom-in;margin:0 0 36px;position:relative;overflow:hidden}.article-cover img{aspect-ratio:16/9;object-fit:cover;width:100%}.article-cover figcaption{color:var(--muted);text-align:center;background:var(--surface);padding:10px 16px;font-size:13px}.post-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:36px;max-width:900px;margin:0 auto;display:grid}.post-main{min-width:0}@media (width>=768px){.post-layout{grid-template-columns:minmax(0,1fr) 280px;max-width:1180px}}.prose{color:var(--ink);overflow-wrap:break-word;font-size:16.5px}.prose>*+*{margin-top:1em}.prose h2{font-family:var(--font-display);border-bottom:1px solid var(--border);scroll-margin-top:calc(var(--header-h) + 20px);margin-top:2em;padding-bottom:.4em;font-size:24px;font-weight:700}.prose h3{font-family:var(--font-display);scroll-margin-top:calc(var(--header-h) + 20px);margin-top:1.8em;font-size:19px;font-weight:700}.prose h4{font-family:var(--font-display);scroll-margin-top:calc(var(--header-h) + 20px);margin-top:1.6em;font-size:16.5px;font-weight:700}.prose blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--accent-ink);padding:12px 20px}html.dark .prose blockquote{color:var(--ink-2)}.prose ul,.prose ol{padding-left:1.6em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--accent)}.prose code:not(pre code){font-family:var(--font-mono);background:var(--bg-soft);border:1px solid var(--border);color:var(--accent-ink);border-radius:6px;padding:2px 7px;font-size:.88em}.ec-collapse{--ec-collapse-bg-color:#fff;--ec-collapse-accent-color:var(--accent);position:relative}html.dark .ec-collapse{--ec-collapse-bg-color:#24292e}.ec-collapse__content{position:relative}.ec-collapse.ec-collapse--collapsed .ec-collapse__content{max-height:var(--ec-collapse-preview-height,280px);overflow:hidden}.ec-collapse.ec-collapse--expanded .ec-collapse__content{max-height:none}.ec-collapse__gradient{background:linear-gradient(to bottom, transparent 0%, var(--ec-collapse-bg-color) 100%);pointer-events:none;opacity:1;z-index:10;height:80px;transition:opacity .3s;position:absolute;bottom:0;left:0;right:0}.ec-collapse.ec-collapse--expanded .ec-collapse__gradient{opacity:0;pointer-events:none}.ec-collapse__toggle{color:var(--ec-collapse-accent-color);cursor:pointer;background-color:#0000000d;border:1px solid #00000026;border-radius:20px;justify-content:center;align-items:center;gap:6px;margin:0 auto;padding:6px 16px;font-size:.85rem;font-weight:500;transition:background-color .2s,border-color .2s;display:flex}.ec-collapse.ec-collapse--collapsed .ec-collapse__toggle{z-index:20;margin:0;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.ec-collapse.ec-collapse--expanded .ec-collapse__toggle{margin:12px auto;position:relative}.ec-collapse__toggle:hover{background-color:#00000014;border-color:#00000040}html.dark .ec-collapse__toggle{background-color:#ffffff1a;border-color:#fff3}html.dark .ec-collapse__toggle:hover{background-color:#ffffff26;border-color:#ffffff4d}.ec-collapse__toggle:focus-visible{outline:2px solid var(--ec-collapse-accent-color);outline-offset:2px}.ec-collapse__icon{transition:transform .3s}.ec-collapse.ec-collapse--expanded .ec-collapse__icon{transform:rotate(180deg)}.ec-collapse__text-collapse,.ec-collapse.ec-collapse--expanded .ec-collapse__text-expand{display:none}.ec-collapse.ec-collapse--expanded .ec-collapse__text-collapse{display:inline}@media (prefers-reduced-motion:reduce){.ec-collapse__gradient,.ec-collapse__toggle,.ec-collapse__icon{transition:none}}.prose table{border-collapse:collapse;width:max-content;max-width:100%;font-size:14.5px;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--border);padding:9px 14px}.prose th{color:var(--muted);letter-spacing:.04em;background:var(--bg-soft);font-size:13px;font-weight:600}.prose figure{border-radius:var(--radius-sm);border:1px solid var(--border);margin:0;overflow:hidden}.prose figure img{width:100%}html.dark .prose img[data-external],html.dark .moment-content img[data-external]{filter:brightness(var(--img-adapt-b,1));transition:filter .3s}html.dark .prose img[data-external].no-adapt,html.dark .moment-content img[data-external].no-adapt{filter:none}.prose figcaption{color:var(--muted);text-align:center;background:var(--surface);padding:8px 14px;font-size:13px}.prose hr{border:none;border-top:1px dashed var(--border-2);margin:2em 0}.prose a{border-bottom:1px solid var(--accent)}.prose .h-anchor{opacity:0;border-bottom:none;margin-left:8px;font-weight:400;transition:opacity .15s}.prose h2:hover .h-anchor,.prose h3:hover .h-anchor,.prose h4:hover .h-anchor{opacity:.55}.callout{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-soft);gap:12px;padding:14px 18px;font-size:15px;line-height:1.7;display:flex}.callout .co-icon{flex:none;width:20px;height:20px;margin-top:3px}.callout.info,.callout.tip{border-color:hsl(var(--accent-h) 30% 60% / .5);background:var(--accent-soft)}.callout.important{background:#ede7f8;border-color:#895cd673}html.dark .callout.important{background:#2a203c}.callout.warn{background:#f6eedf;border-color:#d19f4773}html.dark .callout.warn{background:#352c1d}.callout.danger{background:#f9eceb;border-color:#d14c4773}html.dark .callout.danger{background:#351d1d}.callout.success{background:#e4f6eb;border-color:#34b26273}html.dark .callout.success{background:#1b3223}.callout.quote{border-color:var(--border-2);background:var(--bg-soft)}.callout b{margin-bottom:2px;display:block}.callout p{color:var(--ink-2)}.toc{top:calc(var(--header-h) + 24px);font-size:13.5px;display:none;position:sticky}@media (width>=768px){.toc{display:block}}.toc-title{letter-spacing:.12em;color:var(--muted);margin-bottom:10px;font-size:12px}.toc a{color:var(--ink-2);border-left:2px solid var(--border);padding:5px 0 5px 14px;line-height:1.5;transition:color .15s,border-color .15s;display:block}.toc a:hover{color:var(--ink)}.toc a.is-active{color:var(--accent-ink);border-left-color:var(--accent);font-weight:500}.outdated-card{color:#7c6650;border-radius:var(--radius-sm);background:#faf5eb;border:1px solid #e6cfa8;align-items:flex-start;gap:12px;margin-top:36px;padding:14px 18px;font-size:13.5px;line-height:1.7;display:flex}.outdated-icon{border-radius:var(--radius-sm);color:#ab672b;background:#f5e4c7;flex:none;place-items:center;width:30px;height:30px;display:grid}.outdated-line{color:var(--muted)}.outdated-line strong,.outdated-days{color:inherit}.outdated-warning{color:#ae6c32;margin-top:4px;font-weight:600}html.dark .outdated-card{color:#cbc1ae;background:#2f281e;border-color:#594c36}html.dark .outdated-icon{color:#e6c489;background:#463c2a}html.dark .outdated-warning{color:#e1b770}.license{color:var(--muted);border:1px dashed var(--border-2);border-radius:var(--radius-sm);background:var(--bg-soft);margin-top:36px;padding:14px 18px;font-size:13.5px}.post-nav{grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;display:grid}.post-nav a,.post-nav .pn-disabled{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);padding:14px 18px;display:block}.post-nav a:hover{border-color:var(--accent)}.post-nav .pn-label{color:var(--muted);letter-spacing:.1em;font-size:12px}.post-nav .pn-title{color:var(--ink);margin-top:4px;font-size:14.5px;font-weight:600}.post-nav a:hover .pn-title{color:var(--accent-ink)}.post-nav .next{text-align:right}.post-nav .pn-disabled{opacity:.55}.comments{margin-top:44px}.comments-list{gap:18px;display:grid}.comment{gap:14px;padding:16px 18px;display:flex}.comment-avatar{border:1px solid var(--border);border-radius:50%;flex:none;width:42px;height:42px;overflow:hidden}.comment-avatar img{object-fit:cover;width:100%;height:100%}.comment-main{flex:1;min-width:0}.comment-head{align-items:baseline;gap:10px;display:flex}.comment-author{font-size:14.5px;font-weight:600}.comment-author.owner{color:var(--accent-ink)}.comment-time{color:var(--muted);font-size:12.5px}.comment-content{color:var(--ink-2);overflow-wrap:break-word;margin-top:4px;font-size:15px}.comment-reply{border-left:2px solid var(--border);gap:12px;margin-top:14px;padding-left:14px;display:grid}.comment-form{margin-top:24px;padding:20px 22px}.comment-form h3{font-size:15px;font-family:var(--font-display);margin-bottom:14px}.form-grid{gap:12px;display:grid}.form-grid input,.form-grid textarea{border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--bg);width:100%;color:var(--ink);resize:vertical;padding:10px 14px;transition:border-color .15s,box-shadow .15s}.form-grid input:focus,.form-grid textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.form-grid .input-error{border-color:#c0564f;box-shadow:0 0 0 3px #f1dbda}html.dark .form-grid .input-error{box-shadow:0 0 0 3px #5c2523}.form-error{color:#c0564f;min-height:1.4em;font-size:13px}.form-ok{color:var(--accent-ink);min-height:1.4em;font-size:13px}.archive-head{text-align:center;max-width:760px;margin:0 auto 32px}.archive-head .page-title{font-family:var(--font-display);font-size:30px;font-weight:700}.archive-head .page-title:after{content:"";background:linear-gradient(90deg, var(--accent), transparent);border-radius:2px;width:56px;height:3px;margin:14px auto 0;display:block}.archive-head .page-sub{color:var(--muted);margin-top:6px;font-size:14.5px}.timeline{max-width:760px;margin:0 auto}.archive-year{scroll-margin-top:calc(var(--header-h) + 20px);align-items:baseline;gap:12px;margin:28px 0 8px;display:flex}.archive-year .y{font-family:var(--font-display);font-size:24px;font-weight:700}.archive-year .c{color:var(--muted);font-size:13px}.timeline-items{border-left:2px solid var(--border);gap:6px;margin-left:7px;padding-left:26px;display:grid}.timeline-item{padding:10px 0;position:relative}.timeline-item:before{content:"";background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%;position:absolute;top:22px;left:-33px}.timeline-item .t-date{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.timeline-item .t-title{color:var(--ink);margin-left:10px;font-weight:600;display:inline-block}.timeline-item a:hover .t-title{color:var(--accent-deep)}html.dark .timeline-item a:hover .t-title{color:var(--accent)}.timeline-item .t-meta{color:var(--muted);margin-left:10px;font-size:12.5px}button.archive-year{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}button.archive-year .year-caret{width:16px;height:16px;color:var(--muted);align-self:center;transition:transform .15s}.timeline.fold button.archive-year .year-caret{transform:rotate(-90deg)}.timeline.fold .timeline-items{display:none}.series-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:32px;display:grid}.series-card{padding:20px 22px;display:block}.series-card:hover{border-color:var(--accent-soft)}.series-name{color:var(--ink);margin:0 0 8px;font-size:17px;font-weight:700}.series-card:hover .series-name{color:var(--accent-deep)}.series-meta{color:var(--muted);gap:8px;margin:0;font-size:13px;display:flex}.series-empty{color:var(--muted);text-align:center;padding:26px 30px}.series-crumb a{color:var(--accent)}.series-crumb a:hover{text-decoration:underline}.series-list{gap:10px;max-width:760px;margin:0 auto;padding:0;list-style:none;display:grid}.series-group-title{letter-spacing:.04em;color:var(--muted);align-items:center;gap:8px;margin-top:16px;padding-left:2px;font-size:13px;font-weight:700;display:flex}.series-group-title:before{content:"";background:var(--accent);border-radius:2px;width:14px;height:3px}.series-group-title:first-child{margin-top:0}.series-link{align-items:center;gap:14px;padding:14px 18px;display:flex}.series-idx{background:var(--accent-soft);width:26px;height:26px;color:var(--accent-deep);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.series-title{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.series-link:hover .series-title{color:var(--accent-deep)}.series-date{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:13px}.series-nav{margin:0 0 28px;padding:16px 20px}.series-nav-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.series-nav-title{color:var(--ink);align-items:center;gap:8px;font-size:15.5px;font-weight:700;display:inline-flex}.series-nav-title svg{width:16px;height:16px;color:var(--accent)}.series-nav-progress{align-items:center;gap:10px;font-size:13px;display:inline-flex}.series-nav-progress a{color:var(--accent)}.series-nav-progress a:hover{text-decoration:underline}.series-nav-count{color:var(--muted);font-variant-numeric:tabular-nums}.series-nav-list{gap:2px;max-height:280px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.series-nav-group{letter-spacing:.04em;color:var(--muted);margin-top:8px;padding-left:2px;font-size:12px;font-weight:700}.series-nav-group:first-child{margin-top:0}.series-nav-item{padding-left:14px;position:relative}.series-nav-item:before{content:"";background:var(--border);border-radius:50%;width:5px;height:5px;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.series-nav-item.cur:before{background:var(--accent)}.series-nav-row{color:var(--ink-2);align-items:baseline;gap:8px;padding:4px 0;font-size:14px;display:flex}a.series-nav-row:hover{color:var(--accent-deep)}.series-nav-idx{text-align:right;min-width:18px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:12.5px}.series-nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.series-nav-item.cur .series-nav-row{color:var(--accent-deep);font-weight:600}html.dark .series-nav-item.cur .series-nav-row{color:var(--accent)}@media (width<=560px){.series-date,.series-nav-count{display:none}}.tag-cloud{flex-wrap:wrap;align-items:baseline;gap:14px 18px;margin-bottom:32px;padding:26px 30px;display:flex}.tag-s1{color:var(--ink-2);font-size:15px}.tag-s3{font-size:24px}.tag-cloud a{line-height:1.5;transition:color .15s,transform .15s;display:inline-block}.tag-cloud a:hover{transform:translateY(-2px)}.tag-cloud .tag-count{color:var(--muted);vertical-align:super;margin-left:3px;font-size:.7em}.tag-list-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.tag-list{gap:14px;max-width:760px;display:grid}.tag-empty{text-align:center;color:var(--muted);padding:40px 0}.chips{flex-wrap:wrap;gap:10px;margin-bottom:26px;display:flex}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;display:grid}.album-card{cursor:pointer;transition:box-shadow .2s,transform .2s,border-color .2s;overflow:hidden}.album-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-2);transform:translateY(-3px)}.album-card.hidden{display:none}.album-cover{aspect-ratio:1;position:relative;overflow:hidden}.album-cover img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.album-card:hover .album-cover img{transform:scale(1.04)}.album-cover .lock-badge{z-index:2;color:#fff;backdrop-filter:blur(6px);background:#0000008c;border-radius:999px;align-items:center;gap:5px;padding:4px 12px;font-size:12px;display:inline-flex;position:absolute;top:12px;right:12px}.album-cover .lock-badge svg{width:13px;height:13px}.album-info{align-items:baseline;gap:10px;padding:14px 18px 16px;display:flex}.album-name{font-weight:600;font-family:var(--font-display);font-size:16.5px}.album-count{color:var(--muted);margin-left:auto;font-size:13px}.album-tags{gap:6px;margin-top:-6px;padding:0 18px 16px;display:flex}.album-tags .chip{padding:1px 10px;font-size:12px}.album-sub{color:var(--muted);flex-wrap:wrap;gap:12px;margin-top:-8px;padding:0 18px;font-size:12.5px;display:flex}.album-cover-fallback{width:100%;height:100%;color:var(--muted);background:var(--bg-soft);justify-content:center;align-items:center;display:flex}.album-cover-fallback svg{opacity:.55;width:34px;height:34px}.gallery-search{margin-bottom:16px;position:relative}.gallery-search svg{width:16px;height:16px;color:var(--muted);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.gallery-search input{border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--bg);width:100%;color:var(--ink);padding:10px 14px 10px 38px;font-size:14px;transition:border-color .15s,box-shadow .15s}.gallery-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.gallery-empty{text-align:center;color:var(--muted);padding:48px 0}.gallery-banner{border-radius:var(--radius);aspect-ratio:3;background:var(--bg-soft);width:100%;min-height:200px;max-height:360px;position:relative;overflow:hidden}.gallery-banner>img{object-fit:cover;width:100%;height:100%}.gallery-banner:after{content:"";background:linear-gradient(#0000000d,#00000047 55%,#000000b8);position:absolute;inset:0}.gallery-back{z-index:2;color:#ffffffeb;backdrop-filter:blur(6px);background:#00000052;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;transition:background-color .15s;display:inline-flex;position:absolute;top:16px;left:16px}.gallery-back:hover{color:#fff;background:#00000085}.gallery-back svg{width:14px;height:14px}.gallery-banner-inner{z-index:1;color:#fff;padding:22px 26px;position:absolute;bottom:0;left:0;right:0}.gallery-title{font-family:var(--font-display);font-size:24px;font-weight:700}.gallery-desc{color:#ffffffc7;max-width:640px;margin-top:6px;font-size:14px}.gallery-meta{color:#ffffffd1;flex-wrap:wrap;align-items:center;gap:16px;margin-top:10px;font-size:13px;display:flex}.gallery-meta svg{vertical-align:-2px;width:14px;height:14px;margin-right:3px}.gallery-meta .gallery-meta-tags{flex-wrap:wrap;gap:6px;display:inline-flex}.gallery-meta .gallery-meta-tags span{backdrop-filter:blur(6px);background:#fff3;border-radius:999px;padding:1px 10px;font-size:12px}.gallery-head-plain{padding:20px 24px}.gallery-head-plain .gallery-title{color:var(--ink)}.gallery-head-plain .gallery-meta{color:var(--muted)}.gallery-head-plain .gallery-meta .gallery-meta-tags span{background:var(--bg-soft);color:var(--ink-2);backdrop-filter:none}gallery-filter{display:block}.gallery-masonry{column-count:2;column-gap:12px;margin-top:24px}@media (width>=640px){.gallery-masonry{column-width:var(--col-width,240px);column-count:auto}}.gallery-photo{break-inside:avoid;border-radius:var(--radius-sm);background:var(--bg-soft);cursor:zoom-in;margin:0 0 12px;position:relative;overflow:hidden}.gallery-photo img{width:100%;height:auto;transition:transform .35s;display:block}.gallery-photo:hover img{transform:scale(1.025)}.moments-list{flex-direction:column;gap:16px;display:flex}.moment{padding:18px 22px}.moment-meta{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;display:flex}.moment-mood{font-size:18px;line-height:1}.moment-content{font-size:15px;line-height:1.75}.moment-content>:first-child{margin-top:0}.moment-content>:last-child{margin-bottom:0}.moment-images{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}@media (width<=480px){.moment-images{grid-template-columns:repeat(2,1fr)}}.moment-img{border-radius:var(--radius-sm);background:var(--bg-soft);cursor:zoom-in;overflow:hidden}.moment-img img{object-fit:cover;aspect-ratio:1;width:100%;height:100%;transition:transform .35s;display:block}.moment-img:hover img{transform:scale(1.04)}.moment-tags{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.moment-tag{color:var(--ink-2);background:var(--bg-soft);border-radius:999px;padding:1px 10px;font-size:12px;transition:background-color .15s}.moment-tag:hover{background:var(--accent-soft);color:var(--ink)}.qy-pswp-icn{width:24px;height:24px;stroke:var(--pswp-icon-color,#fff);fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;margin:auto;position:absolute;inset:0}.qy-icn-fill{fill:var(--pswp-icon-color,#fff);stroke:none}.pswp__button--qy-fullscreen .qy-icn-fs-exit,.pswp__button--qy-slideshow .qy-icn-pause,.pswp__button--qy-slideshow.is-active .qy-icn-play{display:none}.pswp__button--qy-slideshow.is-active .qy-icn-pause{display:block}:is(.pswp:fullscreen .pswp__button--qy-fullscreen .qy-icn-fs-enter,.pswp:fullscreen .pswp__button--qy-fullscreen .qy-icn-fs-enter){display:none}:is(.pswp:fullscreen .pswp__button--qy-fullscreen .qy-icn-fs-exit,.pswp:fullscreen .pswp__button--qy-fullscreen .qy-icn-fs-exit){display:block}.pswp__qy-thumbs{z-index:10;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:linear-gradient(#0000,#0006);gap:8px;padding:10px 12px;display:flex;position:absolute;bottom:0;left:0;right:0;overflow-x:auto}.pswp__qy-thumbs::-webkit-scrollbar{display:none}.pswp__qy-thumb{opacity:.5;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex:none;width:64px;height:40px;padding:0;overflow:hidden}.pswp__qy-thumb img{object-fit:cover;width:100%;height:100%;display:block}.pswp__qy-thumb:hover{opacity:.85}.pswp__qy-thumb.is-active{opacity:1;border-color:var(--pswp-icon-color,#fff)}.pswp__qy-thumbs>.pswp__qy-thumb:first-child{margin-left:auto}.pswp__qy-thumbs>.pswp__qy-thumb:last-child{margin-right:auto}.pswp__qy-thumbs.is-hidden{display:none}@media (width<=639px){.pswp__qy-thumbs{display:none}}.modal{z-index:320;backdrop-filter:blur(4px);opacity:0;pointer-events:none;background:#0c0e0f8c;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:fixed;inset:0}.modal.open{opacity:1;pointer-events:auto}.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(360px,100vw - 48px);box-shadow:var(--shadow-md);padding:26px 26px 22px}.modal-box h3{font-family:var(--font-display);margin-bottom:6px;font-size:18px}.modal-box .modal-hint{color:var(--muted);margin-bottom:16px;font-size:13.5px}.modal-box input{border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--bg);width:100%;color:var(--ink);padding:10px 14px}.modal-box input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.modal-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.modal-error{color:#c0564f;min-height:1.3em;margin-top:10px;font-size:13px}.modal-box.shake{animation:.4s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-7px)}50%{transform:translate(6px)}75%{transform:translate(-4px)}}.friend-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.friend-card{color:var(--ink);align-items:center;gap:16px;padding:20px 22px;transition:box-shadow .2s,transform .2s,border-color .2s;display:flex}.friend-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-2);color:var(--ink);transform:translateY(-2px)}.friend-avatar{border:1px solid var(--border);border-radius:50%;flex:none;width:56px;height:56px;overflow:hidden}.friend-avatar img{object-fit:cover;width:100%;height:100%}.friend-name{font-size:16px;font-weight:700;font-family:var(--font-display)}.friend-card:hover .friend-name{color:var(--accent-deep)}html.dark .friend-card:hover .friend-name{color:var(--accent)}.friend-desc{color:var(--muted);margin-top:3px;font-size:13.5px;line-height:1.6}.friend-apply{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:20px;padding:24px 26px;display:flex}.friend-apply .fa-title{font-family:var(--font-display);font-size:17px;font-weight:700}.friend-apply .fa-desc{color:var(--muted);margin-top:4px;font-size:14px}.friend-tags{flex-wrap:wrap;gap:4px;margin-top:7px;display:flex}.friend-tags .chip{padding:1px 9px;font-size:11px}.avatar-fallback{background:var(--accent-soft);color:var(--accent-ink);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.friend-avatar .avatar-fallback{width:100%;height:100%;font-size:20px;font-family:var(--font-display)}.side-friends .avatar-fallback{border:1px solid var(--border);border-radius:50%;flex:none;width:24px;height:24px;font-size:12px}.sponsor-item-avatar.avatar-fallback{border-radius:50%;font-size:14px}.page-card{margin-top:26px;padding:26px 30px}.page-card .prose>:first-child,.prose.page-card>:first-child{margin-top:0}.comment-placeholder{text-align:center;color:var(--muted);font-size:14px}.comment-placeholder p{margin:8px 0}.sponsor-usage{color:var(--ink-2);background:var(--accent-soft);border:1px solid hsl(var(--accent-h) 30% 60% / .45);margin-top:26px;padding:14px 18px;font-size:14px;line-height:1.7}.sponsor-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin-top:26px;display:grid}.sponsor-method{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:26px 22px;display:flex}.sponsor-method .sm-name{font-family:var(--font-display);align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.sponsor-method .sm-icon{font-size:20px}.sponsor-method .sm-desc{color:var(--muted);margin:0;font-size:13.5px}.sponsor-qr{border:1px solid var(--border);object-fit:contain;background:#fff;border-radius:12px;width:180px;height:180px;padding:12px}.sponsor-qr-empty{color:var(--muted);justify-content:center;align-items:center;font-size:13px;display:flex}.sponsor-method .sm-link{margin-top:auto}.sponsor-list-title{font-family:var(--font-display);margin:0 0 14px;font-size:17px;font-weight:700}.sponsor-list-title .sl-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:8px;font-size:12px;font-weight:400}.sponsor-list{gap:10px;display:grid}.sponsor-item{border:1px solid var(--border);border-radius:14px;align-items:center;gap:12px;padding:10px 14px;display:flex}.sponsor-item-avatar{object-fit:cover;border:1px solid var(--border);border-radius:50%;flex:none;width:36px;height:36px}.sponsor-item-name{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:14px;font-weight:600;display:flex}.sponsor-item-name .sl-amount{color:var(--accent-ink);font-size:13px}.sponsor-item-date{color:var(--muted);font-size:12.5px}.site-footer{border-top:1px solid var(--border);background:var(--bg-soft)}.footer-inner{text-align:center;padding:36px 24px 40px}.footer-inner>*+*{margin-top:6px}.footer-line{color:var(--ink-2);font-size:14px}.footer-line a,.footer-sub a,.footer-custom a{color:var(--accent);text-decoration:none}.footer-line a:hover,.footer-sub a:hover,.footer-custom a:hover{text-underline-offset:2px;text-decoration:underline}.footer-sep{color:var(--muted);margin:0 6px}.footer-sub{color:var(--muted);font-size:12.5px}.footer-custom{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:2px 16px;font-size:12.5px;display:flex}.search-overlay{z-index:250;backdrop-filter:blur(6px);background:#0c0e0f73;justify-content:center;align-items:flex-start;padding:12vh 20px 0;display:flex;position:fixed;inset:0}.search-overlay[hidden]{display:none!important}.search-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(560px,100%);box-shadow:var(--shadow-md);overflow:hidden}.search-box{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;display:flex}.search-box>svg{width:18px;height:18px;color:var(--muted);flex:none}.search-box input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:16px}.search-box input::placeholder{color:var(--muted)}.search-results{max-height:320px;padding:8px;overflow-y:auto}.search-item{text-align:left;border-radius:var(--radius-sm);width:100%;padding:10px 14px;display:block}.search-item .si-title{color:var(--ink);font-size:14.5px;font-weight:600}.search-item .si-meta{color:var(--muted);margin-top:2px;font-size:12.5px}.search-item.is-active,.search-item:hover{background:var(--accent-soft)}.search-item.is-active .si-title{color:var(--accent-ink)}.search-empty{text-align:center;color:var(--muted);padding:34px 0;font-size:14px}.search-hint{color:var(--muted);border-top:1px solid var(--border);background:var(--bg-soft);padding:10px 16px;font-size:12px}.read-progress{z-index:150;transform-origin:0;background:linear-gradient(90deg, var(--accent), var(--accent-deep,var(--accent)));pointer-events:none;width:100%;height:3px;position:fixed;top:0;left:0;transform:scaleX(0)}.back-top{z-index:90;background:var(--surface);width:42px;height:42px;color:var(--ink-2);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;transition:color .15s,border-color .15s,transform .15s;display:flex;position:fixed;bottom:30px;right:26px}.back-top:hover{color:var(--accent-ink);border-color:var(--accent);transform:translateY(-2px)}.back-top svg{width:20px;height:20px}@media (width<=860px){.site-nav{top:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-md);flex-direction:column;align-items:stretch;gap:2px;margin:0;padding:10px 16px 14px;display:none;position:absolute;left:0;right:0}.site-nav.open{display:flex}.nav-link{border-radius:var(--radius-sm);padding:10px 14px}.nav-burger{display:inline-flex}}@media (width<=640px){.shell{padding-inline:16px}.post-body{padding:18px 18px 20px}.post-card.no-cover:not(.compact) .post-body{padding-right:72px}.side-card{padding:16px}.site-main{padding-top:24px}.hero{padding:12px 0 28px}.post-card.featured{grid-template-columns:1fr}.post-card.featured .post-cover{aspect-ratio:16/9;min-height:0}.post-card.compact{grid-template-columns:96px 1fr}.post-nav{grid-template-columns:1fr}.post-nav .next{text-align:left}.home-layout{gap:24px}.back-top{bottom:20px;right:16px}.nav-search{display:none}.nav-search-toggle{display:inline-flex}.search-bar{display:flex}.search-pop{left:12px;right:12px;top:calc(var(--header-h) + 8px);width:auto;position:fixed}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{opacity:1;transform:none}}.diagram-container{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);touch-action:pan-y;margin:24px 0;padding:4px;position:relative;overflow:hidden}.diagram-wrapper{text-align:center}.mermaid-svg-light svg,.mermaid-svg-dark svg,.plantuml-image{max-width:100%;height:auto;margin:0 auto}.mermaid-svg-dark,html.dark .mermaid-svg-light{display:none}html.dark .mermaid-svg-dark{display:block}.mermaid-error{text-align:left;padding:14px 16px}.mermaid-error p,.plantuml-error p{color:var(--muted);font-size:.9em}.mermaid-error .mermaid-fallback-code{font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;background:var(--bg-soft);border-radius:var(--radius-sm);margin:10px 0 0;padding:14px;font-size:.85em;line-height:1.6;overflow-x:auto}.plantuml-error{text-align:center;padding:2px 0 10px}.plantuml-error button{border:1px solid var(--border-2);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-2);cursor:pointer;margin-top:8px;padding:4px 14px;font-size:.85em}.plantuml-error button:hover{color:var(--ink);border-color:var(--muted)}.diagram-controls{z-index:2;backdrop-filter:blur(4px);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);opacity:0;background:#ffffffd9;gap:2px;padding:3px;transition:opacity .18s;display:flex;position:absolute;top:8px;right:8px}html.dark .diagram-controls{background:#141414d9}.diagram-container:hover .diagram-controls,.diagram-container:focus-within .diagram-controls{opacity:1}.diagram-ctrl-btn{width:26px;height:26px;color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex}.diagram-ctrl-btn:hover{background:var(--bg-soft);color:var(--ink)}.diagram-fullscreen-overlay{z-index:999;backdrop-filter:blur(3px);background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.diagram-fs-content{cursor:grab;justify-content:center;align-items:center;width:94vw;height:86vh;display:flex;overflow:hidden}.diagram-fs-content svg,.diagram-fs-content img{max-width:100%;max-height:100%}.diagram-fs-controls{border-radius:var(--radius-sm);box-shadow:var(--shadow-md);background:#ffffffeb;gap:4px;padding:4px;display:flex;position:absolute;top:18px;right:18px}html.dark .diagram-fs-controls{background:#1f1f1feb}.diagram-fs-controls .diagram-ctrl-btn{width:30px;height:30px;font-size:16px}.katex-display{padding:4px 0;overflow:auto hidden}a[data-encoded-email]{cursor:pointer}.enc-flag{color:var(--accent)}.enc-box{justify-content:center;padding:3rem 1rem;display:flex}.enc-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:360px;box-shadow:var(--shadow-sm);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:2rem 1.5rem;display:flex}.enc-icon{width:44px;height:44px;color:var(--accent)}.enc-title{font-family:var(--font-display);margin:0;font-size:1.05rem;font-weight:700}.enc-desc{color:var(--ink-2);margin:0;font-size:.85rem}.enc-hint{color:var(--muted);margin:0;font-size:.78rem}.enc-form{flex-direction:column;gap:10px;width:100%;margin-top:6px;display:flex}.enc-form input{width:100%;color:var(--ink);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;padding:9px 12px;font-size:.9rem;transition:border-color .15s}.enc-form input:focus{border-color:var(--accent)}.enc-form button{cursor:pointer;color:#fff;background:var(--accent);border-radius:var(--radius-sm);border:none;padding:9px 12px;font-size:.9rem;font-weight:500;transition:filter .15s,transform .1s}.enc-form button:hover{filter:brightness(1.06)}.enc-form button:active{transform:scale(.98)}.enc-error{color:#d4574e;margin:0;font-size:.78rem}@media (width<=640px){.diagram-controls{opacity:1}}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:28px 0;display:grid}.related-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;box-shadow:var(--shadow-sm);flex-direction:column;padding:18px 20px;display:flex;overflow:hidden}.related-head{font-family:var(--font-display);border-bottom:1px dashed var(--border);align-items:center;gap:8px;margin-bottom:6px;padding-bottom:12px;font-size:.95rem;font-weight:700;display:flex}.related-head svg{width:18px;height:18px;color:var(--accent);flex-shrink:0}.related-badge{letter-spacing:.02em;color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;margin-left:auto;padding:2px 8px;font-size:.68rem;font-weight:500}.related-list{flex-direction:column;flex:1;display:flex}.related-item{border-radius:var(--radius-sm);align-items:center;gap:10px;margin:0 -8px;padding:10px 8px;transition:background-color .15s;display:flex}.related-item+.related-item{border-top:1px dashed var(--border)}.related-item:hover{background:var(--bg-soft)}.related-num{width:24px;height:24px;color:var(--accent-ink);background:var(--accent-soft);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.related-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.related-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:700;transition:color .15s;overflow:hidden}.related-item:hover .related-title{color:var(--accent-ink)}.related-meta{min-width:0;color:var(--muted);align-items:center;gap:8px;font-size:.75rem;display:flex}.related-cat{color:var(--ink-2);background:var(--bg-soft);border-radius:999px;flex-shrink:0;padding:1px 7px;font-size:.68rem}.related-desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.related-arrow{width:18px;height:18px;color:var(--muted);flex-shrink:0;transition:color .15s,transform .15s}.related-item:hover .related-arrow{color:var(--accent);transform:translate(2px)}.related-empty{min-height:140px;color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;font-size:.85rem;display:flex}.related-empty svg{opacity:.5;width:32px;height:32px}@media (width<=860px){.related-grid{grid-template-columns:1fr}}.qy-lqip{z-index:0;pointer-events:none;transition:opacity .6s;position:absolute;inset:0}.qy-img-in>.qy-lqip{opacity:0}@media (prefers-reduced-motion:reduce){.qy-lqip{transition:none}}.support-card{border:1px dashed var(--border);background:var(--surface);border-radius:14px;justify-content:space-between;align-items:center;gap:18px;margin-top:28px;padding:18px 22px;display:flex}.support-info h3{color:var(--ink);margin:0;font-size:1rem}.support-info p{color:var(--muted);margin:4px 0 0;font-size:.85rem}.support-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.btn-sponsor{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent-deep);border-radius:999px;align-items:center;gap:8px;padding:10px 22px;font-size:.875rem;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.btn-sponsor:hover{background:var(--accent);color:var(--surface)}.btn-sponsor svg{width:15px;height:15px}@media (width<=640px){.support-card{text-align:center;flex-direction:column;align-items:stretch}.support-actions{justify-content:center}}.btn-poster{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:10px 22px;font-size:.875rem;transition:color .2s,border-color .2s;display:inline-flex}.btn-poster:hover{color:var(--accent);border-color:var(--accent)}.btn-poster svg{width:15px;height:15px}.poster-modal{z-index:330;backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;padding:20px;animation:.2s poster-fade;display:flex;position:fixed;inset:0}@keyframes poster-fade{0%{opacity:0}}.poster-card{background:var(--surface);border:1px solid var(--border);width:min(480px,92vw);max-height:88vh;box-shadow:var(--shadow-md);border-radius:14px;flex-direction:column;animation:.25s poster-pop;display:flex;overflow:hidden}@keyframes poster-pop{0%{opacity:0;transform:translateY(12px)scale(.98)}}.poster-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.poster-head strong{color:var(--ink);font-size:.95rem}.poster-close{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .2s,color .2s;display:inline-flex}.poster-close:hover{background:var(--bg-soft);color:var(--ink)}.poster-stage{flex:1;padding:16px;overflow:auto}.poster-img{border-radius:var(--radius-sm);width:100%;height:auto;display:block}.poster-loading{min-height:160px;color:var(--muted);justify-content:center;align-items:center;gap:10px;font-size:.875rem;display:flex}.poster-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite poster-spin}@keyframes poster-spin{to{transform:rotate(360deg)}}.poster-foot{border-top:1px solid var(--border);gap:10px;padding:12px 16px;display:flex}.poster-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;flex:1;padding:9px 0;font-size:.875rem;transition:color .2s,border-color .2s}.poster-btn:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.poster-btn:disabled{opacity:.5;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.poster-modal,.poster-card{animation:none}.poster-spinner{animation-duration:2s}}.image-grid{grid-template-columns:1fr;align-items:stretch;gap:1rem;margin:1.5rem 0;display:grid}@media (width>=768px){.image-grid[data-cols="2"]{grid-template-columns:repeat(2,1fr)}.image-grid[data-cols="3"]{grid-template-columns:repeat(3,1fr)}.image-grid[data-cols="4"]{grid-template-columns:repeat(4,1fr)}}.image-grid img{object-fit:cover;border-radius:var(--radius-sm);width:100%;height:100%}.image-grid figure{border-radius:var(--radius-sm);border:none;flex-direction:column;width:100%;height:100%;margin:0;padding:0;display:flex;overflow:hidden}.image-grid figure img{flex-grow:1;min-height:0}.image-grid figcaption{color:var(--ink-2);background:0 0;margin-top:.5rem;margin-bottom:0;padding:0 2px}.prose a.card-github{color:var(--ink);background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);margin:1.25rem 0;padding:1.1rem 1.5rem;text-decoration:none;display:block;position:relative}.prose a.card-github:hover{background:var(--accent-soft);color:var(--accent-ink)}.prose a.card-github:hover .gc-titlebar{color:var(--accent-ink)}.prose a.card-github:hover .gc-stars,.prose a.card-github:hover .gc-forks,.prose a.card-github:hover .gc-license,.prose a.card-github:hover .gc-description{color:var(--ink)}.prose a.card-github:hover .gc-stars:before,.prose a.card-github:hover .gc-forks:before,.prose a.card-github:hover .gc-license:before{background-color:var(--ink)}.prose a.card-github:active{scale:.98}.prose a.card-github .gc-titlebar{color:var(--ink);justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:1.25rem;font-weight:500;display:flex}.prose a.card-github .gc-titlebar-left{flex-flow:row;gap:.5rem;display:flex}.prose a.card-github .gc-repo{font-weight:700}.prose a.card-github .gc-owner{flex-flow:row;align-items:center;gap:.5rem;font-weight:300;display:flex;position:relative}.prose a.card-github .gc-avatar{background-color:var(--accent);background-size:cover;border-radius:50%;width:1.5rem;height:1.5rem;margin-top:-.1rem;display:block;overflow:hidden}.prose a.card-github .gc-description{color:var(--ink-2);margin-bottom:.7rem;font-size:1rem;font-weight:300;line-height:1.5rem}.prose a.card-github .gc-infobar{width:fit-content;color:var(--ink-2);flex-flow:row;gap:1.5rem;display:flex}.prose a.card-github .gc-language{display:none}.prose a.card-github .gc-stars,.prose a.card-github .gc-forks,.prose a.card-github .gc-license,.prose a.card-github .github-logo{opacity:.9;font-size:.875rem;font-weight:500}.prose a.card-github .gc-stars:before,.prose a.card-github .gc-forks:before,.prose a.card-github .gc-license:before,.prose a.card-github .github-logo:before{content:" ";vertical-align:-.24em;width:1.3em;height:1.3em;font-size:inherit;background-color:var(--ink-2);margin-right:.4rem;transition-property:background-color,background;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-block;overflow:visible;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.prose a.card-github .gc-stars:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z'%3E%3C/path%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z'%3E%3C/path%3E%3C/svg%3E")}.prose a.card-github .gc-license:before{margin-right:.5rem;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z'%3E%3C/path%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z'%3E%3C/path%3E%3C/svg%3E")}.prose a.card-github .gc-forks:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z'%3E%3C/path%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z'%3E%3C/path%3E%3C/svg%3E")}.prose a.card-github .github-logo{font-size:1.25rem}.prose a.card-github .github-logo:before{background-color:var(--ink);margin-right:0;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='31' height='32' viewBox='0 0 496 512'%3E%3Cpath fill='%23a1f7cb' d='M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9c1.6 2.3 4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='31' height='32' viewBox='0 0 496 512'%3E%3Cpath fill='%23a1f7cb' d='M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9c1.6 2.3 4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2'/%3E%3C/svg%3E")}.prose a.card-github.fetch-waiting{pointer-events:none;opacity:.7;transition:opacity .15s ease-in-out}.prose a.card-github.fetch-waiting .gc-description,.prose a.card-github.fetch-waiting .gc-infobar,.prose a.card-github.fetch-waiting .gc-avatar{background-color:var(--ink-2);color:#0000;opacity:.5;-webkit-user-select:none;user-select:none;animation:2s linear infinite card-pulsate}.prose a.card-github.fetch-waiting .gc-description:before,.prose a.card-github.fetch-waiting .gc-infobar:before,.prose a.card-github.fetch-waiting .gc-avatar:before{background-color:#0000}.prose a.card-github.fetch-waiting .gc-repo{margin-left:-.1rem}.prose a.card-github.fetch-waiting .gc-description,.prose a.card-github.fetch-waiting .gc-infobar{border-radius:.5rem}.prose a.card-github.fetch-error{pointer-events:all;opacity:1}@keyframes card-pulsate{0%{opacity:.15}50%{opacity:.25}to{opacity:.15}}.prose a.card-github,.prose a.card-github .gc-description,.prose a.card-github .gc-titlebar,.prose a.card-github .gc-stars,.prose a.card-github .gc-forks,.prose a.card-github .gc-license,.prose a.card-github .gc-avatar,.prose a.card-github .github-logo{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}.pswp{--pswp-bg:#000;--pswp-placeholder-bg:#222;--pswp-root-z-index:100000;--pswp-preloader-color:#4f4f4f66;--pswp-preloader-color-secondary:#ffffffe6;--pswp-icon-color:#fff;--pswp-icon-color-secondary:#4f4f4f;--pswp-icon-stroke-color:#4f4f4f;--pswp-icon-stroke-width:2px;--pswp-error-text-color:var(--pswp-icon-color);width:100%;height:100%;z-index:var(--pswp-root-z-index);touch-action:none;opacity:.003;contain:layout style size;-webkit-tap-highlight-color:#0000;outline:0;display:none;position:fixed;top:0;left:0}.pswp:focus{outline:0}.pswp *{box-sizing:border-box}.pswp img{max-width:none}.pswp--open{display:block}.pswp,.pswp__bg{will-change:opacity;transform:translateZ(0)}.pswp__bg{opacity:.005;background:var(--pswp-bg)}.pswp,.pswp__scroll-wrap{overflow:hidden}.pswp__scroll-wrap,.pswp__bg,.pswp__container,.pswp__item,.pswp__content,.pswp__img,.pswp__zoom-wrap{width:100%;height:100%;position:absolute;top:0;left:0}.pswp__img,.pswp__zoom-wrap{width:auto;height:auto}.pswp--click-to-zoom.pswp--zoom-allowed .pswp__img{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img,.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img:active,.pswp__img{cursor:-webkit-zoom-out;cursor:-moz-zoom-out;cursor:zoom-out}.pswp__container,.pswp__img,.pswp__button,.pswp__counter{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pswp__item{z-index:1;overflow:hidden}.pswp__hidden{display:none!important}.pswp__content{pointer-events:none}.pswp__content>*{pointer-events:auto}.pswp__error-msg-container{display:grid}.pswp__error-msg{color:var(--pswp-error-text-color);margin:auto;font-size:1em;line-height:1}.pswp .pswp__hide-on-close{opacity:.005;will-change:opacity;transition:opacity var(--pswp-transition-duration) cubic-bezier(.4, 0, .22, 1);z-index:10;pointer-events:none}.pswp--ui-visible .pswp__hide-on-close{opacity:1;pointer-events:auto}.pswp__button{cursor:pointer;width:50px;height:60px;box-shadow:none;opacity:.85;-webkit-appearance:none;-webkit-touch-callout:none;background:0 0;border:0;margin:0;padding:0;display:block;position:relative;overflow:hidden}.pswp__button:hover,.pswp__button:active,.pswp__button:focus{box-shadow:none;opacity:1;background:0 0;border:0;padding:0;transition:none}.pswp__button:disabled{opacity:.3;cursor:auto}.pswp__icn{fill:var(--pswp-icon-color);color:var(--pswp-icon-color-secondary);pointer-events:none;width:32px;height:32px;position:absolute;top:14px;left:9px;overflow:hidden}.pswp__icn-shadow{stroke:var(--pswp-icon-stroke-color);stroke-width:var(--pswp-icon-stroke-width);fill:none}.pswp__icn:focus{outline:0}div.pswp__img--placeholder,.pswp__img--with-bg{background:var(--pswp-placeholder-bg)}.pswp__top-bar{z-index:10;flex-direction:row;justify-content:flex-end;width:100%;height:60px;display:flex;position:absolute;top:0;left:0;pointer-events:none!important}.pswp__top-bar>*{pointer-events:auto;will-change:opacity}.pswp__button--close{margin-right:6px}.pswp__button--arrow{width:75px;height:100px;margin-top:-50px;position:absolute;top:50%}.pswp__button--arrow:disabled{cursor:default;display:none}.pswp__button--arrow .pswp__icn{background:0 0;border-radius:0;width:60px;height:60px;margin-top:-30px;top:50%}.pswp--one-slide .pswp__button--arrow{display:none}.pswp--touch .pswp__button--arrow{visibility:hidden}.pswp--has_mouse .pswp__button--arrow{visibility:visible}.pswp__button--arrow--prev{left:0;right:auto}.pswp__button--arrow--next{right:0}.pswp__button--arrow--next .pswp__icn{left:auto;right:14px;transform:scaleX(-1)}.pswp__button--zoom{display:none}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__zoom-icn-bar-v{display:none}.pswp__preloader{width:50px;height:60px;margin-right:auto;position:relative;overflow:hidden}.pswp__preloader .pswp__icn{opacity:0;transition:opacity .2s linear;animation:.6s linear infinite pswp-clockwise}.pswp__preloader--active .pswp__icn{opacity:.85}@keyframes pswp-clockwise{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pswp__counter{margin-top:15px;height:30px;color:var(--pswp-icon-color);text-shadow:1px 1px 3px var(--pswp-icon-color-secondary);opacity:.85;margin-inline-start:20px;font-size:14px;line-height:30px}.pswp--one-slide .pswp__counter{display:none}
