html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}@font-face{font-family:Geist;src:url(/assets/Geist-Variable-Bj2R_7yk.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(9% .012 250);--surface:oklch(16% .014 250);--surface-hover:oklch(21% .018 250);--ink:oklch(94% .006 250);--muted:oklch(68% .014 250);--faint:oklch(28% .016 250);--primary:oklch(65% .11 145);--accent:oklch(71% .18 254);--accent-soft:oklch(24% .08 254);--accent-ink:oklch(90% .055 254);--radius:0px;--gutter:clamp(8px, .82vw, 14px);--top-space:clamp(52px, 8vw, 108px);--side:clamp(12px, 1.2vw, 20px);--font-sans:"Geist", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--duration-stagger:40ms;--duration-quick:.15s;--duration-fast:.25s;--duration-slow:.4s;--duration-very-slow:.5s;--ease-smooth-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:ease-in-out;--distance-medium:12px;--blur-medium:3px;--modal-open-dur:.25s;--modal-close-dur:.15s;--modal-scale:.985;--modal-scale-close:.985;--modal-ease:cubic-bezier(.22, 1, .36, 1);--tabs-dur:.25s;--tabs-ease:cubic-bezier(.22, 1, .36, 1);--tabs-text-muted:var(--muted);--tabs-text-active:var(--accent-ink);--tabs-pill-bg:var(--accent-soft);--stagger-dur:.5s;--stagger-distance:12px;--stagger-stagger:40ms;--stagger-blur:3px;--stagger-ease:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html{background:var(--bg);min-width:320px;font-family:var(--font-sans);font-kerning:normal;color:var(--ink)}body{background:radial-gradient(circle at 80% -14%, oklch(33% .14 254/.46), transparent 30rem), radial-gradient(circle at 10% -18%, oklch(30% .09 145/.28), transparent 24rem), linear-gradient(180deg, oklch(12% .016 250) 0%, var(--bg) 42rem), var(--bg);min-height:100vh;margin:0}button{font:inherit}.intro{width:min(920px,100% - 32px);padding:var(--top-space) 0 clamp(54px, 7vw, 92px);text-align:center;margin:0 auto}.intro h1{letter-spacing:-.04em;text-wrap:balance;margin:0;font-size:clamp(3.1rem,8.4vw,6rem);font-weight:620;line-height:.9}.intro p{max-width:58ch;color:var(--muted);text-wrap:pretty;margin:clamp(18px,2.2vw,28px) auto 0;font-size:.98rem;line-height:1.65}.t-stagger-line{opacity:0;transform:translateY(var(--stagger-distance));filter:blur(var(--stagger-blur));transition:opacity var(--stagger-dur) var(--stagger-ease), transform var(--stagger-dur) var(--stagger-ease), filter var(--stagger-dur) var(--stagger-ease);will-change:transform, opacity, filter;display:block}.t-stagger-line--2{transition-delay:var(--stagger-stagger)}.t-stagger.is-shown .t-stagger-line{opacity:1;filter:blur();transform:translateY(0)}.t-stagger.is-hiding .t-stagger-line{opacity:0;filter:blur();transition:opacity .2s,transform linear,filter linear;transform:translateY(0)}.gallery-shell{width:100%;padding:0 var(--side) 56px}.gallery-toolbar{z-index:20;margin:0 calc(var(--side) * -1) var(--gutter);padding:10px var(--side);background:var(--bg);border-bottom:1px solid var(--faint);justify-content:space-between;align-items:center;gap:18px;display:flex;position:sticky;top:0}.gallery-count{color:var(--muted);margin:0;font-size:.82rem;line-height:1.2}.density-control{align-items:center;gap:6px;display:flex;position:relative}.t-tabs-pill{background:var(--tabs-pill-bg);width:0;height:40px;transition:transform var(--tabs-dur) var(--tabs-ease), width var(--tabs-dur) var(--tabs-ease);will-change:transform, width;z-index:0;pointer-events:none;border-radius:0;position:absolute;top:0;left:0;transform:translate(0)}.density-button{z-index:1;min-height:40px;color:var(--muted);cursor:pointer;transition:color var(--tabs-dur) var(--tabs-ease), background-color var(--duration-quick) var(--ease-smooth-out);background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;gap:7px;padding:0 11px;font-size:.78rem;font-weight:650;line-height:1;display:inline-flex;position:relative}.density-button:hover{color:var(--ink);background:var(--surface-hover)}.density-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.density-button.is-active{color:var(--accent-ink);background:0 0}.density-button.is-active:hover{background:0 0}.grid-icon{--dots:3;grid-template-columns:repeat(var(--dots), 1fr);gap:2px;width:18px;height:18px;display:grid}.grid-icon:before,.grid-icon:after,.grid-icon span{content:""}.grid-icon{background:radial-gradient(circle, currentColor 42%, transparent 44%) 0 0 / calc(100% / var(--dots)) calc(100% / var(--dots))}.grid-icon-3{--dots:3}.grid-icon-4{--dots:4}.grid-icon-6{--dots:6}.masonry{--desktop-columns:3;--tablet-columns:2;--mobile-columns:1;column-count:var(--mobile-columns);column-gap:var(--gutter);min-height:42vh;transition:opacity var(--duration-fast) var(--ease-smooth-out), transform var(--duration-fast) var(--ease-smooth-out), filter var(--duration-fast) var(--ease-smooth-out)}.masonry.is-switching{opacity:0;filter:blur(8px);transform:translateY(14px)}.masonry[data-mode="3"]{--desktop-columns:3;--tablet-columns:2;--mobile-columns:1}.masonry[data-mode="4"]{--desktop-columns:4;--tablet-columns:3;--mobile-columns:2}.masonry[data-mode="6"]{--desktop-columns:6;--tablet-columns:4;--mobile-columns:2}.gallery-item{width:100%;margin:0 0 var(--gutter);break-inside:avoid;border-radius:var(--radius);background:var(--surface);isolation:isolate;animation:item-in var(--duration-slow) var(--ease-smooth-out) both;display:block;position:relative;overflow:hidden;transform:translateZ(0)}.gallery-open{width:100%;color:inherit;cursor:zoom-in;background:0 0;border:0;border-radius:0;margin:0;padding:0;display:block}.gallery-open:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.gallery-open img{border-radius:inherit;background:var(--surface);width:100%;height:auto;display:block}.gallery-item:after{content:"";border-radius:inherit;pointer-events:none;border:1px solid oklch(100% 0 0/.105);position:absolute;inset:0}@media (hover:hover){.gallery-item{transition:transform var(--duration-quick) var(--ease-smooth-out), filter var(--duration-quick) var(--ease-smooth-out)}.gallery-item:hover{filter:saturate(1.08)brightness(1.04);transform:translateY(-2px)}}.image-dialog{width:100vw;max-width:none;height:100vh;max-height:none;color:var(--ink);opacity:0;transform:scale(var(--modal-scale));transition:opacity var(--modal-open-dur) var(--modal-ease), transform var(--modal-open-dur) var(--modal-ease);background:oklch(4% .006 250/.92);border:0;border-radius:0;margin:0;padding:clamp(18px,3vw,42px)}.image-dialog::backdrop{opacity:0;background:oklch(0% 0 0/.74);transition:opacity .26s cubic-bezier(.22,1,.36,1)}.image-dialog.is-open{opacity:1;transform:scale(1)}.t-modal{transform-origin:50%;transform:scale(var(--modal-scale));opacity:0;pointer-events:none;transition:transform var(--modal-open-dur) var(--modal-ease), opacity var(--modal-open-dur) var(--modal-ease);will-change:transform, opacity}.t-modal.is-open{opacity:1;pointer-events:auto;transform:scale(1)}.t-modal.is-closing{transform:scale(var(--modal-scale-close));opacity:0;pointer-events:none;transition:transform var(--modal-close-dur) var(--modal-ease), opacity var(--modal-close-dur) var(--modal-ease)}.image-dialog.is-open::backdrop{opacity:1}.dialog-frame{grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:14px;width:100%;height:100%;margin:0;display:grid}.dialog-frame img{object-fit:contain;max-width:100%;max-height:calc(100vh - 120px);transition:transform var(--duration-slow) var(--ease-smooth-out);border-radius:0;display:block;transform:translateY(18px)scale(.965)}.image-dialog.is-open .dialog-frame img{transform:translateY(0)scale(1)}.dialog-frame figcaption{max-width:min(80ch,100%);color:var(--muted);text-align:center;font-size:.82rem;line-height:1.45}.dialog-close{z-index:2;min-height:42px;color:var(--ink);cursor:pointer;background:oklch(12% .012 250/.88);border:1px solid oklch(100% 0 0/.18);border-radius:0;padding:0 14px;font-size:.82rem;font-weight:650;position:fixed;top:16px;right:16px}.dialog-close:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.dialog-close:hover{background:var(--surface-hover)}@keyframes item-in{0%{opacity:0;filter:blur(6px);transform:translateY(18px)}to{opacity:1;filter:blur();transform:translateY(0)}}.empty-state{width:min(720px,100% - 24px);color:var(--muted);text-align:center;margin:36px auto 0;font-size:.95rem;line-height:1.7}.empty-state code{color:var(--ink);font-size:.9em}.sentinel{height:1px}@media (width>=720px){.masonry{column-count:var(--tablet-columns)}}@media (width>=1120px){.masonry{column-count:var(--desktop-columns)}}@media (width<=620px){.intro{width:min(100% - 28px,540px);padding-top:44px;padding-bottom:42px}.intro h1{font-size:clamp(2.65rem,14vw,4.8rem)}.intro p{font-size:.95rem}.gallery-toolbar{flex-direction:column;align-items:flex-start;gap:12px}.density-control{justify-content:space-between;width:100%}.density-button{flex:1;min-height:44px}.t-tabs-pill{height:44px}.image-dialog{padding:56px 10px 18px}.dialog-frame img{max-height:calc(100vh - 138px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.masonry.is-switching{filter:none;transform:none}.t-stagger-line,.t-tabs-pill,.t-tab,.t-modal{transition:none!important}}[data-slot=dialog-overlay]{z-index:50;opacity:0;background:oklch(0% 0 0/.74);transition:opacity .26s cubic-bezier(.22,1,.36,1);position:fixed;inset:0}[data-slot=dialog-overlay][data-state=open]{opacity:1}[data-slot=dialog-content].image-dialog{z-index:50;box-shadow:none;outline:none;animation:none;display:block;position:fixed;inset:0;translate:none!important}[data-slot=dialog-content].image-dialog[data-state=open] .dialog-frame img{transform:translateY(0)scale(1)}
