.curved-loop-jacket{justify-content:center;align-items:center;width:100%;display:flex}.curved-loop-svg{aspect-ratio:100/12;fill:currentColor;-webkit-user-select:none;user-select:none;text-transform:uppercase;width:100%;line-height:1;display:block;overflow:visible}
.logoloop{--logoloop-gap:32px;--logoloop-logoHeight:28px;--logoloop-fadeColorAuto:#fff;position:relative}.logoloop--vertical{height:100%;display:inline-block}.logoloop--scale-hover{padding-top:calc(var(--logoloop-logoHeight) * .1);padding-bottom:calc(var(--logoloop-logoHeight) * .1)}@media (prefers-color-scheme:dark){.logoloop{--logoloop-fadeColorAuto:#0b0b0b}}.logoloop__track{will-change:transform;-webkit-user-select:none;user-select:none;z-index:0;width:max-content;display:flex;position:relative}.logoloop--vertical .logoloop__track{flex-direction:column;width:100%;height:max-content}.logoloop__list{align-items:center;display:flex}.logoloop--vertical .logoloop__list{flex-direction:column}.logoloop__item{margin-right:var(--logoloop-gap);font-size:var(--logoloop-logoHeight);flex:none;line-height:1}.logoloop--vertical .logoloop__item{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__item:last-child{margin-right:var(--logoloop-gap)}.logoloop--vertical .logoloop__item:last-child{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__node{align-items:center;display:inline-flex}.logoloop__item img{height:var(--logoloop-logoHeight);object-fit:contain;width:auto;image-rendering:-webkit-optimize-contrast;-webkit-user-drag:none;pointer-events:none;transition:transform .3s cubic-bezier(.4,0,.2,1);display:block}.logoloop--scale-hover .logoloop__item{overflow:visible}.logoloop--scale-hover .logoloop__item:hover img,.logoloop--scale-hover .logoloop__item:hover .logoloop__node{transform-origin:50%;transform:scale(1.2)}.logoloop--scale-hover .logoloop__node{transition:transform .3s cubic-bezier(.4,0,.2,1)}.logoloop__link{border-radius:4px;align-items:center;text-decoration:none;transition:opacity .2s;display:inline-flex}.logoloop__link:hover{opacity:.8}.logoloop__link:focus-visible{outline-offset:2px;outline:2px solid}.logoloop--fade:before,.logoloop--fade:after{content:"";pointer-events:none;z-index:10;width:clamp(24px,8%,120px);position:absolute;top:0;bottom:0}.logoloop--fade:before{background:linear-gradient(to right, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);left:0}.logoloop--fade:after{background:linear-gradient(to left, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);right:0}.logoloop--vertical.logoloop--fade:before,.logoloop--vertical.logoloop--fade:after{width:100%;height:clamp(24px,8%,120px);left:0;right:0}.logoloop--vertical.logoloop--fade:before{background:linear-gradient(to bottom, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);top:0;bottom:auto}.logoloop--vertical.logoloop--fade:after{background:linear-gradient(to top, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);top:auto;bottom:0}@media (prefers-reduced-motion:reduce){.logoloop__track{transform:translate(0,0)!important}.logoloop__item img,.logoloop__node{transition:none!important}}.logoloop--draggable{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-y}.logoloop--draggable.logoloop--vertical{touch-action:pan-x}.logoloop--draggable .logoloop__item,.logoloop--draggable .logoloop__item *{cursor:pointer}.logoloop--dragging,.logoloop--dragging *{cursor:grabbing!important}.logoloop--draggable:focus-visible{outline:2px solid var(--brand,#ff1e1e);outline-offset:4px;border-radius:12px}
.pcard-3d__inner{border-radius:inherit;width:100%;height:100%;position:relative;overflow:visible}.pcard-3d__shine{opacity:0;pointer-events:none;border-radius:inherit;background:linear-gradient(135deg,#fff0 0%,#ffffff1a 50%,#fff0 100%);transition:opacity .3s;position:absolute;inset:0}.pcard-3d:hover .pcard-3d__shine{opacity:1}.pcard-3d:before{content:"";border-radius:inherit;filter:blur(20px);opacity:0;z-index:-1;background:#0000001a;transition:opacity .3s;position:absolute;inset:5%;transform:translateZ(-50px)}.pcard-3d:hover:before{opacity:1}@media (prefers-reduced-motion:reduce){.pcard-3d{transition:none;transform:none!important}.pcard-3d__shine{display:none}}
.border-glow-card{--edge-proximity:0;--cursor-angle:45deg;--edge-sensitivity:30;--color-sensitivity:calc(var(--edge-sensitivity) + 20);--border-radius:28px;--glow-padding:40px;--cone-spread:25;border-radius:var(--border-radius);isolation:isolate;background:var(--card-bg,#120f17);border:1px solid #ffffff26;display:grid;position:relative;overflow:visible;transform:translateZ(.01px);box-shadow:0 1px 2px #0000001a,0 2px 4px #0000001a,0 4px 8px #0000001a,0 8px 16px #0000001a,0 16px 32px #0000001a,0 32px 64px #0000001a}.border-glow-card:before,.border-glow-card:after,.border-glow-card>.edge-light{content:"";border-radius:inherit;z-index:-1;transition:opacity .25s ease-out;position:absolute;inset:0}.border-glow-card:not(:hover):not(.sweep-active):before,.border-glow-card:not(:hover):not(.sweep-active):after,.border-glow-card:not(:hover):not(.sweep-active)>.edge-light{opacity:0;transition:opacity .75s ease-in-out}.border-glow-card:before{background:linear-gradient(var(--card-bg,#120f17) 0 100%) padding-box, linear-gradient(#fff0 0% 100%) border-box, var(--gradient-one,radial-gradient(at 80% 55%, #be85ff 0px, transparent 50%)) border-box, var(--gradient-two,radial-gradient(at 69% 34%, #ff7a93 0px, transparent 50%)) border-box, var(--gradient-three,radial-gradient(at 8% 6%, #8fffad 0px, transparent 50%)) border-box, var(--gradient-four,radial-gradient(at 41% 38%, #47daff 0px, transparent 50%)) border-box, var(--gradient-five,radial-gradient(at 86% 85%, #7af2ff 0px, transparent 50%)) border-box, var(--gradient-six,radial-gradient(at 82% 18%, #ffe74c 0px, transparent 50%)) border-box, var(--gradient-seven,radial-gradient(at 51% 4%, #ff8d70 0px, transparent 50%)) border-box, var(--gradient-base,linear-gradient(#c299ff 0 100%)) border-box;opacity:calc((var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, black calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), black calc((100 - var(--cone-spread)) * 1%));mask-image:conic-gradient(from var(--cursor-angle) at center, black calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), black calc((100 - var(--cone-spread)) * 1%));border:1px solid #0000}.border-glow-card:after{background:var(--gradient-one,radial-gradient(at 80% 55%, #be85ff 0px, transparent 50%)) padding-box, var(--gradient-two,radial-gradient(at 69% 34%, #ff7a93 0px, transparent 50%)) padding-box, var(--gradient-three,radial-gradient(at 8% 6%, #8fffad 0px, transparent 50%)) padding-box, var(--gradient-four,radial-gradient(at 41% 38%, #47daff 0px, transparent 50%)) padding-box, var(--gradient-five,radial-gradient(at 86% 85%, #7af2ff 0px, transparent 50%)) padding-box, var(--gradient-six,radial-gradient(at 82% 18%, #ffe74c 0px, transparent 50%)) padding-box, var(--gradient-seven,radial-gradient(at 51% 4%, #ff8d70 0px, transparent 50%)) padding-box, var(--gradient-base,linear-gradient(#c299ff 0 100%)) padding-box;-webkit-mask-image:linear-gradient(to bottom, black, black), radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%), radial-gradient(ellipse at 66% 66%, black 5%, transparent 40%), radial-gradient(ellipse at 33% 33%, black 5%, transparent 40%), radial-gradient(ellipse at 66% 33%, black 5%, transparent 40%), radial-gradient(ellipse at 33% 66%, black 5%, transparent 40%), conic-gradient(from var(--cursor-angle) at center, transparent 5%, black 15%, black 85%, transparent 95%);mask-image:linear-gradient(to bottom, black, black), radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%), radial-gradient(ellipse at 66% 66%, black 5%, transparent 40%), radial-gradient(ellipse at 33% 33%, black 5%, transparent 40%), radial-gradient(ellipse at 66% 33%, black 5%, transparent 40%), radial-gradient(ellipse at 33% 66%, black 5%, transparent 40%), conic-gradient(from var(--cursor-angle) at center, transparent 5%, black 15%, black 85%, transparent 95%);opacity:calc(var(--fill-opacity,.5) * (var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));mix-blend-mode:soft-light;border:1px solid #0000;-webkit-mask-composite:source-out,source-over,source-over,source-over,source-over,source-over;mask-composite:subtract,add,add,add,add,add}.border-glow-card>.edge-light{inset:calc(var(--glow-padding) * -1);pointer-events:none;z-index:1;-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%);mask-image:conic-gradient(from var(--cursor-angle) at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%);opacity:calc((var(--edge-proximity) - var(--edge-sensitivity)) / (100 - var(--edge-sensitivity)));mix-blend-mode:plus-lighter}.border-glow-card>.edge-light:before{content:"";inset:var(--glow-padding);border-radius:inherit;box-shadow:inset 0 0 0 1px var(--glow-color,#f5daa3), inset 0 0 1px 0 var(--glow-color-60,#f5daa399), inset 0 0 3px 0 var(--glow-color-50,#f5daa380), inset 0 0 6px 0 var(--glow-color-40,#f5daa366), inset 0 0 15px 0 var(--glow-color-30,#f5daa34d), inset 0 0 25px 2px var(--glow-color-20,#f5daa333), inset 0 0 50px 2px var(--glow-color-10,#f5daa31a), 0 0 1px 0 var(--glow-color-60,#f5daa399), 0 0 3px 0 var(--glow-color-50,#f5daa380), 0 0 6px 0 var(--glow-color-40,#f5daa366), 0 0 15px 0 var(--glow-color-30,#f5daa34d), 0 0 25px 2px var(--glow-color-20,#f5daa333), 0 0 50px 2px var(--glow-color-10,#f5daa31a);position:absolute}.border-glow-inner{z-index:1;flex-direction:column;display:flex;position:relative;overflow:auto}
.card-spotlight{--mouse-x:50%;--mouse-y:50%;--spotlight-color:#ffffff0d;background-color:#111;border:1px solid #222;border-radius:1.5rem;padding:2rem;position:relative;overflow:hidden}.card-spotlight:before{content:"";background:radial-gradient(circle at var(--mouse-x) var(--mouse-y), var(--spotlight-color), transparent 80%);opacity:0;pointer-events:none;transition:opacity .5s;position:absolute;inset:0}.card-spotlight:hover:before,.card-spotlight:focus-within:before{opacity:.6}
.pcard-project{will-change:transform;width:100%;max-width:450px;height:500px;font-family:var(--font-grotesk), system-ui, sans-serif;border-radius:1.5rem;margin:0 auto;overflow:visible}.pcard-project .border-glow-card{border-color:var(--line-strong,#ffffff24);height:100%;transition:border-color .3s}.pcard-project:hover .border-glow-card{border-color:#ff1e1e59}.pcard-project .border-glow-inner{border-radius:inherit;height:100%;overflow:hidden}.pcard-project .card-spotlight{border-radius:inherit;background-color:#0000;border:0;height:100%;padding:0}.pcard-project__content{background:inherit;border-radius:inherit;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.pcard-project__image-container{cursor:pointer;z-index:2;background:var(--surface-2,#111);border-radius:1.5rem 1.5rem 0 0;height:220px;position:relative;overflow:hidden}.pcard-project__image-container:focus-visible{outline:2px solid var(--brand,#ff1e1e);outline-offset:-2px}.pcard-project__image{object-fit:cover;will-change:transform;width:100%;height:100%;transition:transform .3s cubic-bezier(.23,1,.32,1)}.pcard-project:hover .pcard-project__image{transform:scale(1.1)}.pcard-project__overlay{opacity:0;z-index:3;background:linear-gradient(135deg,#ff1e1ee6,#7a0f1de6);justify-content:center;align-items:center;transition:opacity .3s cubic-bezier(.23,1,.32,1);display:flex;position:absolute;inset:0}.pcard-project:hover .pcard-project__overlay{opacity:1}.pcard-project__overlay-content{z-index:4;gap:1rem;transition:transform .3s cubic-bezier(.23,1,.32,1);display:flex;transform:translateY(20px)}.pcard-project:hover .pcard-project__overlay-content{transform:translateY(0)}.pcard-project__overlay-btn{cursor:pointer;will-change:transform, box-shadow;z-index:5;background:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;text-decoration:none;transition:all .3s cubic-bezier(.23,1,.32,1);display:flex;box-shadow:0 8px 25px #00000026}.pcard-project__overlay-btn:hover{transform:scale(1.1)translateY(-2px);box-shadow:0 12px 35px #0003}.pcard-project__overlay-btn--live{color:#ff1e1e}.pcard-project__overlay-btn--github{color:#111}.pcard-project__overlay-icon{width:1.5rem;height:1.5rem}.pcard-project__status-badge{color:#fff;z-index:6;background:linear-gradient(135deg,#7a0f1d,#b3122a);border-radius:2rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.75rem;font-weight:700;display:flex;position:absolute;top:1rem;right:1rem;box-shadow:0 4px 15px #0003}.pcard-project__featured-badge{z-index:6;background:linear-gradient(135deg,#ff1e1e,#c8102e);border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:flex;position:absolute;top:1rem;right:1rem;box-shadow:0 4px 15px #0003}.pcard-project__featured-badge--with-status{top:3.75rem}.pcard-project__featured-icon,.pcard-project__status-icon{stroke-width:3px;color:#fff;width:18px;height:18px;font-weight:900}.pcard-project__featured-icon{color:#fff}.pcard-project__scroll-container{scrollbar-width:none;-ms-overflow-style:none;flex:1;overflow-y:auto}.pcard-project__scroll-container::-webkit-scrollbar{display:none}.pcard-project__details{flex-direction:column;padding:1.25rem 1.5rem;display:flex}.pcard-project__title{font-family:var(--font-bebas-neue), "Bebas Neue", sans-serif;letter-spacing:.02em;color:var(--foreground,#f4f4f5);margin:0 0 1rem;font-size:1.9rem;font-weight:400;line-height:1.05}.pcard-project__description{color:var(--muted,#a2a2ad);margin:0;font-size:.95rem;line-height:1.6}.pcard-project__technologies{flex-wrap:wrap;gap:.5rem;padding:1rem 1.5rem 1.5rem;display:flex}.pcard-project__tech-tag{border:1px solid var(--line-strong,#ffffff24);color:#f4f4f5cc;will-change:transform, background, border-color, color;background:linear-gradient(135deg,#111,#1a1a1a);border-radius:1rem;padding:.4rem .9rem;font-size:.75rem;font-weight:500;transition:all .3s cubic-bezier(.23,1,.32,1)}.pcard-project__tech-tag:hover{color:#fff;background:linear-gradient(135deg,#ff1e1e,#c8102e);border-color:#ff1e1e;transform:translateY(-2px)}.pcard-project__tech-more{background:var(--surface-2,#111);border:1px solid var(--line-strong,#ffffff24);color:var(--muted,#a2a2ad);cursor:pointer;border-radius:1rem;padding:.4rem .9rem;font-size:.75rem;font-weight:600;transition:all .3s}.pcard-project__tech-more:hover{color:#fff;background:#ff1e1e;border-color:#ff1e1e;transform:translateY(-2px)}.pcard-gallery-modal{z-index:10000000;justify-content:center;align-items:center;padding:2rem;animation:.3s pcard-fadeIn;display:flex;position:fixed;inset:0}@keyframes pcard-fadeIn{0%{opacity:0}to{opacity:1}}.pcard-gallery-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100000;background:#0009;position:absolute;inset:0}.pcard-gallery-close{background:var(--surface-2,#111);border:1px solid var(--line-strong,#ffffff24);cursor:pointer;width:3rem;height:3rem;color:var(--foreground,#f4f4f5);z-index:100001;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;transition:all .3s;display:flex;position:absolute;top:2rem;right:2rem}.pcard-gallery-close:hover{background:#2a2a30;transform:scale(1.1)}.pcard-gallery-content{z-index:100000;justify-content:center;align-items:center;width:100%;max-width:100vw;max-height:90vh;display:flex;position:relative;overflow-y:auto}.pcard-gallery-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;width:100%;max-width:1000px;display:grid}.pcard-gallery-grid-item{aspect-ratio:16/10;background:var(--surface,#0a0a0a);border-radius:1rem;width:100%;min-height:200px;position:relative;overflow:hidden;box-shadow:0 10px 40px #00000059}.pcard-gallery-image{object-fit:cover;border-radius:1rem;width:100%;height:100%;animation:.3s pcard-zoomIn}@keyframes pcard-zoomIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (max-width:1024px){.pcard-project{max-width:420px;height:440px}.pcard-gallery-grid{gap:1rem}.pcard-gallery-grid-item{min-height:180px}}@media (max-width:768px){.pcard-project{max-width:100%;height:430px}.pcard-project__image-container{height:200px}.pcard-project__details{padding:1rem 1.25rem}.pcard-project__title{font-size:1.6rem}.pcard-project__description{font-size:.9rem}.pcard-project__technologies{gap:.4rem;padding:.75rem 1.25rem 1.25rem}.pcard-project__overlay-content{gap:.75rem}.pcard-project__overlay-btn{width:3rem;height:3rem}.pcard-project__overlay-icon{width:1.25rem;height:1.25rem}.pcard-project__status-badge{padding:.4rem .8rem;font-size:.7rem;top:.75rem;right:.75rem}.pcard-project__featured-badge{width:2rem;height:2rem;top:.75rem;right:.75rem}.pcard-project__featured-badge--with-status{top:3.25rem}.pcard-project__featured-icon,.pcard-project__status-icon{width:16px;height:16px}.pcard-gallery-modal{padding:1rem}.pcard-gallery-close{width:2.5rem;height:2.5rem;top:1rem;right:1rem}.pcard-gallery-content{max-width:98vw;max-height:85vh}.pcard-gallery-grid{gap:.75rem}.pcard-gallery-grid-item{min-height:150px}}@media (max-width:640px){.pcard-project{max-width:100%;height:410px}.pcard-project__image-container{height:180px}.pcard-project__details{padding:.9rem 1rem}.pcard-project__title{margin-bottom:.75rem;font-size:1.45rem}.pcard-project__description{font-size:.85rem;line-height:1.5}.pcard-project__technologies{gap:.35rem;padding:.65rem 1rem 1rem}.pcard-project__tech-tag,.pcard-project__tech-more{padding:.3rem .7rem;font-size:.7rem}.pcard-gallery-close{width:2.25rem;height:2.25rem}.pcard-gallery-content{max-width:100%;max-height:80vh}.pcard-gallery-grid{grid-template-columns:1fr;gap:.75rem}}@media (max-width:480px){.pcard-project{height:390px}.pcard-project__image-container{height:160px}.pcard-project__details{padding:.75rem .9rem}.pcard-project__title{margin-bottom:.5rem;font-size:1.3rem}.pcard-project__description{font-size:.8rem}.pcard-project__technologies{gap:.3rem;padding:.5rem .9rem .9rem}.pcard-project__tech-tag,.pcard-project__tech-more{padding:.25rem .6rem;font-size:.65rem}.pcard-project__status-badge{padding:.3rem .6rem;font-size:.6rem;top:.5rem;right:.5rem}.pcard-project__featured-badge{width:1.75rem;height:1.75rem;top:.5rem;right:.5rem}.pcard-project__featured-badge--with-status{top:2.5rem}.pcard-project__featured-icon,.pcard-project__status-icon{width:14px;height:14px}.pcard-gallery-close{width:2rem;height:2rem;font-size:1rem}.pcard-gallery-grid{gap:.5rem}.pcard-gallery-grid-item{min-height:120px}}@media (prefers-reduced-motion:reduce){.pcard-project,.pcard-project__image,.pcard-project__overlay,.pcard-project__overlay-content,.pcard-project__overlay-btn,.pcard-project__tech-tag,.pcard-project__tech-more,.pcard-gallery-modal,.pcard-gallery-image{transition:none;animation:none}}
.sphere-root{--radius:520px;--viewer-pad:72px;--circ:calc(var(--radius) * 3.14);--rot-y:calc((360deg / var(--segments-x)) / 2);--rot-x:calc((360deg / var(--segments-y)) / 2);--item-width:calc(var(--circ) / var(--segments-x));--item-height:calc(var(--circ) / var(--segments-y));width:100%;height:100%;position:relative}.sphere-root *{box-sizing:border-box}.sphere,.item,.item__image{transform-style:preserve-3d}.sphere-main{touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}@media (hover:none) and (pointer:coarse){.sphere-main{touch-action:pan-y}}.stage{width:100%;height:100%;perspective:calc(var(--radius) * 2);perspective-origin:50%;contain:layout paint size;place-items:center;display:grid}.sphere{transform:translateZ(calc(var(--radius) * -1));will-change:transform}.overlay,.overlay--blur{z-index:3;pointer-events:none;margin:auto;position:absolute;inset:0}.overlay{background-image:radial-gradient(#ebebeb00 65%, var(--overlay-blur-color,#120f17) 100%)}.overlay--blur{-webkit-mask-image:radial-gradient(#ebebeb00 70%, var(--overlay-blur-color,#120f17) 90%);-webkit-mask-image:radial-gradient(#ebebeb00 70%, var(--overlay-blur-color,#120f17) 90%);mask-image:radial-gradient(#ebebeb00 70%, var(--overlay-blur-color,#120f17) 90%);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.item{width:calc(var(--item-width) * var(--item-size-x));height:calc(var(--item-height) * var(--item-size-y));transform-origin:50%;backface-visibility:hidden;transform:rotateY(calc(var(--rot-y) * (var(--offset-x) + ((var(--item-size-x) - 1) / 2)) + var(--rot-y-delta,0deg))) rotateX(calc(var(--rot-x) * (var(--offset-y) - ((var(--item-size-y) - 1) / 2)) + var(--rot-x-delta,0deg))) translateZ(var(--radius));margin:auto;transition:transform .3s;position:absolute;inset:-999px}.item__image{border-radius:var(--tile-radius,12px);backface-visibility:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;pointer-events:auto;background:0 0;transition:transform .3s;display:block;position:absolute;inset:10px;overflow:hidden;transform:translateZ(0)}.item__image:focus{outline:none}.item__image img{object-fit:cover;pointer-events:none;backface-visibility:hidden;width:100%;height:100%;filter:var(--image-filter,none)}.viewer{z-index:20;pointer-events:none;padding:var(--viewer-pad);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.viewer .details{z-index:31;opacity:0;pointer-events:none;width:min(460px,46%);max-height:90%;transition:opacity var(--enlarge-ms,.3s) ease, transform var(--enlarge-ms,.3s) ease;padding-left:28px;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(24px,-50%)}.sphere-root[data-details-open=true] .viewer .details{opacity:1;pointer-events:auto;transform:translateY(-50%)}.dg-drawer{z-index:60;border:1px solid var(--line);background:var(--surface);max-height:45dvh;transition:transform var(--enlarge-ms,.3s) cubic-bezier(.22, 1, .36, 1);border-bottom:0;border-radius:24px 24px 0 0;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -12px 40px #0000008c}.dg-drawer[data-open=true]{transform:translateY(0)}.dg-drawer__handle{cursor:pointer;background:0 0;border:0;flex-shrink:0;align-self:center;width:64px;height:22px;position:relative}.dg-drawer__handle:before{content:"";background:var(--line);border-radius:999px;width:40px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dg-drawer__body{overscroll-behavior:contain;padding:0 20px calc(20px + env(safe-area-inset-bottom));overflow-y:auto}.viewer .scrim{z-index:10;pointer-events:none;opacity:0;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0006;transition:opacity .5s;position:absolute;inset:0}.sphere-root[data-enlarging=true] .viewer .scrim{opacity:1;pointer-events:all}.viewer .enlarge{z-index:30;border-radius:var(--enlarge-radius,32px);transform-origin:0 0;transition:transform .5s,opacity .5s;position:absolute;overflow:hidden;box-shadow:0 10px 30px #00000059}.viewer .enlarge img{object-fit:cover;width:100%;height:100%;filter:var(--image-filter,none)}.sphere-root .enlarge-closing img{filter:var(--image-filter,none)}.edge-fade{z-index:5;pointer-events:none;background:linear-gradient(to bottom, transparent, var(--overlay-blur-color,#120f17));height:120px;position:absolute;left:0;right:0}.edge-fade--top{top:0;transform:rotate(180deg)}.edge-fade--bottom{bottom:0}
.sling-button{--sl-size:56px;--sl-svg:90px;--sl-pad:#f5f5f5;--sl-icon:#18181b;--sl-accent:#f5f5f5;--sl-well:#27272a;--sl-band:#52525b;--sl-stroke:3px;--sl-dot:8px;--sl-ease-out:cubic-bezier(.23, 1, .32, 1);width:var(--sl-size);height:var(--sl-size);display:inline-block;position:relative}.sling-button__fx{width:var(--sl-svg);height:var(--sl-svg);margin:calc(var(--sl-svg) / -2) 0 0 calc(var(--sl-svg) / -2);pointer-events:none;shape-rendering:geometricprecision;position:absolute;top:50%;left:50%;overflow:visible}.sling-button__well{fill:var(--sl-well);transition:fill .2s}.sling-button[data-sent] .sling-button__well{fill:var(--sl-accent)}.sling-button__band{fill:none;stroke:var(--sl-band);stroke-width:var(--sl-stroke);stroke-linecap:round;transition:stroke-width .16s var(--sl-ease-out)}.sling-button[data-armed] .sling-button__band{stroke-width:calc(var(--sl-stroke) * 1.5)}.sling-button__band--hot{stroke:var(--sl-accent)}.sling-button__arc{fill:none;stroke:var(--sl-accent);stroke-width:var(--sl-stroke);stroke-linecap:butt;transition:stroke-width .16s var(--sl-ease-out)}.sling-button[data-armed] .sling-button__arc{stroke-width:calc(var(--sl-stroke) * 1.5)}.sling-button__move{position:absolute;inset:0}.sling-button__pad{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;outline:none;width:100%;height:100%;margin:0;padding:0;display:block;position:relative}.sling-button__pad:after{content:"";border-radius:50%;position:absolute;inset:-6px}.sling-button__pad[data-held]{cursor:grabbing}.sling-button__pad[aria-disabled=true]{cursor:not-allowed;opacity:.5}.sling-button__face{background:var(--sl-pad);width:100%;height:100%;color:var(--sl-icon);transition:transform .16s var(--sl-ease-out);border-radius:50%;justify-content:center;align-items:center;display:flex}.sling-button__pad[data-held] .sling-button__face{transform:scale(.97)}.sling-button__pad[data-armed] .sling-button__face{transform:scale(1.04)}@media (hover:hover) and (pointer:fine){.sling-button__pad:not([data-held]):not([aria-disabled=true]):hover .sling-button__face{transform:scale(1.02)}}.sling-button__icon{will-change:transform;display:inline-flex}.sling-button__dot{width:var(--sl-dot);height:var(--sl-dot);margin:calc(var(--sl-dot) / -2) 0 0 calc(var(--sl-dot) / -2);background:var(--sl-accent);opacity:0;pointer-events:none;border-radius:50%;position:absolute;top:50%;left:50%}.sling-button__sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.sling-button__face{transition:none;transform:none!important}}
html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
