.project-thumb{aspect-ratio:16/10;background:#ebedec0a;background:var(--surface-subtle);cursor:zoom-in;border:none;border-radius:6px;width:100%;padding:0;display:block;position:relative}.project-thumb>img,.project-thumb>video{-o-object-fit:contain;object-fit:contain;border-radius:6px;width:100%;height:100%;display:block;overflow:hidden}.project-thumb:focus-visible{outline:2px solid #729e84;outline:2px solid var(--accent-green);outline-offset:2px}.project-thumb-narrow{cursor:default}.project-thumb-narrow .project-thumb-controls,.project-thumb-narrow .project-thumb-img-fs{pointer-events:none}.project-thumb-narrow.project-thumb-narrow-active .project-thumb-controls,.project-thumb-narrow.project-thumb-narrow-active .project-thumb-img-fs,.project-thumb-narrow:focus-within .project-thumb-controls,.project-thumb-narrow:focus-within .project-thumb-img-fs{opacity:1;pointer-events:auto}@media (hover:hover) and (pointer:fine){.project-thumb-narrow .project-thumb-controls,.project-thumb-narrow .project-thumb-img-fs{opacity:0;opacity:var(--narrow-active,0);pointer-events:none;pointer-events:var(--narrow-pe,none)}}.project-thumb-preview:focus{outline:none}.project-thumb-preview:not(.project-thumb-preview-interactive){pointer-events:none}.project-thumb-preview{background:#212121;background:var(--bg-color);width:auto;max-width:90vw;height:auto;max-height:85vh;box-shadow:0 50px 120px #000000b3;box-shadow:0 50px 120px var(--overlay-dark);z-index:1000;z-index:var(--z-modal);pointer-events:auto;opacity:0;cursor:pointer;border:1px solid #ebedec14;border-radius:14px;transition:opacity .25s,transform .25s;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)scale(.96)}@supports (color:color-mix(in lch, red, blue)){.project-thumb-preview{border:1px solid color-mix(in srgb, var(--text-primary) 8%, transparent)}}.project-thumb-preview.project-thumb-preview-visible{opacity:1;transform:translate(-50%,-50%)scale(1)}.project-thumb-preview:hover:not(.project-thumb-preview-active){cursor:none}.project-thumb-preview.project-thumb-preview-active .project-thumb-controls,.project-thumb-preview.project-thumb-preview-active .project-thumb-img-fs{opacity:1;pointer-events:auto}.project-thumb-preview img,.project-thumb-preview video{-o-object-fit:contain;object-fit:contain;width:100%;height:100%;display:block}.project-thumb-preview-open .project-thumb-controls:focus-within,.project-thumb-preview-open .project-thumb-img-fs:focus-visible,.project-thumb-preview-open.project-thumb-preview-active .project-thumb-controls,.project-thumb-preview-open.project-thumb-preview-active .project-thumb-img-fs{opacity:1;pointer-events:auto}.project-thumb-close{background:#0000008c;background:var(--overlay-medium);color:var(--text-primary);width:44px;height:44px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .2s;display:flex;position:absolute;top:12px;right:12px}.project-thumb-close:hover{background:#000000d9;background:var(--overlay-intense)}.project-thumb-close:focus-visible{outline:2px solid #729e84;outline:2px solid var(--accent-green);outline-offset:2px}.project-thumb-controls{background:linear-gradient(#0000 0%,#00000059 50%,#000000d9 100%);background:linear-gradient(to top, var(--overlay-intense) 0%, #00000059 50%, transparent 100%);z-index:2;opacity:0;pointer-events:none;align-items:center;gap:12px;padding:22px 16px 14px;transition:opacity .25s;display:flex;position:absolute;bottom:0;left:0;right:0}.project-thumb-ctrl{color:var(--text-primary);width:36px;height:36px;cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s;display:flex}.project-thumb-ctrl:hover{background:#ebedec26}@supports (color:color-mix(in lch, red, blue)){.project-thumb-ctrl:hover{background:color-mix(in srgb, var(--text-primary) 15%, transparent)}}.project-thumb-ctrl:focus-visible{outline:2px solid #729e84;outline:2px solid var(--accent-green);outline-offset:2px}.project-thumb-progress{cursor:pointer;flex:1;align-items:center;height:16px;display:flex;position:relative}.project-thumb-progress:before{content:"";background:#ebedec40;border-radius:2px;height:4px;position:absolute;left:0;right:0}@supports (color:color-mix(in lch, red, blue)){.project-thumb-progress:before{background:color-mix(in srgb, var(--text-primary) 25%, transparent)}}.project-thumb-progress:hover .project-thumb-progress-handle{opacity:1}.project-thumb-progress:focus-visible{outline:2px solid #729e84;outline:2px solid var(--accent-green);outline-offset:4px;border-radius:2px}.project-thumb-progress-fill{background:#729e84;background:var(--accent-green);pointer-events:none;border-radius:2px;height:4px;position:absolute;left:0}.project-thumb-progress-handle{background:#729e84;background:var(--accent-green);pointer-events:none;opacity:0;border-radius:50%;width:12px;height:12px;transition:opacity .2s;position:absolute;transform:translate(-50%)}.project-thumb-error{color:#ebedec66;justify-content:center;align-items:center;width:100%;height:100%;font-size:.875rem;display:flex}@supports (color:color-mix(in lch, red, blue)){.project-thumb-error{color:color-mix(in srgb, var(--text-primary) 40%, transparent)}}@media (hover:none),(pointer:coarse){.project-thumb-progress-handle{opacity:1}}@media (max-width:992px){.project-thumb{grid-area:thumb}}.project-thumb-img-fs{background:#0000008c;background:var(--overlay-medium);color:var(--text-primary);width:44px;height:44px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;pointer-events:none;z-index:2;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,opacity .25s;display:flex;position:absolute;bottom:12px;right:12px}.project-thumb-img-fs:hover{background:#000000d9;background:var(--overlay-intense)}.project-thumb-img-fs:focus-visible{outline:2px solid #729e84;outline:2px solid var(--accent-green);outline-offset:2px}.project-thumb-preview:fullscreen video,.project-thumb-narrow:fullscreen video,.project-thumb-preview:fullscreen img,.project-thumb-narrow:fullscreen img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.project-thumb-preview:fullscreen .project-thumb-controls,.project-thumb-narrow:fullscreen .project-thumb-controls{opacity:0;opacity:var(--fs-active,0);pointer-events:auto;transition:opacity .3s}.project-thumb-preview:fullscreen .project-thumb-controls:focus-within,.project-thumb-narrow:fullscreen .project-thumb-controls:focus-within{opacity:1}.project-thumb-preview:fullscreen .project-thumb-img-fs,.project-thumb-narrow:fullscreen .project-thumb-img-fs{opacity:0;opacity:var(--fs-active,0);pointer-events:auto;cursor:pointer;transition:opacity .3s}.project-thumb-preview:fullscreen .project-thumb-img-fs:focus-visible,.project-thumb-narrow:fullscreen .project-thumb-img-fs:focus-visible{opacity:1}.project-thumb-narrow:-webkit-full-screen .project-thumb-img-fs:focus-visible{opacity:1}
.hover-underline{transition:color .3s;position:relative}.hover-underline:hover{color:var(--accent-green)}.hover-underline:hover:after{width:100%}.hover-underline:after{content:"";background-color:#729e84;background-color:var(--accent-green);width:0;height:1px;transition:width .3s;position:absolute;bottom:-2px;left:0}@media (prefers-reduced-motion:reduce){.hover-underline,.hover-underline:after{transition:none}}
.projects-list{border-top:1px solid #ebedec3d;border-top:1px solid var(--border-divider)}.project-row{opacity:0;transform:translateY(20px)}.project-row--visible{animation:.7s cubic-bezier(.25,0,0,1) both row-reveal;animation-delay:calc(var(--row-i,0) * 60ms)}@keyframes row-reveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.project-row--visible{animation:.3s both row-reveal-fade}@keyframes row-reveal-fade{0%{opacity:0}to{opacity:1}}}.project-row{grid-gap:40px;border-bottom:1px solid #ebedec3d;border-bottom:1px solid var(--border-divider);grid-template-columns:60px max(200px,min(22vw,300px)) minmax(0,1fr) 160px;align-items:center;gap:40px;min-height:180px;padding:28px 0;transition:background-color .25s,color .25s,padding-left .25s,padding-right .25s;display:grid}.project-index{opacity:.75;font-size:14px}.project-main{grid-gap:12px;gap:12px;display:grid}.project-main h3{font-size:max(32px,min(5vw,76px));line-height:.9}.project-main p{opacity:.68;max-width:680px;font-size:16px}.project-links{flex-wrap:wrap;gap:24px;margin-top:20px;display:flex}.project-link{color:var(--text-primary);align-items:center;gap:6px;font-size:15px;font-weight:500;display:inline-flex}.project-link svg{flex-shrink:0}.project-meta{flex-wrap:wrap;justify-content:flex-end;justify-self:end;gap:6px;max-width:100%;display:flex}.project-meta span{letter-spacing:.1em;text-transform:uppercase;opacity:.75;white-space:nowrap;background:#ebedec0d;border:1px solid #ebedec26;border-radius:100px;padding:8px 14px;font-size:13px;font-weight:700;transition:color .35s,border-color .35s,background .35s,box-shadow .35s,opacity .35s}@supports (color:color-mix(in lch, red, blue)){.project-meta span{background:color-mix(in srgb, var(--text-primary) 5%, transparent);border:1px solid color-mix(in srgb, var(--text-primary) 15%, transparent)}}@media (hover:hover) and (pointer:fine){.project-row:hover{background-color:#ebedec1a;background-color:var(--border-soft);padding-left:24px;padding-right:24px;transition:background-color .25s,color .25s,padding-left .25s,padding-right .25s}.project-row:has(.project-thumb-active){background-color:#ebedec1a;background-color:var(--border-soft);padding-left:24px;padding-right:24px;transition:background-color .25s,color .25s,padding-left .25s,padding-right .25s}.project-row:has(.project-thumb-active) .project-meta span{color:var(--accent-green);opacity:1;background:#729e8417;border-color:#729e848c}@supports (color:color-mix(in lch, red, blue)){.project-row:has(.project-thumb-active) .project-meta span{border-color:color-mix(in srgb, var(--accent-green) 55%, transparent);background:color-mix(in srgb, var(--accent-green) 9%, transparent)}}.project-row:hover .project-meta span{color:var(--accent-green);opacity:1;background:#729e8417;border-color:#729e848c}@supports (color:color-mix(in lch, red, blue)){.project-row:hover .project-meta span{border-color:color-mix(in srgb, var(--accent-green) 55%, transparent);background:color-mix(in srgb, var(--accent-green) 9%, transparent)}}.project-row:has(.project-thumb-active) .project-meta span:hover{box-shadow:0 0 0 1px #729e842e,0 0 16px #729e8433}@supports (color:color-mix(in lch, red, blue)){.project-row:has(.project-thumb-active) .project-meta span:hover{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-green) 18%, transparent), 0 0 16px color-mix(in srgb, var(--accent-green) 20%, transparent)}}.project-row:hover .project-meta span:hover{box-shadow:0 0 0 1px #729e842e,0 0 16px #729e8433}@supports (color:color-mix(in lch, red, blue)){.project-row:hover .project-meta span:hover{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-green) 18%, transparent), 0 0 16px color-mix(in srgb, var(--accent-green) 20%, transparent)}}}@media (prefers-reduced-motion:reduce){.project-row,.project-meta span{transition:none}}@media (max-width:992px){.project-row:hover{padding-left:24px;padding-right:24px}.project-row:has(.project-thumb-active){padding-left:24px;padding-right:24px}.project-row{grid-template-columns:minmax(0,1fr);grid-template-areas:"thumb""index""main""meta";gap:16px;margin-left:-12px;margin-right:-12px;padding-left:24px;padding-right:24px}.project-index{grid-area:index}.project-main{grid-area:main}.project-meta{grid-area:meta;justify-content:flex-start;justify-self:start}}
