.project-detail-article[data-astro-cid-omsmup2h]{width:100%;--enter-duration:.55s;flex-direction:column;padding-block-end:var(--space-xl);display:flex}.detail-back-nav[data-astro-cid-omsmup2h]{align-items:center;padding-block-end:var(--space-s);display:flex}.back-nav-cluster[data-astro-cid-omsmup2h]{border-radius:var(--radius-full);background:color-mix(in oklab, var(--surface-card) 75%, transparent);border:1px solid var(--border);align-items:center;gap:.5rem;padding:.2rem .55rem .2rem .3rem;display:inline-flex;box-shadow:0 1px 4px #0000000a}.back-pill-btn[data-astro-cid-omsmup2h]{border-radius:var(--radius-full);font-size:.76rem;font-weight:var(--font-weight-medium);color:var(--foreground);background:color-mix(in oklab, var(--foreground) 7%, transparent);align-items:center;gap:.35rem;padding:.22rem .65rem;text-decoration:none;transition:all .18s;display:inline-flex;& .back-arrow{font-size:.85em;transition:transform .18s}&:hover{background:color-mix(in oklab, var(--foreground) 13%, transparent);transform:translate(-1px);& .back-arrow{transform:translate(-2px)}}}.back-nav-sep[data-astro-cid-omsmup2h]{color:var(--border);user-select:none;font-size:.72rem}.back-home-link[data-astro-cid-omsmup2h]{font-size:.74rem;font-family:var(--font-mono);color:var(--muted-foreground);padding-inline:.25rem;text-decoration:none;transition:color .15s;&:hover{color:var(--foreground)}}.project-hero-header[data-astro-cid-omsmup2h]{flex-direction:column;gap:.6rem;margin-block-end:var(--space-l);display:flex}.project-eyebrow[data-astro-cid-omsmup2h]{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.project-badge-pill[data-astro-cid-omsmup2h]{font-family:var(--font-mono);font-size:.68rem;font-weight:var(--font-weight-medium);border-radius:var(--radius-full);background:color-mix(in oklab, var(--foreground) 9%, transparent);color:var(--foreground);border:1px solid var(--border);padding:.18rem .6rem}.project-date-range[data-astro-cid-omsmup2h]{font-family:var(--font-mono);color:var(--muted-foreground);align-items:center;gap:.3rem;font-size:.72rem;display:inline-flex;& .date-sep{opacity:.5}}.project-title[data-astro-cid-omsmup2h]{font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.1;font-weight:var(--font-weight-bold);letter-spacing:-.03em;color:var(--foreground);margin:0}.project-lead[data-astro-cid-omsmup2h]{font-size:var(--step-0);color:var(--muted-foreground);max-width:44rem;margin:0;line-height:1.6}.project-actions-bar[data-astro-cid-omsmup2h]{flex-wrap:wrap;align-items:center;gap:.75rem;padding-block-start:.2rem;display:flex}.btn-live-site[data-astro-cid-omsmup2h]{border-radius:var(--radius-full);font-size:.78rem;font-weight:var(--font-weight-medium);background:var(--foreground);color:var(--background);align-items:center;gap:.4rem;padding:.4rem .95rem;text-decoration:none;transition:opacity .15s,transform .2s,box-shadow .2s;display:inline-flex;box-shadow:0 2px 6px #0000001a;&:hover{opacity:.88;transform:translateY(-1px);box-shadow:0 6px 18px -2px #0003}& .btn-ext-icon{width:.8em;height:.8em;transition:transform .15s}&:hover .btn-ext-icon[data-astro-cid-omsmup2h]{transform:translate(2px,-2px)}}.btn-source-code[data-astro-cid-omsmup2h]{border-radius:var(--radius-full);font-size:.78rem;font-weight:var(--font-weight-medium);background:var(--surface-card);color:var(--foreground);border:1px solid var(--border);align-items:center;gap:.45rem;padding:.38rem .9rem;text-decoration:none;transition:background-color .15s,border-color .15s,transform .18s,box-shadow .18s;display:inline-flex;box-shadow:0 1px 4px #0000000d;&:hover{background:var(--surface-hover);border-color:var(--ring);transform:translateY(-1px);box-shadow:0 4px 12px #00000014}& .btn-ext-icon-sm{width:.7em;height:.7em;color:var(--muted-foreground);transition:transform .15s}&:hover .btn-ext-icon-sm[data-astro-cid-omsmup2h]{transform:translate(1px,-1px)}}.btn-icon-svg[data-astro-cid-omsmup2h]{flex-shrink:0;width:.9em;height:.9em}.project-tag-row[data-astro-cid-omsmup2h]{flex-wrap:wrap;gap:.3rem;display:flex;& .tag-pill{font-size:.7rem;font-family:var(--font-mono);color:var(--muted-foreground);background:color-mix(in oklab, var(--muted) 80%, transparent);border-radius:var(--radius-full);padding:.15em .5em}}.project-preview[data-astro-cid-omsmup2h]{margin-block-end:var(--space-xl)}.preview-figure[data-astro-cid-omsmup2h]{border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:0 0 0 1px var(--border-subtle), 0 20px 48px -16px #00000038;margin:0;transition:box-shadow .3s;overflow:hidden;&:hover{box-shadow:0 0 0 1px var(--ring), 0 28px 60px -20px #00000047}}.preview-chrome[data-astro-cid-omsmup2h]{background:color-mix(in oklab, var(--muted) 60%, var(--background));border-bottom:1px solid var(--border-subtle);align-items:center;gap:.6rem;padding:.55rem .85rem;display:flex}.chrome-dots[data-astro-cid-omsmup2h]{display:none}.chrome-url[data-astro-cid-omsmup2h]{font-family:var(--font-mono);color:var(--muted-foreground);background:var(--background);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);flex:1;align-items:center;gap:.25rem;max-width:22rem;margin-inline:auto;padding:.12rem .55rem;font-size:.7rem;display:inline-flex;& .lock-svg{opacity:.5;flex-shrink:0;width:.68rem;height:.68rem}}.preview-img-wrap[data-astro-cid-omsmup2h]{all:unset;background:var(--muted);cursor:zoom-in;width:100%;line-height:0;display:block;position:relative;overflow:hidden;& .preview-img{object-fit:cover;width:100%;height:auto;transition:transform .4s;display:block}&:hover .preview-img[data-astro-cid-omsmup2h]{transform:scale(1.015)}}.preview-zoom-hint[data-astro-cid-omsmup2h]{opacity:0;backdrop-filter:blur(2px);background:#00000059;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0;& .zoom-svg{color:#fff;filter:drop-shadow(0 2px 8px #00000080);width:2.5rem;height:2.5rem}}.preview-img-wrap[data-astro-cid-omsmup2h]:hover .preview-zoom-hint[data-astro-cid-omsmup2h]{opacity:1}.project-prose[data-astro-cid-omsmup2h]{margin-block-end:var(--space-2xl);display:block}.project-sibling-nav[data-astro-cid-omsmup2h]{border-top:1px solid var(--border);padding-block-start:var(--space-l)}.sibling-grid[data-astro-cid-omsmup2h]{align-items:center;gap:var(--space-s);grid-template-columns:1fr auto 1fr;display:grid}.sibling-card[data-astro-cid-omsmup2h]{border-radius:var(--radius-sm);background:var(--surface-card);border:1px solid var(--border);flex-direction:column;gap:.15rem;padding:.7rem .9rem;text-decoration:none;transition:border-color .15s,background .15s,transform .15s;display:flex;&.prev-card{align-items:flex-start}&.next-card{align-items:flex-end}&:hover{border-color:var(--ring);background:var(--surface-hover);transform:translateY(-1px)}& .sibling-label{font-family:var(--font-mono);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em;font-size:.62rem}& .sibling-name{font-size:var(--step--1);font-weight:var(--font-weight-medium);color:var(--foreground)}}.center-projects-actions[data-astro-cid-omsmup2h]{justify-content:center;align-items:center;gap:.4rem;display:inline-flex}.all-projects-btn[data-astro-cid-omsmup2h]{font-size:var(--step--1);font-family:var(--font-mono);color:var(--muted-foreground);border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:var(--surface-card);white-space:nowrap;justify-content:center;align-items:center;padding:.3rem .8rem;text-decoration:none;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex;&:hover{color:var(--foreground);border-color:var(--foreground);background-color:var(--surface-hover)}}.share-project-btn[data-astro-cid-omsmup2h]{font-size:var(--step--1);font-family:var(--font-mono);color:var(--muted-foreground);border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:var(--surface-card);cursor:pointer;white-space:nowrap;align-items:center;gap:.35rem;padding:.3rem .75rem;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex;& .share-svg{width:.85rem;height:.85rem}& .share-copied{color:#10b981;display:none}&:hover{color:var(--foreground);border-color:var(--ring);background-color:var(--surface-hover)}&.copied{color:#10b981;border-color:#10b981;& .share-idle{display:none}& .share-copied{display:inline-block}}}.home-mini-btn[data-astro-cid-omsmup2h]{font-size:var(--step--1);font-family:var(--font-mono);color:var(--muted-foreground);border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:var(--surface-card);white-space:nowrap;justify-content:center;align-items:center;padding:.3rem .7rem;text-decoration:none;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex;&:hover{color:var(--foreground);border-color:var(--foreground);background-color:var(--surface-hover)}}@media (width<40rem){.sibling-grid[data-astro-cid-omsmup2h]{gap:var(--space-xs);grid-template-columns:1fr}.sibling-card[data-astro-cid-omsmup2h].next-card{align-items:flex-start}.all-projects-btn[data-astro-cid-omsmup2h]{order:-1;width:100%}}.lightbox[data-astro-cid-omsmup2h]{z-index:9999;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0;&[hidden]{display:none}}.lightbox-backdrop[data-astro-cid-omsmup2h]{all:unset;backdrop-filter:blur(10px);cursor:zoom-out;background:#000000d9;animation:.22s both lb-bg-in;position:absolute;inset:0}@keyframes lb-bg-in{0%{opacity:0}to{opacity:1}}.lightbox-inner[data-astro-cid-omsmup2h]{z-index:1;flex-direction:column;align-items:center;gap:.75rem;max-width:min(90vw,1400px);max-height:90vh;animation:.3s cubic-bezier(.16,1,.3,1) both lb-img-in;display:flex;position:relative}@keyframes lb-img-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.lightbox-img[data-astro-cid-omsmup2h]{border-radius:.5rem;width:auto;max-width:100%;height:auto;max-height:calc(90vh - 4rem);display:block;box-shadow:0 40px 100px -20px #000c}.lightbox-caption[data-astro-cid-omsmup2h]{font-family:var(--font-mono);color:#fff9;text-align:center;margin:0;font-size:.72rem}.lightbox-x[data-astro-cid-omsmup2h]{all:unset;cursor:pointer;background:#ffffff1f;border-radius:50%;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;transition:background .15s;display:flex;position:absolute;top:-3rem;right:0;&:hover{background:#ffffff38}& .x-icon{color:#fff;width:1rem;height:1rem}}
