/* A gallery in space, with ordinary linked cards as its progressive fallback. */
html.cg .work__pin{height:100vh;height:100svh;min-height:650px;position:relative;padding:0;overflow:hidden;isolation:isolate;background:#08090d;--cg-accent:148,157,230;--cg-travel:0px;--cg-gaze-x:55%;--cg-gaze-y:40%}
html.cg .work__track{display:block;position:absolute;inset:0;width:100%;height:100%;padding:0;gap:0;perspective:1400px;perspective-origin:50% 44%;transform-style:preserve-3d;z-index:3;pointer-events:none}
html.cg .proj:not(.proj--end){position:absolute;top:17vh;top:17svh;left:50%;width:min(64vw,1040px);margin:0;padding:0;transform-style:preserve-3d;transform-origin:50% 43%;backface-visibility:hidden;will-change:transform,opacity}
html.cg .proj__link{position:relative;display:block;outline-offset:6px}
html.cg .proj .proj__media{height:50vh;height:50svh;min-height:300px;max-height:570px;aspect-ratio:auto;border-radius:2px;border:1px solid #ffffff28;box-shadow:0 24px 70px #0007,0 0 0 1px #ffffff06;transform:translateZ(0)}
html.cg .proj .proj__art{inset:0}
html.cg .proj .proj__info,html.cg .proj .project-intent{opacity:var(--cg-meta,1);transition:none}
html.cg .proj__info{padding-top:20px;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:18px}
html.cg .proj__name{font-size:clamp(20px,2vw,29px);font-weight:500;letter-spacing:-.04em;line-height:1.05;color:#f2f0eb}
html.cg .proj__name span{display:block;margin:9px 0 0;font-size:13px;letter-spacing:-.01em;line-height:1.3;color:#a4a4b0}
html.cg .proj__tags{gap:16px;max-width:42%;text-align:right}
html.cg .proj__tags .label{font-size:8px;line-height:1.7;letter-spacing:.06em;color:#a4a4b0}
html.cg .proj__go{flex:none;width:37px;height:37px;color:#f2f0eb;border-color:#ffffff38}
html.cg .project-intent{font-size:11px;line-height:1.65;max-width:62ch;margin-top:11px;color:#8e909c}
html.cg .proj--end{display:none!important}
html.cg .portfolio-live-preview{border-radius:1px}
html.cg .portfolio-live-badge,html.cg .portfolio-live-open{bottom:15px;padding:9px 12px;font-size:9px;background:#08090ddb}
html.cg .portfolio-live-badge{left:16px}html.cg .portfolio-live-open{right:16px}
html.cg .portfolio-preview-tools{position:absolute;right:var(--pad);bottom:28px;margin:0;z-index:12}
html.cg .portfolio-preview-toggle{min-height:36px;font-size:9px;background:#08090dc9;border-color:#ffffff26}
html.cg .work__hud{display:flex;align-items:center;justify-content:space-between;position:absolute;left:var(--pad);right:var(--pad);bottom:88px;padding:0;gap:24px;z-index:8;color:#aaaab6}
html.cg .work__hud>.label:last-child{display:none}
html.cg .work__bar{max-width:none;opacity:.6;height:1px;margin-left:15px;background:#ffffff1d}
html.cg .work__bar i{background:#d0caff;transition:transform .08s linear}
html.cg #work-count{font-size:10px;white-space:nowrap;letter-spacing:.15em}
.cg-scene{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;perspective:850px}
.cg-grid{position:absolute;background-image:linear-gradient(#a9adc818 1px,transparent 1px),linear-gradient(90deg,#a9adc818 1px,transparent 1px);background-size:70px 70px;pointer-events:none}
.cg-grid--back{inset:-8% -15%;background-size:78px 78px;opacity:.5;transform:translateX(var(--cg-travel));mask-image:radial-gradient(ellipse at center,#0008 0,#000 50%,transparent 90%)}
.cg-grid--floor{width:190%;height:95%;left:-45%;top:49%;transform:rotateX(72deg) translateY(var(--cg-travel));transform-origin:50% 0;opacity:.7;background-size:100px 100px}
.cg-grid--wall{height:170%;width:90%;top:-35%;left:-55%;transform:rotateY(62deg);transform-origin:right center;opacity:.5;background-size:100px 100px}
.cg-light{position:absolute;inset:0;background:radial-gradient(ellipse at var(--cg-gaze-x) var(--cg-gaze-y),rgba(var(--cg-accent),.18),transparent 55%),linear-gradient(180deg,#08090d 0%,transparent 23%,transparent 75%,#08090d 100%);transition:background-color 1.5s}
.cg-word{position:absolute;left:50%;top:35%;transform:translate(-50%,-50%);font:500 18vw/.8 var(--f-sans,Arial,sans-serif);letter-spacing:-.08em;white-space:nowrap;color:#c7c2e4;opacity:.065}
.cg-cross{position:absolute;width:15px;height:15px;opacity:.45}.cg-cross:before,.cg-cross:after{content:"";position:absolute;background:#cbc8d4}.cg-cross:before{width:15px;height:1px;left:0;top:7px}.cg-cross:after{height:15px;width:1px;top:0;left:7px}.cg-cross--one{top:13%;left:3%}.cg-cross--two{bottom:24%;right:3%}
.cg-overline{position:absolute;z-index:6;top:110px;left:var(--pad);right:var(--pad);display:flex;align-items:center;justify-content:space-between;font:400 8px/1.4 var(--f-mono,monospace);letter-spacing:.14em;color:#a1a0ad;pointer-events:none}
.cg-coordinates{position:absolute;top:47%;right:22px;display:flex;gap:25px;writing-mode:vertical-rl;font:400 6px/1 var(--f-mono,monospace);letter-spacing:.12em;color:#858390}
.cg-controls{position:absolute;left:var(--pad);bottom:24px;display:flex;align-items:center;gap:14px;z-index:12}
.cg-arrow{appearance:none;display:grid;place-items:center;width:38px;height:38px;border:1px solid #ffffff35;border-radius:50%;background:#0d0d13aa;color:#eae6ef;font:400 19px/1 var(--f-sans,Arial,sans-serif);cursor:pointer;transition:background .2s,color .2s,opacity .2s}
.cg-arrow:hover{background:#d5ccff;color:#11101a;border-color:#d5ccff}.cg-arrow:focus-visible{outline:2px solid #d5ccff;outline-offset:5px}.cg-arrow:disabled{opacity:.23;cursor:default;background:transparent;color:#aaa;border-color:#ffffff35}
.cg-scroll-hint{display:flex;align-items:center;gap:20px;font:400 9px/1.2 var(--f-sans,Arial,sans-serif);color:#a2a1ae;letter-spacing:.01em}.cg-scroll-hint>span{font-size:15px;color:#ddd7ed}
@media(min-width:900px) and (max-height:780px){html.cg .work__pin{min-height:600px}html.cg .proj:not(.proj--end){top:19vh}html.cg .proj .proj__media{height:45vh;min-height:250px}html.cg .project-intent{display:none}html.cg .proj__info{padding-top:14px}.cg-overline{top:94px}html.cg .work__hud{bottom:77px}}
@media(min-width:900px) and (max-width:1100px){html.cg .proj:not(.proj--end){width:66vw}html.cg .proj__tags .label{display:none}.cg-overline{font-size:7px}}
@media(prefers-reduced-motion:reduce){.cg-scene,.cg-controls,.cg-overline{display:none}}
