.project-card{opacity:0;visibility:hidden;transform:translateY(40px);transition:opacity .8s ease-out,transform .8s cubic-bezier(.16,1,.3,1),visibility .8s;will-change:transform,opacity}.project-card.reveal{opacity:1!important;visibility:visible!important;transform:translateY(0)!important}#drawer-backdrop{position:fixed;inset:0;background:#000000d1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:40;opacity:0;pointer-events:none;transition:opacity .3s ease}#drawer-backdrop.open{opacity:1;pointer-events:all}#modal-wrapper{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1.25rem;pointer-events:none;opacity:0;transform:scale(.97) translateY(10px);transition:opacity .3s ease,transform .35s cubic-bezier(.16,1,.3,1)}#modal-wrapper.open{opacity:1;transform:scale(1) translateY(0)}#modal-wrapper.open #project-modal{pointer-events:all}#project-modal{pointer-events:none;width:100%;max-width:780px;max-height:88vh;background:#09071a;border:1px solid rgba(255,255,255,.07);border-radius:1.25rem;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 32px 80px #000000b3,0 0 0 1px #ffffff0a}#modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.5rem 1.5rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0;background:#09071a}#modal-header-left{display:flex;flex-direction:column;gap:.6rem;min-width:0}#modal-title{font-size:clamp(1.4rem,4vw,1.9rem);font-weight:700;color:#fff;line-height:1.2;font-family:var(--font-heading, inherit);margin:0}#modal-tags{display:flex;flex-wrap:wrap;gap:.4rem}.modal-tag{display:inline-block;padding:.2rem .65rem;border-radius:9999px;font-size:.65rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;border:1px solid}#modal-sub{font-size:.75rem;color:#ffffff59;margin:0;font-family:var(--font-mono, monospace)}#drawer-close{flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:9999px;border:1px solid rgba(255,255,255,.12);background:transparent;color:#ffffff73;cursor:pointer;transition:color .2s,border-color .2s,background .2s;margin-top:.15rem}#drawer-close:hover{color:#fff;border-color:#ffffff4d;background:#ffffff0d}#drawer-scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}#drawer-content{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.block-text p{font-size:.875rem;color:#ffffff8c;line-height:1.8;margin:0 0 .75rem}.block-text p:last-child{margin-bottom:0}.block-heading{font-size:.95rem;font-weight:700;color:#fff;font-family:var(--font-heading, inherit);margin:.5rem 0 0;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.05)}.block-list{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.4rem;list-style-type:circle}.block-list::marker,.block-list li::marker{color:var(--color-accent, #a476ff)}.block-list li{font-size:.875rem;color:#ffffff8c;line-height:1.7}.block-list li strong{color:#ffffffe6;font-weight:600}.block-media{width:100%;border-radius:.6rem;overflow:hidden;background:#000}.block-media-inner{position:relative;aspect-ratio:16 / 9}.block-media img,.block-media video{width:100%;height:100%;object-fit:contain;display:block}.block-media iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.block-media-inner.block-media-pdf{aspect-ratio:unset;height:520px}.block-media-inner.block-media-slides{aspect-ratio:16 / 9}.block-media-caption{padding:.5rem .75rem;font-size:.72rem;color:#ffffff59;background:#ffffff08;border-top:1px solid rgba(255,255,255,.05)}.block-tags{display:flex;flex-wrap:wrap;gap:.4rem;padding-top:.25rem}.block-tech-tag{padding:.25rem .6rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:.375rem;font-size:.7rem;color:#ffffff73}.block-link{padding-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem}.block-link a{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.1rem;background:#a476ff14;border:1px solid rgba(164,118,255,.22);color:var(--color-accent, #a476ff);border-radius:.75rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:background .2s,border-color .2s}.block-link a:hover{background:#a476ff29;border-color:#a476ff66}.project-card[data-astro-cid-lsjgadct]{transform:translateY(20px) scale(.95);transition:all .6s cubic-bezier(.16,1,.3,1)}.project-card[data-astro-cid-lsjgadct].reveal{opacity:1!important;transform:translateY(0) scale(1)}
