.project-page.svelte-9a6r7x{min-height:100vh;background:#fafafa}body{overflow-x:hidden}.text-shadow.svelte-9a6r7x{text-shadow:0 1px 3px rgba(0,0,0,.5)}.description-container.svelte-9a6r7x{max-width:48rem;margin:0 auto 3rem;padding-bottom:2rem;border-bottom:1px solid #e2e8f0}.description.svelte-9a6r7x{font-size:1.25rem;line-height:1.7;color:#475569}.tech-badge.svelte-9a6r7x{padding:.25rem .75rem;background:#fff3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.3);border-radius:9999px;font-size:.75rem;font-weight:500;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.links.svelte-9a6r7x{display:flex;gap:.75rem;margin-top:1rem}.link-btn.svelte-9a6r7x{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:#ffffffe6;border-radius:9999px;color:#0f172a;font-size:.875rem;font-weight:600;text-decoration:none;transition:all .2s;box-shadow:0 2px 5px #0000001a}.link-btn.svelte-9a6r7x:hover{background:#fff;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.content-section.svelte-9a6r7x{padding:3rem 1.5rem 5rem;background:#fafafa}@media (min-width: 768px){.content-section.svelte-9a6r7x{padding:4rem 2rem 6rem}}.prose-content.svelte-9a6r7x{max-width:56rem;margin:0 auto;font-size:1.0625rem;line-height:1.8;color:#374151}.prose-content p{margin-bottom:1.5rem}.prose-content h2{font-size:1.875rem;font-weight:700;color:#111827;margin-top:3rem;margin-bottom:1rem}.prose-content h3{font-size:1.5rem;font-weight:600;color:#1f2937;margin-top:2.5rem;margin-bottom:.75rem}.prose-content img{display:block;width:100%;max-width:100%;height:auto;border-radius:12px;margin:2rem auto;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 20px #0000001a}.prose-content img:hover{transform:scale(1.01);box-shadow:0 8px 30px #00000026}.prose-content a{color:#4f46e5;text-decoration:underline;text-underline-offset:3px;transition:color .2s}.prose-content a:hover{color:#4338ca}.prose-content ul,.prose-content ol{margin:1.5rem 0;padding-left:1.5rem}.prose-content li{margin-bottom:.5rem}.prose-content pre{background:#1e293b;color:#e2e8f0;padding:1.5rem;border-radius:12px;overflow-x:auto;margin:2rem 0}.prose-content code{font-family:JetBrains Mono,Fira Code,monospace;font-size:.9em}.prose-content .image-gallery{column-count:2;column-gap:1rem;margin:2rem 0;width:100%}@media (max-width: 640px){.prose-content .image-gallery{column-count:1}}.prose-content .image-gallery img{width:100%;height:auto;margin:0 0 1rem;break-inside:avoid;border-radius:12px;cursor:pointer;box-shadow:0 4px 20px #0000001a;transition:transform .2s,box-shadow .2s}.prose-content .image-gallery img:hover{transform:scale(1.02);box-shadow:0 8px 30px #00000026}.prose-content blockquote{border-left:4px solid #e2e8f0;padding-left:1.5rem;margin:2rem 0;font-style:italic;color:#64748b}.back-link.svelte-9a6r7x span:where(.svelte-9a6r7x){position:relative}.back-link.svelte-9a6r7x span:where(.svelte-9a6r7x):after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:currentColor;transition:width .3s ease}.back-link.svelte-9a6r7x:hover span:where(.svelte-9a6r7x):after{width:100%}.lightbox.svelte-9a6r7x{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000000d9;animation:svelte-9a6r7x-fadeIn .3s ease-out}@keyframes svelte-9a6r7x-fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-container.svelte-9a6r7x{position:relative;display:inline-block;max-width:90vw;max-height:85vh}.lightbox-close.svelte-9a6r7x{position:absolute;bottom:.75rem;right:.75rem;padding:.5rem;background:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;transition:all .2s;z-index:10}.lightbox-close.svelte-9a6r7x:hover{background:#000c;transform:scale(1.1)}.lightbox-img.svelte-9a6r7x{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:8px;animation:svelte-9a6r7x-zoomIn .35s cubic-bezier(.16,1,.3,1)}@keyframes svelte-9a6r7x-zoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.tech-badge.svelte-9a6r7x{transition:none}.lightbox.svelte-9a6r7x,.lightbox-img.svelte-9a6r7x{animation:none}}
