.proj-card[data-astro-cid-y2vllrex]{background:var(--bg-card);cursor:pointer;transition:background var(--t);flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:visible}.c-glow-wrap[data-astro-cid-y2vllrex]{pointer-events:none;z-index:1;border-radius:inherit;position:absolute;inset:0;overflow:hidden}.c-glow-spot[data-astro-cid-y2vllrex]{width:360px;height:360px;left:var(--gx,-999px);top:var(--gy,-999px);opacity:0;pointer-events:none;background:radial-gradient(circle,#0039db4d 0%,#0000 70%);border-radius:50%;transition:opacity .4s;position:absolute;transform:translate(-50%,-50%)}.proj-card[data-astro-cid-y2vllrex]:hover .c-glow-spot[data-astro-cid-y2vllrex]{opacity:1}.proj-card[data-astro-cid-y2vllrex]:hover{background:var(--bg-card-h)}.proj-card[data-astro-cid-y2vllrex]:hover .c-arr[data-astro-cid-y2vllrex]{color:var(--accent);transform:translate(3px)}.c-thumb[data-astro-cid-y2vllrex]{aspect-ratio:3;border-bottom:1px solid var(--border);font-family:var(--fm);color:var(--text-3);letter-spacing:.14em;z-index:2;background:repeating-linear-gradient(-55deg,#0000,#0000 9px,#ffffff03 9px 10px),linear-gradient(160deg,#0f0f0f,#0a0a0a);justify-content:center;align-items:center;font-size:10px;display:flex;position:relative;overflow:hidden}.c-thumb-overlay[data-astro-cid-y2vllrex]{transition:background var(--t);z-index:1;pointer-events:none;background:#00000073;position:absolute;inset:0}.proj-card[data-astro-cid-y2vllrex]:hover .c-thumb-overlay[data-astro-cid-y2vllrex]{background:0 0}.c-thumb-img[data-astro-cid-y2vllrex]{object-fit:cover;opacity:.88;width:100%;height:100%;transition:opacity var(--t), transform var(--t);display:block;position:absolute;inset:0}.proj-card[data-astro-cid-y2vllrex]:hover .c-thumb-img[data-astro-cid-y2vllrex]{opacity:1;transform:scale(1.03)}.c-body[data-astro-cid-y2vllrex]{z-index:2;flex-direction:column;flex:1;gap:9px;padding:20px 22px 22px;display:flex;position:relative}.c-name[data-astro-cid-y2vllrex]{font-family:var(--fd);letter-spacing:-.01em;color:var(--text);font-size:14.5px;font-weight:500}.c-desc[data-astro-cid-y2vllrex]{color:var(--text);flex:1;font-size:13px;line-height:1.6}.c-foot[data-astro-cid-y2vllrex]{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.c-tags[data-astro-cid-y2vllrex]{flex-wrap:wrap;gap:5px;display:flex}.c-arr[data-astro-cid-y2vllrex]{color:var(--text-3);transition:transform var(--t), color var(--t);flex-shrink:0;font-size:15px}.filter-bar{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.filter-btn{font-family:var(--fm);letter-spacing:.06em;color:var(--text-2);transition:color var(--t), background var(--t);cursor:pointer;background:0 0;border-radius:2px;padding:5px 13px;font-size:16px;font-weight:500}.filter-btn:hover{color:var(--text)}.filter-btn.on{color:var(--accent);background:var(--accent-dim)}.yr-bar{flex-wrap:wrap;gap:4px;margin-bottom:20px;display:flex}.yr-btn{font-family:var(--fm);letter-spacing:.16em;color:var(--text-3);transition:color var(--t), background var(--t);cursor:pointer;text-transform:uppercase;background:0 0;border-radius:2px;padding:5px 13px;font-size:16px;font-weight:500}.yr-btn:hover{color:var(--text-2)}.yr-btn.on{color:var(--accent);background:var(--accent-dim)}.srch-wrap{max-width:400px;margin-bottom:36px;position:relative}.srch-icon{color:var(--text-3);pointer-events:none;font-size:14px;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.srch-input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);width:100%;color:var(--text);font-family:var(--fb);transition:border-color var(--t);outline:none;padding:10px 14px 10px 36px;font-size:13.5px}.srch-input::placeholder{color:var(--text-3)}.srch-input:focus{border-color:var(--border-h)}.year-group+.year-group{margin-top:48px}.year-header{align-items:center;gap:14px;margin-bottom:16px;display:flex}.year-num{font-family:var(--fm);letter-spacing:.22em;color:var(--text-3);white-space:nowrap;text-transform:uppercase;font-size:48px}.year-line{background:var(--border);flex:1;height:1px}.proj-grid{background:var(--border);border:1px solid var(--border);border-radius:var(--r);grid-template-columns:repeat(2,1fr);gap:1px;display:grid;overflow:visible}.empty{font-family:var(--fm);color:var(--text-3);padding:32px 0;font-size:12px}@media (width<=640px){.proj-grid{grid-template-columns:1fr}}
