.gallery-lightbox[data-astro-cid-nlvjz5kb]{z-index:200;cursor:zoom-out;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.gallery-lightbox[data-astro-cid-nlvjz5kb][hidden]{display:none}.gallery-lightbox__backdrop[data-astro-cid-nlvjz5kb]{background:color-mix(in srgb, var(--black) 55%, transparent);backdrop-filter:blur(8px);position:absolute;inset:0}.gallery-lightbox__panel[data-astro-cid-nlvjz5kb]{border:1px solid var(--border);background:var(--surface);width:min(100%,90vw);max-height:min(92dvh,56rem);box-shadow:0 24px 64px color-mix(in srgb, var(--black) 35%, transparent);border-radius:.875rem;outline:none;place-items:center;padding:1.25rem 1.25rem 1rem;display:grid;position:relative}.gallery-lightbox__close[data-astro-cid-nlvjz5kb]{z-index:2;border:1px solid var(--border);background:var(--bg);width:2.25rem;height:2.25rem;color:var(--muted);cursor:pointer;border-radius:999px;place-items:center;font-size:1.5rem;line-height:1;display:grid;position:absolute;top:.875rem;right:.875rem}.gallery-lightbox__close[data-astro-cid-nlvjz5kb]:hover,.gallery-lightbox__close[data-astro-cid-nlvjz5kb]:focus-visible{color:var(--text);border-color:color-mix(in srgb, var(--blue) 35%, var(--border));outline:none}.gallery-lightbox__figure[data-astro-cid-nlvjz5kb]{justify-items:center;gap:.75rem;max-width:100%;margin:0;display:grid}.gallery-lightbox__image[data-astro-cid-nlvjz5kb]{object-fit:contain;border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 70%, var(--surface));border-radius:.5rem;width:auto;max-width:min(90vw,100%);height:auto;max-height:min(88dvh,48rem);display:block}.gallery-lightbox__image[data-astro-cid-nlvjz5kb][hidden]{display:none}@media (width<=640px){.gallery-lightbox[data-astro-cid-nlvjz5kb]{padding:1rem}.gallery-lightbox__panel[data-astro-cid-nlvjz5kb]{width:100%;padding:3.25rem .875rem .875rem}.gallery-lightbox__image[data-astro-cid-nlvjz5kb]{max-height:min(78dvh,40rem)}}body.modal-open{overflow:hidden}.stf__parent{box-sizing:border-box;-ms-touch-action:pan-y;touch-action:pan-y;display:block;position:relative;transform:translateZ(0)}.sft__wrapper{box-sizing:border-box;width:100%;position:relative}.stf__parent canvas{width:100%;height:100%;position:absolute;top:0;left:0}.stf__block{box-sizing:border-box;perspective:2000px;width:100%;height:100%;position:absolute}.stf__item{transform-style:preserve-3d;display:none;position:absolute}.stf__outerShadow,.stf__innerShadow,.stf__hardShadow,.stf__hardInnerShadow{position:absolute;top:0;left:0}.gallery-experience{--gallery-page:#ececef;--gallery-page-edge:#d4d4d8;--gallery-mat:#f4f4f5;--gallery-print-border:color-mix(in srgb, var(--black) 12%, transparent);--gallery-book-shadow:color-mix(in srgb, var(--black) 45%, transparent);--gallery-stage-top:color-mix(in srgb, var(--bg) 88%, #0b1220);--gallery-header:4.25rem;--gallery-nav-size:2.75rem;--gallery-page-pad:16px;--gallery-num-h:16px;--gallery-num-gap:8px;--gallery-collage-gap:8px;--gallery-photo-pad:6px;isolation:isolate;height:calc(100dvh - var(--gallery-header));background:var(--bg);position:relative;overflow:hidden}[data-theme=dark] .gallery-experience{--gallery-page:#16161a;--gallery-page-edge:#2a2a30;--gallery-mat:#111114;--gallery-print-border:color-mix(in srgb, var(--white) 14%, transparent);--gallery-book-shadow:color-mix(in srgb, var(--black) 70%, transparent);--gallery-stage-top:#09090b}[data-theme=light] .gallery-experience{--gallery-page:#f3f1ee;--gallery-page-edge:#ddd8d1;--gallery-mat:#faf8f5;--gallery-print-border:color-mix(in srgb, var(--black) 10%, transparent);--gallery-book-shadow:color-mix(in srgb, var(--black) 22%, transparent);--gallery-stage-top:color-mix(in srgb, var(--bg) 92%, #dbeafe)}.gallery-stage{opacity:0;touch-action:manipulation;contain:paint;grid-template-rows:minmax(0,1fr) auto;place-items:center;width:100%;height:100%;min-height:0;padding:.4rem clamp(.65rem,1.6vw,1.15rem) .45rem;display:grid;position:relative;overflow:clip}.gallery-stage__atmosphere{z-index:0;pointer-events:none;background:radial-gradient(ellipse 70% 55% at 50% 42%, color-mix(in srgb, var(--blue) 10%, transparent), transparent 68%), linear-gradient(180deg, var(--gallery-stage-top), var(--bg) 78%);position:absolute;inset:0}[data-theme=light] .gallery-stage__atmosphere{background:radial-gradient(ellipse 70% 55% at 50% 42%, color-mix(in srgb, var(--blue) 8%, transparent), transparent 70%), linear-gradient(180deg, var(--gallery-stage-top), var(--bg) 82%)}.gallery-blobs{z-index:1;pointer-events:none;contain:layout paint;isolation:isolate;position:absolute;inset:-8%;overflow:hidden}.gallery-blob{filter:blur(46px);opacity:.72;mix-blend-mode:screen;border-radius:50%;position:absolute}.gallery-blob--a{background:radial-gradient(circle, color-mix(in srgb, var(--blue) 78%, white) 0%, transparent 68%);width:min(46vw,34rem);height:min(32vw,22rem);animation:16s ease-in-out infinite gallery-blob-a;top:12%;left:-4%}.gallery-blob--b{background:radial-gradient(circle, color-mix(in srgb, var(--blue-soft) 70%, white) 0%, transparent 70%);width:min(38vw,28rem);height:min(42vw,30rem);animation:19s ease-in-out infinite gallery-blob-b;top:8%;right:-8%}.gallery-blob--c{background:radial-gradient(circle, color-mix(in srgb, var(--blue) 55%, transparent) 0%, transparent 72%);width:min(52vw,40rem);height:min(24vw,16rem);animation:14s ease-in-out infinite gallery-blob-c;bottom:-6%;left:18%}.gallery-blob--d{background:radial-gradient(circle, color-mix(in srgb, white 55%, var(--blue-soft)) 0%, transparent 70%);opacity:.48;width:min(28vw,18rem);height:min(28vw,18rem);animation:12s ease-in-out infinite gallery-blob-d;top:28%;left:42%}.gallery-blob--e{background:radial-gradient(circle, color-mix(in srgb, var(--blue) 80%, white) 0%, transparent 68%);width:min(34vw,22rem);height:min(36vw,24rem);animation:15s ease-in-out infinite gallery-blob-e;bottom:6%;right:8%}[data-theme=light] .gallery-blob{mix-blend-mode:multiply;opacity:.5}[data-theme=light] .gallery-blob--d{opacity:.32}@keyframes gallery-blob-a{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(16%,14%)scale(1.16)}}@keyframes gallery-blob-b{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(-18%,12%)scale(1.14)}}@keyframes gallery-blob-c{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(14%,-16%)scale(1.18)}}@keyframes gallery-blob-d{0%,to{transform:translate(0,0)scale(.92)}50%{transform:translate(-12%,18%)scale(1.22)}}@keyframes gallery-blob-e{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(10%,-14%)scale(1.15)}}.gallery-halo{z-index:1;opacity:0;pointer-events:none;filter:blur(10px);mix-blend-mode:screen;width:min(78vw,52rem);position:absolute;bottom:clamp(5.5rem,14vh,8rem);left:50%;transform:translate(-50%)scale(.55)}[data-theme=light] .gallery-halo{mix-blend-mode:multiply;opacity:0;filter:blur(14px)}.gallery-halo img{width:100%;height:auto;display:block}.gallery-motes{z-index:1;opacity:0;pointer-events:none;contain:layout paint;isolation:isolate;position:absolute;inset:0;overflow:hidden}.gallery-mote{left:var(--mx);width:calc(7px * var(--ms));height:calc(7px * var(--ms));background:radial-gradient(circle, color-mix(in srgb, var(--blue-soft) 65%, transparent) 0%, transparent 72%);opacity:0;border-radius:999px;position:absolute;bottom:-4%}.gallery-motes[data-live=true] .gallery-mote{animation:gallery-mote-drift var(--md) linear var(--mdelay) infinite}@keyframes gallery-mote-drift{0%{opacity:0;transform:translate3d(calc(var(--drift) * -.35), 10vh, 0) scale(.65)}10%{opacity:var(--mo)}84%{opacity:var(--mo)}to{opacity:0;transform:translate3d(var(--drift), -96vh, 0) scale(1.15)}}.gallery-camera{z-index:2;transform-origin:0 0;perspective:2400px;perspective-origin:50% 46%;place-items:center;width:100%;min-width:0;height:100%;min-height:0;display:grid;position:relative}.gallery-book-rig{will-change:transform;place-items:center;width:max-content;max-width:100%;height:max-content;max-height:100%;display:grid;position:relative}.gallery-experience[data-intro=done] .gallery-book-rig,.gallery-experience[data-ready=true] .gallery-book-rig{will-change:auto}.gallery-book-shell{width:max-content;max-width:100%;box-shadow:0 22px 36px var(--gallery-book-shadow), 0 6px 12px color-mix(in srgb, var(--blue) 16%, transparent);position:relative}.gallery-book-thickness{pointer-events:none;opacity:.9;width:18px;position:absolute;inset:3% 0 3% auto}.gallery-experience[data-book-side=spread] .gallery-book-thickness{right:-10px}.gallery-experience[data-book-side=back] .gallery-book-thickness{right:50%}.gallery-book-thickness__spine,.gallery-book-thickness__block{border-radius:2px;position:absolute;inset:0}.gallery-book-thickness__spine{width:7px;box-shadow:inset -1px 0 0 color-mix(in srgb, var(--blue) 35%, transparent);background:linear-gradient(#151518,#09090b 45%,#1a1a1f);left:0}.gallery-book-thickness__block{opacity:.85;background:repeating-linear-gradient(#f5f5f5 0 1px,#d4d4d8 1px 2px,#ececef 2px 3px);border-radius:0 2px 2px 0;left:7px;right:0}[data-theme=dark] .gallery-book-thickness__block{background:repeating-linear-gradient(#2a2a30 0 1px,#1a1a1f 1px 2px,#222228 2px 3px)}.gallery-book{z-index:1;margin:0 auto;position:relative;overflow:visible}.gallery-book .stf__wrapper,.gallery-book .stf__block{width:100%;height:100%}.gallery-book-preview{z-index:2;box-shadow:0 18px 40px color-mix(in srgb, var(--black) 35%, transparent);border-radius:.35rem;position:relative;overflow:hidden}.gallery-book-preview[hidden]{display:none}.gallery-book-preview .gallery-cover{width:100%;height:100%}.gallery-book .stf__parent,.gallery-book.stf__parent{border-radius:.35rem;margin-inline:auto}.gallery-book .stf__item,.gallery-page{box-sizing:border-box;background:var(--gallery-page);width:100%;height:100%;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--black) 8%, transparent);overflow:hidden}.gallery-page--cover,.gallery-page--rear{box-shadow:none;background:#09090b}.gallery-cover{background:#09090b;border-radius:.35rem;place-items:center;width:100%;height:100%;display:grid;position:relative;overflow:hidden}.gallery-cover__frame{object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gallery-cover__content{z-index:1;text-align:center;justify-items:center;gap:.85rem;padding:8%;display:grid;position:relative}.gallery-cover__content--rear{opacity:.92;gap:.65rem}.gallery-cover__logo{width:min(46%,16rem);height:auto;filter:drop-shadow(0 8px 18px color-mix(in srgb, var(--black) 55%, transparent));display:block}.gallery-cover__logo--small{opacity:.92;width:min(28%,6.5rem)}.gallery-cover__title{font-family:var(--font-body);letter-spacing:.28em;text-indent:.28em;text-transform:uppercase;color:#fafafa;text-shadow:0 0 24px color-mix(in srgb, var(--blue) 35%, transparent), 0 1px 0 color-mix(in srgb, var(--black) 45%, transparent);margin:.15rem 0 0;font-size:clamp(1.75rem,4.8vw,3rem);font-weight:600;line-height:1}.gallery-cover__caption{font-family:var(--font-body);letter-spacing:.22em;text-indent:.22em;text-transform:uppercase;color:color-mix(in srgb, var(--blue-soft) 80%, white);margin:0;font-size:clamp(.6875rem,1.4vw,.8125rem);font-weight:500}.gallery-cover__shimmer{z-index:2;opacity:0;pointer-events:none;mix-blend-mode:screen;position:absolute;inset:-10%}.gallery-cover__shimmer img{object-fit:cover;width:100%;height:100%;display:block}.gallery-page-source{display:none}.gallery-page__surface{box-sizing:border-box;width:100%;min-width:0;height:100%;min-height:0;padding:var(--gallery-page-pad);background:linear-gradient(90deg, color-mix(in srgb, var(--black) 10%, transparent), transparent 12%), linear-gradient(270deg, color-mix(in srgb, var(--black) 7%, transparent), transparent 10%), var(--gallery-mat);grid-template-rows:minmax(0,1fr) auto;display:grid;position:relative;overflow:hidden}.gallery-page.--left .gallery-page__surface,.stf__item.--left .gallery-page__surface{background:linear-gradient(90deg, color-mix(in srgb, var(--black) 14%, transparent), transparent 16%), var(--gallery-mat)}.gallery-page.--right .gallery-page__surface,.stf__item.--right .gallery-page__surface{background:linear-gradient(270deg, color-mix(in srgb, var(--black) 12%, transparent), transparent 14%), var(--gallery-mat)}.gallery-page__surface--end,.gallery-page__surface--endpaper{text-align:center;background:var(--gallery-mat);align-content:center;place-items:center;gap:.55rem}.gallery-page__grain{pointer-events:none;opacity:.045;mix-blend-mode:soft-light;background-image:url(/gallery-book/page-grain.svg);background-size:280px 280px;position:absolute;inset:0}[data-theme=dark] .gallery-page__grain{opacity:.06}.gallery-collage{gap:var(--gallery-collage-gap);width:100%;min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}.gallery-collage--hero{grid-template:"a"minmax(0,1fr)/minmax(0,1fr)}.gallery-collage--stack-2{grid-template:"a"minmax(0,1fr)"b"minmax(0,1fr)/minmax(0,1fr)}.gallery-collage--side-2{grid-template:"a b"minmax(0,1fr)/minmax(0,1fr) minmax(0,1fr)}.gallery-collage--hero-land-2{grid-template:"a a"minmax(0,1.35fr)"b c"minmax(0,.9fr)/minmax(0,1fr) minmax(0,1fr)}.gallery-collage--hero-port-2{grid-template:"a b"minmax(0,1fr)"a c"minmax(0,1fr)/minmax(0,1.2fr) minmax(0,.9fr)}.gallery-collage--three-balance{grid-template:"a b"minmax(0,1.15fr)"c c"minmax(0,.85fr)/minmax(0,1fr) minmax(0,1fr)}.gallery-collage--grid-4{grid-template:"a b"minmax(0,1fr)"c d"minmax(0,1fr)/minmax(0,1fr) minmax(0,1fr)}.gallery-photo-trigger{width:100%;min-width:0;height:100%;min-height:0;padding:var(--gallery-photo-pad);border:1px solid var(--gallery-print-border);background:color-mix(in srgb, var(--gallery-page) 82%, white);box-shadow:0 1px 0 color-mix(in srgb, var(--white) 35%, transparent), 0 7px 12px color-mix(in srgb, var(--black) 12%, transparent);cursor:zoom-in;appearance:none;user-select:none;border-radius:.2rem;display:block;position:relative;overflow:hidden}.gallery-photo-trigger:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.gallery-photo-trigger img{top:var(--gallery-photo-pad);left:var(--gallery-photo-pad);width:calc(100% - (var(--gallery-photo-pad) * 2));height:calc(100% - (var(--gallery-photo-pad) * 2));object-fit:cover;object-position:center;user-select:none;pointer-events:none;-webkit-user-drag:none;background:0 0;max-width:none;max-height:none;display:block;position:absolute}.gallery-experience[data-view=photo-focus] .gallery-camera,.gallery-experience[data-view=lightbox] .gallery-camera{cursor:zoom-out}.gallery-experience[data-view=photo-focus] .gallery-photo-trigger[data-gallery-focused],.gallery-experience[data-view=lightbox] .gallery-photo-trigger[data-gallery-focused]{cursor:zoom-in}.gallery-page__number{height:var(--gallery-num-h);margin:var(--gallery-num-gap) 0 0;font-family:var(--font-body);font-size:.6875rem;font-weight:500;line-height:var(--gallery-num-h);letter-spacing:.16em;text-align:center;white-space:nowrap;color:var(--muted);display:block;overflow:hidden}.gallery-end__mark{font-family:var(--font-body);letter-spacing:.28em;text-indent:.28em;color:color-mix(in srgb, var(--blue) 70%, var(--text));margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:600}.gallery-end__text{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--text);margin:0;font-size:.95rem;font-weight:500}.gallery-end__caption{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.75rem}.gallery-controls{z-index:6;opacity:0;pointer-events:none;isolation:isolate;justify-content:center;align-items:center;gap:.85rem;margin-top:.35rem;padding:0;transition:opacity .35s;display:inline-flex;position:relative}.gallery-experience[data-ready=true][data-view=book] .gallery-controls{opacity:1;pointer-events:auto}.gallery-experience[data-book-mode=single] .gallery-controls{justify-content:space-between;gap:.5rem;width:min(100%,22.5rem);padding:.15rem .25rem}.gallery-experience[data-book-mode=single] .gallery-counter-stack{flex:auto;min-width:4.5rem}.gallery-experience[data-book-mode=single] .gallery-nav-btn{flex:none;width:2.85rem;min-width:2.85rem;max-width:2.85rem;height:2.85rem;min-height:2.85rem;max-height:2.85rem}.gallery-nav-btn{width:var(--gallery-nav-size);height:var(--gallery-nav-size);border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 86%, transparent);color:var(--text);box-shadow:0 10px 24px color-mix(in srgb, var(--black) 18%, transparent);backdrop-filter:blur(12px);cursor:pointer;border-radius:999px;place-items:center;transition:color .15s,border-color .15s,background-color .15s,opacity .15s,transform .15s;display:grid}.gallery-nav-btn svg{width:1.15rem;height:1.15rem}.gallery-nav-btn:hover:not(:disabled),.gallery-nav-btn:focus-visible:not(:disabled){color:var(--blue-soft);border-color:color-mix(in srgb, var(--blue) 40%, var(--border));background:color-mix(in srgb, var(--surface) 92%, var(--blue));outline:none}.gallery-nav-btn:disabled,.gallery-nav-btn[aria-disabled=true]{opacity:.35;cursor:not-allowed;transform:none}.gallery-counter-stack{justify-items:center;gap:.15rem;min-width:6.5rem;display:grid}.gallery-counter{font-family:var(--font-body);letter-spacing:.14em;text-align:center;color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:.8125rem;font-weight:600}@media (width<=899px){.gallery-stage{padding-inline:.3rem;padding-bottom:max(.3rem, env(safe-area-inset-bottom,0px))}.gallery-book-thickness{width:12px;top:5%;bottom:5%}.gallery-cover__logo{width:min(52%,10rem)}.gallery-cover__title{letter-spacing:.22em;text-indent:.22em}.gallery-controls{width:min(100%,21.5rem);margin-top:.2rem;margin-bottom:max(.15rem, env(safe-area-inset-bottom,0px));justify-content:space-between;gap:.45rem;padding:.2rem .3rem}.gallery-nav-btn{flex:none;width:2.85rem;min-width:2.85rem;max-width:2.85rem;height:2.85rem;min-height:2.85rem;max-height:2.85rem}.gallery-counter-stack{flex:auto;min-width:4.25rem}.gallery-counter{letter-spacing:.12em;font-size:.75rem}}@media (height<=560px){.gallery-stage{padding-block:.3rem .25rem}.gallery-halo{width:min(70vw,36rem);bottom:4.5rem}.gallery-controls{margin-top:.25rem}}.gallery-experience[data-motion=flip] .gallery-blob,.gallery-experience[data-motion=flip] .gallery-mote{animation-play-state:paused}.gallery-experience[data-motion=flip] .gallery-page__grain{visibility:hidden}.gallery-experience[data-motion=flip] .gallery-photo-trigger{box-shadow:none}.gallery-experience[data-motion=flip] .gallery-book-shell{will-change:transform}.gallery-experience[data-book-mode=single][data-motion=flip] .gallery-camera{perspective:none}.gallery-experience[data-book-mode=single][data-motion=flip] .gallery-book,.gallery-experience[data-book-mode=single][data-motion=flip] .stf__wrapper,.gallery-experience[data-book-mode=single][data-motion=flip] .stf__block{perspective:none;transform-style:flat;overflow:hidden}.gallery-experience[data-book-mode=single] .stf__item[data-gallery-turning]{box-shadow:-16px 0 28px color-mix(in srgb, var(--black) 42%, transparent)}.gallery-experience[data-book-mode=single] .stf__item[data-gallery-under]{box-shadow:inset 14px 0 18px color-mix(in srgb, var(--black) 16%, transparent)}@media (prefers-reduced-motion:reduce){.gallery-mote,.gallery-motes[data-live=true] .gallery-mote{opacity:0!important;animation:none!important}.gallery-blob{animation:none!important}.gallery-book-rig,.gallery-halo,.gallery-cover__shimmer{transition:none!important}}
