.sw{padding:clamp(28px, 5vw, 72px) var(--gutter) clamp(36px, 6vw, 88px);position:relative;overflow:hidden}.sw__grid{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.sw__grid line,.sw__grid circle{fill:none;stroke:#3aa0ff3d;stroke-width:1px;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0;animation:sw-draw 1.1s var(--ease-out) both;animation-delay:calc(var(--d,0) * 90ms)}.sw__grid .sw__con{stroke:#9ca3af4d;stroke-dasharray:1}@keyframes sw-draw{0%{stroke-dashoffset:1px}}.sw__title{max-width:var(--max);font-family:var(--font-word-projects), Impact, sans-serif;font-weight:900;font-size:var(--fs-stagger);letter-spacing:.01em;text-transform:uppercase;color:var(--ice);margin:0 auto;line-height:.86;position:relative}.sw__word{white-space:nowrap;display:block}.sw__word--1{color:var(--azure);padding-left:28%}.sw__ch{animation:sw-ch .8s var(--ease-out) both;animation-delay:calc(var(--i,0) * 55ms + .2s);display:inline-block}@keyframes sw-ch{0%{opacity:0;transform:translateY(.32em)}}@supports (animation-timeline:view()){.sw__grid line,.sw__grid circle{animation-timeline:view();animation-range:entry 0% entry calc(55% + var(--d,0) * 5%);animation-delay:0s}.sw__ch{animation-timeline:view();animation-range:entry calc(var(--i,0) * 3%) entry calc(58% + var(--i,0) * 3%);animation-delay:0s}}.projects .page__eyebrow,.projects__order{margin-bottom:14px}.projects__gallery{position:relative}.gallery{--card-w:clamp(220px, 24vw, 330px);min-height:calc(var(--card-w) * 1.25 + 210px);position:relative}.gallery__row{justify-content:center;gap:clamp(16px,3vw,44px);margin:0;padding:24px 0 0;list-style:none;display:flex}.gallery__item{width:var(--card-w);flex:none}@media (max-width:767px){.gallery__row{scroll-snap-type:x mandatory;padding-inline:calc((100% - var(--card-w)) / 2);margin-inline:calc(-1 * var(--gutter));scrollbar-width:none;justify-content:flex-start;overflow-x:auto}.gallery__item{scroll-snap-align:center}}.gcard{color:var(--ice);-webkit-user-drag:none;-webkit-user-select:none;user-select:none;outline-offset:6px;gap:12px;text-decoration:none;display:grid;position:relative}.gcard__media{aspect-ratio:4/5;border-radius:var(--r-photo);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line), 0 30px 60px -30px #000000e6;display:block;position:relative;overflow:hidden}.gcard__media .pcover,.gcard__media .pcover img{object-fit:cover;object-position:50% 0;width:100%;height:100%;display:block}.gcard__body{gap:4px;padding-right:28px;display:grid;position:relative}.gcard__kicker{font:600 .6875rem / 1.2 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--red)}.gcard__title{font:600 clamp(1.125rem, 1rem + .5vw, 1.375rem) / 1.2 var(--sans);color:var(--white)}.gcard__label{font:500 .75rem / 1.35 var(--mono);color:var(--gray)}.gcard__arrow{fill:none;width:20px;height:20px;stroke:var(--azure);stroke-width:1.5px;transition:transform .3s var(--ease-out);position:absolute;top:2px;right:0}.gcard:hover .gcard__arrow,.gcard:focus-visible .gcard__arrow{transform:translate(3px)}.gcard:hover .gcard__media{box-shadow:inset 0 0 0 1px #3aa0ff99,0 30px 60px -30px #000000e6,0 0 40px #3aa0ff2e}.gcard__gold{background:var(--gold);width:12px;height:12px;position:absolute;top:12px;right:12px;box-shadow:0 0 14px #e8b84a80}.c3d{height:calc(var(--card-w) * 1.25 + 210px);perspective:1500px;perspective-origin:50% 40%;margin-inline:calc(-1 * var(--gutter));position:relative;overflow:hidden}.c3d__ring{width:0;height:0;transform-style:preserve-3d;cursor:grab;touch-action:pan-y;margin:0;padding:0;list-style:none;position:absolute;top:24px;left:50%}.c3d__ring:active{cursor:grabbing}.c3d__face{left:calc(var(--card-w) / -2);width:var(--card-w);backface-visibility:hidden;position:absolute;top:0}.c3d__face .gcard__media{filter:var(--dof,none);opacity:var(--fade,1);transition:box-shadow .3s}.c3d__controls{padding-inline:var(--gutter);justify-content:center;align-items:center;gap:18px;display:flex;position:absolute;bottom:18px;left:0;right:0}.c3d__btn{justify-content:center;min-width:44px;min-height:44px;font-size:1rem}.c3d__btn:disabled{opacity:.35;cursor:default}.c3d__hint{text-align:center;margin:0}@media (max-width:640px){.c3d__hint{display:none}}.project__head{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:center;gap:clamp(28px,5vw,80px);display:grid}.project__kicker{font:600 .75rem / 1.2 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin:0 0 14px}.project__title{font:700 var(--fs-hero) / .95 var(--sans);letter-spacing:-.03em;color:var(--white);outline:none;margin:0}.project__ar{letter-spacing:0;color:var(--azure);font:700 .62em/1 Segoe UI,Tahoma,Noto Sans Arabic,sans-serif}.project__label{margin:16px 0 0}.project__summary{max-width:60ch;margin:22px 0 0}.project__cover{aspect-ratio:4/5;border-radius:var(--r-photo);width:100%;max-width:420px;box-shadow:inset 0 0 0 1px var(--line), 0 40px 80px -40px #000000e6;justify-self:end;position:relative;overflow:hidden}.project__cover .pcover,.project__cover .pcover img{object-fit:cover;object-position:50% 0;width:100%;height:100%;display:block}.project__cover[data-featured]:after{content:"";background:var(--gold);width:14px;height:14px;position:absolute;top:14px;right:14px}.project__statement-wrap{margin-top:clamp(48px,7vw,112px)}.project__statement{max-width:22ch;font:400 var(--fs-statement) / 1.04 var(--serif);letter-spacing:-.01em;color:var(--white);margin:0}.plus{pointer-events:none;width:11px;height:11px;position:absolute}.plus:before,.plus:after{content:"";background:var(--azure);position:absolute}.plus:before{width:1px;height:11px;top:0;left:5px}.plus:after{width:11px;height:1px;top:5px;left:0}.plus--tl{top:-6px;left:-6px}.plus--br{bottom:-6px;right:-6px}.pstats{grid-template-columns:repeat(var(--cols,3), minmax(0, 1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);margin:clamp(40px,6vw,88px) 0 0;display:grid}.pstat{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column-reverse;justify-content:flex-end;gap:10px;padding:24px 22px 26px;display:flex;position:relative}.pstat__value{font:600 var(--fs-stat) / 1 var(--sans);letter-spacing:-.03em;color:var(--white);font-variant-numeric:tabular-nums;margin:0}.pstat__value[data-long]{font-size:calc(var(--fs-stat) * .5);padding-top:.4em;line-height:1.15}.pstat__label{font:500 .75rem / 1.4 var(--mono);color:var(--gray)}.pproof{margin-top:clamp(56px,8vw,120px)}.pproof__title{font:600 var(--fs-h2) / 1.05 var(--sans);letter-spacing:-.02em;color:var(--white);margin:0 0 22px}.pproof__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2.5vw,32px);display:grid}.pproof__item{align-content:start;gap:10px;margin:0;display:grid}.pproof__item[data-shape=strip]{grid-column:1/-1}.pproof__item[data-shape=tall] img{max-width:340px}.console__closing{border-top:1px solid var(--line);color:var(--white);margin-top:14px;padding-top:12px}.pproof__video{background:var(--surface);width:100%;height:auto;box-shadow:inset 0 0 0 1px var(--line), 0 24px 50px -30px #000000e6;display:block}.pproof__item img{border-radius:var(--r-photo);width:100%;height:auto;box-shadow:inset 0 0 0 1px var(--line), 0 24px 50px -30px #000000e6;display:block}.pnav{border-top:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:end;gap:18px;margin-top:clamp(64px,9vw,128px);padding-top:24px;display:grid}.pnav__link{color:var(--ice);gap:6px;text-decoration:none;display:grid}.pnav__link--next{text-align:right}.pnav__title{font:600 var(--fs-h3) / 1.2 var(--sans);color:var(--white);transition:color .2s}.pnav__link:hover .pnav__title{color:var(--azure)}.pnav__all{color:var(--azure);text-decoration:none}@media (max-width:900px){.pstats{grid-template-columns:repeat(auto-fill,minmax(min(100%,160px),1fr))}.project__head{grid-template-columns:1fr}.project__cover{justify-self:start;max-width:320px}.consoles,.pproof__grid,.problems{grid-template-columns:1fr}}@media (max-width:560px){.pnav{grid-template-columns:1fr 1fr}.pnav__all{grid-area:2/1/auto/-1;justify-self:center}}@media (prefers-reduced-motion:reduce){.sw__grid line,.sw__grid circle,.sw__ch{animation:none}.gcard__arrow{transition:none}}
