:root{--font-sans: -apple-system, BlinkMacSystemFont, "Inter", "Noto Sans TC", "SF Pro Text", "SF Pro Display", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--font-mono: "SF Mono", "JetBrains Mono", ui-monospace, "Fira Code", Consolas, monospace;--max-width: 720px;--max-width-wide: 980px;--radius: 12px;--radius-sm: 6px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-soft: cubic-bezier(.32, .72, 0, 1);--ease-standard: cubic-bezier(.4, 0, .2, 1);--dur-fast: .2s;--dur-base: .4s;--dur-slow: .8s;--vt-origin-x: 50%;--vt-origin-y: 50%;--eva-orange: #ff5500;--eva-orange-bright: #ff7a00;--eva-red: #ff2200;--eva-yellow: #ffcc00;--eva-white: #f4f4f4}:root,:root[data-theme=dark]{color-scheme:dark;--bg: #000000;--bg-elev: #1d1d1f;--bg-soft: #0a0a0c;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--fg: #f5f5f7;--fg-dim: #86868b;--fg-soft: #a1a1a6;--accent: #6885B8;--accent-soft: rgba(104, 133, 184, .14);--code-bg: #161617;--hero-grad-start: #ffffff;--hero-grad-end: #b5b5b8;--header-bg: rgba(0, 0, 0, .72)}:root[data-theme=light]{color-scheme:light;--bg: #ffffff;--bg-elev: #f5f5f7;--bg-soft: #fbfbfd;--border: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .14);--fg: #1d1d1f;--fg-dim: #6e6e73;--fg-soft: #424245;--accent: #C53B3B;--accent-soft: rgba(197, 59, 59, .1);--code-bg: #f5f5f7;--hero-grad-start: #1d1d1f;--hero-grad-end: #6e6e73;--header-bg: rgba(255, 255, 255, .72)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overflow-x:clip}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:17px;line-height:1.47059;letter-spacing:-.022em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern","liga","calt";overflow-x:hidden}::selection{background:var(--accent);color:#fff}h1,h2,h3,h4{font-weight:600;line-height:1.08;letter-spacing:-.022em;margin:0}h1{font-size:clamp(2rem,1.4rem + 2.4vw,3rem)}h2{font-size:clamp(1.5rem,1.1rem + 1.4vw,2rem);margin-top:3rem;line-height:1.15}h3{font-size:1.25rem;margin-top:2rem;line-height:1.2}p,ul,ol{margin:1rem 0}ul,ol{padding-left:1.4rem}li{margin:.35rem 0}a{color:var(--accent);text-decoration:none;transition:color var(--dur-fast) var(--ease-standard),opacity var(--dur-fast) var(--ease-standard)}a:hover{opacity:.78}hr{border:0;height:1px;background:var(--border);margin:3rem 0}.container{max-width:var(--max-width);margin:0 auto;padding:calc(var(--header-h, 58px) + 2rem) 1.5rem .5rem}.container--wide{max-width:var(--max-width-wide)}code{font-family:var(--font-mono);font-size:.88em;background:var(--code-bg);padding:.18em .4em;border-radius:5px;border:1px solid var(--border)}pre{font-family:var(--font-mono);padding:1.1rem 1.25rem;border-radius:var(--radius);overflow-x:auto;border:1px solid var(--border);background:var(--code-bg)!important;font-size:.92rem;line-height:1.6;letter-spacing:0;margin:1.5rem 0}pre code{background:transparent;border:0;padding:0;font-size:inherit}blockquote{border-left:2px solid var(--accent);margin:1.75rem 0;padding:.4rem 1.25rem;color:var(--fg-soft);background:var(--accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0}blockquote p{margin:.4rem 0}.site-header{position:fixed;top:0;left:0;right:0;z-index:50;background:var(--header-bg);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border);transition:background var(--dur-fast) var(--ease-standard)}.site-header.is-hidden{top:calc(0px - var(--header-h, 58px) - 1px)}.site-header .inner{max-width:var(--max-width-wide);margin:0 auto;padding:.85rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.site-header .brand{font-family:var(--font-mono);color:var(--fg);font-size:.95rem;font-weight:500;letter-spacing:0}.site-header .brand:hover{opacity:1;color:var(--fg)}.site-header nav{display:flex;align-items:center;gap:.3rem}.site-header nav .nav-link,.site-header nav .nav-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;height:34px;padding:0 .8rem;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--fg-soft);font-family:var(--font-sans);font-size:.9rem;font-weight:500;letter-spacing:-.01em;line-height:1;cursor:pointer;text-decoration:none;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.site-header nav .nav-link:hover,.site-header nav .nav-btn:hover{color:var(--fg);background:var(--bg-elev);opacity:1}.site-header nav .nav-btn:active{transform:scale(.96)}.site-header nav .nav-btn svg{width:16px;height:16px;display:block}.site-header nav .nav-btn--icon{width:34px;padding:0}#theme-toggle .icon-moon{display:none}:root[data-theme=light] #theme-toggle .icon-sun{display:none}:root[data-theme=light] #theme-toggle .icon-moon{display:block}.nav-dropdown{position:relative;display:inline-flex}.nav-btn--dropdown{display:inline-flex;align-items:center;gap:.3rem}.nav-btn--dropdown .chevron{width:12px;height:12px;opacity:.7;transition:transform .2s var(--ease-standard)}.nav-btn--dropdown[aria-expanded=true] .chevron{transform:rotate(180deg)}.nav-dropdown__panel{position:absolute;top:calc(100% + 6px);right:0;min-width:220px;max-width:calc(100vw - 2rem);background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 20px 50px #00000080;padding:.4rem;z-index:60;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s var(--ease-standard),transform .18s var(--ease-standard),visibility 0s linear .18s}.nav-dropdown.is-open .nav-dropdown__panel{opacity:1;visibility:visible;transform:none;transition:opacity .18s var(--ease-standard),transform .18s var(--ease-standard),visibility 0s linear 0s}:root[data-theme=light] .nav-dropdown__panel{box-shadow:0 20px 50px #00000014}.nav-dropdown__panel--wide{min-width:260px}.nav-dropdown__list{list-style:none;margin:0;padding:0;max-height:60vh;overflow-y:auto}.nav-dropdown__item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem .7rem;font-size:.86rem;color:var(--fg);border-radius:6px;text-decoration:none}.nav-dropdown__item:hover{background:var(--bg-soft);opacity:1}.nav-dropdown__count{font-family:var(--font-mono);font-size:.72rem;color:var(--fg-dim)}.nav-dropdown__empty{padding:.7rem;color:var(--fg-dim);font-size:.85rem;margin:0}.nav-dropdown__section{font-family:var(--font-mono);font-size:.7rem;color:var(--fg-dim);letter-spacing:.06em;text-transform:uppercase;margin:.4rem .7rem .3rem}.nav-dropdown__section:first-child{margin-top:0}.nav-dropdown--narrow{display:none}@media(max-width:720px){.nav-dropdown--wide{display:none}.nav-dropdown--narrow{display:inline-flex}}@media(max-width:640px){.site-header .inner{padding:.6rem .9rem;gap:.5rem}.site-header .brand{font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}.site-header nav{gap:.2rem}.site-header nav .nav-link{padding:0 .55rem;font-size:.82rem}.site-header nav .nav-btn--icon{width:32px;height:32px}}.hero{padding:6rem 0 4rem;text-align:left}.hero h1{font-size:clamp(2.5rem,1.4rem + 4.5vw,4.5rem);font-weight:600;letter-spacing:-.028em;line-height:1.05;background:linear-gradient(180deg,var(--hero-grad-start) 0%,var(--hero-grad-end) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:1.25rem}.hero .subtitle{font-size:clamp(1.1rem,.9rem + .6vw,1.35rem);color:var(--fg-dim);letter-spacing:-.018em;line-height:1.4;max-width:36ch;margin:0}.hero--about .subtitle{max-width:none;font-size:1rem;line-height:1.7;color:var(--fg-soft)}.hero .scroll-hint{margin-top:4rem;font-family:var(--font-mono);font-size:.78rem;color:var(--fg-dim);letter-spacing:.04em;text-transform:uppercase}.hero--about{padding:4rem 0 3rem}.hero-links{list-style:none;padding:0;margin:2rem 0 0;display:flex;flex-direction:column;gap:.45rem}.hero-links li{display:flex;align-items:baseline;gap:1.1rem;font-family:var(--font-mono);font-size:.88rem}.hero-links__key{color:var(--fg);font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;min-width:4rem}.hero-links a{color:var(--fg);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--border-strong)}.hero-links a:hover{color:var(--accent);text-decoration-color:var(--accent);opacity:1}.avatar{display:block;width:clamp(160px,20vw,220px);height:clamp(160px,20vw,220px);border-radius:50%;object-fit:cover;margin:0 0 1.75rem;border:1px solid var(--border-strong);background:var(--bg-elev);box-shadow:0 12px 40px #00000073}.hero--about .hero__head{display:flex;align-items:center;justify-content:space-between;gap:clamp(1rem,3vw,2.5rem);margin-bottom:clamp(2.2rem,3vw,3.2rem);position:relative}.hero--about .hero__head h1{margin:0;flex:1 1 auto;min-width:0}.hero--about .hero__head .avatar{width:clamp(220px,36vw,360px);height:clamp(220px,36vw,360px);margin:0;flex-shrink:0;margin-right:clamp(-3rem,-3vw,-1rem);margin-block-start:clamp(-1.5rem,-1.5vw,-.5rem);margin-block-end:0}@media(max-width:720px){.hero--about .hero__head{flex-direction:column-reverse;align-items:center;gap:1.6rem;margin-bottom:2rem}.hero--about .hero__head h1{text-align:center;flex:0 0 auto}.hero--about .hero__head .avatar{width:clamp(220px,50vw,300px);height:clamp(220px,50vw,300px);margin:0}}:root[data-theme=light] .avatar{box-shadow:0 12px 40px #00000014}.posts-section{margin-top:2.5rem;padding-top:3.5rem;border-top:1px solid var(--border)}.posts-section__label{font-family:var(--font-sans);font-size:clamp(1.35rem,1.1rem + .5vw,1.65rem);font-weight:600;letter-spacing:-.022em;color:var(--fg);margin:0 0 1.5rem;line-height:1.2;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;position:relative;padding-left:.85rem}.posts-section__label:before{content:"";position:absolute;left:0;top:.35em;bottom:.35em;width:3px;background:var(--accent);border-radius:2px}.post-row{display:grid;grid-template-columns:clamp(100px,11vw,130px) 1fr;gap:0 1.5rem;padding:1.6rem 0;transition:opacity .22s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1)}.post-row:hover{transform:translate(4px)}.post-row:hover .post-row__date{color:var(--accent)}.post-row[hidden]{display:none}.post-row+.post-row{border-top:1px solid var(--border)}.post-row.is-filter-out,.post-row.is-filter-in{opacity:0}.post-row.is-returning{animation:post-return-highlight 2.4s var(--ease-soft);position:relative}.post-row.is-returning:before{content:"";position:absolute;inset:.4rem -.75rem;background:var(--accent-soft);border-radius:8px;z-index:-1;animation:post-return-fade 2.4s var(--ease-soft) forwards;pointer-events:none}@keyframes post-return-highlight{0%{transform:translate(0)}15%{transform:translate(4px)}to{transform:translate(0)}}@keyframes post-return-fade{0%{opacity:0}10%{opacity:1}70%{opacity:1}to{opacity:0}}.post-row__side{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;padding-top:.3rem}.post-row__date{font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.02em;color:var(--fg-soft);white-space:nowrap}.post-row__title{font-size:clamp(1.3rem,1rem + .9vw,1.7rem);font-weight:600;letter-spacing:-.022em;line-height:1.2;margin:0 0 .4rem}.post-row__title a{display:inline-flex;align-items:baseline;gap:.5rem;color:var(--fg);transition:color var(--dur-fast) var(--ease-standard)}.post-row__title a:hover{color:var(--accent);opacity:1}.post-row__arrow{opacity:0;color:var(--accent);font-size:.85em;transition:transform var(--dur-base) var(--ease-soft),opacity var(--dur-base) var(--ease-soft)}.post-row__title a:hover .post-row__arrow{opacity:1;transform:translate(3px)}.post-row__desc{display:block;margin:0 0 .7rem;color:var(--fg-soft);font-size:.98rem;line-height:1.55}.post-row__desc:hover{opacity:1;color:var(--fg-soft)}.post-row__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.post-card__cat{display:inline-block;font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border:1px solid transparent;padding:.12rem .55rem;border-radius:4px;line-height:1.4;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.post-card__cat:hover{background:var(--accent);color:#fff;opacity:1}@media(max-width:640px){.post-row{grid-template-columns:92px 1fr;gap:0 .85rem;padding:1.4rem 0}.post-row__date{font-size:.74rem}.post-row__side{gap:.32rem}}.tag{display:inline-block;font-family:var(--font-mono);font-size:.73rem;font-weight:500;color:var(--fg-soft);border:1px solid var(--border-strong);border-radius:999px;padding:.12rem .6rem;letter-spacing:.02em;line-height:1.4;text-decoration:none;transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}a.tag:hover{color:var(--fg);border-color:var(--border-strong);background:var(--bg-elev);opacity:1}.filter{margin:0 0 1.5rem;display:grid;grid-template-columns:minmax(0,1fr);gap:.7rem}.filter.is-ready .filter-chip{animation:chip-stagger-in .28s cubic-bezier(.22,1,.36,1) calc(var(--chip-i, 0) * 22ms + 60ms) backwards}.filter-chip.is-restaggering{animation:chip-stagger-in .28s cubic-bezier(.22,1,.36,1) calc(var(--chip-i, 0) * 26ms) backwards}[data-posts-grid].is-ready .post-row:not([hidden]){animation:row-stagger-in .32s cubic-bezier(.22,1,.36,1) calc(var(--row-i, 0) * 28ms + .6s) backwards}@keyframes chip-stagger-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes row-stagger-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.filter.is-ready .filter-chip,.filter-chip.is-restaggering,[data-posts-grid].is-ready .post-row:not([hidden]){animation:none}}body:has(.about-end) .hero,body:has(.about-end) .posts-section{opacity:0}body:has(.about-end).about-ready .hero,body:has(.about-end).about-ready .posts-section{animation:about-section-in .56s cubic-bezier(.22,1,.36,1) calc(var(--section-i, 0) * .11s + 60ms) both}@keyframes about-section-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){body:has(.about-end) .hero,body:has(.about-end) .posts-section{opacity:1;animation:none}}.filter__row{display:flex;align-items:flex-start;gap:.8rem;min-width:0}.filter__label{flex-shrink:0;font-family:var(--font-mono);font-size:.76rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-soft);min-width:2.2rem;padding-top:.42rem}.filter__chips{display:flex;flex-wrap:wrap;gap:.4rem;flex:1 1 auto;min-width:0}.filter-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.34rem .8rem;border:1px solid var(--border-strong);border-radius:999px;font-family:var(--font-mono);font-size:.78rem;font-weight:500;color:var(--fg-soft);background:var(--bg-elev);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.filter-chip[hidden]{display:none}.filter-chip:hover{color:var(--fg);border-color:var(--fg-dim)}.filter-chip:active{transform:scale(.96)}.filter-chip.is-active{color:#fff;background:var(--accent);border-color:var(--accent)}.filter-chip--all.is-active{color:var(--bg);background:var(--fg-soft);border-color:var(--fg-soft)}.filter-chip__count{font-size:.68rem;opacity:.6}.filter-empty{color:var(--fg-dim);font-size:.95rem;padding:2rem 0;text-align:center}.filter-pinned{position:fixed;top:var(--header-h, 58px);left:0;right:0;z-index:40;pointer-events:none;transition:top .28s cubic-bezier(.4,0,.2,1)}.filter-pinned.is-active{pointer-events:auto}.filter-pinned:before{content:"";position:absolute;inset:0;background:var(--header-bg);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border);opacity:var(--pinned-progress, 0);transition:opacity .2s cubic-bezier(.22,1,.36,1);z-index:-1;pointer-events:none}.filter__label{opacity:calc(1 - var(--pinned-progress, 0))}.filter-chip:not(.is-active){opacity:calc(1 - var(--pinned-progress, 0))}.filter-chip.is-active{opacity:max(0,1 - var(--pinned-progress, 0) * 10)}.filter.chips-fading .filter-chip,.filter.chips-fading .filter__label{pointer-events:none}.filter-pinned__inner{max-width:var(--max-width-wide);margin:0 auto;padding:.6rem 1.5rem;display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.filter-pinned__label{font-family:var(--font-mono);font-size:.76rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-soft);flex-shrink:0;opacity:var(--pinned-progress, 0);transition:opacity .2s cubic-bezier(.22,1,.36,1)}.filter-pinned__chips{display:flex;flex-wrap:wrap;gap:.4rem;min-width:0;flex:1 1 auto}.filter-pinned__chip{display:inline-flex;align-items:center;gap:.45rem;padding:.34rem .45rem .34rem .8rem;border:1px solid var(--accent);border-radius:999px;background:var(--accent);color:#fff;font-family:var(--font-mono);font-size:.78rem;font-weight:500;cursor:pointer;white-space:nowrap;transform-origin:center;opacity:clamp(0,calc(var(--pinned-progress, 0) * 10),1);transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.filter-pinned__chip.is-leaving{opacity:0!important;transition:opacity .24s cubic-bezier(.22,1,.36,1)!important;pointer-events:none}.filter-pinned__chip:hover{background:color-mix(in srgb,var(--accent) 84%,#000 16%);border-color:color-mix(in srgb,var(--accent) 84%,#000 16%)}.filter-pinned__chip:active{transform:scale(.96)}.filter-pinned__x{display:inline-flex;align-items:center;justify-content:center;width:1.05rem;height:1.05rem;border-radius:999px;background:#ffffff2e;font-size:.82rem;line-height:1;opacity:.85;transition:background var(--dur-fast) var(--ease-standard),opacity var(--dur-fast) var(--ease-standard)}.filter-pinned__chip:hover .filter-pinned__x{background:#ffffff52;opacity:1}.filter-pinned__clear{display:inline-flex;align-items:center;padding:.34rem .8rem;border:1px solid var(--border-strong);border-radius:999px;background:var(--bg-elev);color:var(--fg-soft);font-family:var(--font-mono);font-size:.78rem;font-weight:500;cursor:pointer;margin-left:auto;flex-shrink:0;white-space:nowrap;opacity:var(--pinned-progress, 0);transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),opacity .2s cubic-bezier(.22,1,.36,1)}.filter-pinned__clear:hover{color:var(--fg);border-color:var(--fg-dim)}body:has(.site-header.is-hidden) .filter-pinned{top:0}@media(prefers-reduced-motion:reduce){.site-header{transition:background var(--dur-fast) var(--ease-standard),top 0s}.filter-pinned,.filter-pinned__chip{transition:none}}@media(max-width:640px){.filter-pinned__inner{padding:.5rem 1rem;gap:.5rem}.filter-pinned__label{display:none}.filter-pinned__chip{padding:.28rem .4rem .28rem .65rem;font-size:.74rem}.filter-pinned__clear{padding:.28rem .65rem;font-size:.74rem}}.about-card{position:fixed;top:calc(var(--header-h, 58px) + 8px);left:0;right:0;z-index:40;pointer-events:none;display:flex;justify-content:center;padding:0 1rem;transition:top .28s cubic-bezier(.4,0,.2,1)}body:has(.site-header.is-hidden) .about-card{top:8px}.about-card.is-active .about-card__inner{pointer-events:auto}.about-card__inner{position:relative;display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.3rem;max-width:min(640px,100%);padding:.38rem .65rem}.about-card__inner:before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--bg-elev) 66%,transparent);backdrop-filter:saturate(180%) blur(22px);-webkit-backdrop-filter:saturate(180%) blur(22px);border:1px solid color-mix(in srgb,var(--fg) 7%,transparent);border-radius:22px;box-shadow:0 1px 2px #0000000a,0 10px 26px -10px #0000002e,0 22px 48px -20px #0000001f;opacity:calc(var(--about-card-progress, 0) * (1 - var(--about-end-progress, 0)));transition:opacity .22s cubic-bezier(.22,1,.36,1);z-index:-1}.about-card__inner [data-card-slot=bio]{opacity:var(--about-bio-progress, 0)}.about-card__inner [data-card-slot=work]{opacity:var(--about-work-progress, 0)}.about-card__inner [data-card-slot=cert]{opacity:var(--about-cert-progress, 0)}.about-card__inner [data-card-slot=edu]{opacity:var(--about-edu-progress, 0)}.about-card__inner [data-card-slot=hitcon]{opacity:var(--about-hitcon-progress, 0)}.about-card__inner [data-card-slot=activities]{opacity:var(--about-activities-progress, 0)}.about-card__pill{position:relative;display:inline-flex;align-items:center;padding:.2rem .55rem;font-family:var(--font-mono);font-size:.64rem;font-weight:500;letter-spacing:.03em;color:var(--fg);background:color-mix(in srgb,var(--fg) 6%,transparent);border:1px solid transparent;border-radius:6px;white-space:nowrap;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.about-card__pill[data-card-target=name]{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);font-weight:600;letter-spacing:.05em}.about-card__btn{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .55rem;font-family:var(--font-mono);font-size:.64rem;font-weight:500;letter-spacing:.03em;color:var(--fg);background:color-mix(in srgb,var(--fg) 6%,transparent);border:1px solid transparent;border-radius:6px;white-space:nowrap;transition:color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.about-card__btn:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);opacity:1}.about-card__pill[data-card-target=name]{opacity:calc(var(--about-bio-progress, 0) * max(0,1 - var(--about-end-progress, 0) * 2.5))}@media(max-width:720px){.about-card{padding:0 .5rem}.about-card__inner{padding:.32rem .55rem;gap:.26rem}.about-card__pill,.about-card__btn{font-size:.6rem;padding:.18rem .48rem}}span.about-card__pill[data-card-target]{cursor:pointer;transition:color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}span.about-card__pill[data-card-target]:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}span.about-card__pill[data-card-target=name]:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 20%,transparent)}.bio-keyword{border-radius:3px;transition:background .2s cubic-bezier(.22,1,.36,1),color .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1)}[data-card-source].is-card-highlight{animation:about-source-highlight 1.8s cubic-bezier(.22,1,.36,1);border-radius:4px}@keyframes about-source-highlight{0%{background:var(--accent-soft);color:var(--accent);box-shadow:0 0 0 6px var(--accent-soft)}35%{background:var(--accent-soft);color:var(--accent);box-shadow:0 0 0 6px var(--accent-soft)}to{background:transparent;color:inherit;box-shadow:0 0 0 0 transparent}}@media(prefers-reduced-motion:reduce){[data-card-source].is-card-highlight{animation-duration:.4s}}.about-end{position:relative;min-height:130vh;display:flex;align-items:center;justify-content:center;padding-block-start:calc(30vh + var(--header-h, 58px));padding-block-end:0;padding-inline:1.5rem}body:has([data-about-end]) .site-footer{display:none}.about-end__hint{position:absolute;top:1rem;left:50%;transform:translate(-50%);pointer-events:none;display:flex;justify-content:center;align-items:flex-start;opacity:max(0,1 - var(--about-end-progress, 0) * 2.5);transition:opacity .26s cubic-bezier(.22,1,.36,1)}.about-end__hint-glow{position:absolute;top:50%;left:50%;width:clamp(240px,36vw,360px);height:clamp(240px,36vw,360px);border-radius:50%;background:radial-gradient(circle at center,color-mix(in srgb,var(--accent) 18%,transparent),color-mix(in srgb,var(--accent) 6%,transparent) 35%,transparent 65%);z-index:-1;pointer-events:none;transform:translate(-50%,-50%) scale(.92);animation:about-hint-breathe 3.8s cubic-bezier(.45,0,.55,1) infinite}.about-end__hint-trail{--trail-h: clamp(200px, calc(80vh - 242px) , 1400px);--wave-h: 60px;position:relative;display:block;width:2px;height:var(--trail-h);background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--accent) 30%,transparent) 12%,color-mix(in srgb,var(--accent) 30%,transparent) 88%,transparent);border-radius:2px;overflow:hidden}.about-end__hint-trail:before,.about-end__hint-trail:after{content:"";position:absolute;left:-3px;width:8px;top:calc(var(--wave-h) * -1);height:var(--wave-h);background:linear-gradient(to bottom,transparent,var(--accent),transparent);border-radius:8px;filter:blur(1px);animation:about-hint-flow 1.9s cubic-bezier(.4,.05,.5,1) infinite}.about-end__hint-trail:after{animation-delay:-.95s}@keyframes about-hint-flow{0%{transform:translateY(0)}to{transform:translateY(calc(var(--trail-h) + var(--wave-h)))}}@keyframes about-hint-breathe{0%,to{opacity:.55;transform:translate(-50%,-50%) scale(.9)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}}@media(prefers-reduced-motion:reduce){.about-end__hint-trail:before,.about-end__hint-trail:after{animation:none;opacity:.7}.about-end__hint-glow{animation:none;opacity:.8}}.about-end__frame{position:relative;display:flex;flex-direction:column;align-items:center;gap:clamp(1.1rem,.85rem + .5vw,1.55rem);width:min(clamp(560px,30vw + 360px,720px),100%);padding:clamp(2.4rem,1.6rem + 1.2vw,3.4rem) clamp(1.8rem,1.1rem + 1.4vw,3rem) clamp(2rem,1.4rem + .9vw,2.8rem);background:var(--bg-elev);border:1px solid color-mix(in srgb,var(--border) 60%,transparent);border-radius:clamp(18px,14px + .5vw,26px);box-shadow:0 1px 2px #0000000a,0 12px 32px -12px #0000002e,0 30px 60px -30px #00000038;opacity:var(--about-end-progress, 0);transform:translateY(calc((1 - var(--about-end-progress, 0)) * 16px))}.about-end__avatar{width:clamp(132px,8vw + 50px,172px);height:clamp(132px,8vw + 50px,172px);border-radius:50%;object-fit:cover;box-shadow:0 1px 2px #0000000f,0 12px 24px -10px #00000038;transform:scale(calc(.96 + .04 * var(--about-end-progress, 0)))}.about-end__identity{display:flex;flex-direction:column;align-items:center;gap:.45rem;text-align:center;width:100%}.about-end__name{margin:0;font-size:clamp(1.5rem,1.1rem + .95vw,2rem);font-weight:600;letter-spacing:-.018em;line-height:1.15;color:var(--fg);text-align:center;align-self:center}.about-end__mail{font-family:var(--font-mono);font-size:clamp(.86rem,.78rem + .28vw,1.05rem);letter-spacing:0;color:var(--accent);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,transparent);padding-bottom:1px;text-align:center;align-self:center;transition:border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.about-end__mail:hover{border-bottom-color:var(--accent);opacity:1}.about-end__divider{width:32px;height:1px;background:color-mix(in srgb,var(--fg) 18%,transparent)}.about-end__tags{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:center;width:100%}.about-end__actions{--btn-size: 54px;position:relative;width:100%;height:var(--btn-size);margin-top:1rem;container-type:inline-size}.about-end__action{position:absolute;top:0;width:var(--btn-size);height:var(--btn-size);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);background:var(--bg);cursor:pointer;text-decoration:none;box-shadow:0 2px 4px #0000000f,0 8px 18px -8px #0003;transition:transform .38s cubic-bezier(.34,1.56,.64,1),background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.about-end__action svg{width:24px;height:24px;display:block}.about-end__action--pass{left:0;color:var(--fg-soft)}.about-end__action--pass:hover{background:color-mix(in srgb,var(--fg) 8%,transparent);border-color:color-mix(in srgb,var(--fg) 22%,transparent)}.about-end__action--like{right:0;color:var(--accent)}.about-end__action--like:hover{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 36%,transparent);opacity:1}.about-end__actions[data-tap-level="2"] .about-end__action{transition-duration:.34s;animation:tap-dip-2 .34s cubic-bezier(.34,1.56,.64,1)}.about-end__actions[data-tap-level="3"] .about-end__action{transition-duration:.3s;animation:tap-dip-3 .32s cubic-bezier(.34,1.56,.64,1)}.about-end__actions[data-tap-level="3"] .about-end__action--pass{animation:tap-dip-3 .32s cubic-bezier(.34,1.56,.64,1),tap-flash .32s ease}.about-end__actions[data-tap-level="4"] .about-end__action{transition-duration:.26s;animation:tap-dip-4 .32s cubic-bezier(.34,1.56,.64,1)}.about-end__actions[data-tap-level="4"] .about-end__action--pass{animation:tap-dip-4 .32s cubic-bezier(.34,1.56,.64,1),tap-flash .32s ease,tap-glow .32s ease}@keyframes tap-dip-2{50%{scale:.94}}@keyframes tap-dip-3{50%{scale:.88}}@keyframes tap-dip-4{50%{scale:.82}}@keyframes tap-flash{50%{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,transparent)}}@keyframes tap-glow{50%{box-shadow:0 0 24px color-mix(in srgb,var(--accent) 55%,transparent),0 0 6px color-mix(in srgb,var(--accent) 70%,transparent),0 2px 4px #0000000f}}.about-end__action--pass svg path{transition:stroke-dasharray .32s cubic-bezier(.22,1,.36,1)}.about-end__actions[data-tap-level="1"] .about-end__action--pass svg path{stroke-dasharray:30 1}.about-end__actions[data-tap-level="2"] .about-end__action--pass svg path{stroke-dasharray:8 2}.about-end__actions[data-tap-level="3"] .about-end__action--pass svg path{stroke-dasharray:4 3}.about-end__actions[data-tap-level="4"] .about-end__action--pass svg path{stroke-dasharray:2 4}.about-end__action--pass{overflow:hidden}.pass-crack-svg{position:absolute;top:50%;left:50%;width:60px;height:60px;transform:translate(-50%,-50%);pointer-events:none;overflow:visible}.pass-crack-svg path{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--accent) 60%,transparent));stroke-dasharray:var(--len, 100);stroke-dashoffset:var(--len, 100);animation:crack-draw .38s cubic-bezier(.22,1,.36,1) forwards}@keyframes crack-draw{to{stroke-dashoffset:0}}.about-end__stains{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:0}.card-stain{position:absolute;background:radial-gradient(ellipse 55% 65% at 38% 42%,color-mix(in srgb,var(--accent) 95%,#000 5%) 0%,color-mix(in srgb,var(--accent) 60%,transparent) 40%,transparent 72%),radial-gradient(circle at 68% 60%,color-mix(in srgb,var(--accent) 75%,transparent) 0%,transparent 55%),radial-gradient(ellipse 70% 38% at 50% 75%,color-mix(in srgb,var(--accent) 45%,transparent) 0%,transparent 60%);filter:url(#paper-bleed) blur(1px);pointer-events:none;transform:translate(-50%,-50%) rotate(var(--rotate, 0deg)) scale(.4);opacity:0;animation:stain-bloom .82s cubic-bezier(.22,1,.36,1) forwards}@keyframes stain-bloom{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--rotate, 0deg)) scale(.4)}to{opacity:.42;transform:translate(-50%,-50%) rotate(var(--rotate, 0deg)) scale(1)}}.blood-streak{position:absolute;width:2px;height:0;background:linear-gradient(to bottom,color-mix(in srgb,var(--accent) 95%,#000 5%),color-mix(in srgb,var(--accent) 92%,transparent) 60%,color-mix(in srgb,var(--accent) 80%,transparent));border-radius:1.5px;pointer-events:none;filter:url(#paper-bleed) blur(.4px);opacity:.9;transform-origin:top center;rotate:var(--tilt, 0deg);animation:blood-stream var(--duration, 2.4s) cubic-bezier(.45,0,.55,.95) var(--delay, 0ms) forwards,blood-fade 8s ease-in 5s forwards}.blood-streak:after{content:"";position:absolute;bottom:-3px;left:50%;width:var(--head-size, 5px);height:calc(var(--head-size, 5px) * 1.25);background:radial-gradient(ellipse 60% 50% at 50% 35%,color-mix(in srgb,var(--accent) 100%,#000 0%) 0%,color-mix(in srgb,var(--accent) 78%,transparent) 70%,transparent 100%);border-radius:50% 50% 60% 60%/40% 40% 60% 60%;transform:translate(-50%);opacity:0;filter:blur(.3px);animation:blood-head var(--duration, 2.4s) cubic-bezier(.45,0,.55,.95) var(--delay, 0ms) forwards,blood-head-fade 8s ease-in 5s forwards}@keyframes blood-stream{0%{height:0}to{height:var(--target-height, 40%)}}@keyframes blood-head{0%{opacity:0}18%{opacity:1}to{opacity:.85}}@keyframes blood-fade{0%{opacity:.9}to{opacity:.3}}@keyframes blood-head-fade{0%{opacity:.85}to{opacity:.28}}.about-end__actions.is-extreme .about-end__action--like{--walk-x: calc((var(--btn-size) - 100cqi) / 2);animation:mail-walk 2.6s cubic-bezier(.45,.05,.55,.95) .7s forwards,mail-peek 1.6s cubic-bezier(.45,.05,.55,.95) 3.5s forwards}@keyframes mail-walk{0%{translate:0 0;rotate:0deg}14%{translate:calc(var(--walk-x) * .15) -2px;rotate:-5deg}28%{translate:calc(var(--walk-x) * .3) 0;rotate:3deg}42%{translate:calc(var(--walk-x) * .46) -2px;rotate:-5deg}57%{translate:calc(var(--walk-x) * .62) 0;rotate:3deg}71%{translate:calc(var(--walk-x) * .78) -2px;rotate:-5deg}85%{translate:calc(var(--walk-x) * .92) 0;rotate:3deg}to{translate:var(--walk-x) 0;rotate:0deg}}@keyframes mail-peek{0%{translate:var(--walk-x) 0;rotate:0deg}28%{translate:calc(var(--walk-x) - 4px) 3px;rotate:-14deg}62%{translate:calc(var(--walk-x) - 4px) 3px;rotate:-14deg}to{translate:var(--walk-x) 0;rotate:0deg}}.about-end__action--like.is-scared{animation:mail-scare .34s cubic-bezier(.34,1.56,.64,1)}@keyframes mail-scare{0%{translate:0 0;rotate:0deg}22%{translate:0 -9px;rotate:14deg}48%{translate:0 -3px;rotate:-10deg}72%{translate:0 -1px;rotate:5deg}to{translate:0 0;rotate:0deg}}.about-end__frame.is-tap-shake{animation:tap-shake .26s cubic-bezier(.36,.07,.19,.97)}@keyframes tap-shake{0%,to{translate:0 0}10%,30%,50%,70%,90%{translate:calc(var(--shake-x, 3px) * -1) 0}20%,40%,60%,80%{translate:var(--shake-x, 3px) 0}}.about-end__actions.is-charging .about-end__action--pass{animation:charge-pulse 1.2s cubic-bezier(.4,0,.6,1) forwards,charge-shake 70ms linear infinite}@keyframes charge-pulse{0%{box-shadow:0 2px 4px #0000000f,0 8px 18px -8px #0003;scale:1}to{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 45%,transparent),0 0 35px var(--accent),0 0 80px color-mix(in srgb,var(--accent) 55%,transparent),inset 0 0 18px color-mix(in srgb,var(--accent) 50%,transparent);scale:1.18}}@keyframes charge-shake{0%,to{translate:0 0}25%{translate:-1px 1px}50%{translate:1px -1px}75%{translate:-1px -1px}}.about-end__actions.is-extreme .about-end__action--pass{opacity:0;scale:1;transition:opacity .22s ease 80ms,scale .22s ease 80ms;pointer-events:none}.tap-flash{position:fixed;inset:0;background:radial-gradient(circle at center,var(--accent) 0%,color-mix(in srgb,var(--accent) 55%,transparent) 30%,transparent 70%);z-index:230;pointer-events:none;opacity:0;mix-blend-mode:screen;animation:tap-flash-anim .72s cubic-bezier(.22,1,.36,1) forwards}@keyframes tap-flash-anim{0%{opacity:0}10%{opacity:.6}30%{opacity:.3}to{opacity:0}}.tap-burst{position:fixed;width:140px;height:140px;pointer-events:none;z-index:218;background:radial-gradient(circle at center,#fff 0%,color-mix(in srgb,var(--accent) 92%,#fff 8%) 22%,var(--accent) 55%,color-mix(in srgb,var(--accent) 60%,transparent) 85%,transparent 100%);clip-path:polygon(50% 0%,60% 24%,84% 12%,76% 38%,100% 50%,78% 60%,88% 88%,64% 76%,50% 100%,38% 78%,14% 90%,24% 62%,0% 50%,22% 38%,12% 14%,38% 24%);transform:translate(-50%,-50%) rotate(var(--rotate-from, 0deg)) scale(0);opacity:0;filter:drop-shadow(0 0 16px color-mix(in srgb,var(--accent) 65%,transparent));animation:tap-burst-anim .75s cubic-bezier(.22,1,.36,1) forwards}@keyframes tap-burst-anim{0%{transform:translate(-50%,-50%) rotate(var(--rotate-from, 0deg)) scale(0);opacity:0}18%{transform:translate(-50%,-50%) rotate(calc(var(--rotate-from, 0deg) + var(--rotate-to, 30deg) * .25)) scale(calc(var(--final-scale, 1) * 1.8));opacity:1}to{transform:translate(-50%,-50%) rotate(calc(var(--rotate-from, 0deg) + var(--rotate-to, 30deg))) scale(calc(var(--final-scale, 1) * 3));opacity:0}}.p5-bubble{position:fixed;z-index:250;background:#fff;color:#000;font-weight:900;font-size:1.7rem;line-height:1;padding:.5rem .85rem .6rem;clip-path:polygon(8% 0%,100% 0%,92% 100%,0% 100%);filter:drop-shadow(4px 4px 0 var(--accent)) drop-shadow(0 2px 6px rgba(0,0,0,.4));transform:translate(-50%,-50%) rotate(var(--rotate, 0deg)) scale(0) skew(8deg);opacity:0;pointer-events:none;animation:p5-bubble-cycle 1.4s forwards}@keyframes p5-bubble-cycle{0%{transform:translate(-50%,-50%) rotate(var(--rotate, 0deg)) scale(0) skew(8deg);opacity:0}18%{transform:translate(-50%,-50%) rotate(var(--rotate, 0deg)) scale(1.18) skew(-4deg);opacity:1}30%{transform:translate(-50%,-50%) rotate(var(--rotate, 0deg)) scale(.96) skew(2deg);opacity:1}35%{transform:translate(-50%,-50%) rotate(var(--rotate, 0deg)) scale(1) skew(0);opacity:1}78%{transform:translate(-50%,-50%) rotate(var(--rotate, 0deg)) scale(1) skew(0);opacity:1}to{transform:translate(-50%,calc(-50% - 14px)) rotate(var(--rotate, 0deg)) scale(.9) skew(-4deg);opacity:0}}@media(max-width:520px){.p5-bubble{font-size:1.45rem;padding:.4rem .7rem .5rem;filter:drop-shadow(3px 3px 0 var(--accent)) drop-shadow(0 2px 4px rgba(0,0,0,.4))}}.pass-debris{position:absolute;background:linear-gradient(135deg,color-mix(in srgb,var(--fg-soft) 90%,var(--fg) 10%),color-mix(in srgb,var(--fg-soft) 65%,var(--bg-elev) 35%) 55%,color-mix(in srgb,var(--fg-soft) 40%,var(--bg) 60%));pointer-events:none;transform:translate(-50%,-50%);opacity:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.28)) drop-shadow(0 0 1px rgba(0,0,0,.15));animation:debris-fall var(--duration, 1.5s) cubic-bezier(.45,.05,.7,.55) var(--delay, 0ms) forwards}@keyframes debris-fall{0%{transform:translate(-50%,-50%) rotate(0);opacity:0}8%{opacity:1}85%{transform:translate(calc(-50% + var(--dx, 0px)),calc(-50% + var(--dy, 0px) - 3px)) rotate(calc(var(--rotate, 0deg) * .95));opacity:1}to{transform:translate(calc(-50% + var(--dx, 0px)),calc(-50% + var(--dy, 0px))) rotate(var(--rotate, 0deg));opacity:1}}.tap-particle{position:fixed;background:var(--accent);border-radius:50%;pointer-events:none;z-index:220;transform:translate(-50%,-50%) scale(0);opacity:0;box-shadow:0 0 12px color-mix(in srgb,var(--accent) 50%,transparent);animation:tap-particle-burst 1.1s cubic-bezier(.22,1,.36,1) var(--delay, 0ms) forwards}@keyframes tap-particle-burst{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}12%{transform:translate(-50%,-50%) scale(1.4);opacity:1}to{transform:translate(calc(-50% + var(--tx, 0px)),calc(-50% + var(--ty, 0px))) scale(.2);opacity:0}}@media(prefers-reduced-motion:reduce){.about-end__action{transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard);animation:none!important}.about-end__frame.is-tap-shake{animation:none}.tap-particle,.tap-flash,.tap-burst{animation:none;opacity:0}.p5-bubble{animation:none;opacity:1;transform:translate(-50%,-50%) rotate(var(--rotate, 0deg)) scale(1)}.card-stain{animation:none;opacity:1;transform:none}.pass-crack-svg path{animation:none;stroke-dashoffset:0}.blood-streak{animation:none;height:var(--target-height, 40%);opacity:.5}.blood-streak:after{animation:none;opacity:.5}.pass-debris{animation:none;opacity:1;transform:translate(calc(-50% + var(--dx, 0px)),calc(-50% + var(--dy, 0px))) rotate(var(--rotate, 0deg))}}.about-end__ghost{display:inline-flex;align-items:center;padding:.2rem .55rem;font-family:var(--font-mono);font-size:.64rem;font-weight:500;letter-spacing:.03em;border:1px solid transparent;border-radius:6px;white-space:nowrap;visibility:hidden}@media(max-height:500px){.about-end{align-items:flex-start;padding-block-start:calc(var(--header-h, 58px) + 2vh);padding-block-end:4vh}}@media(max-width:520px){.about-end__frame{padding:2.2rem 1.4rem 2rem;gap:1.05rem;border-radius:18px}.about-end__avatar{width:110px;height:110px}.about-end__name{font-size:1.32rem}.about-end__mail{font-size:.8rem}}.filter-label{font-family:var(--font-mono);font-size:.78rem;color:var(--fg-dim);letter-spacing:.04em;text-transform:uppercase;margin:0 0 .75rem}.filter-label a{color:var(--fg-dim)}.filter-label a:hover{color:var(--fg);opacity:1}.filter-prefix{color:var(--accent);font-family:var(--font-mono)}.post-header{margin:2rem 0 3rem;padding-bottom:2.5rem;border-bottom:1px solid var(--border)}.post-header__cat{margin:0 0 .85rem}.post-header h1{font-size:clamp(2rem,1.4rem + 2.5vw,3rem);letter-spacing:-.024em;line-height:1.1;margin-bottom:1rem}.post-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:.8rem;font-weight:500;color:var(--fg-soft);letter-spacing:.02em}.post-meta .sep{color:var(--border-strong)}.post-meta--head{margin:0 0 .55rem}.post-meta--tags{margin:.4rem 0 0;gap:.4rem}.post-header,.post-content{max-width:740px;margin-left:auto;margin-right:auto;min-width:0}.post-content{font-size:1.05rem;line-height:1.65;overflow-wrap:break-word}.post-content p{margin:1.1rem 0}.post-content :not(pre)>code{overflow-wrap:anywhere;word-break:break-word}.post-content table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}.post-content :is(h1,h2,h3,h4,h5,h6){scroll-margin-top:calc(var(--header-h, 58px) + 1.25rem)}.post-content img{max-width:100%;height:auto;border:1px solid var(--border-strong);border-radius:var(--radius);margin:1.5rem 0;transition:opacity var(--dur-fast) var(--ease-standard),transform var(--dur-base) var(--ease-soft)}.post-content img:hover{opacity:.92}.post-content pre{position:relative}.code-copy{position:absolute;top:.55rem;right:.55rem;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid color-mix(in srgb,var(--fg) 14%,transparent);border-radius:7px;color:var(--fg-soft);cursor:pointer;opacity:0;transform:translateY(-2px);transition:opacity .18s var(--ease-standard),transform .18s var(--ease-standard),color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.post-content pre:hover .code-copy,.code-copy:focus-visible{opacity:1;transform:none}.code-copy:hover{color:var(--fg);background:color-mix(in srgb,var(--bg) 90%,transparent);border-color:color-mix(in srgb,var(--fg) 24%,transparent)}.code-copy.is-copied{color:#4ade80;border-color:color-mix(in srgb,#4ade80 40%,transparent);background:color-mix(in srgb,#4ade80 12%,transparent);opacity:1!important;transform:none!important}.code-copy svg{width:15px;height:15px;display:block}.image-lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);background:#000000c7;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);opacity:0;visibility:hidden;transition:opacity .28s cubic-bezier(.22,1,.36,1),visibility 0s linear .28s}.image-lightbox.is-open{opacity:1;visibility:visible;transition:opacity .28s cubic-bezier(.22,1,.36,1),visibility 0s linear}:root[data-theme=light] .image-lightbox{background:#141416a6}.image-lightbox__img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 30px 80px #00000073;cursor:zoom-out;transform:scale(.94);opacity:.85;transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .22s cubic-bezier(.22,1,.36,1)}.image-lightbox.is-open .image-lightbox__img{transform:scale(1);opacity:1}.image-lightbox__close{position:absolute;top:1.2rem;right:1.2rem;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:color-mix(in srgb,#fff 14%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid color-mix(in srgb,#fff 22%,transparent);border-radius:50%;color:#fff;cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard)}.image-lightbox__close:hover{background:color-mix(in srgb,#fff 24%,transparent);transform:scale(1.05)}.image-lightbox__close svg{width:18px;height:18px}@media(max-width:640px){.image-lightbox__close{top:.8rem;right:.8rem;width:34px;height:34px}}.post-toc{display:none}@media(min-width:1200px){.post-toc{display:block;position:fixed;top:calc(var(--header-h, 58px) + 2.5rem);right:clamp(1rem,2vw,2rem);width:180px;max-height:calc(100vh - var(--header-h, 58px) - 8rem);overflow-y:auto;color:var(--fg-soft);padding-left:.85rem;border-left:1px solid var(--border);scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--fg) 14%,transparent) transparent}}@media(min-width:1500px){.post-toc{width:220px;right:clamp(2rem,4vw,4rem)}}.post-toc__label{margin:0 0 .7rem;font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim)}.post-toc__list{list-style:none;margin:0;padding:0}.post-toc__item{margin:0;position:relative}.post-toc__item--h3{padding-left:.85rem}.post-toc__link{display:block;padding:.32rem 0;font-size:.82rem;line-height:1.45;color:var(--fg-dim);text-decoration:none;letter-spacing:-.005em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;transition:color var(--dur-fast) var(--ease-standard)}.post-toc__link:hover{color:var(--fg);opacity:1}.post-toc__link.is-active{color:var(--accent);font-weight:600}.post-toc__item:has(.is-active):before{content:"";position:absolute;left:calc(-.85rem - 3.5px);top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--bg)}.toc-fab{display:none}@media(max-width:1199px){.toc-fab{position:fixed;right:1.5rem;bottom:calc(1.5rem + 54px);z-index:71;width:42px;height:42px;display:flex;align-items:center;justify-content:center;padding:0;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:50%;color:var(--fg-soft);cursor:pointer;box-shadow:0 8px 24px #00000059;transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard)}.toc-fab:hover{color:var(--fg);border-color:var(--fg-dim)}.toc-fab:active{transform:scale(.94)}.toc-fab[aria-expanded=true]{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.toc-fab svg{width:20px;height:20px;display:block}:root[data-theme=light] .toc-fab{box-shadow:0 8px 24px #0000001a}}@media(max-width:640px){.toc-fab{right:1rem;bottom:calc(1rem + 48px);width:40px;height:40px}.toc-fab svg{width:18px;height:18px}}.toc-sheet{position:fixed;inset:0;z-index:180;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .24s cubic-bezier(.22,1,.36,1),visibility 0s linear .24s}.toc-sheet.is-open{pointer-events:auto;opacity:1;visibility:visible;transition:opacity .24s cubic-bezier(.22,1,.36,1),visibility 0s linear 0s}.toc-sheet__scrim{position:absolute;inset:0;background:#0000008c;backdrop-filter:blur(10px) saturate(160%);-webkit-backdrop-filter:blur(10px) saturate(160%)}:root[data-theme=light] .toc-sheet__scrim{background:#1414166b}.toc-sheet__panel{position:absolute;left:0;right:0;bottom:0;max-height:72vh;display:flex;flex-direction:column;background:var(--bg-elev);border-top-left-radius:22px;border-top-right-radius:22px;border-top:1px solid var(--border);box-shadow:0 -16px 50px #00000073;padding:.4rem 1.25rem max(1.75rem,env(safe-area-inset-bottom));transform:translateY(101%);transition:transform .36s cubic-bezier(.32,.72,0,1)}.toc-sheet.is-open .toc-sheet__panel{transform:translateY(0)}:root[data-theme=light] .toc-sheet__panel{box-shadow:0 -16px 50px #0000001f}.toc-sheet__grabber{flex-shrink:0;width:36px;height:4px;margin:.5rem auto .85rem;background:color-mix(in srgb,var(--fg) 22%,transparent);border-radius:999px}.toc-sheet__label{flex-shrink:0;margin:0 0 .6rem;font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim)}.toc-sheet__list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1 1 auto;min-height:0;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--fg) 14%,transparent) transparent}.toc-sheet__item{margin:0}.toc-sheet__item--h3{padding-left:1.1rem}.toc-sheet__link{display:block;padding:.75rem 0;font-size:.96rem;line-height:1.45;color:var(--fg);text-decoration:none;border-bottom:1px solid var(--border);transition:color var(--dur-fast) var(--ease-standard)}.toc-sheet__link:hover{color:var(--accent);opacity:1}.toc-sheet__link.is-active{color:var(--accent);font-weight:600}.toc-sheet__item:last-child .toc-sheet__link{border-bottom:none}@media(prefers-reduced-motion:reduce){.toc-sheet,.toc-sheet__panel{transition:none}}.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;pointer-events:none}.reading-progress__bar{height:100%;width:var(--progress, 0%);background:var(--accent);transition:width 80ms linear}.site-footer{border-top:1px solid var(--border);margin-top:1.5rem;padding:1.25rem 1.5rem 1.5rem;color:var(--fg-dim);font-size:.82rem;text-align:center;letter-spacing:-.01em}.site-footer a{color:var(--fg-dim)}.site-footer a:hover{color:var(--fg);opacity:1}[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .3s var(--ease-out) var(--reveal-delay, 0ms),transform .3s var(--ease-out) var(--reveal-delay, 0ms);will-change:opacity,transform}[data-reveal].is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}[data-reveal]{opacity:1;transform:none}.hero h1{background:none;-webkit-text-fill-color:var(--fg);color:var(--fg)}}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.back-to-top{position:fixed;right:1.5rem;bottom:1.5rem;z-index:70;width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border-strong);background:var(--bg-elev);color:var(--fg-soft);cursor:pointer;opacity:0;transform:translateY(12px);pointer-events:none;box-shadow:0 8px 24px #00000059;transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.back-to-top.is-visible{opacity:1;transform:none;pointer-events:auto}.back-to-top:hover{color:var(--fg);border-color:var(--fg-dim)}.back-to-top svg{width:18px;height:18px}:root[data-theme=light] .back-to-top{box-shadow:0 8px 24px #0000001a}@media(max-width:640px){.back-to-top{right:1rem;bottom:1rem;width:38px;height:38px}}.muted{color:var(--fg-dim)}.about-list{list-style:none;margin:0;padding:0;position:relative}.about-list:before{content:"";position:absolute;left:4px;top:.85rem;bottom:.85rem;width:2px;background:linear-gradient(180deg,var(--accent) 0%,var(--border-strong) 14%,var(--border) 90%,transparent 100%)}.about-list>li{position:relative;padding:.65rem 0 .8rem 1.7rem;font-size:.98rem;line-height:1.6}.about-list>li+li{border-top:1px solid var(--border)}.about-list>li:before{content:"";position:absolute;left:0;top:1rem;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--bg)}.about-list b{font-weight:600;color:var(--fg)}.about-list__sub{display:block;margin-top:.3rem;font-size:.88rem;color:var(--fg-dim);line-height:1.55}.about-bullets{list-style:none;margin:.7rem 0 0;padding:0}.about-bullets li{position:relative;padding:.3rem 0 .3rem 1rem;font-size:.93rem;color:var(--fg-soft);line-height:1.6}.about-bullets li:before{content:"";position:absolute;left:.2rem;top:.85em;width:4px;height:4px;border-radius:50%;background:var(--fg-dim)}.about-bullets li b{color:var(--fg);font-weight:600}.about-bullets li p{margin:.15rem 0 0;color:var(--fg-dim);font-size:.88rem;line-height:1.55}.about-intro{margin:0;font-size:1rem;line-height:1.8;color:var(--fg-soft);text-align:justify}.section-link{font-family:var(--font-mono);font-size:.78rem;font-weight:400;color:var(--fg-dim);text-transform:none;letter-spacing:.02em;flex-shrink:0}.section-link:hover{color:var(--accent);opacity:1}body,.site-header,code,pre,blockquote,.tag{transition-property:background-color,background,color,border-color;transition-duration:.5s;transition-timing-function:var(--ease-soft)}.theme-overlay{position:fixed;inset:0;z-index:100;background:#000;color:var(--eva-white);opacity:0;pointer-events:none;transition:opacity .22s linear;overflow:hidden;font-family:var(--font-mono)}.theme-overlay.is-open{opacity:1;pointer-events:auto}.theme-overlay.is-open.is-confirming-out{opacity:0;pointer-events:none;transition:opacity .8s cubic-bezier(.4,0,.2,1)}.theme-overlay__hexgrid{position:absolute;inset:0;opacity:0;filter:drop-shadow(0 0 2px var(--eva-orange))}.theme-overlay__hexgrid svg{display:block;width:100%;height:100%}.theme-overlay__scanlines{position:absolute;inset:-20px;pointer-events:none;background-image:repeating-linear-gradient(0deg,rgba(255,85,0,.04) 0px,rgba(255,85,0,.04) 1px,transparent 1px,transparent 3px);opacity:0}.theme-overlay__bgflicker{position:absolute;inset:0;background:var(--eva-red);opacity:0;mix-blend-mode:screen;pointer-events:none}.theme-overlay__flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}.theme-overlay__corner{position:absolute;width:56px;height:56px;opacity:0}.theme-overlay__corner--tl{top:28px;left:28px;border-top:2px solid var(--eva-orange);border-left:2px solid var(--eva-orange)}.theme-overlay__corner--tr{top:28px;right:28px;border-top:2px solid var(--eva-orange);border-right:2px solid var(--eva-orange)}.theme-overlay__corner--bl{bottom:28px;left:28px;border-bottom:2px solid var(--eva-orange);border-left:2px solid var(--eva-orange)}.theme-overlay__corner--br{bottom:28px;right:28px;border-bottom:2px solid var(--eva-orange);border-right:2px solid var(--eva-orange)}.theme-overlay__stripes{position:absolute;bottom:0;left:0;right:0;height:18px;background:repeating-linear-gradient(-45deg,var(--eva-yellow) 0,var(--eva-yellow) 12px,#000 12px,#000 24px);transform:translateY(100%);opacity:0}.theme-overlay__inner{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;max-width:100vw;z-index:2}.theme-overlay__line1{font-family:var(--font-mono);font-size:clamp(1.5rem,4vw,2.4rem);font-weight:600;letter-spacing:.02em;margin:0 0 1.25rem;color:var(--eva-white);opacity:0;position:relative}.theme-overlay__line2{font-family:Helvetica Neue,Arial Black,Noto Sans TC,sans-serif;font-size:clamp(5rem,18vw,13rem);font-weight:900;letter-spacing:-.05em;line-height:1;margin:0;color:var(--eva-white);opacity:0;font-stretch:75%}.theme-overlay__line2 .line2-char{display:inline-block;transform-origin:center center}.theme-overlay__line2 .line2-char--2{margin-left:-.04em}.theme-overlay__line2 .line2-char--3{margin-left:.08em;color:var(--eva-red)}.theme-overlay__actions{display:flex;gap:1.5rem;margin-top:3rem;justify-content:center;flex-wrap:wrap;opacity:0}.theme-overlay__btn{font-family:var(--font-mono);font-size:.85rem;font-weight:600;letter-spacing:.05em;padding:.65rem 1.4rem;min-width:11rem;border:1px solid rgba(255,85,0,.4);background:transparent;color:#f4f4f4b3;cursor:pointer;text-transform:uppercase;transition:background .18s var(--ease-standard),color .18s var(--ease-standard),border-color .18s var(--ease-standard),transform .12s var(--ease-standard)}.theme-overlay__btn:hover{background:#ff55001a;color:var(--eva-white);border-color:var(--eva-orange)}.theme-overlay__btn:active{transform:scale(.96)}.theme-overlay__btn--primary{position:relative;overflow:hidden;border:1.5px solid var(--eva-red);background:linear-gradient(180deg,#ff380c,#d21800);color:#fff;font-weight:700;letter-spacing:.08em;padding:.7rem 1.6rem .7rem 1.4rem;box-shadow:inset 0 1px #ffffff47,inset 0 -1px #0000004d,inset 0 0 14px #ffc8b42e}.theme-overlay__btn--primary:hover{background:linear-gradient(180deg,#ff501e,#e6280a);border-color:var(--eva-orange-bright)}.theme-overlay__btn--primary .btn-label{position:relative;z-index:2}.theme-overlay__btn--primary .btn-led{display:inline-block;width:7px;height:7px;border-radius:50%;background:#fff5f0;margin-right:.6rem;vertical-align:1px;position:relative;z-index:2;box-shadow:0 0 6px #fff5f0e6,0 0 12px #ff643c99}.theme-overlay.is-open .theme-overlay__btn--primary .btn-led{animation:led-blink 1.4s steps(2) 4.8s infinite}@keyframes led-blink{0%,60%{opacity:1}61%,to{opacity:.25}}.theme-overlay__btn--primary .btn-corner{position:absolute;width:6px;height:6px;pointer-events:none;z-index:1}.theme-overlay__btn--primary .btn-corner--tl{top:3px;left:3px;border-top:1px solid rgba(255,245,240,.7);border-left:1px solid rgba(255,245,240,.7)}.theme-overlay__btn--primary .btn-corner--tr{top:3px;right:3px;border-top:1px solid rgba(255,245,240,.7);border-right:1px solid rgba(255,245,240,.7)}.theme-overlay__btn--primary .btn-corner--bl{bottom:3px;left:3px;border-bottom:1px solid rgba(255,245,240,.7);border-left:1px solid rgba(255,245,240,.7)}.theme-overlay__btn--primary .btn-corner--br{bottom:3px;right:3px;border-bottom:1px solid rgba(255,245,240,.7);border-right:1px solid rgba(255,245,240,.7)}.theme-overlay__btn--primary .btn-scan{position:absolute;height:1.5px;width:35%;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.95) 50%,transparent 100%);filter:blur(.5px);opacity:0;z-index:1}.theme-overlay__btn--primary .btn-scan--top{top:0;left:-35%}.theme-overlay__btn--primary .btn-scan--bot{bottom:0;right:-35%}.theme-overlay.is-open .theme-overlay__btn--primary .btn-scan--top{opacity:1;animation:btn-scan-r 2.4s linear 4.8s infinite}.theme-overlay.is-open .theme-overlay__btn--primary .btn-scan--bot{opacity:1;animation:btn-scan-l 2.4s linear 5.4s infinite}@keyframes btn-scan-r{0%{transform:translate(0)}to{transform:translate(385%)}}@keyframes btn-scan-l{0%{transform:translate(0)}to{transform:translate(-385%)}}.theme-overlay.is-open .theme-overlay__flash{animation:eva-flash 5s linear forwards}@keyframes eva-flash{0%,0.5%{opacity:1;background:#fff}2%{opacity:0}3%{opacity:.7;background:var(--eva-red)}5%{opacity:0}50%,51%{opacity:.95;background:#fff}53%{opacity:0}73%{opacity:0;background:#fff}74%,74.5%{opacity:.85;background:#fff}76%{opacity:0}to{opacity:0;background:#fff}}.theme-overlay.is-open .theme-overlay__bgflicker{animation:eva-bgflicker 5s linear forwards}@keyframes eva-bgflicker{0%,3%{opacity:0}4%,5%{opacity:.35}6%,49%{opacity:0}50%,52%{opacity:.55}53%,69%{opacity:0}70%,71%{opacity:.25}72%,to{opacity:0}}.theme-overlay.is-open .theme-overlay__hexgrid{animation:eva-fade-in .8s var(--ease-out) .2s forwards,eva-hex-drift 14s linear .2s infinite}@keyframes eva-fade-in{to{opacity:.65}}@keyframes eva-hex-drift{0%{transform:translate(0)}to{transform:translate(28px,-24px)}}.theme-overlay.is-open .theme-overlay__scanlines{animation:eva-fade-in .4s .1s forwards,eva-scanline-scroll 4s linear .1s infinite}@keyframes eva-scanline-scroll{0%{transform:translateY(0)}to{transform:translateY(60px)}}.theme-overlay.is-open .theme-overlay__corner--tl{animation:eva-corner-snap .25s var(--ease-out) .4s forwards}.theme-overlay.is-open .theme-overlay__corner--tr{animation:eva-corner-snap .25s var(--ease-out) .48s forwards}.theme-overlay.is-open .theme-overlay__corner--bl{animation:eva-corner-snap .25s var(--ease-out) .56s forwards}.theme-overlay.is-open .theme-overlay__corner--br{animation:eva-corner-snap .25s var(--ease-out) .64s forwards}@keyframes eva-corner-snap{0%{opacity:0;transform:scale(2.2)}60%{opacity:1;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.theme-overlay.is-open .theme-overlay__stripes{animation:eva-stripes-slide .4s var(--ease-out) .8s forwards}@keyframes eva-stripes-slide{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.theme-overlay.is-open .theme-overlay__line1{animation:eva-glitch-in .9s var(--ease-out) 1.5s forwards}@keyframes eva-glitch-in{0%{opacity:0;transform:translateY(10px);text-shadow:10px 0 var(--eva-red),-10px 0 #00e5ff;clip-path:inset(45% 0 45% 0);filter:blur(4px)}35%{opacity:1;clip-path:inset(0 0 0 0);text-shadow:6px 0 var(--eva-red),-6px 0 #00e5ff;filter:blur(1px);transform:translateY(0)}55%{text-shadow:-3px 0 var(--eva-red),3px 0 #00e5ff}75%{text-shadow:1px 0 var(--eva-red),-1px 0 #00e5ff}to{opacity:1;transform:none;text-shadow:none;filter:blur(0)}}.theme-overlay.is-open .theme-overlay__line2{animation:eva-mega-slam 1.2s var(--ease-out) 2.5s forwards,eva-line2-rumble .12s steps(2) 3.5s 5}@keyframes eva-mega-slam{0%{opacity:0;transform:scale(8) skewY(2deg);filter:blur(40px);letter-spacing:.5em}35%{opacity:1;transform:scale(.92) skewY(-.5deg);filter:blur(0);letter-spacing:-.05em}55%{transform:scale(1.06) skewY(.5deg)}72%{transform:scale(.98)}to{opacity:1;transform:scale(1);filter:blur(0);letter-spacing:-.05em}}@keyframes eva-line2-rumble{0%{transform:translate(0)}50%{transform:translate(-1.5px,1px)}to{transform:translate(0)}}.theme-overlay.is-open .line2-char--1{animation:char-snap-1 1ms linear 3.7s forwards}.theme-overlay.is-open .line2-char--2{animation:char-snap-2 1ms linear 3.7s forwards}.theme-overlay.is-open .line2-char--3{animation:char-snap-3 1ms linear 3.72s forwards}@keyframes char-snap-1{to{transform:rotate(-7deg) translateY(-.12em)}}@keyframes char-snap-2{to{transform:rotate(6deg) translateY(.1em)}}@keyframes char-snap-3{to{transform:rotate(-12deg) translateY(-.06em)}}.theme-overlay.is-open .theme-overlay__actions{animation:eva-actions-in .7s var(--ease-out) 4s forwards}@keyframes eva-actions-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.search-modal{position:fixed;inset:0;z-index:150;display:flex;align-items:flex-start;justify-content:center;padding:14vh 1rem 1rem;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s var(--ease-standard),visibility 0s linear .2s}.search-modal.is-open{pointer-events:auto;opacity:1;visibility:visible;transition:opacity .2s var(--ease-standard),visibility 0s linear}.search-modal__scrim{position:absolute;inset:0;background:#00000080;backdrop-filter:blur(14px) saturate(180%);-webkit-backdrop-filter:blur(14px) saturate(180%)}:root[data-theme=light] .search-modal__scrim{background:#ffffff8c}.search-modal__panel{position:relative;width:100%;max-width:620px;max-height:70vh;display:flex;flex-direction:column;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 30px 80px #0009;overflow:hidden;transform:translateY(-12px) scale(.98);transition:transform .24s var(--ease-out)}.search-modal.is-open .search-modal__panel{transform:none}:root[data-theme=light] .search-modal__panel{box-shadow:0 30px 80px #0000001f}.search-modal__inputwrap{display:flex;align-items:center;gap:.75rem;padding:.95rem 1.1rem;border-bottom:1px solid var(--border)}.search-modal__icon{width:18px;height:18px;color:var(--fg-dim);flex-shrink:0}.search-modal__input{flex:1 1 auto;border:0;background:transparent;color:var(--fg);font-family:var(--font-sans);font-size:1.05rem;letter-spacing:-.018em;outline:none;padding:0;min-width:0}.search-modal__input::placeholder{color:var(--fg-dim)}.search-modal__input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.search-modal__kbd{font-family:var(--font-mono);font-size:.7rem;color:var(--fg-dim);border:1px solid var(--border-strong);border-radius:4px;padding:1px 5px;background:var(--bg-soft)}.search-modal__body{padding:1rem 1.1rem 1.2rem;overflow-y:auto;flex:1 1 auto;min-height:0}.search-sec{margin-bottom:1.1rem}.search-sec:last-of-type{margin-bottom:0}.search-sec[hidden]{display:none}.search-sec__label{font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-soft);margin:0 0 .55rem}.search-sec__chips{display:flex;flex-wrap:wrap;gap:.4rem}.search-sec__empty{color:var(--fg-dim);font-size:.88rem;text-align:center;padding:1.5rem 0;margin:0}.search-sec__empty[hidden],.search-browse__chip[hidden]{display:none}.search-browse__chip{display:inline-flex;align-items:center;gap:.4rem;padding:.34rem .75rem;border:1px solid var(--border-strong);border-radius:999px;background:var(--bg-soft);font-family:var(--font-mono);font-size:.78rem;font-weight:500;color:var(--fg-soft);text-decoration:none;opacity:0;transform:translateY(6px);transition:opacity .26s var(--ease-standard) calc(var(--chip-i, 0) * 18ms + 80ms),transform .26s var(--ease-standard) calc(var(--chip-i, 0) * 18ms + 80ms),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.search-modal.is-open .search-browse__chip{opacity:1;transform:none}.search-browse__chip:hover{color:var(--fg);border-color:var(--fg-dim);opacity:1}.search-browse__chip--cat{color:var(--accent);background:var(--accent-soft);border-color:transparent;font-weight:600;text-transform:uppercase}.search-browse__chip--cat:hover{background:var(--accent);color:#fff}.search-browse__count{font-size:.68rem;opacity:.6}.search-browse__empty{color:var(--fg-dim);font-size:.88rem;margin:0}.search-modal__results{list-style:none;padding:0;margin:0}.search-result{display:block;padding:.7rem 1.1rem;border-left:2px solid transparent;color:var(--fg);cursor:pointer}.search-result.is-active,.search-result:hover{background:var(--bg-soft);border-left-color:var(--accent);opacity:1}.search-result__title{font-size:.98rem;font-weight:600;letter-spacing:-.018em;margin:0 0 .15rem}.search-result__meta{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;font-family:var(--font-mono);font-size:.72rem;color:var(--fg-dim)}.search-result__desc{margin:.25rem 0 0;font-size:.84rem;color:var(--fg-dim);line-height:1.45;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.search-result__cat{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.search-result__empty{padding:1.5rem 1.1rem;color:var(--fg-dim);text-align:center;font-size:.9rem}.search-hl{background:var(--accent-soft);color:var(--accent);font-weight:600;border-radius:3px;padding:0 .1em}@media(max-width:640px){.search-modal{padding-top:6vh}.search-modal__input{font-size:1rem}.search-modal__kbd{display:none}}@media(prefers-reduced-motion:reduce){.search-modal__panel{transition:none}}.flashbang{position:fixed;inset:0;z-index:200;pointer-events:none;opacity:0;visibility:hidden;overflow:hidden}.flashbang.is-active{opacity:1;visibility:visible;pointer-events:auto}.flashbang.is-fading{opacity:0;transition:opacity 1.5s cubic-bezier(.16,1,.3,1)}.theme-blackout{position:fixed;inset:0;z-index:95;background:#000;opacity:0;visibility:hidden;pointer-events:none}.theme-blackout.is-active{opacity:1;visibility:visible}.flashbang__gif{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.flashbang__whiteout{position:absolute;inset:0;background:#fff;opacity:0;transition:opacity .32s cubic-bezier(.4,0,.2,1)}.flashbang.is-whiteout .flashbang__whiteout{opacity:1}@media(prefers-reduced-motion:reduce){.theme-overlay.is-open .line2-char--1{transform:rotate(-7deg) translateY(-.12em)}.theme-overlay.is-open .line2-char--2{transform:rotate(6deg) translateY(.1em)}.theme-overlay.is-open .line2-char--3{transform:rotate(-12deg) translateY(-.06em)}.theme-overlay.is-open .theme-overlay__btn--primary .btn-led,.theme-overlay.is-open .theme-overlay__btn--primary .btn-scan{animation:none!important}.flashbang{transition:opacity .2s linear}}@media(prefers-reduced-motion:reduce){.theme-overlay.is-open .theme-overlay__hexgrid,.theme-overlay.is-open .theme-overlay__scanlines,.theme-overlay.is-open .theme-overlay__corner,.theme-overlay.is-open .theme-overlay__stripes,.theme-overlay.is-open .theme-overlay__line1,.theme-overlay.is-open .theme-overlay__line2,.theme-overlay.is-open .theme-overlay__actions{animation:none!important;opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;text-shadow:none!important}.theme-overlay.is-open .theme-overlay__flash,.theme-overlay.is-open .theme-overlay__bgflicker{animation:none!important;opacity:0!important}}::view-transition-old(root){animation:vt-page-out .42s cubic-bezier(.22,1,.36,1) both;mix-blend-mode:normal}::view-transition-new(root){animation:vt-page-in .58s cubic-bezier(.22,1,.36,1) both;mix-blend-mode:normal}@keyframes vt-page-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-22px) scale(.985)}}@keyframes vt-page-in{0%{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}::view-transition-group(site-header),::view-transition-group(site-footer),::view-transition-group(theme-overlay),::view-transition-group(theme-blackout),::view-transition-group(theme-flashbang){animation:none}::view-transition-old(site-header),::view-transition-new(site-header),::view-transition-old(site-footer),::view-transition-new(site-footer),::view-transition-old(theme-overlay),::view-transition-new(theme-overlay),::view-transition-old(theme-blackout),::view-transition-new(theme-blackout),::view-transition-old(theme-flashbang),::view-transition-new(theme-flashbang){animation:none}:root.theme-wipe *{transition-duration:0s!important}:root.theme-wipe::view-transition-old(root){animation:.6s var(--ease-out) both vt-fade-out;z-index:1}:root.theme-wipe::view-transition-new(root){animation:.8s var(--ease-out) both vt-clip-reveal;z-index:2}@keyframes vt-clip-reveal{0%{clip-path:circle(0% at var(--vt-origin-x) var(--vt-origin-y))}to{clip-path:circle(160% at var(--vt-origin-x) var(--vt-origin-y))}}@keyframes vt-fade-out{0%{opacity:1}to{opacity:.4}}@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}:root.theme-wipe::view-transition-old(root),:root.theme-wipe::view-transition-new(root){animation:none}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@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(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
