:root{--font-family: "Inter", sans-serif;--background: hsl(0 0% 100%);--foreground: #1f1e1c;--secondbackground: #f6f5f4;--hover: #efeee7d9;--hover-foreground: hsl(215.4 16.3% 46.9%);--desc: #615d59;--ignore: #bababa;--tag: #c35af7;--tag-foreground: #fceefe;--scrollbar: #d6d7d9;--popover: hsl(0 0% 100%);--popover-foreground: #1f1e1c;--muted: hsl(210 40% 96.1%);--muted-foreground: hsl(215.4 16.3% 46.9%);--card: hsl(0 0% 100%);--card-foreground: #1f1e1c;--border: #e5e3df;--input: hsl(214.3 31.8% 91.4%);--primary: #5645d4;--primary-foreground: hsl(210 40% 98%);--secondary: hsl(253, 53%, 59%);--secondary-foreground: hsl(210 40% 98%);--accent: hsl(240, 5%, 96%);--accent-foreground: #1f1e1c;--destructive: hsl(0 100% 50%);--destructive-foreground: hsl(210 40% 98%);--ring: hsl(215 20.2% 65.1%);--header: rgb(249 250 251 / .9);--radius: .5rem;--md-editor-bg: #fff;--md-editor-text: #1f1e1c;--md-editor-separator: #bcbcbe;--md-editor-border: #e5e7eb;--shadow: 0 1px 2px rgba(0,0,0,.05), 0 4px 12px rgba(0,0,0,.04)}.dark{--background: #0B0B0C;--foreground: #E1E1E1;--secondbackground: #1C1C1E;--hover: #292929;--hover-foreground: hsl(215.4 16.3% 46.9%);--muted: hsl(224, 20%, 19%);--muted-foreground: hsl(215.4 16.3% 56.9%);--desc: #999999;--ignore: #6d6d6d;--tag: #c35af7;--tag-foreground: #1b1b1b;--scrollbar: #1b1b1b;--popover: hsl(224 71% 4%);--popover-foreground: hsl(215 20.2% 65.1%);--card: hsl(224 71% 4%);--card-foreground: hsl(213 31% 91%);--border: #0b0b0c;--input: hsl(216 34% 17%);--primary: #7c6fe4;--primary-foreground: #ffffff;--secondary: hsl(253, 53%, 59%);--secondary-foreground: hsl(210 40% 98%);--accent: hsl(214, 9%, 15%);--accent-foreground: hsl(210 40% 98%);--destructive: hsl(0 63% 31%);--destructive-foreground: hsl(210 40% 98%);--ring: hsl(216 34% 17%);--header: rgba(0, 0, 0, .8);--md-editor-bg: #09090b;--md-editor-text: hsl(210 40% 98%);--md-editor-separator: #4b4b4d;--md-editor-border: #27272a;--shadow: 0 0 1px 1px #303030}:root{--sidebar-width: 256px}*{box-sizing:border-box}html,body{margin:0;padding:0;scroll-behavior:smooth;overflow-y:hidden!important;height:var(--doc-height, 100vh);overscroll-behavior:none;-webkit-overflow-scrolling:touch;background-color:var(--secondbackground);font-family:var(--font-family);color:var(--foreground);-webkit-font-smoothing:antialiased;transition:background-color .3s ease,color .3s ease}::selection{background-color:#47a3f3;color:#fefefe}::marker{color:var(--desc)!important}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}.skip-link{position:absolute;top:-100%;left:8px;padding:8px 16px;background:var(--secondary);color:#fff;border-radius:8px;font-weight:600;z-index:100;font-size:14px}.skip-link:focus{top:8px}::-webkit-scrollbar{background:transparent;width:8px;height:6px}::-webkit-scrollbar-track{background:transparent;transition:all 1s}::-webkit-scrollbar-thumb{background:var(--primary);border-radius:1px;transition:all 1s}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--primary) 80%,transparent)}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.glass-effect{background:#ffffffd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.dark .glass-effect{background:#0b0b0ccc;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.layout{display:flex;width:100%;height:var(--doc-height, 100vh);overflow-x:hidden}.sidebar{width:var(--sidebar-width);height:100%;background:var(--background);padding:1rem;display:flex;flex-direction:column;position:relative;transition:width .3s ease,transform .3s ease,background-color .3s ease;flex-shrink:0;z-index:30;overflow:hidden}.sidebar.is-collapsed{width:72px;padding-left:.5rem;padding-right:.5rem}.sidebar-resizer{position:absolute;right:0;top:0;height:100%;width:8px;cursor:col-resize;z-index:49}.sidebar-resizer.is-resizing{background:color-mix(in srgb,var(--primary) 40%,transparent)}.sidebar-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.sidebar.is-collapsed .sidebar-top{justify-content:center}#sidebar-collapse{transition:transform .3s ease}.sidebar.is-collapsed #sidebar-collapse{transform:rotate(180deg)}.avatar-block{display:flex;align-items:center;gap:.625rem;width:100%}.sidebar.is-collapsed .avatar-block{flex-direction:column-reverse;gap:.5rem;justify-content:center;margin-right:0}.avatar{width:36px;height:36px;border-radius:9999px;background:linear-gradient(135deg,#9936e6,#ffc65c);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px;flex-shrink:0;box-shadow:var(--shadow)}.avatar-meta{display:flex;flex-direction:column;line-height:1.2;min-width:0}.avatar-name{font-weight:800;font-size:14px;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar-role{font-size:11px;color:var(--desc);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar.is-collapsed .avatar-meta{display:none}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;min-height:32px;border-radius:12px;background:transparent;border:0;color:var(--foreground);cursor:pointer;transition:background .2s ease}.icon-btn:hover{background:var(--hover)}.icon-btn.is-hidden-desktop{display:none}@media(max-width:768px){.icon-btn{width:44px;height:44px;min-width:44px;min-height:44px}.back-link{min-height:44px;padding:10px 14px}.sidebar-link{min-height:44px}.chip{min-height:36px;padding:8px 14px}}.sidebar-nav{display:flex;flex-direction:column;gap:4px;margin-top:1rem;font-weight:600;overflow-y:auto;flex:1;padding-right:16px;margin-right:-16px}.sidebar.is-collapsed .sidebar-nav{align-items:center;gap:.5rem}.sidebar-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;cursor:pointer;color:var(--foreground);font-size:14px;font-weight:600;text-decoration:none;transition:background .18s ease,color .18s ease,transform .12s ease}.sidebar-link:hover{background:var(--hover)}.sidebar-link:active{transform:scale(.97)}.sidebar-link.is-active{background:var(--primary);color:var(--primary-foreground);font-weight:700}.sidebar.is-collapsed .sidebar-link{justify-content:center;padding:10px}.sidebar.is-collapsed .sidebar-link .label{display:none}.sidebar-link .label{transition:all .2s ease}.halation{position:absolute;inset:auto 0 0;height:250px;width:250px;overflow:hidden;filter:blur(3rem);z-index:0;pointer-events:none}.halation:before{content:"";display:block;width:100%;height:100%;background:#ffc65c;opacity:.2;clip-path:circle(35% at 50% 50%)}.sidebar-bottom{position:relative;z-index:1;display:flex;gap:4px;padding-top:8px;border-top:1px solid var(--border);margin-top:8px}.sidebar.is-collapsed .sidebar-bottom{justify-content:center;gap:.25rem}@media(min-width:768px){.sidebar.is-collapsed .sidebar-bottom .icon-btn{width:26px;height:26px;min-width:26px;min-height:26px}}.main{width:calc(100% - var(--sidebar-width));height:100%;display:flex;flex-direction:column;background:var(--secondbackground);transition:width .3s ease,background-color .3s ease;overflow:hidden}.layout:has(.sidebar.is-collapsed) .main{width:calc(100% - 72px)}.header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 16px;height:64px;min-height:64px;overflow:hidden;z-index:10}.header-left{display:flex;align-items:center;gap:8px;padding:8px;width:100%;z-index:1}.header-title-row{display:flex;align-items:center;gap:4px}.accent-bar{width:4px;height:16px;background:var(--primary);border-radius:12px;display:none}@media(min-width:768px){.accent-bar{display:block}}.page-title{font-weight:900;font-size:16px;color:var(--foreground);user-select:none}.header-right{display:flex;align-items:center;justify-content:flex-end;gap:8px}@media(min-width:768px){.header-right{gap:16px}}.search{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:14px;background:var(--muted);color:var(--desc);font-size:13px;min-width:160px;max-width:240px;transition:background .2s ease}.search:hover{background:var(--hover)}.search input{background:transparent;border:0;color:var(--foreground);font-size:13px;width:100%;font-family:inherit}.search input::placeholder{color:var(--desc)}.content-scroll{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;margin-top:-4px;position:relative}.layout-container{position:relative;display:flex;flex-direction:column;height:100%;max-width:1200px;margin:0 auto;padding:0 8px}@media(min-width:768px){.layout-container{padding:0 24px}}.corner-blob{position:absolute;top:-37%;right:5%;height:350px;width:350px;overflow:hidden;filter:blur(3rem);z-index:0;pointer-events:none}.corner-blob:before{content:"";display:block;width:100%;height:100%;background:#9936e6;opacity:.2;clip-path:circle(50% at 50% 50%)}.content-inner{position:relative;z-index:10;padding:4px 0 32px}.card{background:var(--background);border:1px solid var(--border);border-radius:12px;padding:20px;display:flex;flex-direction:column;transition:transform .25s ease,border-color .25s ease,background-color .3s ease;box-shadow:none}@media(min-width:768px){.card.is-hoverable:hover{transform:translateY(4px);border-color:color-mix(in srgb,var(--primary) 30%,transparent)}}.card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.card-title{font-weight:800;font-size:15px;color:var(--foreground)}.card-date{font-size:12px;color:var(--desc)}.card-excerpt{color:var(--foreground);opacity:.85;font-size:14px;line-height:1.55}.card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:8px}.project-card>.card-footer{margin-top:auto;padding-top:14px}.tag{display:inline-flex;align-items:center;margin:2px 4px 2px 0;padding:3px 10px;border-radius:9999px;font-size:12px;font-weight:600;color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent)}.tag.is-secondary{color:var(--tag);background:color-mix(in srgb,var(--tag) 12%,transparent)}.tech-chip{gap:6px;padding:5px 11px;font-size:13px;font-weight:500}.tech-chip iconify-icon{color:var(--secondary)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:768px){.grid-2{grid-template-columns:1fr}}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}@media(max-width:1280px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.grid-3{grid-template-columns:1fr}}.exp-list{display:flex;flex-direction:column;gap:16px;max-width:820px}.exp-role{font-size:17px;line-height:1.35}.exp-period{margin-left:auto;white-space:nowrap}.exp-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin-top:-2px;font-size:13px;color:var(--desc)}.exp-company{font-weight:600;color:var(--foreground);text-decoration:none}a.exp-company:hover{color:var(--primary)}.exp-highlights{margin:12px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.exp-highlights li{position:relative;padding-left:18px;font-size:14px;line-height:1.55;color:var(--foreground);opacity:.85}.exp-highlights li:before{content:"";position:absolute;left:4px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--primary);opacity:.45}.exp-stack{display:flex;flex-wrap:wrap;margin-top:12px}.blog-list{display:flex;flex-direction:column;gap:16px;max-width:820px}.blog-card-title{font-size:22px;font-weight:800;margin:8px 0 6px;color:var(--foreground);line-height:1.3}.blog-card-excerpt{font-size:15px;line-height:1.65;color:var(--foreground);opacity:.85}.blog-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--desc);margin-top:4px}.blog-card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.blog-card-meta .meta-item{display:inline-flex;align-items:center;gap:5px}.blog-card-meta .read-est{flex-shrink:0;white-space:nowrap}.blog-card .card-footer{justify-content:flex-end}.doc-card{display:flex;flex-direction:row;align-items:center;gap:12px;padding:12px 14px;min-width:0}.doc-icon{flex-shrink:0;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,#ef4444,#b91c1c);box-shadow:var(--shadow)}.doc-info{flex:1;min-width:0}.doc-info .card-header{margin-bottom:2px;min-width:0}.doc-info .card-title{font-size:14px;min-width:0;overflow-wrap:anywhere}.doc-card .card-excerpt{margin:0 0 4px;font-size:13px;overflow-wrap:anywhere}.doc-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.doc-meta .dot{opacity:.5}.doc-download{flex-shrink:0}.doc-group{margin-bottom:28px}.doc-group:last-child{margin-bottom:0}.doc-group-head{display:flex;align-items:center;gap:8px;margin-bottom:2px}.doc-group-head:not(:has(+.doc-group-hint)){margin-bottom:16px}.doc-group-head iconify-icon{color:var(--secondary);flex-shrink:0}.doc-group-title{font-size:16px;font-weight:800;color:var(--foreground);margin:0}.doc-group-count{font-size:11px;font-weight:700;color:var(--desc);background:var(--muted);border-radius:9999px;padding:2px 8px;line-height:1.4}.doc-group-hint{margin:0 0 12px}.social-card{flex-direction:row;align-items:center;gap:12px;padding:14px;text-decoration:none;color:inherit}.social-icon{flex-shrink:0;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--secondary);box-shadow:var(--shadow)}.social-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.social-info .card-title{font-size:15px}.social-handle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.social-ext{flex-shrink:0;color:var(--desc);transition:color .2s ease,transform .2s ease}.social-card:hover .social-ext{color:var(--foreground);transform:translate(2px,-2px)}.blog-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:28px;align-items:start}.blog-layout .blog-list{max-width:none}.blog-filter{position:sticky;top:16px}.filter-head{display:flex;align-items:center;gap:8px;font-weight:800;font-size:14px;color:var(--foreground);margin-bottom:12px}.filter-head iconify-icon{color:var(--desc)}.filter-chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font-size:13px;font-weight:600;padding:6px 12px;border-radius:9999px;border:1px solid var(--border);background:var(--background);color:var(--foreground);cursor:pointer;font-family:inherit;transition:background .15s ease,color .15s ease,border-color .15s ease}.chip:hover{background:var(--hover)}.chip.is-active{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.chip-count{display:inline-flex;align-items:center;justify-content:center;font-size:11px;min-width:18px;height:18px;padding:0 5px;border-radius:9999px;background:var(--border);color:var(--desc);margin-left:4px}.chip.is-active .chip-count{background:#fff3;color:var(--primary-foreground)}@media(max-width:1024px){.blog-layout{grid-template-columns:1fr}.blog-filter{position:static;order:-1}}.lang-toggle{display:inline-flex;text-decoration:none;flex-shrink:0;cursor:pointer}.lang-toggle-track{position:relative;display:inline-flex;width:62px;height:30px;border-radius:9999px;border:1px solid var(--border);background:var(--background);transition:background .15s ease}.lang-toggle:hover .lang-toggle-track{background:var(--hover)}.lang-toggle-opt{display:inline-flex;align-items:center;justify-content:center;width:50%;font-size:13px;line-height:1;opacity:.35;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.lang-toggle-knob{position:absolute;top:2px;left:2px;width:27px;height:24px;border-radius:9999px;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);display:inline-flex;align-items:center;justify-content:center;font-size:13px;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;transition:transform .18s ease}.lang-toggle-knob.is-id{transform:translate(30px)}@media(prefers-reduced-motion:reduce){.lang-toggle-knob{transition:none}}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:32px;align-items:start}.article-layout .article-main{max-width:760px;min-width:0}.related-articles{position:sticky;top:16px;display:flex;flex-direction:column;gap:4px}.all-projects-link,.all-articles-link{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;margin-top:10px;padding-top:10px;font-size:13px;font-weight:700;color:var(--secondary);border-top:1px solid var(--border)}.all-projects-link:hover,.all-articles-link:hover{text-decoration:underline}.related-head{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--desc);padding:4px 12px;margin-bottom:4px}.related-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;text-decoration:none;color:inherit;transition:background .15s ease}.related-item:hover{background:var(--hover)}.related-title{font-size:13px;font-weight:600;color:var(--foreground);line-height:1.35}.related-meta{font-size:12px;color:var(--desc)}@media(max-width:1100px){.article-layout{grid-template-columns:1fr}.related-articles{position:static;margin-top:16px}}.sidebar-section{position:relative;z-index:1;display:flex;flex-direction:column;gap:4px;padding-top:8px;margin-top:8px;border-top:1px solid var(--border)}.sidebar-section-title{font-size:11px;font-weight:700;color:var(--desc);text-transform:uppercase;letter-spacing:.05em;padding:4px 8px;margin-bottom:4px}.sidebar.is-collapsed .sidebar-section-title{display:none}.sidebar.is-collapsed .sidebar-section{align-items:center}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--desc);padding:6px 10px;border-radius:12px;transition:background .2s ease,color .2s ease}.back-link:hover{background:var(--hover);color:var(--foreground)}.detail-header{margin-bottom:20px}.detail-title{display:block;font-size:clamp(24px,5vw,32px);font-weight:900;line-height:1.2;margin:8px 0 10px;color:var(--foreground)}.detail-subtitle{display:block;font-size:16px;color:var(--desc);margin-bottom:12px}.detail-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--desc)}.detail-meta .meta-item{display:inline-flex;align-items:center;gap:6px}.detail-banner{height:220px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin:16px 0 24px;position:relative;overflow:hidden}.detail-banner .banner-icon{color:#fff;opacity:.9}.prose{max-width:760px;font-size:15px;line-height:1.7;color:var(--foreground)}.prose h2{font-size:22px;font-weight:800;margin:28px 0 12px;color:var(--foreground)}.prose h3{font-size:17px;font-weight:700;margin:22px 0 10px;color:var(--foreground)}.prose p{margin:14px 0;opacity:.92}.prose ul,.prose ol{padding-left:22px;margin:14px 0}.prose li{margin:6px 0;opacity:.92}.prose code{background:var(--muted);padding:2px 6px;border-radius:5px;font-size:13px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;color:var(--foreground)}.prose pre{background:var(--muted);padding:16px;border-radius:12px;overflow-x:auto;margin:18px 0;border:1px solid var(--border)}.prose pre code{background:transparent;padding:0;font-size:13px;line-height:1.6}.prose blockquote{border-left:3px solid var(--primary);padding:4px 0 4px 16px;margin:18px 0;color:var(--desc);font-style:italic}.prose a{color:var(--secondary);text-decoration:underline}.prose img{max-width:100%;border-radius:12px;margin:16px 0}.author-card{display:flex;align-items:flex-start;gap:16px;padding:24px;margin:2.5rem 0;background:var(--n-canvas);border:1px solid var(--n-hairline);border-radius:12px}.author-avatar{width:56px;height:56px;flex-shrink:0;border-radius:9999px;background:linear-gradient(135deg,#9936e6,#ffc65c);color:#fff;font-weight:700;font-size:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px #0f0f0f0f}.author-info{min-width:0}.author-name{font-size:18px;font-weight:700;color:var(--n-ink);letter-spacing:-.01em}.author-role{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--n-steel);margin-top:3px}.author-bio{font-size:14px;line-height:1.55;color:var(--n-slate);margin-top:8px}.project-section{margin:2rem 0}.project-section h3{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--desc);margin-bottom:10px}.feature-list{list-style:none;padding:0;margin:0}.feature-list li{display:flex;align-items:flex-start;gap:10px;padding:8px 0;font-size:15px;color:var(--foreground);opacity:.9}.feature-list li iconify-icon{color:var(--secondary);flex-shrink:0;margin-top:2px}.screenshot-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:12px 0}.screenshot-row .shot{height:140px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;opacity:.9}@media(max-width:768px){.screenshot-row{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:9999px;font-weight:500;font-size:14px;cursor:pointer;border:0;transition:background .2s ease,transform .15s ease;font-family:inherit}.btn-primary{background:var(--primary);color:var(--primary-foreground)}.btn-primary:hover{transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--foreground)}.btn-ghost:hover{background:var(--hover)}.btn-outline{background:transparent;color:var(--foreground);border:1px solid var(--border)}.btn-outline:hover{background:var(--hover)}@media(max-width:768px){.btn{min-height:44px}}.empty-state{text-align:center;padding:32px 16px;color:var(--ignore)}.sidebar-backdrop{position:fixed;inset:0;background:#0006;z-index:40;opacity:0;pointer-events:none;transition:opacity .3s ease}.sidebar-backdrop.is-open{opacity:1;pointer-events:auto}.hamburger{display:none}@media(max-width:767px){.sidebar{position:fixed;top:0;left:0;transform:translate(-100%);width:var(--sidebar-width)!important;height:var(--doc-height, 100vh);z-index:50}.sidebar.is-open{transform:translate(0)}.main{width:100%!important}.hamburger{display:inline-flex}.header{position:fixed;top:0;left:0;right:0;border-radius:0 0 12px 12px;z-index:11;background:var(--background);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.dark .header{background:#000c}.content-scroll{padding-top:72px;height:calc(100% + -0px)}.accent-bar{display:none}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.text-desc{color:var(--desc)}.text-sm{font-size:13px}.text-xs{font-size:12px}.font-bold{font-weight:800}.w-full{width:100%}.text-center{text-align:center}.relative{position:relative}.home{display:flex;flex-direction:column;gap:16px}.hero{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:20px;background:var(--card);padding:28px;isolation:isolate}.hero-grid{position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(circle,color-mix(in srgb,var(--foreground) 9%,transparent) 1px,transparent 1.6px);background-size:22px 22px;-webkit-mask-image:radial-gradient(130% 120% at 0% 0%,#000 25%,transparent 72%);mask-image:radial-gradient(130% 120% at 0% 0%,#000 25%,transparent 72%);opacity:.55}.hero-spotlight{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(280px circle at var(--mx, 30%) var(--my, 25%),color-mix(in srgb,var(--secondary) 30%,transparent),transparent 62%);opacity:0;transition:opacity .35s ease}.hero:hover .hero-spotlight{opacity:1}.hero-row{position:relative;z-index:1;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.hero-avatar{position:relative;flex-shrink:0}.hero-avatar-face{width:76px;height:76px;font-size:26px;box-shadow:var(--shadow)}.hero-avatar-img{aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius)}.hero-status-dot{position:absolute;right:2px;bottom:2px;z-index:2;width:16px;height:16px;border-radius:50%;background:#22c55e;border:3px solid var(--card)}.hero-status-dot:after{content:"";position:absolute;inset:-3px;border-radius:50%;background:#22c55e;opacity:.55;animation:ping 1.9s cubic-bezier(0,0,.2,1) infinite}.hero-intro{flex:1;min-width:220px}.hero-eyebrow{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;color:var(--secondary)}.hero-name{margin:2px 0 6px;font-size:clamp(30px,5vw,44px);font-weight:900;line-height:1.04;letter-spacing:-.025em;color:var(--foreground)}.hero-role{margin:0 0 12px;font-size:16px;color:var(--desc);font-weight:600;min-height:1.4em}.hero-role .caret{display:inline-block;width:2px;height:1em;margin-left:3px;background:var(--secondary);vertical-align:-2px;animation:blink 1s steps(2) infinite}.hero-meta{display:flex;flex-wrap:wrap;gap:8px}.hero-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--desc);padding:5px 11px;border-radius:9999px;background:var(--muted)}.hero-chip iconify-icon{color:var(--secondary)}.hero-actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--card);transition:transform .2s ease,border-color .2s ease}.stat:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--secondary) 45%,var(--border))}.stat-value{display:flex;align-items:baseline}.stat-num{font-size:28px;font-weight:900;color:var(--foreground);letter-spacing:-.02em;line-height:1.1}.stat-suffix{font-size:20px;font-weight:800;color:var(--secondary)}.stat-label{font-size:12px;color:var(--desc);font-weight:600}.now-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.now-list li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--foreground);opacity:.9}.now-list li iconify-icon{color:var(--secondary);flex-shrink:0}.findme-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:12px;text-decoration:none;color:var(--foreground);font-size:14px;font-weight:600;transition:background .15s ease}.findme-link:hover{background:var(--hover)}.findme-link>iconify-icon:first-child{color:var(--secondary);flex-shrink:0}.findme-link span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-foot{text-align:center;font-size:12px;color:var(--ignore);padding:6px 0 2px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.reveal{opacity:0;transform:translateY(18px);animation:home-reveal .7s cubic-bezier(.22,.68,.18,1.01) forwards;animation-delay:var(--d, 0s)}@keyframes home-reveal{to{opacity:1;transform:none}}@keyframes ping{75%,to{transform:scale(2.3);opacity:0}}@keyframes blink{50%{opacity:0}}@media(max-width:768px){.stats{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{animation:none;opacity:1;transform:none}.hero-status-dot:after{animation:none}.hero-role .caret{animation:none;opacity:0}}:root{--n-primary: #5645d4;--n-primary-pressed: #4534b3;--n-ink: #1a1a1a;--n-charcoal: #37352f;--n-slate: #5d5b54;--n-steel: #787671;--n-stone: #a4a097;--n-canvas: #ffffff;--n-surface: #f6f5f4;--n-hairline: #e5e3df;--n-hairline-soft: #ede9e4;--n-hairline-strong: #c8c4be;--n-link: #0075de;--n-tint-lavender: #e6e0f5;--n-tint-lavender-ink: #391c57;--n-tint-peach: #ffe8d4;--n-tint-peach-ink: #793400;--n-tint-mint: #d9f3e1;--n-tint-mint-ink: #1aae39;--n-tint-sky: #dcecfa;--n-tint-sky-ink: #005bab}.dark{--n-primary: #7c6fe4;--n-primary-pressed: #6357d6;--n-ink: #e8e6e1;--n-charcoal: #cfccc4;--n-slate: #9c998f;--n-steel: #7d7a71;--n-stone: #6d6a62;--n-canvas: var(--card);--n-surface: color-mix(in srgb, var(--foreground) 4%, var(--card));--n-hairline: var(--border);--n-hairline-soft: color-mix(in srgb, var(--border) 60%, transparent);--n-hairline-strong: color-mix(in srgb, var(--foreground) 20%, var(--border));--n-link: #4b9bf0;--n-tint-lavender: color-mix(in srgb, #7b3ff2 18%, var(--card));--n-tint-lavender-ink: #cdb9f6;--n-tint-peach: color-mix(in srgb, #dd5b00 18%, var(--card));--n-tint-peach-ink: #f0b48a;--n-tint-mint: color-mix(in srgb, #1aae39 16%, var(--card));--n-tint-mint-ink: #8fdca4;--n-tint-sky: color-mix(in srgb, #0075de 18%, var(--card));--n-tint-sky-ink: #9ecdf5}.home{position:relative;isolation:isolate;gap:20px;color:var(--n-charcoal)}.home h1,.home h2,.home h3,.home .card-title{color:var(--n-ink)}.home .text-desc{color:var(--n-slate)}.home .text-sm{font-size:14px;line-height:1.5}.home>*:not(.home-mesh){position:relative;z-index:1}.content-inner>*:not(.home-mesh){position:relative;z-index:1}.home-mesh{position:fixed;top:-10vh;right:-6vw;width:60vw;height:120vh;z-index:0;pointer-events:none;background:radial-gradient(38% 32% at 64% 14%,rgba(214,182,246,.5),transparent 70%),radial-gradient(34% 28% at 33% 38%,rgba(255,100,200,.3),transparent 70%),radial-gradient(44% 38% at 80% 52%,rgba(98,174,240,.42),transparent 72%),radial-gradient(36% 32% at 46% 74%,rgba(42,157,153,.28),transparent 70%),radial-gradient(30% 26% at 78% 90%,rgba(221,91,0,.26),transparent 70%);filter:blur(50px);opacity:.5}.dark .home-mesh{opacity:.36}@media(max-width:768px){.home-mesh{display:none}}.home .hero{background:var(--n-canvas);border:1px solid var(--n-hairline);border-radius:16px;padding:32px}.dark .home .hero{background:linear-gradient(180deg,var(--n-canvas) 0%,#0a0a1a 100%)}.home .hero-overlay{position:absolute;inset:0;z-index:1;background:#00000026;pointer-events:none;border-radius:inherit}.dark .home .hero-overlay{background:#00000047}.home .hero-grid{background-image:radial-gradient(circle,color-mix(in srgb,var(--n-ink) 7%,transparent) 1px,transparent 1.6px);background-size:22px 22px}.home .hero-spotlight{background:radial-gradient(300px circle at var(--mx, 30%) var(--my, 25%),color-mix(in srgb,var(--n-primary) 22%,transparent),transparent 62%)}.home .hero-eyebrow{font-family:var(--font-family);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--n-stone)}.home .hero-name{margin:4px 0 6px;font-size:clamp(32px,4vw,40px);font-weight:600;letter-spacing:-.02em;line-height:1.05;color:var(--n-ink)}.home .hero-role{color:var(--n-slate);font-size:16px;font-weight:500}.home .hero-role .caret{background:var(--n-primary)}.home .hero-chip{background:var(--n-surface);color:var(--n-charcoal);border-radius:9999px;padding:5px 11px;font-size:12px;font-weight:500}.home .hero-chip iconify-icon{color:var(--n-primary)}.home .btn{border-radius:8px;font-weight:500;font-size:14px;padding:9px 16px;transition:background .18s ease,border-color .18s ease,transform .15s ease}.home .btn-primary{background:var(--n-primary);color:#fff}.home .btn-primary:hover{background:var(--n-primary-pressed)}.home .btn-outline{background:transparent;color:var(--n-ink);border:1px solid var(--n-hairline-strong)}.home .btn-outline:hover{background:var(--n-surface)}.home .stats{background:var(--n-surface);border:1px solid var(--n-hairline);border-radius:12px;padding:20px;display:grid;grid-template-columns:repeat(4,1fr);gap:0}.home .stat{background:transparent;border:0;border-right:1px solid var(--n-hairline-soft);border-radius:0;padding:4px 20px;transition:none}.home .stat:last-child{border-right:0}.home .stat:hover{transform:none;border-color:transparent}.home .stat-num{color:var(--n-ink);font-size:30px;font-weight:700;letter-spacing:-.02em}.home .stat-suffix{color:var(--n-primary)}.home .stat-label{color:var(--n-steel);font-size:12px;font-weight:500}.home .card{background:var(--n-canvas);border:1px solid var(--n-hairline);border-radius:12px;padding:20px;box-shadow:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.home .card-header{margin-bottom:10px}.home .card-header iconify-icon{color:var(--n-primary)}.home .card-title{font-size:15px;font-weight:600}@media(hover:hover){.home .card.is-hoverable:hover{transform:translateY(-2px);border-color:var(--n-hairline-strong);box-shadow:0 1px 2px #0f0f0f0a}}.dark .home .card.is-hoverable:hover{box-shadow:none}.home .home-side-col{display:flex;flex-direction:column;gap:16px;align-self:start}.home .card.is-currently{background:var(--n-tint-lavender);border-color:color-mix(in srgb,var(--n-tint-lavender-ink) 12%,var(--n-tint-lavender))}.home .card.is-currently .card-title{color:var(--n-tint-lavender-ink)}.home .card.is-currently .now-list li{color:var(--n-tint-lavender-ink);opacity:1}.home .card.is-currently .now-list li iconify-icon{color:var(--n-tint-lavender-ink)}.home .tag.is-secondary{background:var(--n-tint-lavender);color:var(--n-tint-lavender-ink);border-radius:6px;padding:4px 10px;margin:2px 4px 2px 0;font-size:12px;font-weight:500;border:1px solid transparent;transition:transform .15s ease,background .15s ease}@media(hover:hover){.home .tag.is-secondary:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--n-tint-lavender) 65%,var(--n-tint-lavender-ink))}}.home .findme-link{background:var(--n-surface);border:1px solid var(--n-hairline-soft);border-radius:8px;color:var(--n-charcoal)}@media(hover:hover){.home .findme-link:hover{background:var(--n-canvas);border-color:var(--n-hairline)}}.home .findme-link>iconify-icon:first-child{color:var(--n-primary)}.home .contact-cta{background:var(--n-surface);border:1px solid var(--n-hairline);border-radius:12px;padding:36px 24px}.home .contact-cta-title{color:var(--n-ink);font-size:22px;font-weight:600}.home .contact-cta-sub{color:var(--n-slate)}.home .home-section{display:flex;flex-direction:column;gap:12px}.home .section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px}.home .section-title{font-size:16px;font-weight:600;color:var(--n-ink);margin:0}.home .section-link{color:var(--n-link);font-size:13px;font-weight:500}.home .section-link:hover{text-decoration:underline}.home .tag-badge{display:inline-flex;align-items:center;border-radius:6px;padding:3px 9px;margin:2px 4px 2px 0;font-size:11px;font-weight:500}.home .tint-0{background:var(--n-tint-lavender);color:var(--n-tint-lavender-ink)}.home .tint-1{background:var(--n-tint-peach);color:var(--n-tint-peach-ink)}.home .tint-2{background:var(--n-tint-mint);color:var(--n-tint-mint-ink)}.home .tint-3{background:var(--n-tint-sky);color:var(--n-tint-sky-ink)}@media(max-width:768px){.home .stats{grid-template-columns:repeat(2,1fr)}.home .stat{border-right:1px solid var(--n-hairline-soft);border-bottom:1px solid var(--n-hairline-soft)}.home .stat:nth-child(2n){border-right:0}.home .stat:nth-last-child(-n+2){border-bottom:0}}.home .work-card{display:flex;flex-direction:column;gap:8px;padding:18px;text-decoration:none;color:inherit;background:var(--n-canvas);border:1px solid var(--n-hairline);border-radius:12px;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.home .work-icon{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--n-primary);margin-bottom:4px}.home .work-icon iconify-icon{color:#fff}.home .work-title{font-size:15px;font-weight:600;color:var(--n-ink);margin:0}.home .work-excerpt{margin:0}.home .work-tags{margin-top:auto;padding-top:4px}@media(hover:hover){.home .work-card:hover{transform:translateY(-2px);border-color:var(--n-hairline-strong);box-shadow:0 1px 2px #0f0f0f0a}}.dark .home .work-card:hover{box-shadow:none}.home .write-list{display:flex;flex-direction:column}.home .write-row{display:flex;align-items:center;gap:12px;padding:14px 8px;border-bottom:1px solid var(--n-hairline-soft);text-decoration:none;color:inherit;transition:background .15s ease}.home .write-row:last-child{border-bottom:0}.home .write-title{flex:1;min-width:0;font-size:15px;font-weight:500;color:var(--n-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home .write-date{font-size:13px;color:var(--n-steel);flex-shrink:0}.home .write-arrow{color:var(--n-steel);flex-shrink:0;transition:transform .15s ease,color .15s ease}@media(hover:hover){.home .write-row:hover{background:var(--n-surface)}.home .write-row:hover .write-arrow{transform:translate(3px);color:var(--n-primary)}}.glowable{position:relative;isolation:isolate}.glowable>*{position:relative;z-index:1}.glowable:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(240px circle at var(--gx, 50%) var(--gy, 50%),color-mix(in srgb,var(--n-primary) 10%,transparent),transparent 70%);opacity:0;transition:opacity .2s;z-index:0}@media(hover:hover){.glowable:hover:after{opacity:1}}.reveal-io{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.22,.68,.18,1) var(--d, 0s),transform .6s cubic-bezier(.22,.68,.18,1) var(--d, 0s)}.reveal-io.is-in{opacity:1;transform:none}.magnetic{display:inline-block;transition:transform .2s ease-out;will-change:transform}.reveal-io.is-in .skills-chips .tag.is-secondary{animation:skill-in .3s cubic-bezier(.22,.68,.18,1) backwards;animation-delay:calc(var(--i, 0) * 40ms)}@keyframes skill-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.reveal-io{opacity:1;transform:none;transition:none}.magnetic{transition:none}.reveal-io.is-in .skills-chips .tag.is-secondary{animation:none}.glowable:after{display:none}}.contact-form{display:flex;flex-direction:column;gap:1rem;margin-top:4px}.form-group{display:flex;flex-direction:column;gap:4px}.form-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--desc)}.form-input{background:var(--secondbackground);border:1px solid var(--border);border-radius:14px;padding:10px 14px;color:var(--foreground);font-size:14px;font-family:inherit;transition:border-color .2s ease}.form-input:focus{border-color:var(--secondary)}.form-input::placeholder{color:var(--desc)}.form-textarea{resize:vertical;min-height:120px}.contact-submit{align-self:flex-start}.contact-submit:disabled{opacity:.6;cursor:default}.form-status{margin-top:.25rem;padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.4}.form-status-success{background:color-mix(in srgb,#22c55e 15%,transparent);color:#22c55e}.form-status-error{background:color-mix(in srgb,#ef4444 15%,transparent);color:#ef4444}.contact-alt{display:flex;flex-direction:column;gap:4px;margin-top:12px}.contact-alt-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;text-decoration:none;color:var(--foreground);transition:background .2s ease}.contact-alt-item:hover{background:var(--hover)}.contact-alt-item>svg:first-child{color:var(--secondary);flex-shrink:0}.contact-alt-item div{display:flex;flex-direction:column;gap:2px}.contact-cta{text-align:center;padding:2rem;display:flex;flex-direction:column;align-items:center;gap:.25rem}.contact-cta-title{margin:.75rem 0 .25rem;font-weight:800;font-size:20px;color:var(--foreground)}.contact-cta-sub{margin-bottom:1rem}.pagination{display:flex;align-items:center;justify-content:center;gap:12px}.pagination-info{user-select:none}
