body.lightbox-open{overflow:hidden!important;touch-action:none}#lightbox{width:100%;height:100%;position:fixed;top:0;left:0;background:0 0;z-index:9999999;cursor:default;display:none;user-select:none;-webkit-user-select:none;touch-action:none}.lightbox-backdrop{position:absolute;inset:0;background:rgba(10,15,26,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);z-index:0;opacity:1;transition:opacity .32s cubic-bezier(.16,1,.3,1);will-change:opacity;touch-action:none}#lightbox.is-entering .lightbox-backdrop{opacity:0}#lightbox.is-closing{pointer-events:none}#lightbox.is-closing .lightbox-backdrop{opacity:0!important}#lightbox.is-closing .lightbox-toolbar,#lightbox.is-closing .lightbox-caption,#lightbox.is-closing .lightbox-loader,#lightbox.is-closing .lightbox-placeholder,#lightbox.is-closing #prev,#lightbox.is-closing #next{opacity:0!important;transition:opacity .15s ease-out}#lightbox.is-entering .lightbox-toolbar{opacity:0!important;transform:translateY(-8px)!important}#lightbox.is-entering .lightbox-caption{opacity:0!important;transform:translate(-50%,14px)!important}#lightbox.is-entering .lightbox-loader,#lightbox.is-entering .lightbox-placeholder{opacity:0!important}#lightbox.is-entering #prev{opacity:0!important;transform:translateY(-50%)translateX(-12px)!important}#lightbox.is-entering #next{opacity:0!important;transform:translateY(-50%)translateX(12px)!important}#lightbox .img{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);max-width:90vw;max-height:84vh;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px;overflow:hidden;background-color:#0b0f19;border:1px solid rgba(255,255,255,.14);border-bottom-color:rgba(0,0,0,.65);box-shadow:inset 0 1px rgba(255,255,255,.28),inset 0 -1px rgba(0,0,0,.35),0 1px rgba(0,0,0,.75),0 2px rgba(0,0,0,.55),0 3px rgba(0,0,0,.35),0 4px 12px -1px rgba(0,0,0,.65),0 20px 52px -4px rgba(0,0,0,.75);transform-origin:center center;touch-action:none;transition:box-shadow .32s cubic-bezier(.16,1,.3,1),border-color .25s ease}#lightbox.is-loading .img{cursor:default}#lightbox.is-zoomed .img{overflow:visible;border-radius:4px;border-color:rgba(255,255,255,.18);border-bottom-color:rgba(0,0,0,.8);box-shadow:inset 0 1px rgba(255,255,255,.38),inset 0 -1px rgba(0,0,0,.5),0 1px rgba(0,0,0,.85),0 2px rgba(0,0,0,.68),0 3px rgba(0,0,0,.48),0 4px rgba(0,0,0,.28),0 8px 20px -2px rgba(0,0,0,.7),0 32px 75px -4px rgba(0,0,0,.85),0 56px 115px -10px rgba(0,0,0,.7);touch-action:none}#lightbox .img img{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;user-select:none;-webkit-user-drag:none;border-radius:inherit;image-rendering:auto;touch-action:none;opacity:1;transform:scale(1);transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .24s cubic-bezier(.16,1,.3,1)}#lightbox.is-loading .img img{opacity:0;transform:scale(.985)}.lightbox-placeholder{position:absolute;inset:-14px;background-position:50%;background-size:contain;background-repeat:no-repeat;filter:blur(14px);transform:scale(1.05);opacity:0;pointer-events:none;user-select:none;-webkit-user-drag:none;z-index:1;transition:opacity .28s cubic-bezier(.16,1,.3,1);will-change:opacity}#lightbox.is-loading .lightbox-placeholder{opacity:1}#lightbox.is-zoomed .lightbox-placeholder{display:none!important}.lightbox-loader{position:absolute;top:50%;left:50%;width:46px;height:46px;margin-top:-23px;margin-left:-23px;border-radius:50%;background:rgba(15,23,42,.65);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;z-index:10;box-shadow:0 6px 20px rgba(0,0,0,.4);transform:scale(.88);transition:opacity .22s ease .12s,visibility .22s ease .12s,transform .22s cubic-bezier(.16,1,.3,1).12s}.lightbox-loader::after{content:"";width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.18);border-top-color:#fff;border-right-color:rgba(255,255,255,.7);animation:lightbox-spin .75s linear infinite}#lightbox.is-loading .lightbox-loader{opacity:1;visibility:visible;transform:scale(1)}@keyframes lightbox-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.lightbox-loader::after{animation:lightbox-pulse 1.2s ease-in-out infinite}@keyframes lightbox-pulse{0%,100%{opacity:.3}50%{opacity:1}}}@media screen and (min-width:1400px){#lightbox .img{max-width:1400px}}.lightbox-toolbar{position:fixed;top:20px;right:24px;display:flex;align-items:center;gap:10px;z-index:10000001;transition:opacity .32s cubic-bezier(.16,1,.3,1),transform .32s cubic-bezier(.16,1,.3,1)}#lightbox #close,#lightbox #zoom-in,#lightbox #zoom-out,#lightbox #zoom-1-1{position:static;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff!important;display:flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none!important;box-shadow:0 4px 16px rgba(0,0,0,.25);touch-action:manipulation;transition:background .2s ease,transform .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}#lightbox #close:hover,#lightbox #zoom-in:hover,#lightbox #zoom-out:hover,#lightbox #zoom-1-1:hover{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.4);transform:scale(1.08);color:#fff!important;text-decoration:none!important}#lightbox #close:focus,#lightbox #zoom-in:focus,#lightbox #zoom-out:focus,#lightbox #zoom-1-1:focus{color:#fff!important;text-decoration:none!important}#lightbox #close:focus-visible,#lightbox #zoom-in:focus-visible,#lightbox #zoom-out:focus-visible,#lightbox #zoom-1-1:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:3px;color:#fff!important;text-decoration:none!important}#lightbox #close:active,#lightbox #zoom-in:active,#lightbox #zoom-out:active,#lightbox #zoom-1-1:active{transform:scale(.95);color:#fff!important;text-decoration:none!important}#lightbox #close:visited,#lightbox #zoom-in:visited,#lightbox #zoom-out:visited,#lightbox #zoom-1-1:visited{color:#fff!important;text-decoration:none!important}#lightbox #zoom-1-1 .zoom-1-1-label{font-size:1.5rem;font-weight:700;letter-spacing:-.015em;line-height:1;display:flex;align-items:center;justify-content:center;user-select:none;pointer-events:none}#lightbox #zoom-1-1.is-active{background:rgba(255,255,255,.32);border-color:rgba(255,255,255,.65);box-shadow:0 0 14px rgba(255,255,255,.45),0 4px 16px rgba(0,0,0,.3)}#lightbox #prev,#lightbox #next{position:fixed;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff!important;display:none;align-items:center;justify-content:center;cursor:pointer;text-decoration:none!important;z-index:10000000;box-shadow:0 4px 20px rgba(0,0,0,.3);touch-action:manipulation;transition:background .2s ease,transform .2s ease,border-color .2s ease,opacity .32s cubic-bezier(.16,1,.3,1),color .2s ease}#lightbox.gallery #prev,#lightbox.gallery #next{display:flex}#lightbox #prev{left:24px}#lightbox #next{right:24px}#lightbox #prev:hover{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.4);transform:translateY(-50%)scale(1.08);color:#fff!important;text-decoration:none!important}#lightbox #next:hover{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.4);transform:translateY(-50%)scale(1.08);color:#fff!important;text-decoration:none!important}#lightbox #prev:focus,#lightbox #next:focus{color:#fff!important;text-decoration:none!important}#lightbox #prev:focus-visible,#lightbox #next:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:3px;color:#fff!important;text-decoration:none!important}#lightbox #prev:active{transform:translateY(-50%)scale(.95);color:#fff!important;text-decoration:none!important}#lightbox #next:active{transform:translateY(-50%)scale(.95);color:#fff!important;text-decoration:none!important}#lightbox #prev:visited,#lightbox #next:visited{color:#fff!important;text-decoration:none!important}#lightbox #close svg,#lightbox #zoom-in svg,#lightbox #zoom-out svg,#lightbox #prev svg,#lightbox #next svg{stroke:#fff!important;color:#fff!important}@media screen and (max-width:768px){#lightbox #prev{left:12px;width:42px;height:42px}#lightbox #next{right:12px;width:42px;height:42px}.lightbox-toolbar{top:14px;right:14px;gap:8px}#lightbox #close,#lightbox #zoom-in,#lightbox #zoom-out,#lightbox #zoom-1-1{width:38px;height:38px}#lightbox #zoom-1-1 .zoom-1-1-label{font-size:1.3rem}.lightbox-caption{bottom:14px;padding:.45rem 1.1rem;font-size:.86rem}.lightbox-caption.has-description{padding:.75rem 1.1rem .85rem;max-height:34vh}.lightbox-description{font-size:.82rem}}.lightbox-caption{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);display:inline-flex;flex-direction:column;align-items:center;background:#fff;border:1px solid rgba(44,62,80,.18);border-bottom-color:rgba(44,62,80,.32);border-radius:4px;padding:.55rem 1.25rem;color:#22324d!important;font-size:.92rem;box-shadow:inset 0 1px rgba(255,255,255,.95),0 1px rgba(30,41,59,8%),0 2px rgba(30,41,59,6%),0 3px rgba(30,41,59,3%),0 4px 12px -1px rgba(15,23,42,.18),0 16px 36px -4px rgba(0,0,0,.45);z-index:10000000;max-width:90vw;text-align:center;pointer-events:none;transition:opacity .28s cubic-bezier(.4,0,.2,1),transform .28s cubic-bezier(.4,0,.2,1)}.lightbox-caption-header{display:inline-flex;align-items:center;gap:.75rem}.lightbox-meta{display:inline-flex;align-items:center;gap:.55rem;flex-shrink:0}.lightbox-icon{font-size:.85rem;opacity:.55;color:#38475f;flex-shrink:0;display:inline-flex;align-items:center}.lightbox-icon i{line-height:1}.lightbox-caption.has-description{border-radius:4px;padding:.85rem 1.35rem .95rem;width:max-content;max-width:min(640px,92vw);align-items:flex-start;text-align:left;pointer-events:auto;max-height:28vh;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}.lightbox-caption.has-description .lightbox-caption-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.75rem;padding-bottom:.45rem;border-bottom:1px solid rgba(44,62,80,.1)}.lightbox-title{color:#22324d!important;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}.lightbox-description{font-size:.88rem;line-height:1.55;color:#334155;font-weight:400;margin-top:.45rem;white-space:pre-line;word-break:break-word}.lightbox-caption.has-description::-webkit-scrollbar{width:5px}.lightbox-caption.has-description::-webkit-scrollbar-thumb{background:rgba(44,62,80,.22);border-radius:4px}.lightbox-sep{opacity:.45;font-size:.8rem;color:#64748b}.lightbox-counter{font-size:.82rem;opacity:.85;font-variant-numeric:tabular-nums;white-space:nowrap;color:#475569}body.colorscheme-dark .lightbox-caption{background:#172130;border-color:rgba(255,255,255,.14);border-bottom-color:rgba(0,0,0,.7);color:#dadada!important;box-shadow:inset 0 1px rgba(255,255,255,.16),inset 0 -1px rgba(0,0,0,.35),0 1px rgba(0,0,0,.55),0 2px rgba(0,0,0,.42),0 3px rgba(0,0,0,.28),0 4px 12px rgba(0,0,0,.5),0 20px 42px -4px rgba(0,0,0,.75)}body.colorscheme-dark .lightbox-caption .lightbox-title{color:#dadada!important}body.colorscheme-dark .lightbox-caption .lightbox-counter{color:#94a3b8}body.colorscheme-dark .lightbox-caption .lightbox-sep{color:#64748b}body.colorscheme-dark .lightbox-caption .lightbox-icon{color:#b08b71;opacity:.85}body.colorscheme-dark .lightbox-caption.has-description .lightbox-caption-header{border-bottom-color:rgba(255,255,255,.1)}body.colorscheme-dark .lightbox-caption .lightbox-description{color:rgba(255,255,255,.88)}body.colorscheme-dark .lightbox-caption.has-description::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25)}@media(prefers-color-scheme:dark){body.colorscheme-auto .lightbox-caption{background:#172130;border-color:rgba(255,255,255,.14);border-bottom-color:rgba(0,0,0,.7);color:#dadada!important;box-shadow:inset 0 1px rgba(255,255,255,.16),inset 0 -1px rgba(0,0,0,.35),0 1px rgba(0,0,0,.55),0 2px rgba(0,0,0,.42),0 3px rgba(0,0,0,.28),0 4px 12px rgba(0,0,0,.5),0 20px 42px -4px rgba(0,0,0,.75)}body.colorscheme-auto .lightbox-caption .lightbox-title{color:#dadada!important}body.colorscheme-auto .lightbox-caption .lightbox-counter{color:#94a3b8}body.colorscheme-auto .lightbox-caption .lightbox-sep{color:#64748b}body.colorscheme-auto .lightbox-caption .lightbox-icon{color:#b08b71;opacity:.85}body.colorscheme-auto .lightbox-caption.has-description .lightbox-caption-header{border-bottom-color:rgba(255,255,255,.1)}body.colorscheme-auto .lightbox-caption .lightbox-description{color:rgba(255,255,255,.88)}body.colorscheme-auto .lightbox-caption.has-description::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25)}}#lightbox.is-zoomed .lightbox-caption{opacity:0;pointer-events:none;transform:translate(-50%,16px)}#lightbox.is-zoomed.controls-hidden .lightbox-toolbar{opacity:0;pointer-events:none;transform:translateY(-10px);transition:opacity .45s ease-out,transform .45s ease-out}#lightbox.is-zoomed.controls-hidden #prev{opacity:0;pointer-events:none;transform:translateY(-50%)translateX(-12px);transition:opacity .45s ease-out,transform .45s ease-out}#lightbox.is-zoomed.controls-hidden #next{opacity:0;pointer-events:none;transform:translateY(-50%)translateX(12px);transition:opacity .45s ease-out,transform .45s ease-out}#lightbox .videoWrapperContainer{position:relative;top:50%;left:50%;transform:translate(-50%,-50%);max-width:960px;width:90vw;max-height:100%}#lightbox .videoWrapperContainer .videoWrapper{height:0;line-height:0;margin:0;padding:0;position:relative;padding-bottom:56.333%;background:#000;border-radius:12px;overflow:hidden;box-shadow:0 12px 36px rgba(0,0,0,.5)}#lightbox .videoWrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;display:block}figure.project-figure{margin:1.8rem 0;display:block}.project-figure-media{position:relative;display:block;border-radius:8px;overflow:hidden;background-color:rgba(34,50,77,4%);border:1px solid rgba(56,71,95,.16);box-shadow:0 2px 10px rgba(34,50,77,6%)}body.colorscheme-dark .project-figure-media{background-color:rgba(255,255,255,3%);border-color:rgba(255,255,255,.14);box-shadow:0 2px 12px rgba(0,0,0,.25)}@media(prefers-color-scheme:dark){body.colorscheme-auto .project-figure-media{background-color:rgba(255,255,255,3%);border-color:rgba(255,255,255,.14);box-shadow:0 2px 12px rgba(0,0,0,.25)}}.project-figure.is-picked-up,.project-figure-media.is-picked-up{opacity:0!important}.project-figure-media a.lightbox-image{display:block;position:relative;width:100%;height:100%;cursor:zoom-in;text-decoration:none}.project-figure-media img{display:block;width:100%;height:auto;border-radius:7px}.project-zoom-badge{position:absolute;bottom:8px;right:8px;width:28px;height:28px;border-radius:6px;background:rgba(15,23,42,.65);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.22);color:#fff!important;display:flex;align-items:center;justify-content:center;font-size:11px;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:2}.project-figure-media:hover .project-zoom-badge{opacity:.85}figure.project-figure figcaption{margin-top:.65rem;padding:0 .5rem;text-align:center}figure.project-figure figcaption p{font-size:.88rem;line-height:1.48;font-style:italic;margin:0;color:rgba(34,50,77,.85)}body.colorscheme-dark figure.project-figure figcaption p{color:rgba(218,218,218,.85)}@media(prefers-color-scheme:dark){body.colorscheme-auto figure.project-figure figcaption p{color:rgba(218,218,218,.85)}}figure.project-figure figcaption h4{font-size:1rem;font-weight:600;margin:0 0 .25rem}figure.project-figure .figure-attr{display:block;font-size:.78rem;opacity:.7;margin-top:.25rem}