.three-gallery{position:relative;width:100%;margin:0 0 2.25rem;color:#f5f5f3;font-family:Arial,Helvetica,sans-serif}.three-gallery-stage{position:relative;width:100%;height:clamp(430px,72vh,820px);min-height:430px;overflow:hidden;border:1px solid #777;background:#111;cursor:crosshair;isolation:isolate}.three-gallery-stage:focus-visible{outline:2px solid var(--accent,#ef2d96);outline-offset:3px}.three-gallery-stage canvas{display:block;width:100%;height:100%}.three-gallery-loading{position:absolute;inset:0;z-index:8;display:grid;place-content:center;gap:.65rem;padding:2rem;background:#111;color:#fff;font-size:.72rem;letter-spacing:.16em;text-align:center;transition:opacity .35s ease,visibility .35s ease}.three-gallery-loading.is-ready{opacity:0;visibility:hidden}.three-gallery-loading-line{display:block;width:170px;height:2px;background:linear-gradient(90deg,var(--accent,#ef2d96) 0 50%,#444 50%);background-size:200% 100%;animation:three-gallery-load 1.1s linear infinite}@keyframes three-gallery-load{to{background-position:-200% 0}}.three-gallery-reticle{position:absolute;z-index:5;top:50%;left:50%;width:14px;height:14px;transform:translate(-50%,-50%);pointer-events:none;opacity:.78}.three-gallery-reticle:before,.three-gallery-reticle:after{content:"";position:absolute;background:#fff;box-shadow:0 0 2px #000}.three-gallery-reticle:before{top:6px;left:0;width:14px;height:1px}.three-gallery-reticle:after{top:0;left:6px;width:1px;height:14px}.three-gallery-prompt,.three-gallery-hover{position:absolute;z-index:6;border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.72);color:#fff;font-size:.66rem;line-height:1.25;letter-spacing:.1em;text-align:center;pointer-events:none}.three-gallery-prompt{top:.72rem;right:.82rem;border:0;padding:0;background:transparent;color:rgba(255,255,255,.7);font-size:.58rem;white-space:nowrap;text-shadow:0 1px 3px #000;opacity:0;transition:opacity .2s ease}.three-gallery-stage.is-active .three-gallery-prompt{opacity:1}.three-gallery-hover{top:calc(50% + 18px);left:50%;display:none;transform:translateX(-50%);padding:.42rem .58rem;white-space:nowrap}.three-gallery-hover.is-visible{display:block}.three-gallery-hover.is-complete{border-color:#52d67b;color:#79ef9b}.three-gallery-focus-hud{position:absolute;z-index:7;inset:0;pointer-events:none}.three-gallery-focus-hud button{position:absolute;top:1rem;left:1rem;border:1px solid rgba(255,255,255,.75);padding:.5rem .65rem;background:rgba(0,0,0,.76);color:#fff;font:inherit;font-size:.68rem;letter-spacing:.08em;pointer-events:auto;cursor:pointer}.three-gallery-contemplation{position:absolute;right:8%;bottom:1.2rem;left:8%}.three-gallery-contemplation-label{display:flex;justify-content:space-between;margin-bottom:.35rem;font-size:.66rem;letter-spacing:.13em;text-shadow:0 1px 3px #000}[data-contemplation-check]{color:#62e989;opacity:0}[data-contemplation-check].is-complete{opacity:1}.three-gallery-contemplation-track{height:7px;border:1px solid rgba(255,255,255,.78);background:rgba(0,0,0,.58);padding:1px}.three-gallery-contemplation-track span{display:block;width:0;height:100%;background:#f2f2f0;transition:width .1s linear,background-color .2s ease}.three-gallery-contemplation-track span.is-complete{background:#52d67b}.three-gallery-caption{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid #777;border-top:0;padding:.52rem .7rem;color:#333;font-size:.68rem;letter-spacing:.1em}.three-gallery-caption button{border:0;border-bottom:1px solid currentColor;padding:0;background:transparent;color:inherit;font:inherit;font-size:inherit;letter-spacing:inherit;cursor:pointer}@media(max-width:720px){.three-gallery-stage{height:66vh;min-height:390px}.three-gallery-caption{align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion:reduce){.three-gallery-loading-line{animation:none}}

.three-gallery-enter{position:absolute;inset:0;z-index:10;display:grid;place-items:center;background:radial-gradient(circle at 50% 56%,rgba(13,14,18,.72),rgba(0,0,0,.96) 62%),#000;transition:opacity .3s ease,visibility .3s ease}.three-gallery-enter button{border:1px solid rgba(255,255,255,.7);padding:.72rem 1rem;background:rgba(0,0,0,.7);color:#fff;font:inherit;font-size:.68rem;letter-spacing:.14em;cursor:pointer}.three-gallery-enter button:hover,.three-gallery-enter button:focus-visible{background:#fff;color:#111}.three-gallery-stage:not(.is-unloaded) .three-gallery-enter{opacity:0;visibility:hidden;pointer-events:none}.three-gallery-stage.is-unloaded .three-gallery-reticle,.three-gallery-stage.is-unloaded .three-gallery-prompt,.three-gallery-stage.is-unloaded .three-gallery-hover{display:none}.three-gallery-loading{place-items:center;place-content:center;background:radial-gradient(circle at 50% 56%,rgba(13,14,18,.76),rgba(0,0,0,.96) 62%),#000}.three-gallery-loading-mark{width:3.25rem;height:3.25rem;display:grid;place-items:center;filter:drop-shadow(0 0 1.2rem rgba(240,74,167,.16));transform-origin:50% 50%;animation:three-gallery-triangle-pulse 920ms ease-in-out infinite}.three-gallery-loading-mark::before,.three-gallery-loading-mark::after{content:"";display:block;aspect-ratio:1;grid-area:1/1;clip-path:polygon(50% 0,100% 86%,0 86%)}.three-gallery-loading-mark::before{width:2.7rem;background:rgba(222,222,217,.78)}.three-gallery-loading-mark::after{width:2.3rem;background:#020306;clip-path:polygon(50% 4%,95% 84%,5% 84%)}.three-gallery-loading.is-complete .three-gallery-loading-mark{animation:three-gallery-triangle-finish 430ms cubic-bezier(.24,.85,.32,1) forwards;filter:drop-shadow(0 0 1.3rem rgba(240,74,167,.24))}.three-gallery-loading.is-complete .three-gallery-loading-mark::before{background:rgba(240,74,167,.74)}@keyframes three-gallery-triangle-pulse{0%,100%{opacity:.62;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes three-gallery-triangle-finish{from{opacity:1;transform:scale(1) rotate(0)}to{opacity:1;transform:scale(1) rotate(180deg)}}@media(prefers-reduced-motion:reduce){.three-gallery-loading-mark{animation:none}.three-gallery-loading.is-complete .three-gallery-loading-mark{animation:none}}
.three-gallery-stage{width:100%;height:auto;min-height:0;aspect-ratio:4/3}.three-gallery-loading:not(.is-ready){opacity:1;visibility:visible;transition:none}@media(max-width:720px){.three-gallery-stage{height:auto;min-height:0;aspect-ratio:4/3}}
.three-gallery{width:870px;max-width:100%}.three-gallery-stage{width:100%;height:650px;min-height:0;aspect-ratio:auto}@media(max-width:900px){.three-gallery{width:100%}.three-gallery-stage{height:auto;aspect-ratio:4/3}}
.three-gallery-enter{background:linear-gradient(rgba(0,0,0,.34),rgba(0,0,0,.5)),url("../gallery/treadmill-embed-poster.png") center/cover no-repeat,#111}.three-gallery-enter button{background:rgba(0,0,0,.76);box-shadow:0 2px 18px rgba(0,0,0,.38)}
.three-gallery-post-panel{position:absolute;z-index:12;top:.65rem;right:.65rem;width:min(20rem,calc(100% - 1.3rem));max-height:calc(100% - 1.3rem);overflow:auto;border:1px solid rgba(255,255,255,.55);padding:.65rem;background:rgba(5,6,10,.93);color:#eee;font-size:.63rem;letter-spacing:.06em;box-shadow:0 .5rem 2rem rgba(0,0,0,.42);cursor:auto}.three-gallery-post-panel[hidden]{display:none}.three-gallery-post-panel header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:.45rem;margin-bottom:.5rem}.three-gallery-post-panel header button{width:1.5rem;height:1.5rem;border:1px solid rgba(255,255,255,.45);background:transparent;color:#fff;cursor:pointer}.three-gallery-post-panel label{display:grid;grid-template-columns:6.2rem 1fr 3.8rem;align-items:center;gap:.45rem;margin:.38rem 0}.three-gallery-post-panel input{width:100%;accent-color:#ef2d96}.three-gallery-post-panel output{text-align:right;font-variant-numeric:tabular-nums}.three-gallery-post-panel small{display:block;margin-top:.6rem;color:rgba(255,255,255,.55);font-size:.52rem}.three-gallery-stage.is-post-open canvas{cursor:default!important}@media(max-width:600px){.three-gallery-post-panel label{grid-template-columns:5.7rem 1fr 3.5rem}}
