.row[data-astro-cid-v2cbyr3p]{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:3rem}.col[data-astro-cid-v2cbyr3p]{min-width:0}h3[data-astro-cid-v2cbyr3p]{margin:0 0 .85rem;font-family:SFMono-Regular,IBM Plex Mono,Courier New,monospace;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#5f6977}.section-heading[data-astro-cid-v2cbyr3p]{display:flex;align-items:baseline;justify-content:flex-start;gap:.75rem}.section-heading-link[data-astro-cid-v2cbyr3p]{color:#06c;text-decoration:none}.section-heading-link[data-astro-cid-v2cbyr3p]:hover{text-decoration:underline}.col[data-astro-cid-v2cbyr3p] h3[data-astro-cid-v2cbyr3p]:not(:first-child){margin-top:1.5rem}@media (max-width: 768px){.row[data-astro-cid-v2cbyr3p]{grid-template-columns:1fr}}.collection[data-astro-cid-v2cbyr3p],.collection-text[data-astro-cid-v2cbyr3p]{list-style:none;padding:0;margin:0;border:1px solid rgba(18,22,29,.12);background:#ffffffc2}.collection-item[data-astro-cid-v2cbyr3p]{padding:1.5rem;margin:1rem}.collection-item-text[data-astro-cid-v2cbyr3p]{padding:.9rem 1rem;border-bottom:1px solid rgba(18,22,29,.08)}.collection-item-text[data-astro-cid-v2cbyr3p]:last-child{border-bottom:none}.collection-item[data-astro-cid-v2cbyr3p].avatar{display:flex;align-items:flex-start;gap:1rem;padding:.5rem;width:100%;height:100%;box-sizing:border-box}.collection-item[data-astro-cid-v2cbyr3p] img[data-astro-cid-v2cbyr3p].circle{border-radius:50%;width:50px;height:50px;object-fit:cover;flex-shrink:0}.collection-item[data-astro-cid-v2cbyr3p].avatar img[data-astro-cid-v2cbyr3p].circle{width:30px;height:30px}.collection-compact[data-astro-cid-v2cbyr3p]{list-style:none;padding:0;margin:0;border:1px solid rgba(18,22,29,.12);background:#ffffffc2}.collection-item-compact[data-astro-cid-v2cbyr3p]{padding:.5rem .75rem}.collection-item-compact[data-astro-cid-v2cbyr3p].avatar{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;width:100%;box-sizing:border-box;border-bottom:1px solid #f5f5f5}.collection-item-compact[data-astro-cid-v2cbyr3p]:last-child{border-bottom:none}.collection-item-compact[data-astro-cid-v2cbyr3p] img[data-astro-cid-v2cbyr3p].circle{border-radius:50%;width:16px;height:16px;object-fit:cover;flex-shrink:0}.collection-item-compact[data-astro-cid-v2cbyr3p] .content[data-astro-cid-v2cbyr3p]{flex:1;width:100%}.collection-item-compact[data-astro-cid-v2cbyr3p] .content[data-astro-cid-v2cbyr3p] a[data-astro-cid-v2cbyr3p]{display:block;text-decoration:none;color:inherit}.collection-item-compact[data-astro-cid-v2cbyr3p] .title[data-astro-cid-v2cbyr3p]{font-weight:500;display:inline;margin-right:.5rem;color:#06c;font-size:.75rem}.collection-item-compact[data-astro-cid-v2cbyr3p] p[data-astro-cid-v2cbyr3p]{display:inline;margin:0;font-size:.7rem;color:#666;line-height:1.2}.projects-collection[data-astro-cid-v2cbyr3p]{list-style:none;padding:0;margin:0;border:1px solid rgba(18,22,29,.12);background:#ffffffc2}.project-item[data-astro-cid-v2cbyr3p]{display:flex;align-items:flex-start;gap:1rem;padding:1rem;border-bottom:1px solid rgba(18,22,29,.08)}.media-item[data-astro-cid-v2cbyr3p]{display:flex;align-items:flex-start;gap:1rem;padding:.65rem .8rem;border-bottom:1px solid rgba(18,22,29,.08)}.project-item[data-astro-cid-v2cbyr3p]:last-child{border-bottom:none}.project-logo[data-astro-cid-v2cbyr3p]{width:40px;height:40px;border-radius:.35rem;object-fit:cover;flex-shrink:0;border:1px solid rgba(18,22,29,.1)}.media-logo[data-astro-cid-v2cbyr3p]{width:30px;height:30px;border-radius:.3rem;object-fit:cover;flex-shrink:0;border:1px solid rgba(18,22,29,.1)}.project-content[data-astro-cid-v2cbyr3p]{flex:1;width:100%}.project-content[data-astro-cid-v2cbyr3p] a[data-astro-cid-v2cbyr3p]{display:block;text-decoration:none;color:inherit}.project-content[data-astro-cid-v2cbyr3p] a[data-astro-cid-v2cbyr3p]:hover .project-title[data-astro-cid-v2cbyr3p]{text-decoration:underline}.project-title[data-astro-cid-v2cbyr3p]{font-weight:600;display:block;margin-bottom:.35rem;color:#06c;font-size:1rem}.project-item[data-astro-cid-v2cbyr3p] p[data-astro-cid-v2cbyr3p]{margin:0;font-size:.9rem;color:#5f6977;line-height:1.5}.collection-item[data-astro-cid-v2cbyr3p] .content[data-astro-cid-v2cbyr3p],.media-item[data-astro-cid-v2cbyr3p] .content[data-astro-cid-v2cbyr3p]{flex:1;width:100%}.collection-item[data-astro-cid-v2cbyr3p] .content[data-astro-cid-v2cbyr3p] a[data-astro-cid-v2cbyr3p],.media-item[data-astro-cid-v2cbyr3p] .content[data-astro-cid-v2cbyr3p] a[data-astro-cid-v2cbyr3p]{display:block;text-decoration:none;color:inherit}.collection-item[data-astro-cid-v2cbyr3p] .title[data-astro-cid-v2cbyr3p],.media-item[data-astro-cid-v2cbyr3p] .title[data-astro-cid-v2cbyr3p]{font-weight:700;display:block;margin-bottom:.5rem;color:#06c;font-size:1rem}.media-item[data-astro-cid-v2cbyr3p] p[data-astro-cid-v2cbyr3p]{margin:0;font-size:.88rem;color:#5f6977;line-height:1.5}.collection-item[data-astro-cid-v2cbyr3p] p[data-astro-cid-v2cbyr3p]{margin:0;font-size:.875rem;color:#5f6977;line-height:1.5}.precision-panel[data-astro-cid-v2cbyr3p]{border:1px solid rgba(18,22,29,.12);background:#ffffffc2}.links-panel[data-astro-cid-v2cbyr3p]{padding:.9rem 1rem}.links-panel[data-astro-cid-v2cbyr3p] ul[data-astro-cid-v2cbyr3p]{margin:0;padding-left:1.1rem}.links-panel[data-astro-cid-v2cbyr3p] li[data-astro-cid-v2cbyr3p]+li[data-astro-cid-v2cbyr3p]{margin-top:.7rem}.links-panel[data-astro-cid-v2cbyr3p] a[data-astro-cid-v2cbyr3p]{color:#1b2432;text-decoration:none}.links-panel[data-astro-cid-v2cbyr3p] a[data-astro-cid-v2cbyr3p]:hover{text-decoration:underline}.newsletter-panel[data-astro-cid-v2cbyr3p]{margin-top:1rem;padding:1rem}.publications-collection[data-astro-cid-v2cbyr3p]{list-style:none;padding:0;margin:0;border:1px solid rgba(18,22,29,.12);background:#ffffffc2}.publication-item[data-astro-cid-v2cbyr3p]{padding:1rem;border-bottom:1px solid rgba(18,22,29,.08)}.publication-item[data-astro-cid-v2cbyr3p]:last-child{border-bottom:none}.publication-item[data-astro-cid-v2cbyr3p] a[data-astro-cid-v2cbyr3p]{display:block;text-decoration:none;color:inherit}.publication-item[data-astro-cid-v2cbyr3p] a[data-astro-cid-v2cbyr3p]:hover .project-title[data-astro-cid-v2cbyr3p]{text-decoration:underline}.publication-meta[data-astro-cid-v2cbyr3p]{display:block;margin-bottom:.4rem;font-family:SFMono-Regular,IBM Plex Mono,Courier New,monospace;font-size:.72rem;letter-spacing:.04em;color:#5f6977}.publication-item[data-astro-cid-v2cbyr3p] p[data-astro-cid-v2cbyr3p]{margin:0;font-size:.9rem;color:#5f6977;line-height:1.5}.mesh-frame[data-astro-cid-k3fncdnn]{position:relative;width:100%}.mesh-visual[data-astro-cid-k3fncdnn]{position:relative;display:flex;flex-direction:column;border:1px solid rgba(18,22,29,.12);background:#fcfcfb;user-select:none}.mesh-stage[data-astro-cid-k3fncdnn]{position:relative;height:clamp(320px,29vw,400px);overflow:hidden}.mesh-canvas[data-astro-cid-k3fncdnn]{position:absolute;inset:0;display:block;width:100%;height:100%;cursor:crosshair}.mesh-controls[data-astro-cid-k3fncdnn]{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;padding:.55rem .75rem;border-top:1px solid rgba(18,22,29,.1);background:#fafaf7}.mesh-control-group[data-astro-cid-k3fncdnn]{display:flex;gap:.35rem}.mesh-controls[data-astro-cid-k3fncdnn] button[data-astro-cid-k3fncdnn]{padding:4px 9px;border:1px solid rgba(18,22,29,.2);background:#fff;color:#12161d;font:9px SFMono-Regular,IBM Plex Mono,Courier New,monospace;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:color .18s ease,border-color .18s ease,background-color .18s ease}.mesh-controls[data-astro-cid-k3fncdnn] button[data-astro-cid-k3fncdnn]:hover,.mesh-controls[data-astro-cid-k3fncdnn] button[data-astro-cid-k3fncdnn]:focus-visible{color:#0b66cc;border-color:#0b66cc73;background:#0b66cc0d;outline:none}.mesh-controls[data-astro-cid-k3fncdnn] button[data-astro-cid-k3fncdnn][aria-pressed=false]{color:#5f6977;background:transparent;border-style:dashed}.mesh-controls[data-astro-cid-k3fncdnn] button[data-astro-cid-k3fncdnn][data-mesh-action=kill-all]{color:#c41f4a;border-color:#e22e5666}.mesh-controls[data-astro-cid-k3fncdnn] button[data-astro-cid-k3fncdnn][data-mesh-action=kill-all]:hover,.mesh-controls[data-astro-cid-k3fncdnn] button[data-astro-cid-k3fncdnn][data-mesh-action=kill-all]:focus-visible{background:#e22e560f}.mesh-hint[data-astro-cid-k3fncdnn]{flex:1;min-width:0;color:#5f6977;font:9px SFMono-Regular,IBM Plex Mono,Courier New,monospace;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mesh-visual[data-astro-cid-k3fncdnn].is-expanded{position:fixed;top:50%;left:50%;width:96vw;transform:translate(-50%,-50%);z-index:1001;box-shadow:0 30px 90px #12161d2e}.mesh-visual[data-astro-cid-k3fncdnn].is-expanded .mesh-stage[data-astro-cid-k3fncdnn]{height:min(calc(88vh - 48px),33vw)}.mesh-backdrop[data-astro-cid-k3fncdnn]{position:fixed;inset:0;z-index:1000;background:#f4f4f0db;backdrop-filter:blur(6px)}.mesh-backdrop[data-astro-cid-k3fncdnn][hidden]{display:none}html.mesh-lock{overflow:hidden}@media (max-width: 700px){.mesh-stage[data-astro-cid-k3fncdnn]{height:340px}.mesh-visual[data-astro-cid-k3fncdnn].is-expanded .mesh-stage[data-astro-cid-k3fncdnn]{height:min(calc(84vh - 90px),110vw)}.mesh-hint[data-astro-cid-k3fncdnn]{display:none}.mesh-controls[data-astro-cid-k3fncdnn]{gap:.4rem}.mesh-control-group[data-astro-cid-k3fncdnn]{flex-wrap:wrap}}.home[data-astro-cid-j7pv25f6]{max-width:1200px;margin:0 auto;padding:2rem 0}.intro-grid[data-astro-cid-j7pv25f6]{margin-bottom:1.5rem}.intro-copy[data-astro-cid-j7pv25f6]{padding:1.25rem 1.35rem 1.15rem;border:1px solid rgba(18,22,29,.12);background:#ffffffc2}.intro-copy[data-astro-cid-j7pv25f6] p[data-astro-cid-j7pv25f6]{max-width:82ch}.visual-section[data-astro-cid-j7pv25f6]{width:100%;margin-bottom:1rem}h3[data-astro-cid-j7pv25f6]{margin-top:0;margin-bottom:.9rem;font-family:SFMono-Regular,IBM Plex Mono,Courier New,monospace;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}p[data-astro-cid-j7pv25f6]{margin-bottom:1rem;line-height:1.7;color:#212733}a[data-astro-cid-j7pv25f6]{color:#06c;text-decoration:none}a[data-astro-cid-j7pv25f6]:hover{text-decoration:underline}
