.optimized-image-container[data-v-a2197f6b]{position:relative;overflow:hidden;background-color:#f3f4f6}.dark .optimized-image-container[data-v-a2197f6b]{background-color:#374151}.optimized-image-placeholder[data-v-a2197f6b]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.placeholder-shimmer[data-v-a2197f6b]{position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer-a2197f6b 2s infinite}.dark .placeholder-shimmer[data-v-a2197f6b]{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}@keyframes shimmer-a2197f6b{0%{transform:translate(-100%)}to{transform:translate(100%)}}.loading-overlay[data-v-a2197f6b]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#0000001a}.loading-spinner[data-v-a2197f6b]{width:24px;height:24px;border:2px solid #e5e7eb;border-top:2px solid #3b82f6;border-radius:50%;animation:spin-a2197f6b 1s linear infinite}@keyframes spin-a2197f6b{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.optimized-image-container img[data-v-a2197f6b]{will-change:auto;contain:layout style paint}@media (prefers-reduced-motion: reduce){.placeholder-shimmer[data-v-a2197f6b],.loading-spinner[data-v-a2197f6b]{animation:none}}.project-card[data-v-1e9560a5]{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:1.25rem;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;color:inherit;text-decoration:none;will-change:transform;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.project-card[data-v-1e9560a5] *{cursor:pointer}.dark .project-card[data-v-1e9560a5]{background:#ffffff08;border-color:#ffffff12}.project-card[data-v-1e9560a5]:hover{transform:translateY(-5px);border-color:#0ea5e973;box-shadow:0 0 0 1px #0ea5e94d,0 8px 24px -4px #0000001a;transition-delay:0s!important}.dark .project-card[data-v-1e9560a5]:hover{box-shadow:0 0 0 1px #0ea5e959,0 8px 24px -4px #0006}.project-thumb[data-v-1e9560a5]{position:relative;height:200px;background:#0f172a0a;overflow:hidden}.dark .project-thumb[data-v-1e9560a5]{background:#ffffff0a}.project-img-wrap[data-v-1e9560a5]{position:absolute;inset:0}[data-v-1e9560a5] .project-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .6s ease}.project-card[data-v-1e9560a5]:hover .project-img{transform:scale(1.06)}.project-placeholder[data-v-1e9560a5]{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0ea5e914,#8b5cf614)}.placeholder-icon[data-v-1e9560a5]{width:52px;height:52px;color:#0ea5e980}.dark .placeholder-icon[data-v-1e9560a5]{color:#0ea5e966}.project-hover-overlay[data-v-1e9560a5]{position:absolute;inset:0;background:linear-gradient(to top,rgba(14,165,233,.55),transparent);display:flex;align-items:flex-end;padding:1.25rem;opacity:0;transition:opacity .3s ease}.project-card:hover .project-hover-overlay[data-v-1e9560a5]{opacity:1}.overlay-cta[data-v-1e9560a5]{color:#fff;font-weight:700;font-size:.9375rem}.project-info[data-v-1e9560a5]{padding:1.5rem;display:flex;flex-direction:column;flex:1}.project-cat-label[data-v-1e9560a5]{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#0ea5e9;margin-bottom:.5rem}.project-card-title[data-v-1e9560a5]{font-size:1.125rem;font-weight:700;color:#0f172a;margin-bottom:.5rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dark .project-card-title[data-v-1e9560a5]{color:#f1f5f9}.project-card-desc[data-v-1e9560a5]{font-size:.9rem;line-height:1.65;color:#0f172a99;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}.dark .project-card-desc[data-v-1e9560a5]{color:#f1f5f9b3}.project-tech-tags[data-v-1e9560a5]{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto}.tech-chip[data-v-1e9560a5]{padding:.2rem .7rem;background:#0ea5e914;border:1px solid rgba(14,165,233,.15);border-radius:100px;font-size:.73rem;font-weight:500;color:#0284c7}.dark .tech-chip[data-v-1e9560a5]{background:#0ea5e91a;border-color:#0ea5e933;color:#38bdf8}.tech-chip-more[data-v-1e9560a5]{background:#8b5cf614;border-color:#8b5cf626;color:#7c3aed}.dark .tech-chip-more[data-v-1e9560a5]{background:#8b5cf61a;border-color:#8b5cf633;color:#a78bfa}.detail-hero[data-v-d38df5f8]{position:relative;background:#f8fafc;overflow:hidden;border-bottom:1px solid rgba(15,23,42,.06)}.dark .detail-hero[data-v-d38df5f8]{background:#030712;border-bottom-color:#ffffff0d}.dh-aurora[data-v-d38df5f8]{position:absolute;inset:0;pointer-events:none;overflow:hidden}.dh-blob[data-v-d38df5f8]{position:absolute;border-radius:50%;filter:blur(90px);opacity:0}.dark .dh-blob[data-v-d38df5f8]{opacity:1}.dh-blob-a[data-v-d38df5f8]{width:700px;height:320px;background:radial-gradient(circle,rgba(14,165,233,.18) 0%,transparent 70%);top:-80px;right:-120px}.dh-blob-b[data-v-d38df5f8]{width:450px;height:320px;background:radial-gradient(circle,rgba(139,92,246,.13) 0%,transparent 70%);bottom:-60px;left:-60px}.dh-blob-c[data-v-d38df5f8]{width:300px;height:300px;background:radial-gradient(circle,rgba(16,185,129,.08) 0%,transparent 70%);top:50%;left:40%}.dh-breadcrumbs[data-v-d38df5f8]{padding-top:1.75rem;margin-bottom:2rem}.dh-content[data-v-d38df5f8]{max-width:800px;margin:0 auto;text-align:center;padding-bottom:3.5rem}.dh-top-row[data-v-d38df5f8]{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.dh-back-link[data-v-d38df5f8]{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:500;color:#0ea5e9;text-decoration:none;transition:opacity .15s ease}.dh-back-link[data-v-d38df5f8]:hover{opacity:.75}.dark .dh-back-link[data-v-d38df5f8]{color:#38bdf8}.dh-category-badge[data-v-d38df5f8]{display:inline-block;padding:.3rem 1rem;background:#0ea5e914;border:1px solid rgba(14,165,233,.22);border-radius:100px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#0ea5e9}.dark .dh-category-badge[data-v-d38df5f8]{background:#0ea5e91f;border-color:#0ea5e94d}.dh-title[data-v-d38df5f8]{font-size:clamp(2.25rem,5.5vw,3.5rem);font-weight:900;letter-spacing:-.03em;line-height:1.1;margin-bottom:1.25rem}.dh-title-highlight[data-v-d38df5f8]{background:linear-gradient(135deg,#0ea5e9,#6366f1,#8b5cf6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.dh-subtitle[data-v-d38df5f8]{font-size:1rem;line-height:1.75;color:#0f172a99;max-width:680px;margin:0 auto 1.75rem}.dark .dh-subtitle[data-v-d38df5f8]{color:#f1f5f994}.dh-meta[data-v-d38df5f8]{display:flex;flex-wrap:wrap;justify-content:center;gap:1.25rem;margin-bottom:2rem}.dh-meta-item[data-v-d38df5f8]{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;color:#0f172a94}.dark .dh-meta-item[data-v-d38df5f8]{color:#f1f5f98c}.status-dot[data-v-d38df5f8]{width:.6rem;height:.6rem;border-radius:50%;flex-shrink:0}.dh-actions[data-v-d38df5f8]{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.status-indicator[data-v-d38df5f8]{height:.75rem;width:.75rem;border-radius:9999px}@keyframes dh-fade-up-d38df5f8{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.dh-anim-1[data-v-d38df5f8]{animation:dh-fade-up-d38df5f8 .6s .05s cubic-bezier(.16,1,.3,1) both}.dh-anim-2[data-v-d38df5f8]{animation:dh-fade-up-d38df5f8 .6s .12s cubic-bezier(.16,1,.3,1) both}.dh-anim-3[data-v-d38df5f8]{animation:dh-fade-up-d38df5f8 .6s .2s cubic-bezier(.16,1,.3,1) both}.dh-anim-4[data-v-d38df5f8]{animation:dh-fade-up-d38df5f8 .6s .28s cubic-bezier(.16,1,.3,1) both}.dh-anim-5[data-v-d38df5f8]{animation:dh-fade-up-d38df5f8 .6s .36s cubic-bezier(.16,1,.3,1) both}.dh-anim-6[data-v-d38df5f8]{animation:dh-fade-up-d38df5f8 .6s .44s cubic-bezier(.16,1,.3,1) both}@media (prefers-reduced-motion: reduce){.dh-anim-1[data-v-d38df5f8],.dh-anim-2[data-v-d38df5f8],.dh-anim-3[data-v-d38df5f8],.dh-anim-4[data-v-d38df5f8],.dh-anim-5[data-v-d38df5f8],.dh-anim-6[data-v-d38df5f8]{animation:none}}@media (max-width: 767px){.dh-content[data-v-d38df5f8]{padding-bottom:13.5rem}}.feature-card[data-v-d38df5f8]{border-radius:1rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:2rem;text-align:center;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.feature-card[data-v-d38df5f8]:is(.dark *){background-color:#1f293799}.feature-card[data-v-d38df5f8]{border-width:1px;--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.feature-card[data-v-d38df5f8]:is(.dark *){border-color:#ffffff0f}.feature-card[data-v-d38df5f8]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}@media (hover: hover) and (pointer: fine){.feature-card[data-v-d38df5f8]:hover{--tw-translate-y: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}.feature-icon[data-v-d38df5f8]{margin-bottom:1rem;display:inline-flex;align-items:center;justify-content:center;height:4rem;width:4rem;border-radius:1rem;--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.feature-icon[data-v-d38df5f8]:is(.dark *){background-color:#0c4a6e4d;--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.feature-icon[data-v-d38df5f8]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}@media (hover: hover) and (pointer: fine){.group:hover .feature-icon[data-v-d38df5f8]{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}.feature-title[data-v-d38df5f8]{margin-bottom:1rem;font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.feature-title[data-v-d38df5f8]:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.feature-description[data-v-d38df5f8]{margin-bottom:1.5rem;line-height:1.625;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.feature-description[data-v-d38df5f8]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.feature-tech[data-v-d38df5f8]{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.tech-badge[data-v-d38df5f8]{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1));padding:.25rem .75rem;--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.tech-badge[data-v-d38df5f8]:is(.dark *){background-color:#0c4a6e4d;--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.tech-badge[data-v-d38df5f8]{border-radius:9999px;font-size:.875rem;line-height:1.25rem;font-weight:500}.project-rich-description[data-v-d38df5f8] p{margin-bottom:1.35rem;color:#4b5563}.dark .project-rich-description[data-v-d38df5f8] p{color:#d1d5db}.project-rich-description[data-v-d38df5f8] strong{color:#111827;font-weight:700}.dark .project-rich-description[data-v-d38df5f8] strong{color:#fff}.project-rich-description[data-v-d38df5f8] h3{margin-top:2.4rem;margin-bottom:.9rem;color:#111827;font-size:1.35rem;font-weight:800;line-height:1.25}.dark .project-rich-description[data-v-d38df5f8] h3{color:#fff}.related-projects-grid[data-v-d38df5f8]{display:grid;gap:1.25rem;grid-template-columns:1fr}@media (min-width: 768px){.related-projects-grid[data-v-d38df5f8]{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.related-projects-grid[data-v-d38df5f8]{grid-template-columns:repeat(3,1fr)}}.lightbox-backdrop[data-v-d38df5f8]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:fadeIn-d38df5f8 .3s ease-out}.lightbox-image[data-v-d38df5f8]{animation:scaleIn-d38df5f8 .3s ease-out}@keyframes fadeIn-d38df5f8{0%{opacity:0}to{opacity:1}}@keyframes scaleIn-d38df5f8{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.image-gallery-item[data-v-d38df5f8]{position:relative;overflow:hidden}.image-gallery-item[data-v-d38df5f8]:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent,rgba(59,130,246,.1),transparent);transform:translate(-100%);transition:transform .6s ease;z-index:1}.image-gallery-item[data-v-d38df5f8]:hover:before{transform:translate(100%)}
