@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f6f6;--card-bg:#fff;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--border:#00000014;--border-hover:#0000003d;--accent:#04080f;--accent-hover:#101318;--on-accent:#fff;--focus:#94a3b8;--nav-bg:#ffffffd9;--nav-shadow:0 4px 20px #00000014;--hero-border:var(--border);--hero-shadow:var(--shadow-md);--hero-pattern-color:#000;--hero-pattern-text:var(--bg);--avatar-border:#fff;--avatar-image-padding:.4rem;--avatar-image-border-width:4px;--avatar-frame-padding:0px;--avatar-frame-border-width:0px;--avatar-frame-border:transparent;--avatar-frame-gap:transparent;--code-canvas-logo:#94a3b8;--code-canvas-logo-hover:#000;--color-page:var(--bg);--color-surface:var(--card-bg);--color-surface-muted:#efefef;--color-text:var(--text-primary);--color-text-soft:var(--text-secondary);--color-text-muted:var(--text-muted);--color-border:var(--border);--color-accent:var(--accent);--color-focus:var(--focus);--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.75rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-body:1.6;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.25rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--container:800px;--page-gutter:1.25rem;--header-offset:4rem;--radius-xs:8px;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-pill:999px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 6px 20px #00000014;--shadow-lg:0 12px 40px #0000001f;--ease-standard:cubic-bezier(.4, 0, .2, 1);--transition-fast:.2s ease;--transition-base:.25s ease;--transition-smooth:.4s var(--ease-standard)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--card-bg:#0a0a0a;--text-primary:#ededed;--text-secondary:#a1a1a1;--text-muted:#666;--border:#ffffff24;--border-hover:#ffffff52;--accent:#fff;--accent-hover:#ededed;--on-accent:#000;--focus:#888;--nav-bg:#000000c7;--nav-shadow:0 0 0 1px #ffffff14;--hero-border:transparent;--hero-shadow:none;--hero-pattern-color:#fff;--hero-pattern-text:#000;--avatar-border:#000;--avatar-image-padding:0px;--avatar-image-border-width:3px;--avatar-frame-padding:.2rem;--avatar-frame-border-width:4px;--avatar-frame-border:#000;--avatar-frame-gap:#fff;--code-canvas-logo:gray;--code-canvas-logo-hover:#fff;--color-surface-muted:#111;--shadow-sm:0 1px 2px #000000b3;--shadow-md:0 0 0 1px #ffffff14;--shadow-lg:0 0 0 1px #ffffff1a}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}.theme-transitioning *,.theme-transitioning :before,.theme-transitioning :after{transition:none!important;animation-play-state:paused!important}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-base), color var(--transition-base)}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}a{color:inherit;text-decoration:none}img,picture,svg,canvas{max-width:100%;display:block}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}#app{min-height:100vh}.page-shell{width:min(100% - (var(--page-gutter) * 2), var(--container));margin-inline:auto}.section{max-width:var(--container);padding:var(--space-3xl) var(--page-gutter);margin:0 auto}.section-heading,.section-title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:1.15}.section-info{margin-top:var(--space-xs);color:var(--text-secondary);font-size:.95rem}.eyebrow{color:var(--text-secondary);font-size:.78rem;font-weight:var(--font-weight-bold);letter-spacing:.12em;text-transform:uppercase}.muted{color:var(--text-secondary)}.divider{width:min(100% - (var(--page-gutter) * 2), var(--container));background:var(--border);border:0;height:1px;margin-inline:auto}@media (width>=640px){:root{--page-gutter:1.5rem}}.markdown-body[data-v-5e4c933b]{color:var(--text-primary)}.markdown-body[data-v-5e4c933b] h1,.markdown-body[data-v-5e4c933b] h2,.markdown-body[data-v-5e4c933b] h3{margin-top:var(--space-xl);margin-bottom:var(--space-sm);line-height:1.2}.markdown-body[data-v-5e4c933b] h1:first-child{margin-top:0}.markdown-body[data-v-5e4c933b] h1[id],.markdown-body[data-v-5e4c933b] h2[id],.markdown-body[data-v-5e4c933b] h3[id]{scroll-margin-top:6rem}.markdown-body[data-v-5e4c933b] p{margin-bottom:var(--space-md);color:var(--text-secondary);line-height:1.7}.markdown-body[data-v-5e4c933b] a{color:var(--accent);font-weight:var(--font-weight-semibold)}.toc-desktop[data-v-718be13a]{display:none}.toc-mobile[data-v-718be13a]{margin-bottom:var(--space-xl);border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:var(--font-size-sm)}.toc-mobile summary[data-v-718be13a]{padding:var(--space-sm) 0;cursor:pointer;font-weight:var(--font-weight-medium)}.toc-mobile nav[data-v-718be13a]{padding:0 0 var(--space-sm);gap:.15rem;display:grid}.toc-link[data-v-718be13a]{padding:.3rem 0 .3rem var(--space-sm);border-left:1px solid var(--border);color:var(--text-muted);transition:border-color var(--transition-fast), color var(--transition-fast);line-height:1.35;display:block}.toc-link[data-v-718be13a]:hover,.toc-link[data-v-718be13a]:focus-visible,.toc-link[aria-current=location][data-v-718be13a]{border-color:var(--text-primary);color:var(--text-primary)}.toc-link-level-2[data-v-718be13a]{padding-left:var(--space-lg)}.toc-link-level-3[data-v-718be13a]{padding-left:var(--space-xl)}@media (width>=1000px){.table-of-contents[data-v-718be13a]{min-width:0}.toc-mobile[data-v-718be13a]{display:none}.toc-desktop[data-v-718be13a]{display:block}.toc-label[data-v-718be13a]{margin-bottom:var(--space-sm);color:var(--text-secondary);font-size:.75rem;font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase}}.reading-layout[data-v-77a0e9a9]{gap:var(--space-xl);display:grid}.reading-layout-toc[data-v-77a0e9a9]:empty,.reading-layout-balance[data-v-77a0e9a9]{display:none}@media (width>=1000px){.reading-layout[data-v-77a0e9a9]{grid-template-columns:minmax(130px, 1fr) minmax(0, var(--container)) minmax(130px, 1fr);align-items:start;gap:clamp(1.5rem,3vw,3rem)}.reading-layout-toc[data-v-77a0e9a9],.reading-layout-toc[data-v-77a0e9a9]:empty,.reading-layout-balance[data-v-77a0e9a9]{display:block}.reading-layout-toc[data-v-77a0e9a9]{max-height:calc(100vh - 9rem);position:sticky;top:7rem;overflow-y:auto}}.site-footer[data-v-eb4e4342]{border-top:1px solid var(--border);text-align:center;padding:3rem 1.5rem}.footer-socials[data-v-eb4e4342]{flex-flow:wrap;justify-content:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.social-link[data-v-eb4e4342]{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--card-bg);color:var(--text-secondary);font-size:.85rem;font-weight:var(--font-weight-medium);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);justify-content:center;align-items:center;gap:.4rem;padding:.5rem .9rem;text-decoration:none;display:inline-flex}.social-link[data-v-eb4e4342]:hover,.social-link[data-v-eb4e4342]:focus-visible{border-color:var(--accent);background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.social-icon[data-v-eb4e4342]{width:16px;height:16px;color:inherit;display:inline-flex}.social-icon[data-v-eb4e4342] svg{width:100%;height:100%}.social-text[data-v-eb4e4342]{line-height:1}.footer-text[data-v-eb4e4342]{color:var(--text-muted);font-size:.8rem}.site-header[data-v-4ac6b8b1]{top:var(--space-md);z-index:100;width:auto;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--nav-bg);box-shadow:var(--nav-shadow);-webkit-backdrop-filter:blur(12px);transition:background-color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);position:fixed;left:50%;transform:translate(-50%)}.navbar[data-v-4ac6b8b1]{align-items:center;gap:var(--space-xs);justify-content:center;display:flex}.nav-list[data-v-4ac6b8b1]{gap:.125rem;display:flex}.nav-list a[data-v-4ac6b8b1]{color:var(--text-secondary);font-size:.8rem;font-weight:var(--font-weight-medium);border-radius:var(--radius-xs);opacity:1;transition:background var(--transition-fast), color var(--transition-fast), opacity .8s ease;align-items:center;padding:.35rem .7rem;display:inline-flex}.nav-list a[data-v-4ac6b8b1]:hover{opacity:.85}.nav-list a[data-v-4ac6b8b1]:hover,.nav-list a[data-v-4ac6b8b1]:focus-visible,.nav-list a.active[data-v-4ac6b8b1]{background:var(--accent);color:var(--on-accent);outline:none}.theme-toggle[data-v-4ac6b8b1]{border:1px solid var(--border);border-radius:var(--radius-xs);width:2rem;height:2rem;color:var(--text-secondary);transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:inline-flex}.theme-toggle[data-v-4ac6b8b1]:hover,.theme-toggle[data-v-4ac6b8b1]:focus-visible{border-color:var(--accent);background:var(--accent);color:var(--on-accent);outline:none}@media (width>=640px){.nav-list[data-v-4ac6b8b1]{gap:.25rem}.nav-list a[data-v-4ac6b8b1]{font-size:var(--font-size-sm);padding:.4rem .9rem}}.dump-post-view[data-v-f7d91163]{flex-direction:column;min-height:100vh;display:flex}.dump-post[data-v-f7d91163]{flex:1;width:100%;max-width:1280px;padding-top:8rem}.dump-post-topbar[data-v-f7d91163]{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl);display:flex}.dump-post-topbar[data-v-f7d91163],.dump-post>.back-link[data-v-f7d91163],.dump-post>.section-heading[data-v-f7d91163]{max-width:var(--container);margin-left:auto;margin-right:auto}.back-link[data-v-f7d91163]{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);align-items:center;gap:.4rem;display:inline-flex}.back-link[data-v-f7d91163]:hover,.back-link[data-v-f7d91163]:focus-visible{color:var(--accent)}.dump-date[data-v-f7d91163]{color:var(--text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap}.dump-card[data-v-12c263e3]{transition:color var(--transition-base), transform var(--transition-base);padding:1.45rem 0;display:block;position:relative}.dump-card[data-v-12c263e3]:before,.dump-card[data-v-12c263e3]:after{content:"";height:1px;position:absolute;bottom:0;left:0;right:0}.dump-card[data-v-12c263e3]:before{background:var(--border)}.dump-card[data-v-12c263e3]:after{background:var(--accent);transform-origin:0;transition:transform var(--transition-smooth);transform:scaleX(0)}.dump-card[data-v-12c263e3]:hover,.dump-card[data-v-12c263e3]:focus-visible{transform:translate(3px)}.dump-card[data-v-12c263e3]:hover:after,.dump-card[data-v-12c263e3]:focus-visible:after{transform:scaleX(1)}.dump-line[data-v-12c263e3]{justify-content:space-between;align-items:center;gap:var(--space-lg);min-width:0;display:flex}.dump-title-group[data-v-12c263e3]{align-items:center;gap:var(--space-xs);min-width:0;display:inline-flex}.dump-source-icon[data-v-12c263e3]{color:var(--text-muted);transition:color var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.dump-card:hover .dump-source-icon[data-v-12c263e3],.dump-card:focus-visible .dump-source-icon[data-v-12c263e3]{color:var(--text-primary)}.dump-source-logo[data-v-12c263e3]{width:14px;max-width:none;height:14px;color:var(--code-canvas-logo);transition:color var(--transition-fast)}.dump-card:hover .dump-source-logo[data-v-12c263e3],.dump-card:focus-visible .dump-source-logo[data-v-12c263e3]{color:var(--code-canvas-logo-hover)}.dump-title[data-v-12c263e3]{min-width:0;color:var(--text-primary);font-size:1.1rem;font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;transition:color var(--transition-fast);line-height:1.2;overflow:hidden}.dump-date[data-v-12c263e3]{color:var(--text-muted);font-size:.78rem;font-weight:var(--font-weight-medium);white-space:nowrap;flex-shrink:0;align-items:center;gap:.4rem;display:inline-flex}@media (width<=520px){.dump-line[data-v-12c263e3]{align-items:flex-start;gap:var(--space-sm)}.dump-title-group[data-v-12c263e3]{flex:auto}.dump-title[data-v-12c263e3]{overflow-wrap:anywhere;text-overflow:clip;white-space:normal;overflow:visible}}.dumps-view[data-v-1f638902]{flex-direction:column;min-height:100vh;display:flex}.dumps-page[data-v-1f638902]{flex:1;width:100%;padding-top:8rem}.dumps-page[data-v-1f638902] .section-heading{font-weight:var(--font-weight-semibold)}.dumps-list[data-v-1f638902]{margin-top:var(--space-2xl);display:grid}.hero-card[data-v-31a89ea8]{border:2px solid var(--hero-border);border-radius:var(--radius-md);background:var(--card-bg);width:100%;min-height:400px;box-shadow:var(--hero-shadow);position:relative;overflow:hidden}.hero-pattern[data-v-31a89ea8]{z-index:0;width:125%;height:125%;color:var(--hero-pattern-color);fill:currentColor;object-fit:cover;object-position:center;pointer-events:none;position:absolute;bottom:170px}.hero-wrapper[data-v-31a89ea8]{z-index:3;padding:2rem 1.25rem;position:relative}.hero-header[data-v-31a89ea8]{z-index:3;color:var(--text-primary);text-align:center;flex-direction:column;justify-content:start;align-items:center;gap:1.5rem;display:flex;position:relative}.hero-avatar-wrap[data-v-31a89ea8]{cursor:pointer;position:relative}.hero-avatar-frame[data-v-31a89ea8]{width:150px;height:150px;padding:var(--avatar-frame-padding);border:var(--avatar-frame-border-width) solid var(--avatar-frame-border);background:var(--avatar-frame-gap);border-radius:50%;transition:scale .18s,opacity .35s,transform .45s;display:block}.hero-avatar-wrap:active .hero-avatar-frame[data-v-31a89ea8]{scale:.94}.glasses[data-v-31a89ea8]{z-index:2;opacity:0;pointer-events:none;width:150px;height:150px;transition:opacity .35s,transform .45s;position:absolute;left:.1rem;transform:translate(80px)scale(1)}.hero-avatar-wrap:hover .glasses[data-v-31a89ea8],.hero-avatar-wrap.glasses-active .glasses[data-v-31a89ea8]{opacity:1;transform:translate(0)scale(1)}.hero-avatar[data-v-31a89ea8]{width:100%;height:100%;padding:var(--avatar-image-padding);border:var(--avatar-image-border-width) solid var(--avatar-border);object-fit:cover;border-radius:50%;display:block}.hero-body[data-v-31a89ea8]{flex-direction:column;flex:1;gap:1.25rem;min-width:0;display:flex}.hero-info[data-v-31a89ea8]{flex-direction:column;justify-content:center;align-items:center;gap:.4rem;display:flex}.hero-name[data-v-31a89ea8]{height:2.8rem;color:var(--hero-pattern-text);font-size:1.75rem;font-weight:var(--font-weight-bold);letter-spacing:-.02em;align-items:center;gap:.05em;display:inline-flex}.hero-name-text[data-v-31a89ea8]{white-space:nowrap;display:inline-block}.hero-name-cursor[data-v-31a89ea8]{color:var(--hero-pattern-text);-webkit-user-select:none;user-select:none;margin-left:1px;font-size:1.1em;font-weight:300;line-height:1;animation:.75s step-end infinite cursorBlink-31a89ea8;display:inline-block}.hero-bio[data-v-31a89ea8]{color:var(--hero-pattern-text);font-size:.95rem;line-height:1.7}.hero-actions[data-v-31a89ea8]{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.btn[data-v-31a89ea8]{border:1px solid var(--border);border-radius:var(--radius-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:.5rem;padding:.65rem 1.25rem;text-decoration:none;display:inline-flex}.btn-secondary[data-v-31a89ea8]{border:1px solid var(--accent);background:var(--card-bg);color:var(--text-primary);box-shadow:var(--shadow-sm)}.btn-secondary[data-v-31a89ea8]:hover,.btn-secondary[data-v-31a89ea8]:focus-visible{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-icon[data-v-31a89ea8]{flex-shrink:0;width:16px;height:16px}.card-divider[data-v-31a89ea8]{background:var(--border);border:0;width:100%;height:1px;margin:1.5rem 0}.card-about[data-v-31a89ea8]{flex-direction:column;gap:1.5rem;display:flex}.card-about-bio[data-v-31a89ea8]{color:var(--text-secondary);font-size:.95rem;line-height:1.7}@keyframes cursorBlink-31a89ea8{0%,to{opacity:1}50%{opacity:0}}@media (width>=640px){.hero-card[data-v-31a89ea8]{max-width:752px;margin-inline:auto}.hero-wrapper[data-v-31a89ea8]{padding:3rem 2.5rem}.hero-pattern[data-v-31a89ea8]{bottom:240px;scale:1.5}.glasses[data-v-31a89ea8],.hero-avatar-frame[data-v-31a89ea8]{width:230px;height:230px}.hero-header[data-v-31a89ea8]{text-align:left;flex-direction:row;align-items:center}.hero-info[data-v-31a89ea8]{align-items:start}.hero-name[data-v-31a89ea8]{height:4rem;font-size:2.5rem}.hero-actions[data-v-31a89ea8]{justify-content:flex-start}}.project-card[data-v-18fe6cca]{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);color:inherit;transition:border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:hidden}.project-card[data-v-18fe6cca]:before{z-index:10;background:var(--accent);content:"";transform-origin:0;height:3px;transition:transform .3s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.project-card[data-v-18fe6cca]:hover:before,.project-card[data-v-18fe6cca]:focus-visible:before{transform:scaleX(1)}.project-card[data-v-18fe6cca]:hover,.project-card[data-v-18fe6cca]:focus-visible{border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-4px)}.project-content[data-v-18fe6cca]{flex-direction:column;flex:1;padding:1.5rem;display:flex}.project-card-header[data-v-18fe6cca]{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:.75rem;display:flex}.project-name[data-v-18fe6cca]{font-size:1.1rem;font-weight:var(--font-weight-semibold);margin-bottom:0}.project-arrow[data-v-18fe6cca]{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast), transform var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.project-card:hover .project-arrow[data-v-18fe6cca],.project-card:focus-visible .project-arrow[data-v-18fe6cca]{color:var(--text-primary);transform:translate(2px,-2px)}.project-desc[data-v-18fe6cca]{margin-bottom:var(--space-md);color:var(--text-secondary);font-size:var(--font-size-sm);flex:1;line-height:1.6}.project-tags[data-v-18fe6cca]{flex-wrap:wrap;gap:.4rem;display:flex}.project-tag[data-v-18fe6cca]{border:1px solid var(--border);background:var(--color-surface-muted);color:var(--text-secondary);font-size:.75rem;font-weight:var(--font-weight-medium);border-radius:6px;padding:.2rem .6rem}.project-image-wrapper[data-v-18fe6cca]{transition:grid-template-rows .4s var(--ease-standard) .2s;grid-template-rows:0fr;display:grid;overflow:hidden}.project-card:hover .project-image-wrapper[data-v-18fe6cca],.project-card:focus-visible .project-image-wrapper[data-v-18fe6cca]{grid-template-rows:1fr}.project-image[data-v-18fe6cca]{border-top:1px solid #0000;min-height:0;transition:border-color .4s;overflow:hidden}.project-card:hover .project-image[data-v-18fe6cca],.project-card:focus-visible .project-image[data-v-18fe6cca]{border-top-color:var(--border)}.project-image img[data-v-18fe6cca]{object-fit:cover;object-position:top;width:100%;height:300px;transition:transform .5s}.project-card:hover .project-image img[data-v-18fe6cca],.project-card:focus-visible .project-image img[data-v-18fe6cca]{transform:scale(1.03)}.projects-grid[data-v-1d9a5c3a]{margin-top:var(--space-xl);flex-direction:column;gap:1.25rem;display:flex}.carousel-dots[data-v-1d9a5c3a]{width:100%;max-width:var(--container);margin:var(--space-xl) auto 0;justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.dots-wrapper[data-v-1d9a5c3a]{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--card-bg);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;gap:.4rem;padding:.45rem;display:flex}.page-counter[data-v-1d9a5c3a]{color:var(--text-muted);font-size:.75rem;font-weight:var(--font-weight-semibold);letter-spacing:.3px;text-align:right}.pagination-btn[data-v-1d9a5c3a],.dot[data-v-1d9a5c3a]{font:inherit;cursor:pointer;transition:all var(--transition-fast);border:0}.pagination-btn[data-v-1d9a5c3a]{border-radius:var(--radius-pill);min-height:2rem;color:var(--text-secondary);font-size:.78rem;font-weight:var(--font-weight-bold);background:0 0;padding:.45rem .8rem}.pagination-btn[data-v-1d9a5c3a]:hover,.pagination-btn[data-v-1d9a5c3a]:focus-visible{background:var(--color-surface-muted);color:var(--text-primary)}.pagination-btn[data-v-1d9a5c3a]:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.55}.pagination-btn[data-v-1d9a5c3a]:disabled:hover{color:var(--text-muted);background:0 0}.dot[data-v-1d9a5c3a]{background:var(--text-muted);border-radius:50%;width:.65rem;height:.65rem;padding:0}.dot.active[data-v-1d9a5c3a]{background:var(--accent);transform:scale(1.2)}.dot[data-v-1d9a5c3a]:hover,.dot[data-v-1d9a5c3a]:focus-visible{background:var(--text-secondary)}.pagination-btn[data-v-1d9a5c3a]:focus-visible,.dot[data-v-1d9a5c3a]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (width<=520px){.carousel-dots[data-v-1d9a5c3a]{flex-direction:column;justify-content:center;align-items:center}.dots-wrapper[data-v-1d9a5c3a]{justify-content:flex-start;width:auto;overflow-x:auto}}.tech-list[data-v-4b97a97c]{margin-top:var(--space-xl);flex-wrap:wrap;gap:.6rem;display:flex}.tech-list li[data-v-4b97a97c]{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--card-bg);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);box-shadow:var(--shadow-sm);cursor:default;transition:border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);align-items:center;gap:.5rem;padding:.5rem 1rem;display:inline-flex}.tech-list li[data-v-4b97a97c]:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.tech-icon[data-v-4b97a97c]{color:currentColor;flex-shrink:0;width:20px;height:20px;display:inline-flex}.tech-icon[data-v-4b97a97c] svg{width:100%;height:100%}.hero[data-v-f36a4567]{justify-content:center;align-items:center;min-height:70vh;margin-top:4rem;padding:5rem 1rem 2rem;display:flex}@media (width>=640px){.hero[data-v-f36a4567]{padding:5rem 1.5rem 3rem}}.project-dump-view[data-v-2e0d67ad]{flex-direction:column;min-height:100vh;display:flex}.project-dump[data-v-2e0d67ad]{flex:1;width:100%;max-width:1280px;padding-top:8rem}.project-primary[data-v-2e0d67ad]{max-width:var(--container);margin-inline:auto}.back-link[data-v-2e0d67ad],.project-link[data-v-2e0d67ad]{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:color var(--transition-fast);align-items:center;gap:.4rem;display:inline-flex}.back-link[data-v-2e0d67ad]:hover,.back-link[data-v-2e0d67ad]:focus-visible,.project-link[data-v-2e0d67ad]:hover,.project-link[data-v-2e0d67ad]:focus-visible{color:var(--text-primary)}.project-overview[data-v-2e0d67ad]{margin-top:var(--space-xl);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);overflow:hidden}.project-copy[data-v-2e0d67ad]{padding:1.5rem}.project-heading-row[data-v-2e0d67ad]{justify-content:space-between;align-items:flex-start;gap:var(--space-lg);display:flex}.project-title[data-v-2e0d67ad]{color:var(--text-primary);letter-spacing:-.03em;font-size:clamp(1.75rem,5vw,2.5rem);line-height:1.15}.project-link[data-v-2e0d67ad]{flex-shrink:0}.project-description[data-v-2e0d67ad]{max-width:65ch;margin-top:var(--space-md);color:var(--text-secondary);line-height:1.7}.project-tags[data-v-2e0d67ad]{margin-top:var(--space-lg);flex-wrap:wrap;gap:.4rem;display:flex}.project-tag[data-v-2e0d67ad]{border:1px solid var(--border);background:var(--color-surface-muted);color:var(--text-secondary);font-size:.75rem;font-weight:var(--font-weight-medium);border-radius:6px;padding:.25rem .65rem}.project-preview[data-v-2e0d67ad]{border-top:1px solid var(--border);object-fit:cover;object-position:top;width:100%;max-height:440px}.linked-dump[data-v-2e0d67ad]{margin-top:var(--space-2xl)}.dump-date[data-v-2e0d67ad]{max-width:var(--container);margin-bottom:var(--space-lg);color:var(--text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-inline:auto;display:block}.external-dump-link[data-v-2e0d67ad]{color:var(--text-primary);font-weight:var(--font-weight-semibold);align-items:center;gap:.4rem;display:inline-flex}.empty-state[data-v-2e0d67ad]{margin-top:var(--space-2xl);color:var(--text-secondary)}.not-found h1[data-v-2e0d67ad]{margin-top:var(--space-xl)}@media (width<=560px){.project-heading-row[data-v-2e0d67ad]{gap:var(--space-sm);flex-direction:column}}@media (width>=640px){.project-copy[data-v-2e0d67ad]{padding:2rem}}
