.project-card[data-astro-cid-y2vllrex]{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);height:100%;transition:box-shadow var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.project-card[data-astro-cid-y2vllrex]:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.project-card__img-wrap[data-astro-cid-y2vllrex]{aspect-ratio:4/3;background:var(--off-white);cursor:pointer;width:100%;position:relative;overflow:hidden}.project-card__img-wrap[data-astro-cid-y2vllrex]:focus-visible{outline:3px solid var(--cyan);outline-offset:-3px}.project-card__img[data-astro-cid-y2vllrex]{object-fit:cover;width:100%;height:100%;transition:transform var(--duration-slow) var(--ease-spring)}.project-card[data-astro-cid-y2vllrex]:hover .project-card__img[data-astro-cid-y2vllrex]{transform:scale(1.05)}.project-card__multi-badge[data-astro-cid-y2vllrex]{top:var(--space-3);right:var(--space-3);backdrop-filter:blur(4px);color:var(--white);font-family:var(--font-display);font-size:var(--text-xs);border-radius:var(--radius-sm);z-index:2;background:#0b1326bf;align-items:center;gap:4px;padding:4px 8px;font-weight:600;display:flex;position:absolute}.project-card__overlay[data-astro-cid-y2vllrex]{backdrop-filter:blur(2px);opacity:0;transition:opacity var(--duration-base) var(--ease-out);z-index:1;background:#0b132673;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.project-card[data-astro-cid-y2vllrex]:hover .project-card__overlay[data-astro-cid-y2vllrex],.project-card__img-wrap[data-astro-cid-y2vllrex]:focus-visible .project-card__overlay[data-astro-cid-y2vllrex]{opacity:1}.project-card__zoom-btn[data-astro-cid-y2vllrex]{border-radius:var(--radius-full);background:var(--cyan);width:50px;height:50px;color:var(--white);cursor:pointer;transition:transform var(--duration-base) var(--ease-spring), background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);border:2px solid #fff9;justify-content:center;align-items:center;display:flex;transform:scale(.85);box-shadow:0 4px 16px #00000059}.project-card[data-astro-cid-y2vllrex]:hover .project-card__zoom-btn[data-astro-cid-y2vllrex]{transform:scale(1)}.project-card__zoom-btn[data-astro-cid-y2vllrex]:hover{background:var(--navy-deep);border-color:var(--cyan);box-shadow:0 6px 20px #1599b580;transform:scale(1.12)!important}.project-card__body[data-astro-cid-y2vllrex]{padding:var(--space-5);gap:var(--space-2);flex-direction:column;flex:1;display:flex}.project-card__meta[data-astro-cid-y2vllrex]{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.project-card__category[data-astro-cid-y2vllrex]{font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);font-weight:700}.project-card__division[data-astro-cid-y2vllrex]{font-size:var(--text-xs);color:var(--text-muted);background:var(--off-white);border-radius:var(--radius-sm);border:1px solid var(--border);padding:2px 6px;font-weight:500}.project-card__title[data-astro-cid-y2vllrex]{font-size:var(--text-base);color:var(--text);font-weight:700;line-height:var(--leading-snug);margin:0}.project-card__title-btn[data-astro-cid-y2vllrex]{font:inherit;color:var(--text);text-align:left;cursor:pointer;font-weight:700;line-height:var(--leading-snug);transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;padding:0}.project-card__title-btn[data-astro-cid-y2vllrex]:hover{color:var(--cyan)}.project-card__title-btn[data-astro-cid-y2vllrex]:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:2px}.project-card__desc[data-astro-cid-y2vllrex]{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-relaxed);flex:1;margin:0}.gallery-modal[data-astro-cid-5tpo44z7]{z-index:9999;opacity:0;visibility:hidden;justify-content:center;align-items:center;transition:opacity .25s cubic-bezier(.16,1,.3,1),visibility .25s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;inset:0}.gallery-modal[data-astro-cid-5tpo44z7].is-open{opacity:1;visibility:visible}.gallery-modal__backdrop[data-astro-cid-5tpo44z7]{-webkit-backdrop-filter:blur(12px);cursor:pointer;background:#0b1326f0;position:absolute;inset:0}.gallery-modal__container[data-astro-cid-5tpo44z7]{z-index:1;width:100%;max-width:1100px;height:94vh;padding:var(--space-4) var(--space-6);pointer-events:auto;flex-direction:column;margin:auto;display:flex;position:relative}.gallery-modal__header[data-astro-cid-5tpo44z7]{justify-content:space-between;align-items:center;gap:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid #ffffff1f;flex-shrink:0;display:flex}.gallery-modal__info[data-astro-cid-5tpo44z7]{align-items:center;gap:var(--space-3);min-width:0;display:flex}.gallery-modal__badge[data-astro-cid-5tpo44z7]{font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);border-radius:var(--radius-full);white-space:nowrap;background:#1599b526;border:1px solid #1599b54d;padding:4px 10px;font-weight:700}.gallery-modal__title[data-astro-cid-5tpo44z7]{font-family:var(--font-display);font-size:var(--text-lg);color:var(--white);white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:700;overflow:hidden}.gallery-modal__actions[data-astro-cid-5tpo44z7]{align-items:center;gap:var(--space-4);flex-shrink:0;display:flex}.gallery-modal__counter[data-astro-cid-5tpo44z7]{font-family:var(--font-display);font-size:var(--text-sm);color:#ffffffa6;border-radius:var(--radius-full);background:#ffffff14;padding:4px 12px;font-weight:600}.gallery-modal__close-btn[data-astro-cid-5tpo44z7]{border-radius:var(--radius-full);width:40px;height:40px;color:var(--white);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:#ffffff1a;border:1px solid #ffffff26;justify-content:center;align-items:center;display:flex}.gallery-modal__close-btn[data-astro-cid-5tpo44z7]:hover{background:#ef4444d9;border-color:#ef4444;transform:rotate(90deg)}.gallery-modal__stage[data-astro-cid-5tpo44z7]{min-height:0;padding:var(--space-4) 0;justify-content:space-between;align-items:center;gap:var(--space-4);flex:1;display:flex;position:relative}.gallery-modal__image-wrapper[data-astro-cid-5tpo44z7]{flex:1;justify-content:center;align-items:center;height:100%;display:flex;position:relative;overflow:hidden}.gallery-modal__image[data-astro-cid-5tpo44z7]{object-fit:contain;border-radius:var(--radius-md);user-select:none;width:auto;max-width:100%;height:auto;max-height:100%;transition:opacity .2s,transform .2s;box-shadow:0 20px 40px #0009}.gallery-modal__image[data-astro-cid-5tpo44z7].is-loading{opacity:.3;transform:scale(.98)}.gallery-modal__nav[data-astro-cid-5tpo44z7]{border-radius:var(--radius-full);backdrop-filter:blur(8px);width:50px;height:50px;color:var(--white);cursor:pointer;z-index:2;transition:all var(--duration-fast) var(--ease-out);background:#ffffff1f;border:1px solid #fff3;flex-shrink:0;justify-content:center;align-items:center;display:flex}.gallery-modal__nav[data-astro-cid-5tpo44z7]:hover:not(:disabled){background:var(--cyan);border-color:var(--cyan);transform:scale(1.08)}.gallery-modal__nav[data-astro-cid-5tpo44z7]:disabled{opacity:.25;cursor:not-allowed}.gallery-modal__footer[data-astro-cid-5tpo44z7]{padding-top:var(--space-3);gap:var(--space-3);border-top:1px solid #ffffff1f;flex-direction:column;flex-shrink:0;display:flex}.gallery-modal__desc[data-astro-cid-5tpo44z7]{font-size:var(--text-sm);color:#ffffffbf;text-align:center;margin:0}.gallery-modal__thumbs[data-astro-cid-5tpo44z7]{justify-content:center;align-items:center;gap:var(--space-2);padding:4px 0;display:flex;overflow-x:auto}.gallery-thumb-btn[data-astro-cid-5tpo44z7]{border-radius:var(--radius-sm);cursor:pointer;opacity:.5;width:56px;height:42px;transition:all var(--duration-fast) var(--ease-out);background:#ffffff1a;border:2px solid #0000;flex-shrink:0;padding:0;overflow:hidden}.gallery-thumb-btn[data-astro-cid-5tpo44z7]:hover{opacity:.85}.gallery-thumb-btn[data-astro-cid-5tpo44z7].is-active{opacity:1;border-color:var(--cyan);transform:scale(1.05);box-shadow:0 0 10px #1599b599}.gallery-thumb-btn[data-astro-cid-5tpo44z7] img[data-astro-cid-5tpo44z7]{object-fit:cover;width:100%;height:100%}@media (width<=767px){.gallery-modal__container[data-astro-cid-5tpo44z7]{height:100vh;padding:var(--space-3)}.gallery-modal__title[data-astro-cid-5tpo44z7]{font-size:var(--text-base)}.gallery-modal__nav[data-astro-cid-5tpo44z7]{width:40px;height:40px;position:absolute;top:50%;transform:translateY(-50%)}.gallery-modal__nav--prev[data-astro-cid-5tpo44z7]{left:var(--space-2)}.gallery-modal__nav--next[data-astro-cid-5tpo44z7]{right:var(--space-2)}.gallery-thumb-btn[data-astro-cid-5tpo44z7]{width:46px;height:34px}}.project-filter[data-astro-cid-6c4lwb7l]{gap:var(--space-2);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.filter-btn[data-astro-cid-6c4lwb7l]{font-family:var(--font-display);font-size:var(--text-xs);color:var(--text-muted);background:var(--white);border:1.5px solid var(--border);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);white-space:nowrap;font-weight:600}.filter-btn[data-astro-cid-6c4lwb7l]:hover{border-color:var(--navy);color:var(--navy)}.filter-btn[data-astro-cid-6c4lwb7l].is-active{background:var(--navy);color:var(--white);border-color:var(--navy)}.filter-btn[data-astro-cid-6c4lwb7l]:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}.project-grid[data-astro-cid-6c4lwb7l]{gap:var(--space-5);grid-template-columns:repeat(3,1fr);align-items:stretch;display:grid}.project-grid__item[data-astro-cid-6c4lwb7l]{transition:opacity var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);display:flex}.project-grid__item[data-astro-cid-6c4lwb7l].is-hidden{display:none}.project-grid__empty[data-astro-cid-6c4lwb7l]{text-align:center;color:var(--text-muted);padding:var(--space-12) 0;font-size:var(--text-base)}@media (width<=1023px){.project-grid[data-astro-cid-6c4lwb7l]{grid-template-columns:repeat(2,1fr)}}@media (width<=639px){.project-grid[data-astro-cid-6c4lwb7l]{grid-template-columns:1fr}}
