@font-face{font-family:HarmonyOS Sans SC Black;src:local("HarmonyOS Sans SC Black"),url(/ttf/HarmonyOS_Sans_SC_Black.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}:root{--font-harmony: "HarmonyOS Sans SC Black", "HarmonyOS Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Microsoft YaHei", Arial, sans-serif;--bg: #eceef2;--topbar-bg: rgba(255, 255, 255, .25);--ink: #1f2937;--ink-soft: #374151;--ink-strong: #111827;--nav-hover-bg: rgba(255, 255, 255, .42);--avatar-ring: rgba(255, 255, 255, .7);--avatar-ring-hover: rgba(255, 255, 255, .95);--switch-track: rgba(255, 255, 255, .45);--switch-knob: #ffffff;--switch-knob-ink: #1f2937;--divider: rgba(31, 41, 55, .14);--search-bg: rgba(255, 255, 255, .42);--search-bg-focus: rgba(255, 255, 255, .74);--search-border: rgba(255, 255, 255, .55);--search-border-focus: rgba(255, 255, 255, .95);--search-placeholder: #6b7280;--card-bg: rgba(255, 255, 255, .72);--card-border: rgba(31, 41, 55, .08);--card-border-hover: rgba(31, 41, 55, .18);--accent: #2563eb;--accent-soft: rgba(37, 99, 235, .1);--line: rgba(31, 41, 55, .1);--post-meta: #6b7280;--chip-bg: rgba(31, 41, 55, .05);--chip-border: rgba(31, 41, 55, .09);--row-hover: rgba(31, 41, 55, .05);--cover-bg: rgba(255, 255, 255, .5);--totop-bg: rgba(255, 255, 255, .78);--totop-bg-hover: rgba(255, 255, 255, .95);--totop-border: rgba(31, 41, 55, .1);--totop-ink: #1f2937;--foot-bg: rgba(255, 255, 255, .45);--captcha-mask: rgba(15, 23, 42, .38);--captcha-bg: rgba(255, 255, 255, .97);--captcha-border: rgba(31, 41, 55, .1);--captcha-track: rgba(31, 41, 55, .06);--captcha-track-border: rgba(31, 41, 55, .1);--captcha-hint: #6b7280;--captcha-knob: #ffffff;--captcha-knob-ink: #1f2937;--captcha-fill-a: rgba(59, 130, 246, .18);--captcha-fill-b: rgba(59, 130, 246, .34);--captcha-ok: #16a34a;--captcha-ok-fill-a: rgba(22, 163, 74, .18);--captcha-ok-fill-b: rgba(22, 163, 74, .36);--captcha-bad: #dc2626;--toast-bg: rgba(17, 24, 39, .9);--modal-mask: rgba(15, 23, 42, .36);--modal-bg: rgba(255, 255, 255, .97);--modal-border: rgba(31, 41, 55, .1);--modal-ink-soft: #6b7280;--modal-divide: rgba(31, 41, 55, .1);--toast-ink: #f9fafb}html[data-theme=dark]{--bg: #0b1220;--topbar-bg: rgba(15, 23, 42, .55);--ink: #f1f5f9;--ink-soft: #cbd5e1;--ink-strong: #ffffff;--nav-hover-bg: rgba(255, 255, 255, .14);--avatar-ring: rgba(255, 255, 255, .35);--avatar-ring-hover: rgba(255, 255, 255, .6);--switch-track: rgba(255, 255, 255, .18);--switch-knob: #e2e8f0;--switch-knob-ink: #0f172a;--divider: rgba(255, 255, 255, .14);--search-bg: rgba(255, 255, 255, .08);--search-bg-focus: rgba(255, 255, 255, .15);--search-border: rgba(255, 255, 255, .12);--search-border-focus: rgba(255, 255, 255, .3);--search-placeholder: #94a3b8;--card-bg: rgba(255, 255, 255, .05);--card-border: rgba(255, 255, 255, .1);--card-border-hover: rgba(255, 255, 255, .22);--accent: #60a5fa;--accent-soft: rgba(96, 165, 250, .14);--line: rgba(255, 255, 255, .1);--post-meta: #94a3b8;--chip-bg: rgba(255, 255, 255, .06);--chip-border: rgba(255, 255, 255, .1);--row-hover: rgba(255, 255, 255, .06);--cover-bg: rgba(255, 255, 255, .03);--totop-bg: rgba(30, 41, 59, .72);--totop-bg-hover: rgba(51, 65, 85, .88);--totop-border: rgba(255, 255, 255, .14);--totop-ink: #f1f5f9;--foot-bg: rgba(255, 255, 255, .03);--captcha-mask: rgba(2, 6, 23, .62);--captcha-bg: rgba(24, 32, 48, .97);--captcha-border: rgba(255, 255, 255, .12);--captcha-track: rgba(255, 255, 255, .07);--captcha-track-border: rgba(255, 255, 255, .1);--captcha-hint: #94a3b8;--captcha-knob: #e2e8f0;--captcha-knob-ink: #0f172a;--captcha-fill-a: rgba(96, 165, 250, .2);--captcha-fill-b: rgba(96, 165, 250, .36);--captcha-ok: #4ade80;--captcha-ok-fill-a: rgba(74, 222, 128, .2);--captcha-ok-fill-b: rgba(74, 222, 128, .38);--captcha-bad: #f87171;--toast-bg: rgba(241, 245, 249, .94);--modal-mask: rgba(2, 6, 23, .6);--modal-bg: rgba(24, 32, 48, .97);--modal-border: rgba(255, 255, 255, .12);--modal-ink-soft: #94a3b8;--modal-divide: rgba(255, 255, 255, .12);--toast-ink: #0f172a}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;background-color:var(--bg);font-family:var(--font-harmony);font-weight:400;-webkit-font-smoothing:antialiased;transition:background-color .3s ease}.topbar{position:fixed;top:0;left:0;width:100%;height:56px;background-color:var(--topbar-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:0 0 10px 10px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:1000;transition:background-color .3s ease}.topbar-brand{display:flex;align-items:center;gap:10px;font-size:18px;color:var(--ink);text-decoration:none;line-height:1;transition:color .3s ease}.topbar-brand .brand-name{margin:0;font:inherit}.topbar-brand .brand-avatar{display:block;width:32px;height:32px;border-radius:10px;object-fit:cover;box-shadow:0 0 0 1.5px var(--avatar-ring),0 2px 6px #0000001f;transition:transform .25s ease,box-shadow .3s ease}.topbar-brand:hover .brand-avatar{transform:rotate(-8deg) scale(1.06);box-shadow:0 0 0 1.5px var(--avatar-ring-hover),0 4px 12px #0000002e}.topbar-left,.topbar-right{display:flex;align-items:center;gap:14px}.topbar-left{min-width:0}.topbar-right{flex:0 0 auto}.topbar-nav{display:flex;gap:8px;list-style:none}.topbar-nav a{position:relative;display:flex;align-items:center;gap:7px;padding:7px 14px;border-radius:8px;color:var(--ink-soft);text-decoration:none;font-size:15px;line-height:1;transition:background-color .2s ease,color .3s ease}.topbar-nav a:hover{background-color:var(--nav-hover-bg);color:var(--ink-strong)}.icon{flex:0 0 auto;width:18px;height:18px;color:currentColor;transition:transform .2s ease}.topbar-nav a:hover .icon{transform:translateY(-1px)}.theme-switch{position:relative;flex:0 0 auto;width:56px;height:30px;padding:3px;border:none;border-radius:999px;background-color:var(--switch-track);box-shadow:inset 0 1px 2px #0000001a,0 0 0 1px #ffffff29;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .3s ease,box-shadow .3s ease}.theme-switch:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.theme-switch .knob{position:relative;display:block;width:24px;height:24px;border-radius:50%;background-color:var(--switch-knob);box-shadow:0 1px 3px #0000003d,0 0 0 .5px #0000000d;transform:translate(0);transition:transform .3s cubic-bezier(.4,0,.2,1),background-color .3s ease}.theme-switch[aria-checked=true] .knob{transform:translate(26px)}.theme-switch .knob .icon{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:15px;height:15px;color:var(--switch-knob-ink);transition:opacity .3s ease,transform .3s ease}.theme-switch .knob .icon-sun{opacity:1;transform:rotate(0) scale(1)}.theme-switch .knob .icon-moon{opacity:0;transform:rotate(-90deg) scale(.6)}.theme-switch[aria-checked=true] .knob .icon-sun{opacity:0;transform:rotate(90deg) scale(.6)}.theme-switch[aria-checked=true] .knob .icon-moon{opacity:1;transform:rotate(0) scale(1)}.topbar-divider{flex:0 0 auto;width:1px;height:20px;background-color:var(--divider);transition:background-color .3s ease}.topbar-search{display:flex;align-items:center;gap:7px;height:32px;padding:0 12px;border-radius:8px;background-color:var(--search-bg);box-shadow:inset 0 0 0 1px var(--search-border);transition:background-color .2s ease,box-shadow .2s ease}.topbar-search:focus-within{background-color:var(--search-bg-focus);box-shadow:inset 0 0 0 1px var(--search-border-focus),0 0 0 2px #3b82f647}.topbar-search .icon{width:15px;height:15px;color:var(--ink-soft);pointer-events:none;transition:color .2s ease}.topbar-search input{width:150px;border:none;outline:none;padding:0;background:transparent;font-family:inherit;font-weight:400;font-size:14px;line-height:1;color:var(--ink)}.topbar-search input::placeholder{color:var(--search-placeholder)}.topbar-search input::-webkit-search-cancel-button,.topbar-search input::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}@media(max-width:860px){.topbar-search input{width:96px}}@media(max-width:720px){.topbar-brand .brand-name{display:none}.main-content{padding:0 0 24px}}@media(prefers-reduced-motion:reduce){.carousel-track{transition:none}}.main-content{width:100%;flex:1 0 auto;padding:0 0 32px;background-color:var(--bg);transition:background-color .3s ease}.blog{padding:42px clamp(28px,6vw,72px) 0}.blog-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line);transition:border-color .3s ease}.blog-title{font-size:clamp(20px,2.4vw,26px);line-height:1.35;color:var(--ink-strong);transition:color .3s ease}.blog-sub{margin-top:6px;font-size:13.5px;color:var(--post-meta);transition:color .3s ease}.blog-all{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;padding:6px 10px;margin-right:-10px;border-radius:8px;font-size:13.5px;color:var(--accent);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease}.blog-all:hover{background-color:var(--accent-soft)}.blog-all:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.blog-all .icon{width:15px;height:15px;transition:transform .2s ease}.blog-all:hover .icon{transform:translate(3px)}.blog-body{display:grid;grid-template-columns:minmax(0,1fr) 248px;gap:28px;margin-top:22px}.post-list{display:flex;flex-direction:column;gap:14px;min-width:0}.post{position:relative;padding:18px 20px;border-radius:14px;background-color:var(--card-bg);box-shadow:inset 0 0 0 1px var(--card-border);transition:background-color .25s ease,box-shadow .25s ease,transform .25s ease}.post:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--card-border-hover)}.post-main{display:flex;flex-direction:column;min-width:0}.post-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12.5px;color:var(--post-meta);transition:color .3s ease}.post-meta time{display:inline-flex;align-items:center;gap:4px}.post-meta .icon{width:14px;height:14px}.post-meta .dot{width:3px;height:3px;border-radius:50%;background-color:currentColor;opacity:.55}.post-badge{padding:1px 8px;border-radius:999px;font-size:11.5px;line-height:1.7;color:var(--accent);background-color:var(--accent-soft)}.post-title{margin:9px 0 8px;font-size:17px;line-height:1.5;color:var(--ink-strong);transition:color .3s ease}.post-title a{color:inherit;text-decoration:none}.post-title a:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.post-foot{position:relative;z-index:2}.post-title a:hover{color:var(--accent)}.post-title a:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:3px}.post-excerpt{font-size:14px;line-height:1.85;color:var(--ink-soft);transition:color .3s ease}.post-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.post-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.chip{padding:2px 9px;border-radius:999px;font-size:12px;line-height:1.7;color:var(--ink-soft);background-color:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--chip-border);transition:color .3s ease,background-color .3s ease,box-shadow .3s ease}.post-read{flex:0 0 auto;font-size:12.5px;color:var(--post-meta);transition:color .3s ease}.post.is-featured{display:flex;gap:18px;padding:20px}.post.is-featured .post-foot{margin-top:auto}.post-cover{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:200px;height:132px;border-radius:11px;color:var(--accent);background-color:var(--cover-bg);background-image:linear-gradient(135deg,var(--accent-soft),transparent 68%);box-shadow:inset 0 0 0 1px var(--card-border);transition:background-color .3s ease,box-shadow .3s ease}.post-cover .icon{width:46px;height:46px}.blog-side{display:flex;flex-direction:column;gap:16px;align-self:start;position:sticky;top:76px}.side-block{padding:16px 18px;border-radius:14px;background-color:var(--card-bg);box-shadow:inset 0 0 0 1px var(--card-border);transition:background-color .3s ease,box-shadow .3s ease}.side-title{margin-bottom:12px;font-size:14px;color:var(--ink-strong);transition:color .3s ease}.tag-cloud{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.archive{margin:0;padding:0;list-style:none}.archive a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;margin:0 -8px;border-radius:8px;font-size:13.5px;color:var(--ink-soft);text-decoration:none;transition:background-color .2s ease,color .3s ease}.archive a:hover{background-color:var(--row-hover);color:var(--ink-strong)}.archive a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.archive .count{font-size:12.5px;color:var(--post-meta)}.bless-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}.bless-head .side-title{display:flex;align-items:center;gap:6px;margin-bottom:0}.bless-head .side-title .icon{width:15px;height:15px;color:var(--accent);transition:color .3s ease}.bless-date{font-size:12px;color:var(--post-meta);transition:color .3s ease}.bless-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:12px;background-color:var(--chip-bg);background-image:linear-gradient(135deg,var(--accent-soft),transparent 72%);box-shadow:inset 0 0 0 1px var(--card-border);transition:background-color .3s ease,box-shadow .3s ease}.bless-line{font-size:14px;line-height:1.85;color:var(--ink-strong);transition:color .3s ease}.bless-card[data-state=idle] .bless-line{opacity:.62}.bless-card.is-fresh .bless-line{animation:bless-pop .32s ease both}.bless-card.is-thinking .bless-line{animation:bless-breathe .9s ease-in-out infinite}.bless-by{font-size:12.5px;text-align:right;color:var(--post-meta);transition:color .3s ease,opacity .3s ease}.bless-card[data-state=idle] .bless-by,.bless-card[data-state=thinking] .bless-by{opacity:0}.bless-btn{padding:8px 12px;border:0;border-radius:9px;font:inherit;font-size:13px;color:var(--accent);background-color:var(--accent-soft);cursor:pointer;transition:background-color .2s ease,color .2s ease}.bless-btn:hover:not(:disabled){color:var(--bg);background-color:var(--accent)}.bless-btn:disabled{cursor:default;opacity:.55}.bless-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}@keyframes bless-pop{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}@keyframes bless-breathe{0%,to{opacity:1}50%{opacity:.4}}.blog-end{margin:22px 0 36px;font-size:12.5px;text-align:center;color:var(--post-meta);transition:color .3s ease}@media(max-width:900px){.blog-side{position:static;flex-direction:row;flex-wrap:wrap}.blog-side .side-block{flex:1 1 220px}.blog-body{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.post.is-featured{flex-direction:column}.post-cover{width:100%;height:116px}}.site-shell{display:flex;flex-direction:column;min-height:100vh}.site-foot{margin-top:auto;padding:24px clamp(28px,6vw,72px) 28px;border-top:1px solid var(--line);background-color:var(--foot-bg);transition:background-color .3s ease,border-color .3s ease}.foot-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 20px}.foot-nav{display:flex;flex-wrap:wrap;gap:2px;margin-left:-8px}.foot-nav a{padding:4px 8px;border-radius:7px;font-size:13.5px;color:var(--ink-soft);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease,color .2s ease}.foot-nav a:hover{background-color:var(--nav-hover-bg);color:var(--ink-strong)}.foot-nav a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.foot-copy{font-size:13px;color:var(--post-meta);transition:color .3s ease}@media(max-width:640px){.foot-row{flex-direction:column;align-items:flex-start}}.to-top{position:fixed;right:24px;bottom:24px;z-index:900;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:none;border-radius:50%;background-color:var(--totop-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--totop-ink);box-shadow:inset 0 0 0 1px var(--totop-border),0 6px 18px #00000024;cursor:pointer;-webkit-tap-highlight-color:transparent;opacity:0;visibility:hidden;transform:translateY(10px);pointer-events:none;transition:opacity .25s ease,transform .25s ease,background-color .3s ease,box-shadow .3s ease,visibility 0s linear .25s}.to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;transition:opacity .25s ease,transform .25s ease,background-color .3s ease,box-shadow .3s ease,visibility 0s}.to-top.is-visible:hover{transform:translateY(-2px);background-color:var(--totop-bg-hover);box-shadow:inset 0 0 0 1px var(--totop-border),0 10px 22px #0003}.to-top:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.to-top .icon{width:20px;height:20px}.toast{position:fixed;left:50%;bottom:32px;z-index:1200;padding:10px 18px;border-radius:999px;background-color:var(--toast-bg);color:var(--toast-ink);font-size:14px;line-height:1.2;box-shadow:0 10px 26px #0000003d;opacity:0;transform:translate(-50%,12px);pointer-events:none;transition:opacity .22s ease,transform .22s ease}.toast.is-visible{opacity:1;transform:translate(-50%)}.topbar-nav a.is-active{color:var(--accent);background-color:var(--accent-soft)}.topbar-nav a.is-active .icon{color:var(--accent)}.page-head{padding:82px clamp(28px,6vw,72px) 0}.page-title{font-size:clamp(22px,3vw,30px);line-height:1.35;color:var(--ink-strong);transition:color .3s ease}.page-sub{margin-top:10px;font-size:14px;line-height:1.8;color:var(--ink-soft);transition:color .3s ease}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:24px;background-color:var(--modal-mask);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease}.modal-backdrop.is-open{opacity:1;visibility:visible}.modal-card{position:relative;width:min(432px,100%);max-height:calc(100vh - 48px);overflow-y:auto;padding:24px;border-radius:16px;background-color:var(--modal-bg);box-shadow:0 24px 64px #0000004d,inset 0 0 0 1px var(--modal-border);transform:translateY(14px) scale(.97);transition:transform .24s cubic-bezier(.4,0,.2,1)}.modal-backdrop.is-open .modal-card{transform:translateY(0) scale(1)}.modal-close{position:absolute;top:14px;right:14px;z-index:2;display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:8px;background-color:transparent;color:var(--ink-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease,color .3s ease}.modal-close:hover{background-color:var(--nav-hover-bg);color:var(--ink-strong)}.modal-close:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.modal-close .icon{width:16px;height:16px}.search-modal{width:min(560px,100%);padding:22px 24px 20px}.search-modal-title{margin:0 0 14px;font-size:18px;line-height:1.3;color:var(--ink-strong);transition:color .3s ease}.search-modal-form{display:flex;align-items:center;gap:9px;height:42px;padding:0 8px 0 12px;border-radius:11px;background-color:var(--search-bg);box-shadow:inset 0 0 0 1px var(--search-border);transition:background-color .25s ease,box-shadow .25s ease}.search-modal-form:focus-within{background-color:var(--search-bg-focus);box-shadow:inset 0 0 0 1px var(--search-border-focus),0 0 0 4px var(--accent-soft)}.search-modal-form>.icon{flex:0 0 auto;width:17px;height:17px;color:var(--post-meta);transition:color .3s ease}.search-modal-form input{flex:1 1 auto;min-width:0;border:none;background:none;outline:none;font-family:inherit;font-size:14.5px;line-height:1.5;color:var(--ink-strong);transition:color .3s ease}.search-modal-form input::placeholder{color:var(--search-placeholder)}.search-modal-form input::-webkit-search-cancel-button,.search-modal-form input::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-modal-go{flex:0 0 auto;padding:7px 15px;border:none;border-radius:8px;background-color:var(--accent);color:#fff;font-family:inherit;font-size:13px;line-height:1.3;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:filter .2s ease}.search-modal-go:hover{filter:brightness(1.08)}.search-modal-meta{margin:13px 2px 0;font-size:12.5px;line-height:1.6;color:var(--post-meta);transition:color .3s ease}.search-modal-list{margin-top:8px;max-height:min(46vh,340px);overflow-y:auto;overscroll-behavior:contain}.search-hit{display:flex;align-items:flex-start;gap:10px;padding:10px;border-radius:10px;text-decoration:none;color:inherit;transition:background-color .2s ease}.search-hit:hover{background-color:var(--row-hover)}.search-hit-kind{flex:0 0 auto;margin-top:1px;padding:2px 7px;border-radius:6px;font-size:11px;line-height:1.6;background-color:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--chip-border);color:var(--post-meta);transition:background-color .3s ease,color .3s ease}.search-hit-kind.is-note{background-color:var(--accent-soft);box-shadow:inset 0 0 0 1px transparent;color:var(--accent);transition:background-color .3s ease,color .3s ease}.search-hit-body{flex:1 1 auto;min-width:0}.search-hit-body strong{display:block;font-size:14px;font-weight:400;line-height:1.5;color:var(--ink-strong);transition:color .3s ease}.search-hit-body em{display:block;margin-top:2px;overflow:hidden;font-size:12.5px;font-style:normal;line-height:1.6;color:var(--post-meta);white-space:nowrap;text-overflow:ellipsis;transition:color .3s ease}.search-hit-body mark{padding:0 1px;border-radius:3px;background-color:var(--accent-soft);color:var(--accent)}.search-hit-date{flex:0 0 auto;margin-top:4px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--post-meta);transition:color .3s ease}.search-empty{margin:4px 2px 0;font-size:13px;line-height:1.7;color:var(--post-meta)}.search-modal-tags{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:14px;padding-top:14px;border-top:1px solid var(--modal-divide)}.search-modal-tags[hidden]{display:none}.search-modal-tags>span{margin-right:2px;font-size:12.5px;color:var(--post-meta);transition:color .3s ease}.search-tag{padding:4px 11px;border:none;border-radius:999px;background-color:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--chip-border);color:var(--ink-soft);font-family:inherit;font-size:12.5px;line-height:1.6;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease,color .2s ease}.search-tag:hover{background-color:var(--accent-soft);color:var(--accent)}.author-head{display:flex;align-items:center;gap:14px}.author-avatar{flex:0 0 auto;width:60px;height:60px;border-radius:16px;object-fit:cover;box-shadow:0 0 0 1.5px var(--avatar-ring);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent}.author-name h2{font-size:20px;line-height:1.3;color:var(--ink-strong);transition:color .3s ease}.author-name p{margin-top:4px;font-size:13px;color:var(--post-meta);transition:color .3s ease}.author-bio{margin-top:16px;padding:12px 14px;border-radius:10px;background-color:var(--accent-soft);font-size:13.5px;line-height:1.85;color:var(--ink);transition:background-color .3s ease,color .3s ease}.author-facts{margin-top:16px}.author-facts>div{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--modal-divide);font-size:13px;line-height:1.6}.author-facts>div:last-child{border-bottom:none}.author-facts dt{flex:0 0 58px;color:var(--modal-ink-soft);transition:color .3s ease}.author-facts dd{flex:1 1 auto;color:var(--ink);transition:color .3s ease}.author-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.author-link{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:9px;background-color:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--chip-border);font-size:13px;color:var(--ink);text-decoration:none;transition:background-color .2s ease,box-shadow .2s ease,color .3s ease}.author-link:hover{background-color:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}.author-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.author-link .icon{width:16px;height:16px}@media(prefers-reduced-motion:reduce){.modal-backdrop,.modal-card{transition:none}.bless-card.is-thinking .bless-line,.bless-card.is-fresh .bless-line{animation:none}}.carousel{--game-sky-top: #a9cdfb;--game-sky-bot: #eef6ff;--game-cloud: rgba(255, 255, 255, .9);--game-star: rgba(255, 255, 255, 0);--game-hud-bg: rgba(255, 255, 255, .68);--game-hud-border: rgba(31, 41, 55, .1);--game-hud-ink: #1f2937;--game-hud-dim: #64748b;--game-accent: #e2711d;--game-danger: #dc2626;--game-trail: rgba(255, 255, 255, .85);--game-shade: rgba(255, 255, 255, .55);--game-panel-bg: rgba(255, 255, 255, .86);--game-panel-border: rgba(31, 41, 55, .1);--speed-bg: rgba(255, 255, 255, .84);--speed-ring: rgba(31, 41, 55, .12);--speed-shadow: 0 10px 26px rgba(15, 23, 42, .16), 0 3px 10px rgba(15, 23, 42, .1);--speed-ink: #1f2937;--speed-dim: #64748b;--speed-kbd-bg: rgba(31, 41, 55, .07);--speed-kbd-ring: rgba(31, 41, 55, .14);--speed-kbd-ink: #374151;--speed-hot: #c2410c;--speed-hot-glow: rgba(234, 88, 12, .45);--speed-hot-glow-soft: rgba(234, 88, 12, .22);--speed-track-bg: rgba(31, 41, 55, .06);--speed-track-ring: rgba(31, 41, 55, .14);--speed-track-a: #f4f6fa;--speed-track-b: #e5e9f1;--speed-blend: normal;--speed-dot: rgba(31, 41, 55, .22);--speed-dot-on: #f59e0b;--speed-dot-on-glow: rgba(245, 158, 11, .55);--speed-dot-hot: #ea580c;--speed-dot-hot-glow: rgba(234, 88, 12, .6);--speed-fire-ember: #b83a00;--speed-fire-mid: #ff9a2e;--speed-fire-core: #fff4d6;--speed-thumb: linear-gradient(170deg, #ffffff 0%, #eef1f7 40%, #dfe4ee 100%);--speed-thumb-ring: rgba(15, 23, 42, .12)}html[data-theme=dark] .carousel{--game-sky-top: #070c18;--game-sky-bot: #1d2c4c;--game-cloud: rgba(120, 156, 214, .28);--game-star: rgba(226, 240, 255, .92);--game-hud-bg: rgba(15, 23, 42, .62);--game-hud-border: rgba(255, 255, 255, .14);--game-hud-ink: #f1f5f9;--game-hud-dim: #94a3b8;--game-accent: #fb923c;--game-danger: #f87171;--game-trail: rgba(255, 255, 255, .85);--game-shade: rgba(15, 23, 42, .55);--game-panel-bg: rgba(20, 29, 46, .9);--game-panel-border: rgba(255, 255, 255, .12);--speed-bg: #000000;--speed-ring: rgba(255, 255, 255, .12);--speed-shadow: 0 10px 26px rgba(0, 0, 0, .34), 0 3px 10px rgba(0, 0, 0, .2);--speed-ink: #b0b0c7;--speed-dim: #a1a1aa;--speed-kbd-bg: #27272a;--speed-kbd-ring: rgba(255, 255, 255, .14);--speed-kbd-ink: #d4d4d8;--speed-hot: #c084fc;--speed-hot-glow: rgba(168, 85, 247, .5);--speed-hot-glow-soft: rgba(168, 85, 247, .25);--speed-track-bg: #0c0c0c;--speed-track-ring: #1a1a1e;--speed-track-a: #111113;--speed-track-b: #0a0a0b;--speed-blend: screen;--speed-dot: #494950;--speed-dot-on: #fbbf24;--speed-dot-on-glow: rgba(251, 191, 36, .85);--speed-dot-hot: #c084fc;--speed-dot-hot-glow: rgba(192, 132, 252, .9);--speed-thumb: linear-gradient(170deg, #ffffff 0%, #f0f0f2 40%, #e4e4e6 100%);--speed-thumb-ring: rgba(0, 0, 0, .08);--speed-fire-ember: #471a94;--speed-fire-mid: #9e52ff;--speed-fire-core: #fff0fa}.game-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;overflow:hidden;opacity:0;visibility:hidden;clip-path:inset(50% 0 50% 0);transition:clip-path .34s cubic-bezier(.4,0,.2,1),opacity .24s ease,visibility 0s linear .34s}.carousel.is-game .game-layer{opacity:1;visibility:visible;clip-path:inset(0 0 0 0);transition:clip-path .42s cubic-bezier(.4,0,.2,1),opacity .3s ease,visibility 0s}.game-canvas{display:block;width:100%;height:100%;cursor:none}.carousel.is-game .carousel-track,.carousel.is-game .carousel-dots,.carousel.is-game .play-hint{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s}.game-hud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;padding:68px clamp(28px,6vw,72px) 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;pointer-events:none;font-size:13px;line-height:1.2}.game-chip{display:flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;background-color:var(--game-hud-bg);box-shadow:inset 0 0 0 1px var(--game-hud-border);color:var(--game-hud-ink);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background-color .3s ease,box-shadow .3s ease,color .3s ease}.game-chip .icon{width:16px;height:16px;color:var(--game-accent)}.game-chip .num{font-size:17px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:.5px}.game-chip .label{color:var(--game-hud-dim)}.game-chip-best{margin-left:auto}.game-chip .num.is-bump{animation:game-bump .26s cubic-bezier(.34,1.56,.64,1)}@keyframes game-bump{0%{transform:scale(1)}45%{transform:scale(1.28)}to{transform:scale(1)}}.game-tip{position:absolute;left:50%;bottom:18px;z-index:2;padding:6px 14px;border-radius:999px;background-color:var(--game-hud-bg);box-shadow:inset 0 0 0 1px var(--game-hud-border);color:var(--game-hud-dim);font-size:12.5px;line-height:1;white-space:nowrap;transform:translate(-50%);pointer-events:none;opacity:1;transition:opacity .5s ease,background-color .3s ease,color .3s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.game-tip.is-faded{opacity:0}.game-count{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;color:#fff;font-size:clamp(48px,8vw,86px);line-height:1;letter-spacing:4px;text-shadow:0 4px 22px rgba(15,23,42,.45);pointer-events:none;opacity:0;transition:opacity .2s ease}.game-count.is-on{opacity:1}.game-count span{display:block;animation:game-pop .6s cubic-bezier(.22,1,.36,1)}@keyframes game-pop{0%{transform:scale(.5);opacity:0}35%{transform:scale(1.06);opacity:1}to{transform:scale(1);opacity:1}}.game-over{position:absolute;top:56px;left:0;right:0;bottom:0;z-index:4;display:flex;padding:8px 16px;overflow-y:auto;background-color:var(--game-shade);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .26s ease,visibility 0s linear .26s}.game-over.is-on{opacity:1;visibility:visible;transition:opacity .26s ease,visibility 0s}.game-over-card{margin:auto;min-width:250px;max-width:320px;padding:16px 24px;border-radius:14px;text-align:center;background-color:var(--game-panel-bg);box-shadow:inset 0 0 0 1px var(--game-panel-border),0 20px 50px #0f172a42;color:var(--game-hud-ink);transform:translateY(8px) scale(.97);transition:transform .26s cubic-bezier(.4,0,.2,1),background-color .3s ease,color .3s ease}.game-over.is-on .game-over-card{transform:translateY(0) scale(1)}.game-over-title{margin:0 0 4px;font-size:18px;line-height:1.3;color:var(--game-danger)}.game-over-sub{margin:0 0 10px;font-size:12.5px;line-height:1.5;color:var(--game-hud-dim)}.game-over-score{margin:0 0 12px;font-size:30px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:1px;color:var(--game-hud-ink)}.game-over-score small{margin-left:4px;font-size:14px;color:var(--game-hud-dim)}.game-over-best{display:block;margin-top:6px;font-size:12px;letter-spacing:0;color:var(--game-hud-dim)}.game-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border:none;border-radius:999px;background-color:var(--game-accent);color:#fff;font-family:inherit;font-size:13.5px;line-height:1.2;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:filter .2s ease,transform .12s ease}.game-btn:hover{filter:brightness(1.08)}.game-btn:active{transform:scale(.97)}.game-btn:focus-visible{outline:2px solid var(--game-hud-ink);outline-offset:2px}.game-btn .icon{width:16px;height:16px}.game-over-keys{margin:9px 0 0;font-size:12px;color:var(--game-hud-dim)}@media(max-height:740px){.game-over-card{padding:14px 22px}.game-over-title{font-size:17px}.game-over-score{font-size:26px;margin-bottom:10px}.game-over-keys{display:none}}.play-hint{position:absolute;right:clamp(28px,6vw,72px);bottom:18px;z-index:3;display:flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;background-color:#ffffff2e;box-shadow:inset 0 0 0 1px #ffffff4d;color:#ffffffd9;font-size:12.5px;line-height:1;opacity:.7;cursor:default;user-select:none;-webkit-user-select:none;transition:opacity .3s ease,background-color .3s ease}.play-hint:hover{opacity:1;background-color:#ffffff47}.play-hint kbd{padding:3px 7px;border-radius:5px;background-color:#ffffffe6;color:#1f2937;font-family:inherit;font-size:11px;line-height:1;letter-spacing:.5px}.tab-hold{position:fixed;top:0;left:0;right:0;z-index:1300;height:3px;pointer-events:none;opacity:0;transition:opacity .16s ease}.tab-hold.is-armed{opacity:1}.tab-hold i{display:block;height:100%;width:0;background-image:linear-gradient(90deg,#60a5fa,var(--game-accent, #e2711d));box-shadow:0 0 10px #60a5fab3}.tab-hold.is-armed i{animation:tab-grow .4s linear forwards}.tab-hold.is-exit i{background-image:linear-gradient(90deg,#fb923c,#dc2626);box-shadow:0 0 10px #dc2626bf}@keyframes tab-grow{0%{width:0}to{width:100%}}@media(max-width:640px){.game-hud{padding-top:62px;font-size:12px}.game-chip{padding:6px 11px}.game-chip .num{font-size:15px}.play-hint{display:none}}@media(prefers-reduced-motion:reduce){.game-layer,.carousel.is-game .game-layer{transition-duration:.01s}.game-count span,.game-chip .num.is-bump{animation:none}.tab-hold.is-armed i{animation-duration:.01s}}.speed-card{position:absolute;right:clamp(28px,6vw,72px);bottom:16px;z-index:3;width:268px;padding:13px 15px 12px;border-radius:15px;background-color:var(--speed-bg);box-shadow:inset 0 0 0 1px var(--speed-ring),var(--speed-shadow);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--speed-ink);opacity:.88;transition:opacity .3s ease,box-shadow .3s ease,background-color .3s ease,color .3s ease;user-select:none;-webkit-user-select:none}.speed-card:hover,.speed-card:focus-within{opacity:1}.speed-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.speed-title{display:flex;align-items:center;gap:7px;font-size:13.5px;line-height:1.3;perspective:280px;perspective-origin:center 120%}.speed-title .label-text{color:var(--speed-ink);font-weight:700}.speed-key{display:inline-flex;align-items:center;line-height:1}.speed-key kbd{padding:2px 5px;border-radius:4px;background-color:var(--speed-kbd-bg);box-shadow:inset 0 0 0 1px var(--speed-kbd-ring);color:var(--speed-kbd-ink);font-family:inherit;font-size:10px;line-height:1;letter-spacing:.5px}.speed-state{display:inline-block;color:var(--speed-dim);vertical-align:middle;transform-origin:center bottom;transition:color .3s ease,text-shadow .3s ease}.speed-state.is-hot{color:var(--speed-hot);font-weight:600;text-shadow:0 0 12px var(--speed-hot-glow)}@keyframes speed-flip{0%{opacity:0;transform:translateY(16px) rotateX(-80deg);filter:blur(4px)}to{opacity:1;transform:translateY(0) rotateX(0);filter:blur(0)}}.speed-state.is-flip{animation:speed-flip .42s cubic-bezier(.33,1,.68,1) forwards}.speed-help{display:flex;align-items:center;justify-content:center;color:var(--speed-dim);line-height:1;transition:color .2s ease}.speed-help .icon{width:16px;height:16px}.speed-scale{display:flex;justify-content:space-between;margin-bottom:6px;color:var(--speed-dim);font-size:11px;font-weight:800;line-height:1;letter-spacing:.04em}.speed-track{position:relative;height:26px;border-radius:9px;overflow:hidden;border:1px solid var(--speed-track-ring);background-color:var(--speed-track-bg);isolation:isolate}.speed-track .track-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-image:linear-gradient(135deg,var(--speed-track-a),var(--speed-track-b))}.speed-track canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;width:100%;height:100%;pointer-events:none;opacity:0;mix-blend-mode:var(--speed-blend, normal);transition:opacity .35s ease}.speed-track.is-lit canvas{opacity:1;z-index:4}.speed-dots{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.speed-dots i{position:absolute;top:50%;width:4px;height:4px;border-radius:50%;background-color:var(--speed-dot);transform:translateY(-50%);transition:opacity .6s ease,background-color .3s ease,box-shadow .3s ease}.speed-dots i:nth-child(1){left:10%}.speed-dots i:nth-child(2){left:30%}.speed-dots i:nth-child(3){left:50%}.speed-dots i:nth-child(4){left:70%}.speed-dots i:nth-child(5){left:90%}.speed-track.is-lit .speed-dots i{opacity:.25}.speed-track.is-lit .speed-dots i.is-on{opacity:1;background-color:var(--speed-dot-on);box-shadow:0 0 7px var(--speed-dot-on-glow)}.speed-track.is-lit .speed-dots i.is-on:nth-child(5){background-color:var(--speed-dot-hot);box-shadow:0 0 7px var(--speed-dot-hot-glow)}.speed-track input[type=range]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;width:100%;height:100%;margin:0;padding:0;border:none;outline:none;background:transparent;touch-action:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.speed-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;border-radius:8px;border:.5px solid var(--speed-thumb-ring);background-image:var(--speed-thumb);box-shadow:0 .5px 1px #0000002e,0 2px 6px #00000040,0 6px 16px #0000001f,inset 0 .5px #ffffffd9,inset 0 -.5px #0000000f;cursor:grab;transition:box-shadow .4s ease,transform .15s ease}.speed-track input[type=range]::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(.95)}.speed-track input[type=range].is-hot::-webkit-slider-thumb{box-shadow:0 .5px 1px #0000002e,0 2px 6px #00000040,0 6px 16px #0000001f,0 0 24px var(--speed-hot-glow),0 0 44px var(--speed-hot-glow-soft),inset 0 .5px #ffffffd9,inset 0 -.5px #0000000f}.speed-track input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:7px;border:.5px solid var(--speed-thumb-ring);background-image:var(--speed-thumb);box-shadow:0 .5px 1px #0000002e,0 2px 6px #00000040,0 6px 16px #0000001f;cursor:grab;transition:box-shadow .4s ease}.speed-track input[type=range].is-hot::-moz-range-thumb{box-shadow:0 .5px 1px #0000002e,0 2px 6px #00000040,0 6px 16px #0000001f,0 0 24px var(--speed-hot-glow),0 0 44px var(--speed-hot-glow-soft)}.speed-track input[type=range]::-moz-range-track{height:26px;border:none;background:transparent}.speed-track input[type=range]:focus-visible{outline:2px solid var(--speed-hot);outline-offset:-2px;border-radius:9px}@media(max-width:860px){.speed-card{width:234px;padding:11px 13px 10px}.speed-title{font-size:12.5px}.speed-track{height:24px}.speed-track input[type=range]::-webkit-slider-thumb{width:22px;height:22px}}@media(max-width:640px){.speed-card{right:16px;bottom:12px;width:auto;left:16px}}.carousel{position:relative;width:100%;overflow:hidden;user-select:none;-webkit-user-select:none;cursor:grab;touch-action:pan-y}.carousel.is-dragging{cursor:grabbing}.carousel-track{display:flex;height:clamp(260px,38vh,400px);transition:transform .55s cubic-bezier(.4,0,.2,1);will-change:transform}.carousel-slide{position:relative;flex:0 0 100%;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:56px clamp(28px,6vw,72px) 0;color:#fff}.carousel-slide:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 90% at 85% 12%,rgba(255,255,255,.3),transparent 62%);pointer-events:none}.slide-1{background-image:linear-gradient(135deg,#2563eb,#06b6d4)}.slide-2{background-image:linear-gradient(135deg,#0d9488,#10b981)}.slide-3{background-image:linear-gradient(135deg,#334155,#0f172a)}.carousel-slide.is-image{background-color:#1b2230}.carousel-slide.is-image:after{background:linear-gradient(180deg,transparent 52%,rgba(0,0,0,calc(var(--slide-dim, .45) * .7)) 100%),linear-gradient(100deg,rgba(0,0,0,var(--slide-dim, .45)),rgba(0,0,0,calc(var(--slide-dim, .45) * .55)),rgba(0,0,0,calc(var(--slide-dim, .45) * .15)))}.slide-tag,.slide-title,.slide-desc{position:relative;z-index:1}.slide-tag{align-self:flex-start;padding:5px 13px;border-radius:999px;background-color:#fff3;box-shadow:inset 0 0 0 1px #ffffff61;font-size:13px;line-height:1.2;letter-spacing:1px}.slide-title{font-size:clamp(24px,3.4vw,40px);line-height:1.25;letter-spacing:.5px}.slide-desc{max-width:30em;font-size:clamp(14px,1.4vw,17px);line-height:1.75;opacity:.92}a.carousel-slide{text-decoration:none;cursor:pointer}a.carousel-slide:hover .slide-title{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}.carousel-dots{position:absolute;bottom:18px;left:50%;z-index:3;display:flex;align-items:center;gap:8px;transform:translate(-50%)}.carousel-dot{width:8px;height:8px;padding:0;border:none;border-radius:999px;background-color:#ffffff73;cursor:pointer;transition:width .3s ease,background-color .3s ease}.carousel-dot:hover{background-color:#ffffffbf}.carousel-dot[aria-current=true]{width:22px;background-color:#fff}.carousel-dot:focus-visible{outline:2px solid #ffffff;outline-offset:2px}.captcha-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1150;display:flex;align-items:center;justify-content:center;padding:24px;background-color:var(--captcha-mask);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .22s ease,visibility 0s linear .22s}.captcha-backdrop.is-open{opacity:1;visibility:visible;transition:opacity .22s ease,visibility 0s}.captcha-dialog{width:360px;max-width:100%;padding:18px 22px 22px;border-radius:14px;background-color:var(--captcha-bg);box-shadow:inset 0 0 0 1px var(--captcha-border),0 24px 64px #00000052;transform:translateY(10px) scale(.98);transition:transform .22s cubic-bezier(.4,0,.2,1),background-color .3s ease,box-shadow .3s ease}.captcha-backdrop.is-open .captcha-dialog{transform:translateY(0) scale(1)}.captcha-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.captcha-title{font-size:17px;line-height:1.4;color:var(--ink-strong);transition:color .3s ease}.captcha-sub{margin-top:4px;font-size:13px;line-height:1.5;color:var(--ink-soft);transition:color .3s ease}.captcha-tools{flex:0 0 auto;display:flex;align-items:center;gap:2px}.captcha-close,.captcha-refresh{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:7px;background-color:transparent;color:var(--ink-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease,color .3s ease}.captcha-close:hover,.captcha-refresh:hover{background-color:var(--nav-hover-bg);color:var(--ink-strong)}.captcha-close:focus-visible,.captcha-refresh:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.captcha-close .icon,.captcha-refresh .icon{width:16px;height:16px}.captcha-puzzle{position:relative;width:100%;margin-top:14px;border-radius:10px;overflow:hidden;background-color:var(--captcha-track);box-shadow:inset 0 0 0 1px var(--captcha-track-border);transition:background-color .3s ease,box-shadow .3s ease}.captcha-puzzle svg{display:block;width:100%;height:auto}.captcha-slider{position:relative;height:46px;margin-top:16px;border-radius:10px;background-color:var(--captcha-track);box-shadow:inset 0 0 0 1px var(--captcha-track-border);overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none;transition:background-color .3s ease,box-shadow .3s ease}.captcha-fill{position:absolute;top:0;bottom:0;left:0;width:0;background-image:linear-gradient(90deg,var(--captcha-fill-a),var(--captcha-fill-b));transition:width .18s ease,background-image .3s ease}.captcha-slider.is-dragging .captcha-fill,.captcha-slider.is-dragging .captcha-knob{transition:none}.captcha-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:var(--captcha-hint);pointer-events:none;transition:color .3s ease}.captcha-knob{position:absolute;top:2px;left:2px;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:8px;background-color:var(--captcha-knob);color:var(--captcha-knob-ink);box-shadow:0 2px 6px #00000038;cursor:grab;-webkit-tap-highlight-color:transparent;transition:left .18s ease,background-color .3s ease,color .3s ease}.captcha-slider.is-dragging .captcha-knob{cursor:grabbing}.captcha-knob:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.captcha-knob .icon{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:20px;height:20px;transition:opacity .2s ease,transform .2s ease}.captcha-knob .icon-check{opacity:0;transform:scale(.6)}.captcha-slider.is-verified{box-shadow:inset 0 0 0 1px var(--captcha-ok)}.captcha-slider.is-verified .captcha-fill{background-image:linear-gradient(90deg,var(--captcha-ok-fill-a),var(--captcha-ok-fill-b))}.captcha-slider.is-verified .captcha-hint{color:var(--captcha-ok)}.captcha-slider.is-verified .captcha-knob{color:var(--captcha-ok);cursor:default}.captcha-slider.is-verified .captcha-knob .icon-arrow{opacity:0;transform:scale(.6)}.captcha-slider.is-verified .captcha-knob .icon-check{opacity:1;transform:scale(1)}.captcha-slider.is-failed{box-shadow:inset 0 0 0 1px var(--captcha-bad);animation:captcha-shake .34s cubic-bezier(.36,.07,.19,.97)}.captcha-slider.is-failed .captcha-hint{color:var(--captcha-bad)}@keyframes captcha-shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@media(prefers-reduced-motion:reduce){.captcha-slider.is-failed{animation:none}}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;padding:26px clamp(28px,6vw,72px) 0}.shot{position:relative;display:block;width:100%;aspect-ratio:1 / 1;padding:0;border:none;border-radius:14px;overflow:hidden;cursor:zoom-in;font:inherit;color:#fff;background-image:linear-gradient(135deg,var(--a),var(--b));box-shadow:inset 0 0 0 1px #fff3,0 8px 20px #00000024;-webkit-tap-highlight-color:transparent;transition:transform .28s cubic-bezier(.4,0,.2,1),box-shadow .28s ease}.shot:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px #ffffff4d,0 16px 32px #00000038}.shot:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.shot-art{position:absolute;top:43%;left:50%;width:58px;height:58px;transform:translate(-50%,-50%);color:#fffffff0;transition:transform .3s ease}.shot-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.shot:hover .shot-art{transform:translate(-50%,-50%) scale(1.09)}.shot-meta{position:absolute;inset:auto 0 0 0;padding:28px 14px 12px;background-image:linear-gradient(to top,#0000007a,#0000);text-align:left}.shot-title{display:block;font-size:14px;line-height:1.3}.shot-date{display:block;margin-top:3px;font-size:11.5px;opacity:.82}.lightbox-card{width:min(720px,100%);padding:0;overflow:hidden}.lightbox-art{position:relative;aspect-ratio:16 / 10;background-image:linear-gradient(135deg,#888,#ccc)}.lightbox-art .icon{position:absolute;top:50%;left:50%;width:90px;height:90px;transform:translate(-50%,-50%);color:#fffffff2}.lightbox-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.lightbox-card .modal-close{color:#fff;background-color:#00000057}.lightbox-card .modal-close:hover{color:#fff;background-color:#00000085}.lightbox-body{padding:16px 20px 20px}.lightbox-title{font-size:18px;line-height:1.35;color:var(--ink-strong);transition:color .3s ease}.lightbox-sub{margin-top:6px;font-size:13px;color:var(--post-meta);transition:color .3s ease}@media(max-width:640px){.gallery{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}}.page-diary .blog{padding-top:26px}.post-crumb{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--post-meta);transition:color .3s ease}.crumb-link{display:inline-flex;align-items:center;gap:4px;padding:5px 9px;margin-left:-9px;border-radius:8px;color:var(--accent);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease}.crumb-link:hover{background-color:var(--accent-soft)}.crumb-link:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.crumb-back{width:15px;height:15px;transform:scaleX(-1)}.crumb-sep{opacity:.5}.crumb-now{color:var(--ink-soft);transition:color .3s ease}.page-post .blog{padding-top:22px}.post-col{display:flex;flex-direction:column;gap:16px;min-width:0}.post-article{padding:28px 32px 24px;border-radius:14px;background-color:var(--card-bg);box-shadow:inset 0 0 0 1px var(--card-border);transition:background-color .3s ease,box-shadow .3s ease}.post-article.is-plain{padding-bottom:30px}.article-head{margin-bottom:20px}.article-title{margin-top:10px;font-size:clamp(22px,2.8vw,30px);line-height:1.45;letter-spacing:.3px;color:var(--ink-strong);transition:color .3s ease}.article-body{font-size:15px;line-height:1.95;color:var(--ink);transition:color .3s ease}.article-body>*+*{margin-top:16px}.article-body h2{margin-top:32px;font-size:18px;line-height:1.55;color:var(--ink-strong);transition:color .3s ease}.article-body h3{margin-top:26px;font-size:16px;line-height:1.55;color:var(--ink-strong);transition:color .3s ease}.article-body blockquote{padding:12px 16px;border-left:3px solid var(--accent);border-radius:0 10px 10px 0;background-color:var(--accent-soft);color:var(--ink-strong);transition:background-color .3s ease,border-color .3s ease,color .3s ease}.article-body ul,.article-body ol{padding-left:22px}.article-body li+li{margin-top:6px}.article-body li::marker{color:var(--accent)}.article-body code{padding:1px 5px;border-radius:5px;font-size:.92em;background-color:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--chip-border)}.article-body a{color:var(--accent);text-decoration:none;box-shadow:inset 0 -1px 0 currentColor}.article-body a:hover{background-color:var(--accent-soft)}.article-body a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.article-body strong{color:var(--ink-strong)}.article-blank{margin-top:12px;font-size:14px;line-height:1.9;color:var(--post-meta);transition:color .3s ease}.article-back{color:var(--accent);text-decoration:none}.article-back:hover{text-decoration:underline}.article-foot{margin-top:26px;padding-top:16px;border-top:1px solid var(--line);transition:border-color .3s ease}.article-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.nav-cell{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:14px;background-color:var(--card-bg);box-shadow:inset 0 0 0 1px var(--card-border);text-decoration:none;transition:background-color .25s ease,box-shadow .25s ease,transform .25s ease}.nav-cell:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--card-border-hover)}.nav-cell:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.nav-cell.is-empty{background-color:transparent;box-shadow:none}.nav-cell.is-next{text-align:right}.nav-label{font-size:12px;color:var(--post-meta);transition:color .3s ease}.nav-title{font-size:14px;line-height:1.5;color:var(--ink-strong);transition:color .3s ease}.nav-cell:hover .nav-title{color:var(--accent)}.filter-bar{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:13.5px;color:var(--post-meta);transition:color .3s ease}.filter-clear{padding:3px 10px;border-radius:999px;color:var(--accent);background-color:var(--accent-soft);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease}.filter-clear:hover{background-color:var(--card-border)}.filter-clear:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.blog-end-link{margin-left:4px;color:var(--accent);text-decoration:none}.blog-end-link:hover{text-decoration:underline}a.chip{color:var(--ink-soft);text-decoration:none;-webkit-tap-highlight-color:transparent}a.chip:hover{color:var(--accent);background-color:var(--accent-soft);box-shadow:inset 0 0 0 1px transparent}a.chip:focus-visible{outline:2px solid var(--ink);outline-offset:2px}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.article-body h2,.article-body h3{scroll-margin-top:72px;position:relative}.heading-anchor{margin-left:8px;font-size:.8em;color:var(--accent);opacity:0;text-decoration:none;box-shadow:none!important;transition:opacity .2s ease}.article-body h2:hover .heading-anchor,.article-body h3:hover .heading-anchor,.heading-anchor:focus-visible{opacity:.75}.code-block{margin-top:16px;border-radius:10px;overflow:hidden;background-color:var(--code-bg, var(--chip-bg));box-shadow:inset 0 0 0 1px var(--card-border);transition:background-color .3s ease,box-shadow .3s ease}[data-theme=dark] .code-block{background-color:var(--code-bg-dark, var(--chip-bg))}.code-head{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:1px solid var(--line);transition:border-color .3s ease}.code-lang{font-size:11.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--post-meta);transition:color .3s ease}.code-copy{padding:2px 10px;border:none;border-radius:6px;font-size:12px;color:var(--ink-soft);background-color:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease,color .2s ease}.code-copy:hover{color:var(--accent);background-color:var(--accent-soft)}.code-copy:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.code-pre{margin:0;padding:14px 16px;overflow-x:auto;font-size:13px;line-height:1.75}.code-pre code{padding:0;background:none;box-shadow:none;font-size:inherit}.code-pre .line{display:block}.code-pre span{color:var(--shiki-light)}[data-theme=dark] .code-pre span{color:var(--shiki-dark)}.article-body table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.7}.article-body th,.article-body td{padding:8px 12px;border-bottom:1px solid var(--line);text-align:left;transition:border-color .3s ease}.article-body th{color:var(--ink-strong);border-bottom-width:2px}.article-body tbody tr:hover td{background-color:var(--accent-soft)}.table-wrap{overflow-x:auto}.article-body .post-figure{margin:0;text-align:center}.article-body .post-figure img{max-width:100%;border-radius:10px;box-shadow:inset 0 0 0 1px var(--card-border),0 6px 18px #0000001f}.article-body .post-figure figcaption{margin-top:8px;font-size:12.5px;color:var(--post-meta);transition:color .3s ease}.article-body .callout{padding:12px 16px;border-radius:0 10px 10px 0;border-left:3px solid var(--accent);background-color:var(--accent-soft);transition:background-color .3s ease,border-color .3s ease}.article-body .callout[data-callout=warning],.article-body .callout[data-callout=caution],.article-body .callout[data-callout=danger]{border-left-color:#d97706;background-color:#d9770617}.article-body .callout-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--ink-strong);transition:color .3s ease}.article-body .callout-title-icon{display:inline-flex}.article-body .callout-title-icon svg{width:15px;height:15px}.article-body .callout p{margin:0}.article-body .callout-content>:first-child{margin-top:6px}.article-body details.callout>summary{cursor:pointer;list-style:none}.article-body details.callout>summary::-webkit-details-marker{display:none}.article-body del{opacity:.65}.article-body li.task-list-item{list-style:none;margin-left:-18px}.article-body input[type=checkbox]{margin-right:6px;accent-color:var(--accent)}.article-body .footnotes{margin-top:26px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--post-meta);transition:border-color .3s ease,color .3s ease}.read-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:80;background:linear-gradient(90deg,var(--accent),var(--accent));transform:scaleX(0);transform-origin:0 50%;opacity:0;pointer-events:none;transition:opacity .3s ease}.toc-list{display:flex;flex-direction:column;gap:2px;max-height:46vh;overflow-y:auto}.toc-item a{display:block;padding:4px 10px;border-left:2px solid transparent;border-radius:0 8px 8px 0;font-size:13px;line-height:1.6;color:var(--post-meta);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.toc-item.is-d3 a{padding-left:22px;font-size:12.5px}.toc-item a:hover{color:var(--accent);background-color:var(--accent-soft)}.toc-item a:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.toc-item.is-active a{color:var(--accent);border-left-color:var(--accent);background-color:var(--accent-soft)}.post-comments{padding:22px 24px 18px;border-radius:14px;background-color:var(--card-bg);box-shadow:inset 0 0 0 1px var(--card-border);transition:background-color .3s ease,box-shadow .3s ease}.comments-title{margin-bottom:14px;font-size:16px;color:var(--ink-strong);transition:color .3s ease}@media(max-width:640px){.post-article{padding:22px 18px 20px}.article-title{font-size:22px}.article-nav{grid-template-columns:minmax(0,1fr)}.nav-cell.is-empty{display:none}.nav-cell.is-next{text-align:left}}.nf-card{max-width:620px;margin:0 auto;text-align:center}.nf-code{margin:0;font-size:clamp(56px,8vw,92px);line-height:1;letter-spacing:8px;text-indent:8px;color:var(--accent);transition:color .3s ease}.nf-lead{margin:14px 0 0;font-size:clamp(17px,2vw,20px);line-height:1.6;color:var(--ink-strong);transition:color .3s ease}.nf-note{max-width:40em;margin:10px auto 0;font-size:14px;line-height:1.95;color:var(--post-meta);transition:color .3s ease}.nf-actions{margin-top:26px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px}.nf-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:999px;font-size:14px;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease,color .3s ease}.nf-btn .icon{width:16px;height:16px;transition:transform .2s ease}.nf-btn:hover .icon{transform:translate(3px)}.nf-btn.is-primary{color:var(--accent);background-color:var(--accent-soft)}.nf-btn.is-ghost{color:var(--ink-soft);background-color:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--chip-border)}.nf-btn:hover{background-color:var(--nav-hover-bg)}.nf-btn.is-ghost:hover{color:var(--ink-strong)}.nf-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}@media(max-width:640px){.nf-actions{flex-direction:column;align-items:stretch}.nf-btn{justify-content:center}}.ad-shell,.ad-login{--ad-danger: #dc2626;--ad-danger-soft: rgba(220, 38, 38, .09);--ad-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--ad-shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px rgba(15, 23, 42, .07);--ad-side-w: 248px}html[data-theme=dark] .ad-shell,html[data-theme=dark] .ad-login{--ad-danger: #f87171;--ad-danger-soft: rgba(248, 113, 113, .12);--ad-shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--ad-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 10px 28px rgba(0, 0, 0, .3)}.ad-shell{display:flex;align-items:stretch;min-height:100vh;color:var(--ink)}.ad-side{position:sticky;top:0;align-self:flex-start;flex:0 0 var(--ad-side-w);width:var(--ad-side-w);height:100vh;display:flex;flex-direction:column;gap:6px;padding:16px 12px;background-color:var(--foot-bg);border-right:1px solid var(--line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.ad-side-brand{display:flex;align-items:center;gap:10px;padding:6px 8px 14px;color:var(--ink);text-decoration:none}.ad-side-brand img{border-radius:9px;flex:0 0 auto}.ad-side-brand-text{display:flex;flex-direction:column;min-width:0}.ad-side-brand-text strong{font-size:15px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ad-side-brand-text small{font-size:11.5px;color:var(--post-meta)}.ad-nav{display:flex;flex-direction:column;gap:2px}.ad-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:none;border-radius:10px;background:none;color:var(--ink-soft);font:inherit;font-size:13.5px;text-align:left;text-decoration:none;cursor:pointer;transition:background-color .2s ease,color .2s ease}.ad-nav-item .icon{width:18px;height:18px}.ad-nav-item:hover{background-color:var(--nav-hover-bg);color:var(--ink-strong)}.ad-nav-item.active{background-color:var(--accent-soft);color:var(--accent)}.ad-side-foot{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding-top:10px;border-top:1px solid var(--line)}.ad-nav-item.is-quiet{font-size:13px;color:var(--post-meta)}.ad-nav-item.is-quiet .icon:last-child{width:14px;height:14px;margin-left:auto}.ad-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.ad-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;height:56px;padding:0 clamp(16px,3vw,32px);background-color:var(--topbar-bg);border-bottom:1px solid var(--line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.ad-page-title{font-size:16px;font-weight:400;color:var(--ink-strong);margin-right:auto}.ad-content{flex:1 1 auto;padding:clamp(16px,2.4vw,28px) clamp(16px,3vw,32px) 56px}.ad-page{display:flex;flex-direction:column;gap:16px;max-width:1160px}.ad-page-head,.ad-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ad-actions-bottom{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.ad-grow{flex:1 1 auto}.ad-card{background-color:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;box-shadow:var(--ad-shadow-sm);overflow:hidden}.ad-card.is-flush{padding:0}.ad-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line)}.ad-card-title{font-size:14px;font-weight:400;color:var(--ink-strong)}.ad-sub{padding:14px 18px 18px;border-top:1px solid var(--line)}.ad-sub-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.ad-sub-title{font-size:13px;font-weight:400;color:var(--ink-soft);margin-right:auto}.ad-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 14px;min-height:36px;border:1px solid var(--card-border);border-radius:10px;background-color:var(--card-bg);color:var(--ink);font:inherit;font-size:13px;line-height:1;text-decoration:none;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .15s ease}.ad-btn .icon{width:16px;height:16px}.ad-btn:hover:not(:disabled){border-color:var(--card-border-hover);background-color:var(--row-hover)}.ad-btn:active:not(:disabled){transform:translateY(1px)}.ad-btn:disabled{opacity:.5;cursor:not-allowed}.ad-btn.is-primary{border-color:transparent;background-color:var(--accent);color:#fff}.ad-btn.is-primary:hover:not(:disabled){background-color:var(--accent);filter:brightness(1.08)}.ad-btn.is-danger{border-color:transparent;background-color:var(--ad-danger);color:#fff}.ad-btn.is-danger.is-quiet{border-color:var(--card-border);background-color:var(--ad-danger-soft);color:var(--ad-danger)}.ad-btn.is-quiet{min-height:32px;padding:6px 10px;border-color:transparent;background-color:transparent;color:var(--post-meta)}.ad-btn.is-quiet:hover:not(:disabled){background-color:var(--row-hover);color:var(--ink)}.ad-btn.is-block{width:100%}.ad-page-head .ad-btn.is-quiet .icon{transform:rotate(180deg)}.ad-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid transparent;border-radius:9px;background:none;color:var(--post-meta);cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.ad-icon-btn .icon{width:16px;height:16px}.ad-icon-btn:hover:not(:disabled){background-color:var(--row-hover);color:var(--ink)}.ad-icon-btn:disabled{opacity:.35;cursor:not-allowed}.ad-icon-btn.is-danger:hover:not(:disabled){background-color:var(--ad-danger-soft);color:var(--ad-danger)}.ad-input{width:100%;min-height:36px;padding:8px 11px;border:1px solid var(--search-border);border-radius:10px;background-color:var(--search-bg);color:var(--ink);font:inherit;font-size:13.5px;transition:background-color .2s ease,border-color .2s ease}.ad-input::placeholder{color:var(--search-placeholder)}.ad-input:focus{outline:none;border-color:var(--search-border-focus);background-color:var(--search-bg-focus)}.ad-input:disabled{opacity:.6}.ad-textarea{resize:vertical;min-height:88px;line-height:1.7}.ad-tabs{display:inline-flex;gap:2px;padding:2px;border-radius:9px;background-color:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--chip-border)}.ad-tab{padding:4px 12px;border:none;border-radius:7px;background:none;color:var(--ink-soft);font:inherit;font-size:12.5px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease,color .2s ease}.ad-tab:hover{color:var(--ink-strong)}.ad-tab.is-on{background-color:var(--card-bg);color:var(--ink-strong);box-shadow:inset 0 0 0 1px var(--card-border)}.ad-tab:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.ad-field>.ad-tabs{align-self:flex-start}.ad-tab:disabled{opacity:.4;cursor:not-allowed}.ad-hint.is-warn{color:var(--ad-danger);font-weight:600}.ad-md-preview{min-height:180px;padding:16px 18px;border-radius:10px;background-color:var(--card-bg);box-shadow:inset 0 0 0 1px var(--card-border);transition:background-color .3s ease,box-shadow .3s ease}.ad-md-empty{font-size:13.5px;color:var(--post-meta)}select.ad-input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 17px) 16px,calc(100% - 12px) 16px;background-size:5px 5px;background-repeat:no-repeat}html[data-theme=dark] .ad-input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1) opacity(.7)}.ad-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;padding:18px}.ad-card>.ad-form:first-child{padding-top:18px}.ad-field{display:flex;flex-direction:column;gap:6px;min-width:0}.ad-field.is-span,.ad-field.is-span2{grid-column:1 / -1}.ad-label{font-size:12.5px;color:var(--ink-soft)}.ad-req{margin-left:3px;color:var(--ad-danger);font-style:normal}.ad-hint{font-size:11.5px;color:var(--post-meta);line-height:1.6}.ad-hint-inline{font-size:12px;color:var(--post-meta)}.ad-hint-inline.is-warn{color:var(--ad-danger);font-weight:600}.ad-hint code,.ad-footnote code,.ad-card code,.ad-modal code,.ad-alert code,.ad-page-head code{padding:1px 5px;border-radius:5px;background-color:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--chip-border);font-size:11.5px;color:var(--ink-soft)}.ad-check{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);cursor:pointer}.ad-check.is-block{align-items:flex-start;padding:4px 0}.ad-check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex:0 0 auto;margin-top:1px}.ad-check small.ad-hint{display:block;margin-top:3px}.ad-search{position:relative;display:flex;align-items:center;flex:1 1 260px;max-width:380px}.ad-search .icon{position:absolute;left:11px;width:16px;height:16px;color:var(--search-placeholder);pointer-events:none}.ad-search .ad-input{padding-left:34px}.ad-select{flex:0 0 auto;min-width:140px}.ad-color{display:flex;align-items:center;gap:8px}.ad-color input[type=color]{flex:0 0 auto;width:38px;height:36px;padding:2px;border:1px solid var(--search-border);border-radius:10px;background-color:var(--search-bg);cursor:pointer}.ad-upload{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.ad-upload-input{display:none}.ad-upload-thumb{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--search-border)}.ad-upload-empty{font-size:12.5px;color:var(--ad-text-soft, #8a8f99)}.ad-slidebg{display:flex;flex-direction:column;gap:10px}.ad-color-row{display:flex;align-items:center;gap:8px}.ad-color-row .ad-hint-inline{flex:0 0 48px}.ad-color-row .ad-input{flex:0 1 118px;min-width:92px}.ad-numbox{display:flex;align-items:center;gap:6px}.ad-numbox .ad-input{width:76px}.ad-slideprev{display:block;max-width:460px;border-radius:12px;overflow:hidden;box-shadow:var(--ad-shadow-sm)}.ad-slideprev .carousel-slide{flex:0 0 auto;width:100%;min-height:168px;gap:10px;padding:20px 22px;cursor:default}.ad-slideprev .slide-title{font-size:20px}.ad-slideprev .slide-desc{font-size:13px}.ad-slidechip{flex:0 0 auto;width:26px;height:18px;border-radius:6px;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px var(--card-border)}.ad-input-wrap{position:relative;display:block}.ad-input-wrap .ad-input{padding-right:40px}.ad-input-btn{position:absolute;top:50%;right:5px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:8px;background:none;color:var(--post-meta);cursor:pointer}.ad-input-btn:hover{background-color:var(--row-hover);color:var(--ink)}.ad-taginput{display:flex;flex-direction:column;gap:8px}.ad-taginput-list{display:flex;flex-wrap:wrap;gap:6px;list-style:none}.chip.is-removable{display:inline-flex;align-items:center;gap:3px;padding-right:4px}.chip.is-removable button{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:50%;background:none;color:inherit;cursor:pointer;opacity:.65}.chip.is-removable button:hover{opacity:1;background-color:var(--row-hover)}.chip.is-removable .icon{width:11px;height:11px}.ad-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.ad-suggest-label{font-size:11.5px;color:var(--post-meta)}.ad-suggest-item{padding:2px 9px;border:none;border-radius:999px;background-color:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--chip-border);color:var(--ink-soft);font:inherit;font-size:12px;line-height:1.7;cursor:pointer;transition:color .2s ease,background-color .2s ease}.ad-suggest-item:hover{color:var(--accent)}.ad-alert{display:flex;align-items:flex-start;gap:8px;padding:10px 13px;border-radius:10px;font-size:12.5px;line-height:1.65}.ad-alert .icon{width:16px;height:16px;margin-top:1px;flex:0 0 auto}.ad-alert.is-error{background-color:var(--ad-danger-soft);color:var(--ad-danger)}.ad-alert.is-info{background-color:var(--accent-soft);color:var(--accent)}.ad-empty{padding:34px 18px;text-align:center;font-size:13px;color:var(--post-meta)}.ad-footnote{font-size:12px;color:var(--post-meta)}.ad-table{width:100%;border-collapse:collapse;font-size:13px}.ad-table th{padding:10px 18px;text-align:left;font-weight:400;font-size:12px;color:var(--post-meta);border-bottom:1px solid var(--line)}.ad-table td{padding:11px 18px;color:var(--ink-soft);border-bottom:1px solid var(--line);vertical-align:middle}.ad-table tbody tr:last-child td{border-bottom:none}.ad-table.is-rows tbody tr{transition:background-color .2s ease}.ad-table.is-rows tbody tr:hover{background-color:var(--row-hover)}.ad-table .is-wide{width:42%}.ad-table .is-num{text-align:right;white-space:nowrap}.ad-table .is-nowrap{white-space:nowrap}.ad-table .is-op{text-align:right;white-space:nowrap}.ad-table td.is-op{display:table-cell}.ad-table td.is-op .ad-icon-btn{margin-left:2px}.ad-row-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.ad-row-title a{color:var(--ink-strong);text-decoration:none;font-size:13.5px}.ad-row-title a:hover{color:var(--accent)}.ad-row-sub{display:flex;align-items:center;gap:7px;margin-top:4px;font-size:11.5px;color:var(--post-meta)}.ad-row-sub .dot{width:3px;height:3px;border-radius:50%;background-color:currentColor;opacity:.5}.ad-pin{flex:0 0 auto;padding:1px 7px;border-radius:999px;background-color:var(--accent-soft);color:var(--accent);font-size:11px}.ad-chips{display:inline-flex;flex-wrap:wrap;gap:5px}.ad-stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.ad-stat{display:flex;align-items:center;gap:13px;padding:16px 18px;background-color:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;box-shadow:var(--ad-shadow-sm)}.ad-stat-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:40px;height:40px;border-radius:12px;background-color:var(--accent-soft);color:var(--accent)}.ad-stat-icon .icon{width:20px;height:20px}.ad-stat-body{min-width:0}.ad-stat-label{font-size:12px;color:var(--post-meta)}.ad-stat-value{font-size:24px;line-height:1.3;color:var(--ink-strong)}.ad-stat-value small{margin-left:3px;font-size:12px;color:var(--post-meta)}.ad-stat-hint{font-size:11.5px;color:var(--post-meta)}.ad-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ad-bars{list-style:none;padding:14px 18px 18px;display:flex;flex-direction:column;gap:9px}.ad-bar-row{display:grid;grid-template-columns:84px 1fr 30px;align-items:center;gap:10px;font-size:12.5px}.ad-bar-name{color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ad-bar-track{height:7px;border-radius:999px;background-color:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--chip-border);overflow:hidden}.ad-bar-fill{display:block;height:100%;border-radius:999px;background-color:var(--accent);transition:width .4s ease}.ad-bar-num{text-align:right;color:var(--post-meta)}.ad-archive{list-style:none;padding:14px 18px 18px;display:flex;flex-direction:column;gap:4px}.ad-archive li{display:grid;grid-template-columns:1fr auto 48px;align-items:center;gap:10px;padding:7px 10px;border-radius:9px;font-size:13px;color:var(--ink-soft)}.ad-archive li:hover{background-color:var(--row-hover)}.ad-archive-count,.ad-archive-pct{font-size:12px;color:var(--post-meta);text-align:right}.ad-rows{list-style:none;padding:14px 18px 18px;display:flex;flex-direction:column;gap:12px}.ad-rows.is-compact{padding:0;gap:8px}.ad-row{border:1px solid var(--card-border);border-radius:12px;background-color:var(--cover-bg)}.ad-row-head{display:flex;align-items:center;gap:9px;padding:9px 12px;border-bottom:1px solid var(--line)}.ad-row-idx{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;border-radius:7px;background-color:var(--accent-soft);color:var(--accent);font-size:11.5px}.ad-row .ad-form{padding:14px}.ad-row.is-inline{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:8px;padding:9px;border-radius:10px}.ad-row.is-inline:has(.ad-input:nth-child(3)){grid-template-columns:1fr 1fr 1.4fr auto}.ad-rowops{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto}.ad-shot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}.ad-shot-cell{position:relative;display:flex;flex-direction:column;gap:6px}.ad-shot-cell .shot{cursor:default;box-shadow:var(--ad-shadow-sm)}.ad-shot-ops{position:absolute;top:8px;right:8px;display:flex;gap:2px;padding:3px;border-radius:10px;background-color:var(--modal-bg);box-shadow:var(--ad-shadow);opacity:0;transition:opacity .2s ease}.ad-shot-cell:hover .ad-shot-ops,.ad-shot-cell:focus-within .ad-shot-ops{opacity:1}.ad-shot-id{font-size:11.5px;color:var(--post-meta)}.ad-preview{display:block;max-width:220px}.ad-preview .shot{cursor:default}.ad-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:flex-start;justify-content:center;padding:clamp(16px,6vh,72px) 16px 32px;overflow-y:auto;background-color:var(--modal-mask);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:ad-fade .18s ease}.ad-modal{width:100%;border:1px solid var(--modal-border);border-radius:16px;background-color:var(--modal-bg);box-shadow:var(--ad-shadow);animation:ad-pop .2s ease;overflow:hidden}.ad-modal-head{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--modal-divide)}.ad-modal-title{flex:1 1 auto;font-size:14.5px;font-weight:400;color:var(--ink-strong)}.ad-modal-body{padding:0}.ad-modal-body>.ad-confirm-msg,.ad-modal-body>.ad-confirm-warn{padding:0 18px}.ad-confirm-msg{padding-top:18px;font-size:13.5px;color:var(--ink);line-height:1.7}.ad-confirm-warn{padding-bottom:18px;padding-top:8px;font-size:12px;color:var(--post-meta);line-height:1.7}.ad-modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:13px 16px;border-top:1px solid var(--modal-divide)}@keyframes ad-fade{0%{opacity:0}to{opacity:1}}@keyframes ad-pop{0%{opacity:0;transform:translateY(-8px) scale(.99)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.ad-mask,.ad-modal{animation:none}}.ad-boot{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:13px;color:var(--post-meta)}.ad-login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;color:var(--ink)}.ad-login-card{display:flex;flex-direction:column;gap:16px;width:100%;max-width:380px;padding:26px 24px 22px;background-color:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;box-shadow:var(--ad-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.ad-login-brand{display:flex;align-items:center;gap:12px}.ad-login-brand img{border-radius:12px}.ad-login-title{font-size:17px;font-weight:400;color:var(--ink-strong)}.ad-login-sub{font-size:12px;color:var(--post-meta)}.ad-login-hint{font-size:11.5px;color:var(--post-meta);line-height:1.7;border-top:1px solid var(--line);margin-top:2px;padding-top:12px}.ad-login-back{align-self:center;font-size:12.5px;color:var(--post-meta);text-decoration:none}.ad-login-back:hover{color:var(--accent)}@media(max-width:1080px){.ad-stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.ad-shell{flex-direction:column}.ad-side{position:static;flex:0 0 auto;width:100%;height:auto;flex-direction:row;align-items:center;gap:6px;padding:10px 12px;border-right:none;border-bottom:1px solid var(--line);overflow-x:auto}.ad-side-brand{padding:0 8px 0 0}.ad-side-brand-text small{display:none}.ad-nav{flex-direction:row;gap:4px}.ad-nav-item{white-space:nowrap}.ad-side-foot{margin-top:0;margin-left:auto;flex-direction:row;padding-top:0;border-top:none}.ad-nav-item.is-quiet span{display:none}.ad-grid-2,.ad-form{grid-template-columns:minmax(0,1fr)}.ad-row.is-inline,.ad-row.is-inline:has(.ad-input:nth-child(3)){grid-template-columns:minmax(0,1fr)}.ad-table .is-wide{width:auto}}@media(max-width:640px){.ad-stat-row{grid-template-columns:minmax(0,1fr)}.ad-table.is-rows thead{display:none}.ad-table.is-rows tbody tr{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;padding:12px 14px;border-bottom:1px solid var(--line)}.ad-table.is-rows td{padding:0;border:none}.ad-table.is-rows td.is-wide{grid-column:1 / -1}.ad-table.is-rows td.is-op{grid-column:1 / -1;text-align:left;padding-top:6px}}
