@font-face{font-family:Plex Sans;src:url(/fonts/plex-sans-latin-var.woff2)format("woff2");font-weight:100 700;font-stretch:75% 100%;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plex Arabic;src:url(/fonts/plex-arabic-400.woff2)format("woff2");font-weight:400;font-display:swap;unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}@font-face{font-family:Plex Arabic;src:url(/fonts/plex-arabic-500.woff2)format("woff2");font-weight:500;font-display:swap;unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}@font-face{font-family:Plex Arabic;src:url(/fonts/plex-arabic-600.woff2)format("woff2");font-weight:600 700;font-display:block;unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}@font-face{font-family:Plex Mono;src:url(/fonts/plex-mono-latin-500.woff2)format("woff2");font-weight:500;font-display:swap;unicode-range:U+??,U+2000-206F}:root{--ink:#0b1030;--ink-2:#141a45;--ink-3:#1d2560;--navy:#262f73;--steel:#4e8fcb;--signal:#6fb2ee;--paper:#f3f5f8;--paper-2:#e7ebf2;--white:#fff;--wa:#25d366;--text:#0e1330;--text-2:#4a5170;--rule:#0e133024;--surface:var(--paper);--sans:"Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--arabic:"Plex Arabic", "Plex Sans", Tahoma, "Segoe UI", Arial, sans-serif;--mono:"Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--body:var(--sans);--label-font:var(--mono);--gutter:clamp(1rem, 4vw, 3rem);--max:88rem;--radius:2px;--ease:cubic-bezier(.2, .7, .1, 1);--header-h:4.25rem;--bar-h:0rem;--ease-land:cubic-bezier(.17, .84, .44, 1);--ease-travel:cubic-bezier(.76, 0, .24, 1);--dur-reveal:1.1s;--dur-photo:1.3s;--dur-hover:.55s;--dur-leave:.35s;--travel:2rem;--dir:1;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[dir=rtl]{--dir:-1}@media (width<=40rem){:root{--dur-reveal:.9s;--dur-photo:1s;--travel:1.2rem}}:root:lang(ar){--body:var(--arabic);--label-font:var(--arabic)}:root:lang(en) :lang(ar){font-family:system-ui,Segoe UI,Tahoma,Noto Sans Arabic,sans-serif}.sheet-dark{--text:#f3f5fb;--text-2:#ecf0fab3;--rule:#ecf0fa29;--surface:var(--ink);background:var(--ink);color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.sheet-paper,.sheet-white{--text:#0e1330;--text-2:#4a5170;--rule:#0e133024;color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.sheet-paper{--surface:var(--paper);background:var(--paper)}.sheet-white{--surface:var(--white);background:var(--white)}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-block-start:calc(var(--header-h) + 1rem);scroll-padding-block-end:calc(var(--bar-h) + 1rem)}body{font-family:var(--body);color:var(--text);background:var(--ink);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;padding-block-end:var(--bar-h);font-size:1.0625rem;line-height:1.6}:lang(ar) body,body:lang(ar){font-size:1.125rem;line-height:1.85}img,svg,video,picture{max-inline-size:100%;display:block}img{block-size:auto}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--signal);outline-offset:3px}::selection{background:var(--steel);color:var(--white)}.skip{z-index:100;background:var(--white);color:var(--ink);padding:.6rem 1rem;position:absolute;inset-block-start:-4rem;inset-inline-start:1rem}.skip:focus{inset-block-start:1rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.display,.h1,.h2,.h3{font-family:var(--body);text-wrap:balance;font-weight:600}.display{letter-spacing:-.012em;font-size:clamp(2.7rem,1.4rem + 6vw,7rem);font-stretch:78%;line-height:.94}.h1{letter-spacing:-.01em;font-size:clamp(2.2rem,1.3rem + 3.8vw,4.6rem);font-stretch:80%;line-height:1}.h2{letter-spacing:-.005em;font-size:clamp(1.7rem,1.2rem + 2vw,2.9rem);font-stretch:88%;line-height:1.05}.h3{font-size:clamp(1.15rem,1rem + .5vw,1.4rem);line-height:1.25}:lang(ar) .display{letter-spacing:0;font-size:clamp(2.2rem,1.3rem + 4.4vw,5.2rem);font-stretch:100%;line-height:1.25}:lang(ar) .h1{letter-spacing:0;font-size:clamp(2rem,1.2rem + 3.2vw,3.9rem);font-stretch:100%;line-height:1.3}:lang(ar) .h2{letter-spacing:0;font-size:clamp(1.55rem,1.15rem + 1.7vw,2.5rem);font-stretch:100%;line-height:1.35}:lang(ar) .h3{line-height:1.5}.lede{color:var(--text-2);text-wrap:pretty;max-inline-size:38em;font-size:clamp(1.1rem,1rem + .5vw,1.35rem);line-height:1.5}:lang(ar) .lede{line-height:1.8}.prose{text-wrap:pretty;max-inline-size:38em}.prose p+p{margin-block-start:1em}.label{font-family:var(--label-font);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);font-size:.72rem;font-weight:500;line-height:1.4}:lang(ar) .label{letter-spacing:0;text-transform:none;font-size:.86rem}.label-strong{color:var(--text)}.wrap{inline-size:min(100% - 2 * var(--gutter), var(--max));margin-inline:auto}.section{padding-block:clamp(4rem,3rem + 5vw,8.5rem)}.section-tight{padding-block:clamp(2.5rem,2rem + 3vw,5rem)}.stack>*+*{margin-block-start:var(--stack,1.25rem)}.cluster{gap:var(--gap,.75rem);flex-wrap:wrap;align-items:center;display:flex}.section-head{gap:1.1rem;margin-block-end:clamp(2rem,1.5rem + 2vw,3.5rem);display:grid}.section-head .rule-line{inline-size:100%}.rule-line{background:var(--rule);transform-origin:0;block-size:1px;position:relative}[dir=rtl] .rule-line{transform-origin:100%}.rule-line:after{content:"";block-size:13px;inline-size:13px;color:var(--steel);background:linear-gradient(currentColor,currentColor) 50%/1px 100% no-repeat,linear-gradient(currentColor,currentColor) 50%/100% 1px no-repeat;position:absolute;inset-block-start:-6px;inset-inline-end:-6px}.reg{position:relative}.reg-mark{pointer-events:none;block-size:15px;inline-size:15px;color:var(--steel);z-index:2;background:linear-gradient(currentColor,currentColor) 50%/1px 100% no-repeat,linear-gradient(currentColor,currentColor) 50%/100% 1px no-repeat;position:absolute}.reg-mark.tl{inset-block-start:-11px;inset-inline-start:-11px}.reg-mark.tr{inset-block-start:-11px;inset-inline-end:-11px}.reg-mark.bl{inset-block-end:-11px;inset-inline-start:-11px}.reg-mark.br{inset-block-end:-11px;inset-inline-end:-11px}@media (width<=40rem){.reg-mark{display:none}}.btn{--btn-bg:var(--signal);--btn-fg:var(--ink);border:1px solid var(--btn-bg);border-radius:var(--radius);background:var(--btn-bg);min-block-size:3rem;color:var(--btn-fg);cursor:pointer;transition:background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);justify-content:center;align-items:center;gap:.6rem;padding:.7rem 1.35rem;font-size:1rem;font-weight:600;line-height:1.1;text-decoration:none;display:inline-flex}.btn:hover{--btn-bg:#9bcaf5}.btn:active{transform:translateY(1px)}.sheet-paper .btn,.sheet-white .btn{--btn-bg:var(--navy);--btn-fg:var(--white)}.sheet-paper .btn:hover,.sheet-white .btn:hover{--btn-bg:var(--ink)}.btn-ghost{--btn-bg:transparent;--btn-fg:var(--text);border-color:var(--rule)}.btn-ghost:hover,.sheet-paper .btn-ghost:hover,.sheet-white .btn-ghost:hover{--btn-bg:transparent;--btn-fg:var(--text);border-color:currentColor}.sheet-paper .btn-ghost,.sheet-white .btn-ghost{--btn-bg:transparent;--btn-fg:var(--text)}.btn .icon{flex:none;block-size:1.15em;inline-size:1.15em}.btn .wa-icon{color:var(--wa)}.arrow{transition:transform .25s var(--ease);display:inline-block}[dir=rtl] .arrow{transform:scaleX(-1)}a:hover .arrow{transform:translate(4px)}[dir=rtl] a:hover .arrow{transform:scaleX(-1)translate(4px)}.link{border-block-end:1px solid var(--rule);align-items:center;gap:.5rem;padding-block-end:.2rem;font-weight:600;text-decoration:none;display:inline-flex}.link:hover{border-color:currentColor}.photo{background-color:var(--ph,var(--ink-2));position:relative;overflow:hidden}.photo picture{block-size:100%}.photo img{object-fit:cover;block-size:100%;inline-size:100%}@media (prefers-reduced-motion:no-preference){.enter{animation:enter var(--dur-reveal) var(--ease-land) both;animation-delay:var(--ed,0s)}html.vt-card .enter[data-vt-fixed]{animation-name:none}}@keyframes enter{0%{opacity:.001;translate:0 var(--travel)}}html.motion .rise{transition:opacity .8s var(--ease-land) var(--d,0s), translate var(--dur-reveal) var(--ease-land) var(--d,0s)}html.motion .rise:not(.is-in){opacity:0;translate:0 var(--travel)}.photo picture{position:relative}html.motion .unveil{--wire:#6fb2ee6b;background-color:color-mix(in oklab, var(--ph,var(--ink-2)) 28%, var(--surface))}.sheet-paper .unveil,.sheet-white .unveil{--wire:#262f734d}html.motion .unveil:before{content:"";border:1px solid var(--wire);border-radius:inherit;background:linear-gradient(to top right, transparent calc(50% - .6px), var(--wire) 50%, transparent calc(50% + .6px));pointer-events:none;position:absolute;inset:0}[dir=rtl] .unveil:before{background:linear-gradient(to top left, transparent calc(50% - .6px), var(--wire) 50%, transparent calc(50% + .6px))}html.motion .unveil picture{transition:translate var(--dur-photo) var(--ease-land) calc(var(--d,0s) + .12s)}html.motion .unveil img{transition:translate var(--dur-photo) var(--ease-land) calc(var(--d,0s) + .12s), scale calc(var(--dur-photo) + .4s) var(--ease-land) calc(var(--d,0s) + .12s), transform var(--dur-hover) var(--ease-land)}html.motion .unveil:not(.is-in) picture{translate:calc(-101% * var(--dir)) -101%}html.motion .unveil:not(.is-in) img{translate:calc(101% * var(--dir)) 101%;scale:1.12}@media (width<=40rem){html.motion .unveil:not(.is-in) img{scale:1.06}}@media (prefers-reduced-motion:no-preference){.settle img{animation:settle calc(var(--dur-photo) + .4s) var(--ease-land) both}}@keyframes settle{0%{scale:1.08}}html.motion .reg>.reg-mark{transition:opacity .5s var(--ease-land) calc(var(--d,0s) + .35s), translate .5s var(--ease-land) calc(var(--d,0s) + .35s)}html.motion .reg:not(.is-in)>.reg-mark{opacity:0}html.motion .reg:not(.is-in)>.reg-mark.tl{translate:calc(-10px * var(--dir)) -10px}html.motion .reg:not(.is-in)>.reg-mark.tr{translate:calc(10px * var(--dir)) -10px}html.motion .reg:not(.is-in)>.reg-mark.bl{translate:calc(-10px * var(--dir)) 10px}html.motion .reg:not(.is-in)>.reg-mark.br{translate:calc(10px * var(--dir)) 10px}.is-split{flex-direction:column;display:flex}.is-split .line-mask{margin-block:-.15em -.25em;padding-block:.15em .25em;display:block;overflow:clip}:lang(ar) .is-split .line-mask{margin-block:-.3em;padding-block:.3em}.is-split .line{display:block;translate:0 calc(100% + .5em)}.is-split.is-in .line{transition:translate var(--dur-reveal) var(--ease-land) calc(var(--li) * 80ms);translate:none}[data-odo]{font-variant-numeric:tabular-nums}.odo{vertical-align:top;block-size:1lh;display:inline-block;overflow:hidden}.odo-reel{translate:0 calc(var(--n) * -5%);transition:translate 1.6s var(--ease-land) calc(var(--d,0s) + var(--r,0) * 60ms + var(--c) * 50ms + .25s);flex-direction:column;display:flex}.odo-reel>span{block-size:1lh}.odo-ready.is-in .odo-reel{translate:0 calc((10 + var(--n)) * -5%)}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.draw{animation-name:draw;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry 10% cover 30%}}}@keyframes draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}::view-transition-old(root){animation:vt-back .6s var(--ease-travel) both}::view-transition-new(root){animation:vt-iris .6s var(--ease-travel) both}::view-transition-group(project-photo){animation-duration:.6s;animation-timing-function:var(--ease-land)}::view-transition-group(project-title){animation-duration:.6s;animation-timing-function:var(--ease-land)}::view-transition-old(project-photo){object-fit:cover;block-size:100%;overflow:clip}::view-transition-new(project-photo){object-fit:cover;block-size:100%;overflow:clip}@keyframes vt-iris{0%{clip-path:circle(0 at var(--vt-x,50%) var(--vt-y,50%))}to{clip-path:circle(150vmax at var(--vt-x,50%) var(--vt-y,50%))}}@keyframes vt-back{to{opacity:.35;scale:.97}}.progress{display:none}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){.progress{z-index:60;background:var(--signal);transform-origin:0;pointer-events:none;block-size:2px;animation-name:progress;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root);display:block;position:fixed;inset-block-start:0;inset-inline:0}[dir=rtl] .progress{transform-origin:100%}}}@keyframes progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.nt-mark[data-astro-cid-f7espo7c]{flex:none;overflow:visible}@media (prefers-reduced-motion:no-preference){html:not(.nt-seen) .nt-animate[data-astro-cid-f7espo7c] .nt-ring[data-astro-cid-f7espo7c]{stroke-dasharray:1;animation:.7s cubic-bezier(.6,0,.2,1) both nt-ring}html:not(.nt-seen) .nt-animate[data-astro-cid-f7espo7c] .nt-inner[data-astro-cid-f7espo7c]{animation-delay:80ms}html:not(.nt-seen) .nt-animate[data-astro-cid-f7espo7c] .nt-h[data-astro-cid-f7espo7c]{transform-box:fill-box;transform-origin:50%;animation:.55s cubic-bezier(.6,0,.2,1) .15s both nt-line-h}html:not(.nt-seen) .nt-animate[data-astro-cid-f7espo7c] .nt-v[data-astro-cid-f7espo7c]{transform-box:fill-box;transform-origin:50%;animation:.55s cubic-bezier(.6,0,.2,1) .15s both nt-line-v}html:not(.nt-seen) .nt-animate[data-astro-cid-f7espo7c] .nt-dot[data-astro-cid-f7espo7c]{transform-box:fill-box;transform-origin:50%;animation:.35s cubic-bezier(.3,1.6,.5,1) .55s both nt-dot}html:not(.nt-seen) .nt-animate[data-astro-cid-f7espo7c] .nt-letter[data-astro-cid-f7espo7c]{animation:.4s ease-out .6s both nt-fade}}@keyframes nt-ring{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes nt-line-h{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes nt-line-v{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes nt-dot{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes nt-fade{0%{opacity:0}to{opacity:1}}
