.hero-atmosphere{--hero-intensity:1;--hero-blur:78px;--hero-brightness:1;--hero-center-x:50%;--hero-center-y:36%;--hero-halo-strength:.45;--hero-noise:.02;--hero-vignette:.35;--hero-key-w:78%;--hero-key-h:64%;--hero-halo-w:min(98vw, 980px);--hero-halo-h:min(84vw, 820px);--hero-base-0:#fff;--hero-base-1:#fff;--hero-base-2:#fff;--hero-glow-hi:#ffffffe6;--hero-glow-mid:#ffffff8c;--hero-glow-cool:#fff6;--hero-glow-shade:#f5f5f559;--hero-glow-deep:#f0f0f040;--hero-halo:#fff;--hero-halo-rim:#ffffff8c;--hero-vignette-color:#ffffffd9;pointer-events:none;z-index:0;isolation:isolate;position:absolute;inset:0;overflow:hidden}.dark .hero-atmosphere{--hero-intensity:1.35;--hero-blur:88px;--hero-brightness:1.05;--hero-center-x:50%;--hero-center-y:46%;--hero-halo-strength:1.15;--hero-noise:.04;--hero-vignette:.7;--hero-key-w:115%;--hero-key-h:98%;--hero-halo-w:min(125vw, 1320px);--hero-halo-h:min(105vw, 1080px);--hero-base-0:#0c0c0c;--hero-base-1:#050505;--hero-base-2:#121214;--hero-glow-hi:#ffffff6b;--hero-glow-mid:#f5f7fa47;--hero-glow-cool:#dce2eb33;--hero-glow-shade:#00000080;--hero-glow-deep:#000000ad;--hero-halo:#ffffff7a;--hero-halo-rim:#ebeef538;--hero-vignette-color:#000000c7}.hero-atmosphere__base{background:radial-gradient(140% 110% at var(--hero-center-x) calc(var(--hero-center-y) + 6%), var(--hero-base-0) 0%, transparent 62%), linear-gradient(168deg, var(--hero-base-0) 0%, var(--hero-base-1) 46%, var(--hero-base-2) 100%);filter:brightness(var(--hero-brightness));position:absolute;inset:0}.hero-atmosphere__glows{filter:blur(var(--hero-blur));opacity:calc(.92 * var(--hero-intensity));will-change:transform;animation:28s ease-in-out infinite alternate hero-atmosphere-drift;position:absolute;inset:-22%}.hero-atmosphere__spot{border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.hero-atmosphere__spot--key{left:var(--hero-center-x);top:var(--hero-center-y);width:var(--hero-key-w);height:var(--hero-key-h);background:radial-gradient(ellipse at center, var(--hero-glow-hi) 0%, var(--hero-glow-mid) 36%, transparent 72%)}.hero-atmosphere__spot--a{left:calc(var(--hero-center-x) - 28%);top:calc(var(--hero-center-y) - 8%);background:radial-gradient(ellipse at 40% 45%, var(--hero-glow-cool) 0%, transparent 68%);width:58%;height:48%}.hero-atmosphere__spot--b{left:calc(var(--hero-center-x) + 30%);top:calc(var(--hero-center-y) + 4%);background:radial-gradient(ellipse at 55% 40%, var(--hero-glow-mid) 0%, transparent 66%);width:54%;height:46%}.hero-atmosphere__spot--c{left:calc(var(--hero-center-x) + 18%);top:calc(var(--hero-center-y) + 36%);background:radial-gradient(ellipse at center, var(--hero-glow-shade) 0%, transparent 72%);width:62%;height:52%}.hero-atmosphere__spot--d{left:calc(var(--hero-center-x) - 22%);top:calc(var(--hero-center-y) + 42%);background:radial-gradient(ellipse at 45% 50%, var(--hero-glow-deep) 0%, transparent 70%);width:68%;height:56%}.hero-atmosphere__halo{left:var(--hero-center-x);top:var(--hero-center-y);width:var(--hero-halo-w);height:var(--hero-halo-h);opacity:calc(var(--hero-halo-strength) * var(--hero-intensity));background:radial-gradient(ellipse 52% 46% at 50% 46%, var(--hero-halo) 0%, transparent 64%), conic-gradient(from 210deg at 50% 48%, transparent 0deg, var(--hero-halo-rim) 55deg, transparent 120deg, var(--hero-halo-rim) 200deg, transparent 280deg, transparent 360deg);filter:blur(calc(var(--hero-blur) * .55));border-radius:50%;animation:36s ease-in-out infinite alternate hero-atmosphere-halo;position:absolute;transform:translate(-50%,-46%)}.dark .hero-atmosphere__halo{mix-blend-mode:screen;opacity:calc(var(--hero-halo-strength) * var(--hero-intensity))}.dark .hero-atmosphere__base{background:radial-gradient(170% 140% at var(--hero-center-x) calc(var(--hero-center-y) + 4%), #5c5c62 0%, #2a2a2e 28%, transparent 58%), linear-gradient(168deg, var(--hero-base-0) 0%, var(--hero-base-1) 46%, var(--hero-base-2) 100%);filter:brightness(var(--hero-brightness))}.hero-atmosphere__grain{opacity:var(--hero-noise);mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px;position:absolute;inset:0}.dark .hero-atmosphere__grain{mix-blend-mode:soft-light;opacity:calc(var(--hero-noise) * 1.15)}.hero-atmosphere__vignette{opacity:calc(var(--hero-vignette) * var(--hero-intensity));background:radial-gradient(ellipse 70% 62% at var(--hero-center-x) var(--hero-center-y), transparent 0%, transparent 42%, var(--hero-vignette-color) 100%), linear-gradient(to bottom, color-mix(in oklab, var(--hero-vignette-color) 35%, transparent) 0%, transparent 22%, transparent 72%, color-mix(in oklab, var(--hero-vignette-color) 55%, transparent) 100%);position:absolute;inset:0}@keyframes hero-atmosphere-drift{0%{transform:translate(-1.2%,-.8%)scale(1)}to{transform:translate(1.6%,1.1%)scale(1.03)}}@keyframes hero-atmosphere-halo{0%{opacity:calc(var(--hero-halo-strength) * var(--hero-intensity) * .92);transform:translate(-50%,-46%)scale(1)}to{opacity:calc(var(--hero-halo-strength) * var(--hero-intensity));transform:translate(-48.5%,-44.5%)scale(1.04)}}@media (prefers-reduced-motion:reduce){.hero-atmosphere__glows,.hero-atmosphere__halo{animation:none}}
.project-card{--card-radius:22px;--pc-back:#cfcfd4;--pc-back-shadow:0 0 0 1px #0000000f, 0 18px 30px -14px #0000004d, 0 44px 80px -34px #00000061;--pc-edge:linear-gradient(125deg, #fff 0%, #dcdce0 14%, #bdbdc4 32%, #a3a3ab 55%, #c8c8ce 78%, #8e8e96 100%);--pc-bevel:linear-gradient(125deg, #fff 0%, #ececef 18%, #cdcdd3 45%, #dedee2 75%, #a9a9b1 100%);--pc-face:radial-gradient(120% 70% at 50% -10%, #fff 0%, transparent 60%), linear-gradient(180deg, #fbfbfc 0%, #f3f3f5 55%, #ebebee 100%);--pc-face-shadow:inset 0 1px 0 #fff, inset 0 0 0 1px #00000012, inset 0 -1px 0 #00000014;--pc-noise-opacity:.06;--pc-media-bg:#e6e6e9;--pc-media-shadow:0 0 0 1px #00000012, 0 10px 22px -14px #0006;--pc-media-sheen:linear-gradient(160deg, #ffffff38 0%, #ffffff0a 32%, transparent 55%, #0000001f 100%);--pc-media-sheen-shadow:inset 0 1px 0 #ffffff59, inset 0 0 0 1px #0000000a;--pc-line:#00000014;--pc-sheen:linear-gradient(115deg, #ffffffb3 0%, #fff0 28%, #fff0 70%, #ffffff59 100%);--pc-glare-blend:normal;--pc-shade:#f7f7f8;width:100%;height:100%;transform-style:preserve-3d;position:relative}.dark .project-card{--pc-back:#070708;--pc-back-shadow:0 0 0 1px #ffffff0f, 0 22px 40px -16px #000000f2, 0 50px 90px -30px #000000e6;--pc-edge:linear-gradient(125deg, #8b8b92 0%, #4a4a51 14%, #2c2c31 32%, #1c1c20 55%, #414148 78%, #0c0c0e 100%);--pc-bevel:linear-gradient(125deg, #c9c9cf 0%, #6e6e76 18%, #3a3a40 45%, #55555c 75%, #202024 100%);--pc-face:radial-gradient(120% 70% at 50% -10%, #26262a 0%, transparent 60%), linear-gradient(180deg, #151517 0%, #0e0e10 55%, #0a0a0b 100%);--pc-face-shadow:inset 0 1px 0 #ffffff24, inset 0 -1px 0 #0009;--pc-noise-opacity:.09;--pc-media-bg:#1a1a1d;--pc-media-shadow:0 0 0 1px #ffffff12, 0 10px 24px -12px #000000e6;--pc-media-sheen:linear-gradient(160deg, #ffffff24 0%, #ffffff05 32%, transparent 55%, #00000047 100%);--pc-media-sheen-shadow:inset 0 1px 0 #ffffff2e, inset 0 0 0 1px #ffffff0a;--pc-line:#ffffff12;--pc-sheen:linear-gradient(115deg, #ffffff0e 0%, #fff0 28%, #fff0 70%, #ffffff06 100%);--pc-glare-blend:plus-lighter;--pc-shade:#000}.project-card__back,.project-card__edge,.project-card__face{border-radius:var(--card-radius);backface-visibility:visible;position:absolute;inset:0}.project-card__back{background:var(--pc-back);box-shadow:var(--pc-back-shadow)}.project-card__edge{background:var(--pc-edge)}.project-card__edge--bevel{background:var(--pc-bevel)}.project-card__face{isolation:isolate;background:var(--pc-face);box-shadow:var(--pc-face-shadow);overflow:hidden}.project-card__noise{pointer-events:none;opacity:var(--pc-noise-opacity);mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px;position:absolute;inset:0}.project-card__media{background:var(--pc-media-bg);min-height:140px;box-shadow:var(--pc-media-shadow);border-radius:14px;flex:auto;position:relative;overflow:hidden}.project-card__media-sheen{pointer-events:none;border-radius:inherit;background:var(--pc-media-sheen);box-shadow:var(--pc-media-sheen-shadow);position:absolute;inset:0}.project-card__metrics{border-top:1px solid var(--pc-line);border-bottom:1px solid var(--pc-line)}.project-card__metrics>div+div{border-left:1px solid var(--pc-line)}.project-card__sheen{pointer-events:none;background:var(--pc-sheen);position:absolute;inset:0}.project-card__glare{pointer-events:none;mix-blend-mode:var(--pc-glare-blend);position:absolute;inset:0}.project-card__rim{pointer-events:none;border-radius:inherit;-webkit-mask-composite:xor;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.project-card__shade{pointer-events:none;background:var(--pc-shade);position:absolute;inset:0}.deck-card__shadow{pointer-events:none;background:radial-gradient(closest-side,#00000042,#0000001a 55%,#0000 100%);border-radius:50%;height:46px;position:absolute;bottom:-34px;left:10%;right:10%}.dark .deck-card__shadow{background:radial-gradient(closest-side,#000000e6,#0006 55%,#0000 100%)}.deck-card__reflection{pointer-events:none;background:radial-gradient(60% 55% at 50% 0%, color-mix(in oklab, var(--success) 22%, transparent), transparent 70%), radial-gradient(closest-side, #ffffff0f, transparent 100%);border-radius:50%;height:64px;position:absolute;top:calc(100% + 10px);left:6%;right:6%}.dark .deck-card__reflection{background:radial-gradient(60% 55% at 50% 0%, color-mix(in oklab, var(--success) 18%, transparent), transparent 70%), radial-gradient(closest-side, #ffffff12, transparent 100%)}
