:root{--header-h:80px;--title-top-gap:clamp(24px, 5vh, 96px);--title-max:1100px}.gallery-container{cursor:grab;background:var(--base-100);width:100vw;height:100vh;color:var(--base-500);--gallery-ink:var(--base-500);--gallery-muted:rgb(var(--base-400-rgb));--gallery-border:rgb(var(--base-500-rgb) / .12);--gallery-shadow:#00000073;--lightbox-bg:rgb(var(--base-100-rgb) / .96);position:relative;overflow:hidden}.canvas{will-change:transform;z-index:0;position:absolute;inset:0 auto auto 0}.item{cursor:pointer;background:rgb(var(--base-600-rgb) / .025);border-radius:.5rem;width:240px;height:170px;position:absolute;overflow:hidden}.item img,.item video{object-fit:contain;pointer-events:none;image-rendering:auto;backface-visibility:hidden;width:100%;height:100%;display:block}.expanded-item{z-index:30;cursor:pointer;box-shadow:0 32px 120px var(--gallery-shadow);border-radius:.5rem;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.expanded-item img,.expanded-item video{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.overlay{z-index:10;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 35%, rgb(var(--base-600-rgb) / .055), transparent 42rem), var(--lightbox-bg);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity .3s;position:fixed;inset:0}.overlay.active{pointer-events:auto;opacity:1}.project-title{width:min(92vw, var(--title-max));text-align:center;pointer-events:none;z-index:40;text-rendering:optimizelegibility;font-kerning:normal;color:var(--base-500);line-height:1.08;position:fixed;left:50%;transform:translate(-50%)}.project-title p{color:var(--base-500);text-shadow:0 8px 32px #0000008c;opacity:0;visibility:hidden;clip-path:none;margin:0 0 clamp(8px,2vh,20px)}.project-title p .word{letter-spacing:-.02rem;white-space:nowrap;margin-right:.32ch;font-size:clamp(1.2rem,3vw,2rem);display:inline-block}.project-title p .word:last-child{margin-right:0}.project-title.is-dock-top{top:calc(var(--header-h) + var(--title-top-gap));transform:translate(-50%)}.project-title.is-dock-bottom{bottom:16px;transform:translate(-50%)}.project-title.is-overlay{top:50%;transform:translate(-50%,-50%)}.project-title.is-follow{top:var(--title-follow-top,18vh);left:50%;transform:translate(-50%)}@media (max-width:640px){:root{--header-h:64px;--title-top-gap:clamp(16px, 4vh, 64px)}.project-title p .word{font-size:clamp(1.2rem,3vw,2rem)}}
