.toc-nav{position:sticky;top:6rem;max-height:calc(100vh - 8rem);overflow-y:auto;padding:1.5rem;background-color:var(--color-bg-elevated);border:1px solid var(--color-border-medium);border-radius:.75rem;margin-bottom:2rem}.toc-header{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border-subtle)}.toc-title{font-family:var(--font-display);font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent-primary);margin:0}.toc-content{font-size:.875rem}.toc-list{list-style:none;padding:0;margin:0}.toc-item{margin:0}.toc-h2{margin-top:.75rem;margin-bottom:.5rem}.toc-link{display:block;padding:.5rem .75rem;color:var(--color-text-tertiary);text-decoration:none;border-left:2px solid transparent;margin-left:-.75rem;transition:all .3s cubic-bezier(.4,0,.2,1);line-height:1.4;position:relative;border-radius:.375rem}.toc-link:before{content:"";position:absolute;left:.5rem;top:50%;transform:translateY(-50%) scale(0);width:4px;height:4px;background:var(--color-accent-primary);border-radius:50%;transition:transform .3s cubic-bezier(.4,0,.2,1)}.toc-link:hover{color:var(--color-accent-primary);background:linear-gradient(90deg,var(--color-bg-hover) 0%,transparent 100%);border-left-color:var(--color-accent-primary);transform:translate(2px)}.toc-link:hover:before{transform:translateY(-50%) scale(1)}.toc-link.active{color:var(--color-accent-primary);font-weight:600;border-left-color:var(--color-accent-primary);background:linear-gradient(90deg,rgba(139,92,246,.08) 0%,transparent 100%)}.toc-link.active:before{transform:translateY(-50%) scale(1);animation:glow 2s ease-in-out infinite}@keyframes glow{0%,to{opacity:1;box-shadow:0 0 #8b5cf666}50%{opacity:.8;box-shadow:0 0 6px 2px #8b5cf64d}}.toc-nav::-webkit-scrollbar{width:6px}.toc-nav::-webkit-scrollbar-track{background:transparent}.toc-nav::-webkit-scrollbar-thumb{background:var(--color-border-medium);border-radius:3px}.toc-nav::-webkit-scrollbar-thumb:hover{background:var(--color-accent-primary)}@media (max-width: 1280px){.toc-nav{display:none}}@keyframes glow{0%,to{opacity:.1}50%{opacity:.15}}.animate-glow[data-astro-cid-eo3wme6m]{animation:glow 8s ease-in-out infinite}.bg-bg-primary[data-astro-cid-eo3wme6m]{background-color:var(--color-bg-primary)}.bg-bg-secondary[data-astro-cid-eo3wme6m]{background-color:var(--color-bg-secondary)}.bg-bg-elevated[data-astro-cid-eo3wme6m]{background-color:var(--color-bg-elevated)}.bg-bg-hover[data-astro-cid-eo3wme6m]{background-color:var(--color-bg-hover)}.bg-gradient-accent[data-astro-cid-eo3wme6m]{background:var(--gradient-accent)}.text-text-primary[data-astro-cid-eo3wme6m]{color:var(--color-text-primary)}.text-text-secondary[data-astro-cid-eo3wme6m]{color:var(--color-text-secondary)}.text-text-tertiary[data-astro-cid-eo3wme6m]{color:var(--color-text-tertiary)}.text-accent-primary[data-astro-cid-eo3wme6m]{color:var(--color-accent-primary)}.text-accent-secondary[data-astro-cid-eo3wme6m]{color:var(--color-accent-secondary)}.border-border-subtle[data-astro-cid-eo3wme6m]{border-color:var(--color-border-subtle)}.border-border-medium[data-astro-cid-eo3wme6m]{border-color:var(--color-border-medium)}.border-accent-primary[data-astro-cid-eo3wme6m]{border-color:var(--color-accent-primary)}article[data-astro-cid-eo3wme6m] a[data-astro-cid-eo3wme6m]{position:relative}article[data-astro-cid-eo3wme6m] a[data-astro-cid-eo3wme6m]:after{content:"";position:absolute;width:100%;height:1px;bottom:0;left:0;background-color:var(--color-accent-primary);transform:scaleX(0);transform-origin:bottom right;transition:transform .3s ease-out}article[data-astro-cid-eo3wme6m] a[data-astro-cid-eo3wme6m]:hover:after{transform:scaleX(1);transform-origin:bottom left}.project-content{max-width:none;font-size:1.125rem;line-height:2;color:var(--color-text-secondary)}.project-content h1{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,8vw,4rem);line-height:1.1;letter-spacing:-.03em;color:var(--color-text-primary);margin-top:6rem;margin-bottom:3rem;word-wrap:break-word;overflow-wrap:break-word;hyphens:none}.project-content h2{font-family:var(--font-display);font-weight:700;font-size:clamp(1.75rem,6vw,3.5rem);line-height:1.15;letter-spacing:-.025em;color:var(--color-text-primary);margin-top:clamp(3rem,8vw,8rem);margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border-subtle);word-wrap:break-word;overflow-wrap:break-word;hyphens:none}.project-content h3{font-family:var(--font-display);font-weight:700;font-size:clamp(1.5rem,4vw,2.25rem);line-height:1.3;letter-spacing:-.02em;color:var(--color-text-primary);margin-top:clamp(2.5rem,6vw,5rem);margin-bottom:2rem;word-wrap:break-word;overflow-wrap:break-word;hyphens:none}.project-content h4{font-family:var(--font-display);font-weight:600;font-size:clamp(1.25rem,3vw,1.75rem);line-height:1.4;letter-spacing:-.015em;color:var(--color-accent-primary);margin-top:clamp(2rem,5vw,4rem);margin-bottom:1.5rem;word-wrap:break-word;overflow-wrap:break-word;hyphens:none}.project-content p{margin-bottom:2rem;line-height:2;font-size:clamp(1rem,2vw,1.125rem);color:var(--color-text-secondary);word-wrap:break-word;overflow-wrap:break-word}.project-content ul,.project-content ol{margin-top:2.5rem;margin-bottom:2.5rem;padding-left:2rem}.project-content ul{list-style-type:disc}.project-content ol{list-style-type:decimal}.project-content li{margin-top:1rem;margin-bottom:1rem;line-height:2;font-size:clamp(1rem,2vw,1.125rem);color:var(--color-text-secondary);word-wrap:break-word;overflow-wrap:break-word}.project-content li>ul,.project-content li>ol{margin-top:1rem;margin-bottom:1rem}.project-content strong{color:var(--color-text-primary);font-weight:600}.project-content a{color:var(--color-accent-primary);text-decoration:none;font-weight:500;transition:all .2s ease;word-wrap:break-word;overflow-wrap:break-word}.project-content a:hover{text-decoration:underline;color:var(--color-accent-secondary)}.project-content code{font-family:var(--font-mono);background-color:var(--color-bg-elevated);color:var(--color-accent-secondary);padding:.25rem .5rem;border-radius:.375rem;font-size:.95em}.project-content pre{background-color:var(--color-bg-elevated);border:1px solid var(--color-border-medium);border-radius:.75rem;padding:1rem;margin-top:2.5rem;margin-bottom:2.5rem;overflow-x:auto;max-width:100%}@media (min-width: 768px){.project-content pre{padding:2.5rem}}.project-content pre code{background:none;padding:0;border-radius:0;font-size:.9rem}.project-content blockquote{border-left:4px solid var(--color-accent-primary);padding-left:1rem;padding-top:.5rem;padding-bottom:.5rem;margin-top:2rem;margin-bottom:2rem;font-style:italic;color:var(--color-text-secondary);font-size:clamp(1rem,2vw,1.125rem);word-wrap:break-word;overflow-wrap:break-word}@media (min-width: 768px){.project-content blockquote{padding-left:2rem;margin-top:3rem;margin-bottom:3rem}}.project-content img{border-radius:.75rem;border:1px solid var(--color-border-medium);box-shadow:0 20px 25px -5px #0000004d,0 10px 10px -5px #0003;margin-top:3rem;margin-bottom:3rem;width:100%;height:auto}.project-content hr{border:none;border-top:1px solid var(--color-border-medium);margin-top:5rem;margin-bottom:5rem}.project-content table{width:100%;border-collapse:collapse;margin-top:2.5rem;margin-bottom:2.5rem;font-size:clamp(.875rem,2vw,1rem);display:block;overflow-x:auto;max-width:100%}.project-content th{background-color:var(--color-bg-elevated);color:var(--color-text-primary);font-weight:600;padding:1rem 1.5rem;text-align:left;border-bottom:2px solid var(--color-border-medium)}.project-content td{padding:1rem 1.5rem;border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-secondary);line-height:1.8}.project-content tbody tr:hover{background-color:var(--color-bg-hover)}
