:is(html:has(.fullscreen-page),body:has(.fullscreen-page)){height:100%;overflow:hidden}body:has(.fullscreen-page){background:var(--fog)}body:has(.fullscreen-page) footer.site{display:none}.pstage-root{color:#fff;position:fixed;inset:0}.bgs{z-index:0;background:radial-gradient(circle at 72% 42%,#2f5d7c1a,#0000 34%),#f7f8f6;position:fixed;inset:0;overflow:hidden}.projects-hero-scene{z-index:1;opacity:1;transition:opacity .7s ease, transform 1.2s var(--ease);position:absolute;inset:0;transform:scale(1.01)}.projects-hero-scene canvas{width:100%;height:100%;display:block}.pstage-root.imm .projects-hero-scene{opacity:0;transform:scale(1.035)}.bgs:after{content:"";pointer-events:none;background:linear-gradient(90deg,#f7f8f6eb 0%,#f7f8f673 34%,#0000 60%);transition:opacity .5s;position:absolute;inset:0}.pstage-root.imm .bgs:after{opacity:0}.bgs .bg{z-index:2;opacity:0;transition:opacity .65s ease, transform 1.4s var(--ease);background-position:50%;background-size:cover;position:absolute;inset:0;transform:scale(1.045)}.bgs .bg:after{content:"";background:linear-gradient(#0c0e106b,#0c0e102e 40%,#0c0e1080);position:absolute;inset:0}.bgs .bg.on{opacity:1;animation:20s ease-in-out infinite alternate bgKenBurns}@keyframes bgKenBurns{0%{transform:scale(1.04)translate(0,0)}to{transform:scale(1.1)translate(-1.2%,-1.2%)}}.pstage-root.closing .bg.on{transition:transform 2.4s var(--ease);animation:none;transform:scale(1.16)}@media (prefers-reduced-motion:reduce){.bgs .bg.on{animation:none;transform:scale(1)}}.bga{z-index:0;transition:opacity .8s;position:absolute;inset:0;overflow:hidden}.bga i{filter:blur(80px);will-change:transform;border-radius:50%;position:absolute}.bga i:first-child{background:radial-gradient(circle,#2f5d7c99,#0000 66%);width:58vw;height:58vw;animation:30s ease-in-out infinite alternate bgaDrift1;top:-22%;left:52%}.bga i:nth-child(2){background:radial-gradient(circle,#cfe0e8e6,#0000 66%);width:48vw;height:48vw;animation:38s ease-in-out infinite alternate bgaDrift2;top:34%;left:-14%}.bga i:nth-child(3){background:radial-gradient(circle,#b3822d80,#0000 64%);width:40vw;height:40vw;animation:44s ease-in-out infinite alternate bgaDrift3;top:58%;left:38%}.bga i:nth-child(4){background:radial-gradient(circle,#3c434b8c,#0000 68%);width:52vw;height:52vw;animation:34s ease-in-out infinite alternate bgaDrift4;top:52%;left:72%}@keyframes bgaDrift1{0%{transform:translate(0,0)scale(1)}to{transform:translate(-9%,12%)scale(1.18)}}@keyframes bgaDrift2{0%{transform:translate(0,0)scale(1.12)}to{transform:translate(11%,-9%)scale(.94)}}@keyframes bgaDrift3{0%{transform:translate(-6%,4%)scale(1)}to{transform:translate(9%,-11%)scale(1.22)}}@keyframes bgaDrift4{0%{transform:translate(4%,6%)scale(1.08)}to{transform:translate(-10%,-8%)scale(.92)}}@media (prefers-reduced-motion:reduce){.bga i{animation:none}}.pstage-root.imm .bga{opacity:0}.bgw{z-index:1;pointer-events:none;opacity:.07;filter:blur(1.5px);justify-content:center;align-items:center;transition:opacity .8s;display:flex;position:absolute;inset:0}.bgw img{width:clamp(252px,28vw,448px);height:auto;transform:rotate(-8deg)}.pstage-root.imm .bgw{opacity:0}.stage{z-index:1;height:100dvh;position:relative}.plist{z-index:5;flex-direction:column;align-items:flex-start;gap:10px;display:flex;position:absolute;top:50%;left:42px;transform:translateY(-50%)}.pill-link{letter-spacing:.01em;-webkit-backdrop-filter:blur(12px);border:1px solid var(--ink-12);color:var(--graphite);transition:background .25s, color .25s, border-color .25s, transform .3s var(--ease);background:#fff9;border-radius:999px;align-items:center;padding:9px 20px;font-size:15px;font-weight:600;display:inline-flex}.pill-link:hover,.pill-link.active{background:var(--graphite);color:#fff;border-color:#0000;transform:translate(6px)}.pill-link.all{opacity:.75;margin-top:16px;font-weight:500}.idle{z-index:2;pointer-events:none;transition:opacity .45s;position:absolute;inset:0}.idle-title{max-width:40vw;font-family:var(--disp);letter-spacing:-.025em;color:var(--graphite);font-size:clamp(28px,3.2vw,56px);font-weight:400;line-height:1.06;position:absolute;bottom:16%;left:29%}.idle-sub{max-width:390px;color:var(--ink-60);text-wrap:pretty;font-size:17px;font-weight:400;line-height:1.55;position:absolute;top:22%;left:29%;right:auto}.pstage-root.imm .idle{opacity:0;pointer-events:none}.pview{z-index:2;pointer-events:none;opacity:0;color:#fff;transition:opacity .4s;position:absolute;inset:0}.pstage-root.imm .pview{opacity:1}.pv-col{z-index:3;flex-direction:column;align-items:flex-start;gap:20px;width:min(46vw,560px);display:flex;position:absolute;top:12%;left:clamp(190px,16vw,250px)}.pv-logo{filter:brightness(0)invert();width:auto;height:clamp(28px,3vw,46px)}.pv-name{font-family:var(--disp);letter-spacing:-.03em;text-shadow:0 2px 30px #0006;font-size:clamp(32px,3.6vw,60px);font-weight:700;line-height:1}.pv-desc{text-wrap:pretty;text-shadow:0 1px 6px #0009,0 2px 24px #0000008c;border-left:2px solid #ffffffbf;max-width:400px;padding-left:16px;font-size:15.5px;font-weight:500;line-height:1.5}.pv-tags{font-family:var(--mono);letter-spacing:.04em;text-shadow:0 1px 6px #0000008c;z-index:3;font-size:13.5px;position:absolute;bottom:46px;right:56px}.pv-open{opacity:.9;text-shadow:0 1px 18px #00000080;font-size:14.5px;font-weight:600;position:absolute;bottom:46px;left:56px}.pv-card{z-index:4;border-radius:16px;width:min(42vw,520px);position:absolute;top:68%;left:34%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 30px 80px #0009}.pv-card img{width:100%;display:block}.pstage-root.imm .pv-col>*,.pstage-root.imm .pv-card,.pstage-root.imm .pv-tags,.pstage-root.imm .pv-open{animation:pvRise .6s var(--ease) both}@keyframes pvRise{0%{opacity:0;translate:0 14px}to{opacity:1;translate:0}}.pstage-root.closing .pv-col,.pstage-root.closing .pv-card,.pstage-root.closing .pv-tags,.pstage-root.closing .pv-open,.pstage-root.closing .plist{opacity:0;transition:opacity .66s}.pcards{color:var(--graphite);flex-direction:column;gap:56px;padding:120px 22px 80px;display:none}.pcards-head .kicker{font-family:var(--mono);letter-spacing:.2em;color:var(--ink-30);font-size:12px}.pcards-head h1{font-family:var(--disp);letter-spacing:-.03em;margin-top:14px;font-size:38px;font-weight:700;line-height:1.05}.pcard .lmedia{aspect-ratio:16/10}.pcard h2{letter-spacing:-.02em;margin-top:22px;font-size:30px;font-weight:800}.pcard-desc{color:var(--ink-60);text-wrap:pretty;margin-top:12px;font-size:16px;line-height:1.55}.pcards-all{align-self:flex-start;margin-top:4px;font-weight:600}@media (max-width:900px){:is(html:has(.fullscreen-page),body:has(.fullscreen-page)){height:auto;overflow:auto}body:has(.fullscreen-page){background:var(--paper)}body:has(.fullscreen-page) footer.site{display:block}.pstage-root{color:var(--graphite);position:static}.bgs,.stage{display:none}.pcards{display:flex}}@media (min-width:640px) and (max-width:900px){.pcards{grid-template-columns:1fr 1fr;gap:56px 28px;padding-left:40px;padding-right:40px;display:grid}.pcards-head,.pcards-all{grid-column:1/-1}.pcard h2{font-size:26px}}
