.portfolio-toolbar{justify-content:flex-end}.portfolio-grid{opacity:0;visibility:hidden;transition:opacity .18s ease}.portfolio-grid.is-ready{opacity:1;visibility:visible}
.tile-overlay,.project-tile[data-enter] .tile-overlay{transform:none;transition:opacity .14s ease;background:var(--hover,#111);overflow:hidden}.tile-overlay>*{opacity:0;transition:transform .32s ease,opacity .18s ease}.project-tile[data-enter=top] .tile-overlay>*{transform:translateY(-35px)}.project-tile[data-enter=bottom] .tile-overlay>*{transform:translateY(35px)}.project-tile[data-enter=left] .tile-overlay>*{transform:translateX(-45px)}.project-tile[data-enter=right] .tile-overlay>*{transform:translateX(45px)}.project-tile:hover .tile-overlay>*,.project-tile:focus-within .tile-overlay>*{opacity:1;transform:none}
.header-portfolio-filter{display:block}.header-portfolio-filter .portfolio-filter-select{min-width:220px}.site-header .header-search,.site-header .header-portfolio-filter,.site-header .theme-toggle{flex:0 0 auto}
.project-viewer.is-loading .viewer-stage,.project-viewer.is-loading .viewer-control,.project-viewer.is-loading .viewer-counter,.project-viewer.is-loading .viewer-info{visibility:hidden}.viewer-loader{display:none;position:absolute;z-index:20;inset:0;align-items:center;justify-content:center;background:var(--ib-bg);color:var(--ib-text)}.project-viewer.is-loading .viewer-loader{display:flex}.viewer-loader-line{position:absolute;left:50%;top:5%;width:1px;height:92%;background:linear-gradient(to bottom,var(--ib-text) 0 var(--progress),color-mix(in srgb,var(--ib-text) 12%,transparent) var(--progress) 100%);transform:rotate(13deg);transform-origin:center}.viewer-loader-value{position:relative;margin-left:70px;font-size:24px;color:var(--ib-muted)}
.viewer-control{background:rgba(255,255,255,var(--ib-control-opacity,.1));color:var(--ib-muted);box-shadow:none}.viewer-control:hover,.viewer-control:focus-visible{background:#fff;color:#111}html[data-theme=dark] .viewer-control{background:rgba(0,0,0,var(--ib-control-opacity,.1));color:#aaa}html[data-theme=dark] .viewer-control:hover,html[data-theme=dark] .viewer-control:focus-visible{background:#000;color:#fff}
.viewer-close:before,.viewer-close:after{content:"";position:absolute;width:52%;height:1.5px;background:currentColor}.viewer-close:before{transform:rotate(45deg)}.viewer-close:after{transform:rotate(-45deg)}.viewer-prev:before,.viewer-next:before{content:"";width:35%;height:35%;border-top:6px solid currentColor;border-right:6px solid currentColor;border-radius:2px}.viewer-prev:before{transform:rotate(-135deg);margin-left:12%}.viewer-next:before{transform:rotate(45deg);margin-right:12%}.viewer-next.is-end:after{content:"";position:absolute;width:4px;height:48%;right:21%;background:currentColor;border-radius:2px}
.viewer-cover-slide{display:none;overflow:auto!important;overscroll-behavior:contain;touch-action:pan-y;padding:clamp(42px,6vw,100px);align-items:flex-start;justify-content:flex-start}.viewer-cover-slide.is-active{display:block}.viewer-cover-slide .cover-content{max-width:1500px;margin:0 auto}.viewer-cover-slide h1{font-size:clamp(34px,6vw,var(--ib-project-title-size,64px));line-height:1.08;margin:0 0 28px}.viewer-cover-slide .viewer-meta{max-width:700px}.viewer-cover-descriptions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);max-width:1400px;margin-top:30px}.viewer-cover-descriptions>div:empty{display:none}.viewer-cover-thumbs{margin:26px 0 12px}.project-viewer.is-cover .viewer-info-toggle,.project-viewer.is-cover .viewer-info{display:none}.project-viewer.is-cover .viewer-counter{display:block}
.viewer-slide[data-zoom-mode=native]:not(.is-zoomed) .viewer-media{position:absolute!important;left:50%!important;top:50%!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;object-fit:none!important;transform:translate(-50%,-50%)!important}.viewer-slide[data-zoom-mode=contain] .viewer-media,.viewer-slide[data-zoom-mode=auto] .viewer-media{object-fit:contain!important;object-position:center center}.viewer-slide[data-zoom-mode=width] .viewer-media{width:100%!important;height:auto!important;max-height:none!important}.viewer-slide[data-zoom-mode=height] .viewer-media{width:auto!important;height:100%!important;max-width:none!important}
@media(max-width:760px){.viewer-cover-slide{padding:70px 22px 90px}.viewer-cover-descriptions{grid-template-columns:1fr}.viewer-loader-line{transform:rotate(8deg)}.viewer-loader-value{margin-left:44px}.site-header .header-search{margin-left:auto}.header-portfolio-filter{order:4}.header-portfolio-filter .portfolio-filter-select{min-width:0;width:220px}}
