:root{color:#18181b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;background:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}#root{flex-direction:column;min-height:100vh;display:flex}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline-offset:3px;outline:3px solid #8b5cf6}.site-header{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border-bottom:1px solid #e5e7eb;position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;gap:24px;width:min(100% - 40px,1080px);min-height:72px;margin:0 auto;display:flex}.site-brand{color:#171717;letter-spacing:-.04em;font-size:18px;font-weight:750;text-decoration:none}.site-nav{align-items:center;gap:6px;display:flex}.site-nav a{color:#52525b;border-radius:8px;padding:9px 12px;font-size:14px;font-weight:550;text-decoration:none;transition:background-color .15s,color .15s}.site-nav a:hover{color:#18181b;background:#f4f4f5}.site-nav a.active{color:#fff;background:#18181b}.page-content{flex:1;align-items:start;width:min(100% - 40px,1080px);margin:0 auto;padding:clamp(48px,10vw,120px) 0;display:grid}.page-card{max-width:720px}.page-card .eyebrow{color:#71717a;letter-spacing:.14em;margin:0 0 14px;font-size:12px;font-weight:700}.page-card h1{color:#18181b;letter-spacing:-.055em;margin:0 0 18px;font-size:clamp(38px,7vw,64px);font-weight:700;line-height:1.05}.page-card>p:last-child{color:#52525b;max-width:560px;font-size:18px;line-height:1.7}.page-card--projects{max-width:none}.page-card--projects h1{margin-bottom:12px}.projects-intro{color:#52525b;margin:0 0 36px;font-size:18px;line-height:1.7}.project-grid{flex-wrap:wrap;align-items:stretch;gap:18px;display:flex}.project-tile{background:#fff;border:1px solid #e4e4e7;border-radius:16px;flex-direction:column;flex:280px;min-width:0;max-width:360px;min-height:245px;padding:24px;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex;box-shadow:0 8px 24px #18181b0a}.project-tile:hover{border-color:#c4b5fd;transform:translateY(-3px);box-shadow:0 14px 32px #18181b14}.project-tile__topline{justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px;display:flex}.project-tile__number{color:#a1a1aa;font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.project-tile__category{color:#52525b;background:#f4f4f5;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:600}.project-tile h2{color:#18181b;letter-spacing:-.03em;margin:0 0 10px;font-size:22px;font-weight:650}.project-tile>p{color:#71717a;margin:0 0 24px;font-size:15px;line-height:1.65}.project-tile__link,.project-tile__placeholder{margin-top:auto;font-size:14px;font-weight:650}.project-tile__link{color:#6d28d9;text-decoration:none}.project-tile__link:hover{color:#4c1d95}.project-tile__link span{margin-left:4px}.project-tile__placeholder{color:#a1a1aa}.photo-page{width:100%}.hex-gallery{--hex-size:clamp(84px, 17vw, 180px);--hex-gap:clamp(8px, 1vw, 12px);place-items:center;min-height:clamp(330px,48vw,500px);display:grid;overflow:visible}.hex-gallery__item{width:var(--hex-size);aspect-ratio:1.15;clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0 50%);cursor:pointer;filter:grayscale(80%);transform:translate(var(--_x,0), var(--_y,0)) scale(var(--_scale,1));background:0 0;border:0;grid-area:1/1;padding:0;transition:filter .2s linear,transform .2s linear;display:block}.hex-gallery__item img{object-fit:cover;width:100%;height:100%;display:block}.hex-gallery__item:hover{z-index:1;--_scale:1.18;filter:grayscale(0%)}.hex-gallery__item:focus-visible{z-index:1;filter:grayscale(0%)}.photo-page--suppress-hover .hex-gallery__item:hover,.photo-page--suppress-hover .hex-gallery__item:focus-visible{z-index:0;--_scale:1;filter:grayscale(80%)}.hex-gallery__item:first-child{--_x:calc(-75% - var(--hex-gap));--_y:calc(-50% - 5px)}.hex-gallery__item:nth-child(2){--_x:calc(75% + var(--hex-gap));--_y:calc(-50% - 5px)}.hex-gallery__item:nth-child(4){--_x:calc(-75% - var(--hex-gap));--_y:calc(50% + 5px)}.hex-gallery__item:nth-child(5){--_x:calc(75% + var(--hex-gap));--_y:calc(50% + 5px)}.photo-lightbox{color:#fff;background:0 0;border:0;place-items:center;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:24px;position:fixed;inset:0;overflow:hidden}.photo-lightbox[open]{display:grid}.photo-lightbox::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0c0c10eb}.photo-lightbox__image{object-fit:contain;border-radius:8px;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 48px);display:block;box-shadow:0 16px 64px #00000061}.photo-lightbox__control{color:#fff;cursor:pointer;background:#1e1e24b8;border:1px solid #ffffff3d;border-radius:50%;place-items:center;width:48px;height:48px;padding:0;transition:background-color .15s,transform .15s;display:grid;position:absolute}.photo-lightbox__control:hover{background:#41414aeb;transform:scale(1.06)}.photo-lightbox__control svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:22px;height:22px}.photo-lightbox__close{top:24px;right:24px}.photo-lightbox__previous,.photo-lightbox__next{top:50%;transform:translateY(-50%)}.photo-lightbox__previous:hover,.photo-lightbox__next:hover{transform:translateY(-50%)scale(1.06)}.photo-lightbox__previous{left:24px}.photo-lightbox__next{right:24px}@media (width<=560px){.site-header__inner{flex-wrap:wrap;gap:0 12px;width:min(100% - 28px,1080px);min-height:64px;padding:10px 0}.site-nav{justify-content:space-between;gap:0;width:100%}.site-nav a{padding:8px 9px;font-size:13px}.page-content{width:min(100% - 28px,1080px)}.hex-gallery{--hex-size:clamp(76px, 23vw, 140px);min-height:340px}.photo-lightbox{padding:12px}.photo-lightbox__image{max-height:calc(100vh - 24px)}.photo-lightbox__control{width:42px;height:42px}.photo-lightbox__close{top:16px;right:16px}.photo-lightbox__previous{left:12px}.photo-lightbox__next{right:12px}}
