@import "https://fonts.googleapis.com/css2?family=Alexandria:wght@300;400;500;600;700&family=IBM+Plex+Sans+Arabic:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--background:oklch(13% .018 300);--surface:oklch(17% .025 300);--surface-2:oklch(21% .035 300);--foreground:oklch(96% .008 300);--muted:oklch(70% .025 300);--faint:oklch(50% .03 300);--border:oklch(100% 0 0/.09);--border-strong:oklch(100% 0 0/.16);--brand:#4b0095;--primary:#4b0095;--ring:#4b0095;--hero-motion-light:#fff;--shell:1200px;--gutter:clamp(1.25rem, 4vw, 2.5rem);--section:clamp(6rem, 12vw, 10rem);--ease-out:cubic-bezier(.22,1,.36,1);--ease-inout:cubic-bezier(.65,0,.35,1);--fast:.18s;--base:.32s;--slow:.9s;--radius-frame:22px;--radius-card:26px;--radius-action:18px;--radius-hero-cta:22px;color:var(--foreground);background:var(--background);font-synthesis:none;text-rendering:optimizelegibility;font-family:IBM Plex Sans Arabic,Alexandria,system-ui,sans-serif}:root[data-theme=light]{--background:#f7f5fb;--surface:#fff;--surface-2:#efeaf7;--foreground:#17111f;--muted:#4f4560;--faint:#7a7088;--border:#e2dbec;--border-strong:#cfc4e0}*{box-sizing:border-box}html{background:var(--background);scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--background);min-width:320px;color:var(--foreground);margin:0;overflow-x:hidden}body,button{font-family:IBM Plex Sans Arabic,Alexandria,system-ui,sans-serif}button,a{color:inherit}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:6px}.shell{width:min(calc(100% - 2 * var(--gutter)), var(--shell));margin-inline:auto}.site-content{isolation:isolate;position:relative;overflow-x:clip}.site-content:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(60rem 40rem at 50% -10%, color-mix(in srgb,var(--brand) 13%,transparent), transparent 70%);position:fixed;inset:0}.section{padding-block:calc(var(--section) / 2)}.section-heading{border:1.5px solid var(--brand);border-radius:var(--radius-frame);width:fit-content;max-width:100%;color:var(--foreground);letter-spacing:.02em;background:0 0;margin:0 auto clamp(2.25rem,4.5vw,3.25rem);padding:.6rem 1.6rem;font:600 clamp(1rem,1.6vw,1.2rem) Alexandria,sans-serif;display:flex}[lang=ar] .section-heading{letter-spacing:0;font-size:clamp(1.05rem,1.7vw,1.25rem)}.brand-link{color:inherit;text-decoration:none;display:inline-flex}.brand-lockup{--brand-scale:1;direction:ltr;unicode-bidi:isolate;align-items:baseline;gap:.6rem;line-height:1;display:inline-flex}.wordmark{font:700 calc(1.35rem * var(--brand-scale))/1 Alexandria,sans-serif;letter-spacing:-.02em;direction:ltr;unicode-bidi:isolate;display:inline-flex}.wordmark>span{color:var(--brand)}.brand-lockup-name{color:var(--muted);font:400 calc(.82rem * var(--brand-scale))/1.2 Alexandria,sans-serif;letter-spacing:.02em;text-align:center;white-space:nowrap}.brand-lockup-lg{--brand-scale:1;flex-direction:column;align-items:center;gap:.25rem}.brand-lockup-lg .wordmark{letter-spacing:-.05em;font-size:clamp(3rem,6vw,4.25rem)}.brand-lockup-lg .brand-lockup-name{letter-spacing:.3em;text-transform:uppercase;font-size:.9rem}.site-header{z-index:50;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--background) 72%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:1.5rem;height:72px;display:flex}.site-nav{top:72px;padding:1rem var(--gutter) 1.5rem;border-bottom:1px solid var(--border);background:var(--background);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--base),transform var(--base) var(--ease-out),visibility var(--base);flex-direction:column;display:flex;position:absolute;inset-inline:0;transform:translateY(-8px)}.site-nav.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none}.site-nav a{border-bottom:1px solid var(--border);color:var(--muted);transition:color var(--fast),background var(--fast);border-radius:0;padding:.85rem .5rem;font-size:1.05rem;text-decoration:none}.site-nav a:hover{color:var(--foreground);background:var(--surface)}.header-tools{align-items:center;gap:.5rem;display:flex}.theme-btn,.lang-btn,.menu-btn{border:1px solid var(--border-strong);color:var(--foreground);cursor:pointer;transition:border-color var(--fast),background var(--fast);background:0 0}.theme-btn{border-radius:999px;place-items:center;width:38px;height:38px;display:grid}.theme-btn svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;width:16px;height:16px}.lang-btn{border-radius:999px;padding:.45rem .95rem;font:500 .82rem Alexandria,sans-serif}.theme-btn:hover,.lang-btn:hover{border-color:var(--brand);background:var(--surface)}.menu-btn{border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:42px;height:42px;display:inline-flex}.menu-btn span{width:16px;height:1.5px;transition:transform var(--base) var(--ease-out);background:currentColor}.menu-btn[aria-expanded=true] span:first-child{transform:translateY(3.25px)rotate(45deg)}.menu-btn[aria-expanded=true] span:last-child{transform:translateY(-3.25px)rotate(-45deg)}.hero{--hero-size:min(1000px, calc(100vw - 2 * var(--gutter) - 16px), calc(100svh - 144px));min-height:max(calc(100svh - 72px), calc(var(--hero-size) + 48px));text-align:center;grid-template-columns:minmax(0,1fr);place-items:center;padding-block:clamp(2rem,5vw,4rem);display:grid;position:relative;overflow:visible}.hero-copy{z-index:1;width:100%;min-height:var(--hero-size);animation:rise var(--slow) var(--ease-out) both;grid-area:1/1;grid-template-rows:1fr auto 1fr;place-items:start center;display:grid;position:relative}.hero-greeting{color:var(--foreground);align-self:end;margin:0 0 28px;font:500 clamp(1.3rem,2.4vw,1.85rem)/1.5 Alexandria,sans-serif}.hero h1{width:100%;max-width:1120px;color:var(--foreground);letter-spacing:-.02em;text-wrap:balance;margin:0;font:600 clamp(2rem,4.4vw,3.6rem)/1.35 Alexandria,sans-serif}[lang=en] .hero h1{letter-spacing:-.035em;line-height:1.12}.hero h1 strong{width:fit-content;max-width:100%;color:var(--brand);font:inherit;margin:.15em auto 0;display:block}@supports ((-webkit-background-clip:text) or (background-clip:text)){.hero h1 strong{background:repeating-linear-gradient(90deg,var(--brand) 0 22%,color-mix(in srgb,#fff 72%,var(--brand)) 25%,var(--brand) 28% 50%);-webkit-text-fill-color:transparent;background-repeat:repeat-x;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:1.9s linear infinite hero-text-light}[dir=rtl] .hero h1 strong{animation-direction:reverse}}.hero-actions{flex-direction:column;align-items:center;padding-top:2.25rem;display:flex}.hero-primary{border-radius:var(--radius-hero-cta);background:var(--brand);color:#f8f8f8;min-height:44px;transition:transform var(--base) var(--ease-out);border:1px solid #ffffff24;align-items:center;gap:.54rem;padding:.675rem 1.125rem .675rem 1.215rem;font:500 .8rem Alexandria,sans-serif;text-decoration:none;display:inline-flex;position:relative;overflow:visible}.hero-primary:hover{transform:translateY(-2px)}.icon-arrow{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:1.44rem;height:1.44rem;transition:transform var(--base) var(--ease-out);padding:.342rem}.hero-primary .icon-arrow{background:#ffffff24;border-radius:50%}[dir=rtl] .icon-arrow{transform:scaleX(-1)}.hero-primary:hover .icon-arrow,.project-link:hover .icon-arrow{transform:translate(2px,-2px)}[dir=rtl] .hero-primary:hover .icon-arrow,[dir=rtl] .project-link:hover .icon-arrow{transform:scaleX(-1)translate(2px,-2px)}.hero-contacts{gap:.75rem;margin:1.75rem 0 0;padding:0;list-style:none;display:flex}.hero-contacts a{border:1px solid var(--border-strong);background:var(--background);width:42px;height:42px;color:var(--foreground);transition:border-color var(--base),background var(--base);border-radius:50%;place-items:center;display:grid}.hero-contacts a:hover,.hero-contacts a:focus-visible{border-color:var(--brand);background:var(--brand)}.hero-contacts .icon{width:18px;height:18px}.icon{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.icon-linkedin rect{fill:currentColor;stroke:none}.icon-linkedin circle,.icon-linkedin path{fill:var(--background);stroke:var(--background)}.hero-orbit{z-index:0;width:var(--hero-size);aspect-ratio:1;pointer-events:none;animation:fade 1.6s var(--ease-out) both .2s;grid-area:1/1;place-self:center;display:grid;position:relative}.hero-ring{inset:var(--ring-inset);border:.6px solid var(--brand);animation:spin var(--ring-duration) linear infinite var(--ring-direction,normal);opacity:.65;border-radius:50%;position:absolute}.hero-ring b{top:50%;background:var(--brand);border-radius:50%;width:5px;height:5px;margin-top:-2.5px;position:absolute;inset-inline-start:-2.5px}.hero-ring-1{--ring-inset:0%;--ring-duration:60s}.hero-ring-2{--ring-inset:12%;--ring-duration:38s;--ring-direction:reverse}.hero-ring-3{--ring-inset:24%;--ring-duration:26s}.hero-ring-4{--ring-inset:4%;background:0 0;border-color:#0000}.hero-ring-5{--ring-inset:34%;display:none}[data-reveal]{opacity:0;transition:opacity var(--slow) var(--ease-out),transform var(--slow) var(--ease-out);transform:translateY(24px)}[data-reveal].is-in{opacity:1;transform:none}.about-section{background:var(--background)}.about-inner{text-align:center;flex-direction:column;align-items:center;max-width:820px;display:flex}.about-mark{place-items:center;width:340px;max-width:100%;height:340px;margin:.5rem auto 3.5rem;display:grid;position:relative}.about-ring{border:.6px solid var(--brand);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.about-ring-1{border-style:dashed;width:300px;height:300px;animation:8s linear infinite about-spin}.about-ring-2{width:240px;height:240px;animation:6s linear infinite reverse about-spin}.about-ring-3{display:none}.about-ring-4{border:0;width:120px;height:120px}.about-ring b{background:var(--brand);border-radius:50%;width:5px;height:5px;margin-top:-2.5px;position:absolute;top:50%;left:-2.5px}.about-inner h3{text-wrap:balance;max-width:620px;margin:0 0 1.75rem;font:500 clamp(1.3rem,2.4vw,1.8rem)/1.5 Alexandria,sans-serif}.about-inner>p{max-width:600px;color:var(--muted);text-wrap:pretty;margin:0;font-size:clamp(1rem,1.2vw,1.08rem);line-height:2}[lang=en] .about-inner>p{line-height:1.75}.services{grid-template-columns:repeat(2,1fr);gap:1.25rem;max-width:900px;margin:0 auto;padding:0;list-style:none;display:grid}.service{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);text-align:center;min-height:0;transition:border-color var(--base),transform var(--base),background var(--base);flex-direction:column;justify-content:center;align-items:center;gap:.85rem;padding:1.75rem 1.25rem;display:flex}.service:hover{border-color:var(--brand);background:var(--surface-2);transform:translateY(-3px)}.service h3{text-wrap:balance;max-width:none;margin:.3rem 0 0;font:500 1.08rem/1.55 Alexandria,sans-serif}.service-icon{border:.6px solid var(--brand);width:64px;height:64px;color:var(--brand);background:0 0;border-radius:50%;place-items:center;display:grid;position:relative}.service-icon:after{content:"";border:.6px dashed var(--border);border-radius:50%;animation:14s linear infinite spin;position:absolute;inset:-7px}.service:nth-child(2n) .service-icon:after{animation-duration:17s;animation-direction:reverse}.service-icon:before{content:"";background:var(--brand);transform-origin:2.5px 41.5px;border-radius:50%;width:5px;height:5px;margin-left:-2.5px;animation:7s linear infinite spin;position:absolute;top:-9.5px;left:50%}.service:nth-child(2n) .service-icon:before{animation-duration:9s;animation-direction:reverse}.service-icon .icon{width:24px;height:24px;animation:3.6s ease-in-out infinite service-float}.service:nth-child(2) .service-icon .icon{animation-duration:4.1s;animation-delay:-1s}.service:nth-child(3) .service-icon .icon{animation-duration:3.8s;animation-delay:-2s}.service:nth-child(4) .service-icon .icon{animation-duration:4.4s;animation-delay:-.5s}.projects-section{background:var(--background)}.projects{grid-template-columns:repeat(3,minmax(0,325px));justify-content:center;gap:1.25rem;max-width:none;display:grid}.project-card{border:1px solid color-mix(in srgb,var(--brand) 38%,transparent);border-radius:var(--radius-card);background:var(--surface);min-width:0;transition:border-color var(--base),transform var(--base);flex-direction:column;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:var(--brand);transform:translateY(-3px)}.project-card>.action-border{z-index:3;width:calc(100% + 2px);height:calc(100% + 2px);inset:-1px}.project-card>.action-border rect{rx:calc(var(--radius-card) - .5px)}.project-card>.action-border .action-border-track{stroke:color-mix(in srgb,var(--brand) 45%,transparent)}.project-card>.action-border .action-border-highlight{stroke:#fff;stroke-dasharray:12 88;animation-duration:6s}.project-media{aspect-ratio:1;border-radius:calc(var(--radius-card) - 1px) calc(var(--radius-card) - 1px) 0 0;background:0 0;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0f,0 40px 80px -40px #000000b3}.project-media img{object-fit:contain;width:100%;height:100%}.project-copy{flex-direction:column;flex:1;padding:1.1rem 1.2rem 1.2rem;display:flex}.project-copy h3{letter-spacing:-.01em;text-wrap:balance;margin:0 0 .5rem;font:600 clamp(1.1rem,1.6vw,1.25rem)/1.35 Alexandria,sans-serif}.project-copy>p{color:var(--muted);margin:0 0 .9rem;font-size:.9rem;line-height:1.75}[lang=en] .project-copy>p{line-height:1.7}.project-tools{flex-wrap:wrap;gap:.35rem;margin:0 0 .9rem;padding:0;list-style:none;display:flex}.project-tools li{border:1px solid var(--border-strong);color:var(--muted);border-radius:7px;align-items:center;gap:.45rem;padding:.22rem .5rem;font:400 .68rem/1 JetBrains Mono,monospace;display:inline-flex}.project-tools .tool-icon{width:14px;height:14px}.project-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:.7rem;margin-top:auto;padding-top:.85rem;display:flex}.project-link{border:1px solid var(--border-strong);border-radius:var(--radius-action);min-width:0;min-height:36px;color:var(--foreground);align-items:center;gap:.35rem;padding:.45rem .65rem;font:500 .75rem/1 Alexandria,sans-serif;text-decoration:none;display:inline-flex;position:relative;overflow:visible}.project-link-primary{border-color:var(--brand);background:var(--brand);color:#f8f8f8}.project-link:hover{border-color:var(--brand);background:var(--surface-2)}.project-link-primary:hover{background:var(--brand)}.action-border{pointer-events:none;fill:none;width:calc(100% + 6px);height:calc(100% + 6px);position:absolute;inset:-3px;overflow:visible}.action-border rect{rx:calc(var(--radius-action) + 2px);stroke-width:1px;width:calc(100% - 2px);height:calc(100% - 2px)}.action-border-track{stroke:var(--border-strong)}.action-border-highlight{stroke:var(--brand);stroke-width:1.5px;stroke-linecap:round;stroke-dasharray:18 82;animation:5s linear infinite project-border-travel}.project-link:nth-child(2) .action-border-highlight{animation-duration:5.5s;animation-delay:-2s}.hero-primary .action-border{width:calc(100% + 3px);height:calc(100% + 3px);inset:-1.5px}.hero-primary .action-border rect{rx:calc(var(--radius-hero-cta) - .5px)}.hero-primary .action-border-highlight{stroke:#fff;stroke-width:1.5px;stroke-dasharray:5 95;animation-duration:3.5s}.hero-border-light{stroke:#fff;stroke-linecap:round;animation:3.5s linear infinite project-border-travel}.hero-border-halo{stroke-width:3px;stroke-dasharray:5 95;opacity:.5;filter:blur(.7px)}.hero-border-tail{stroke-width:1.5px;animation-name:hero-border-tail-travel}.hero-border-tail-far{--tail-offset:8px;stroke-dasharray:8 92;opacity:.12}.hero-border-tail-mid{--tail-offset:5px;stroke-dasharray:5 95;opacity:.25}.hero-border-tail-near{--tail-offset:3px;stroke-dasharray:3 97;opacity:.5}.process{text-align:center;grid-template-columns:repeat(4,1fr);gap:2rem;max-width:1080px;margin:0 auto;padding:0;list-style:none;display:grid;position:relative}.process:before{content:"";top:28px;background:var(--brand);transform-origin:0;height:1px;transition:transform 1.6s var(--ease-inout) .2s;position:absolute;inset-inline:12.5%;transform:scaleX(0)}.process.is-in:before{transform:scaleX(1)}[dir=rtl] .process:before{transform-origin:100%}.process:after{content:"";background:var(--foreground);opacity:0;pointer-events:none;width:12%;height:1px;animation:4.5s linear infinite flow-x;position:absolute;top:28px;left:12.5%}.process.is-in:after{opacity:.55}[dir=rtl] .process:after{animation-direction:reverse}.process li{flex-direction:column;align-items:center;display:flex;position:relative}.process li[data-reveal]{transition-delay:calc(var(--step) * .12s)}.process-dot{z-index:1;border:1px solid var(--border-strong);background:var(--background);width:56px;height:56px;color:var(--foreground);border-radius:50%;place-items:center;margin-bottom:1.5rem;font:500 .85rem/1 JetBrains Mono,monospace;transition:border-color .5s,color .5s;display:grid;position:relative}.process li.is-in .process-dot{border-color:var(--brand)}.process h3{margin:0 0 .6rem;font:600 1.15rem/1.5 Alexandria,sans-serif}.process p{max-width:240px;color:var(--muted);margin:0;font-size:.95rem;line-height:1.85}.tech-section{background:var(--background);padding-bottom:2rem}.constellation{--stage:min(500px, calc(100vw - 2 * var(--gutter) - 48px));--node:48px;flex-direction:column;align-items:center;display:flex}.constellation-stage{width:var(--stage);aspect-ratio:1;position:relative}.tech-orbit{animation:spin var(--orbit-duration) linear infinite var(--orbit-direction);pointer-events:none;margin:0;padding:0;list-style:none;position:absolute;inset:0}.tech-orbit-path{width:calc(var(--stage) * var(--orbit-radius) * 2);aspect-ratio:1;border:.6px solid var(--brand);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tech-orbit-2 .tech-orbit-path{border-style:dashed}.tech-node{width:0;height:0;transform:rotate(var(--node-angle)) translateX(calc(var(--stage) * var(--orbit-radius))) rotate(calc(-1 * var(--node-angle)));position:absolute;top:50%;left:50%}.tech-upright{animation:spin var(--orbit-duration) linear infinite var(--orbit-direction);animation-name:spin-back;position:absolute;top:0;left:0}.tech-node-chip{top:calc(var(--node) / -2);left:calc(var(--node) / -2);width:var(--node);height:var(--node);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--brand);cursor:pointer;pointer-events:auto;transition:transform var(--base) var(--ease-out),border-color var(--base);border-radius:50%;place-items:center;display:grid;position:absolute}.tech-orbit-1{--node:42px}.tech-node-chip:hover,.tech-node-chip:focus-visible,.tech-node-chip.is-active{z-index:2;border-color:var(--brand);outline:none;transform:scale(1.18)}.tech-node-chip .tool-icon{width:56%;height:56%}.tech-node-chip .tool-icon-concept{width:44%;height:44%}.tool-icon-concept .concept-icon{fill:none;stroke:#4b0095;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.tech-node-tip{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--foreground);opacity:0;pointer-events:none;transition:opacity var(--fast),transform var(--fast);white-space:nowrap;border-radius:6px;padding:.3rem .6rem;font:500 .74rem/1 JetBrains Mono,monospace;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%,4px)}.tech-node-chip:hover .tech-node-tip,.tech-node-chip:focus-visible .tech-node-tip,.tech-node-chip.is-active .tech-node-tip{opacity:1;transform:translate(-50%)}.tech-orbit:has(.tech-node-chip:hover){animation-play-state:paused}.tech-orbit:has(.tech-node-chip:focus-visible){animation-play-state:paused}.tech-orbit:has(.tech-node-chip.is-active){animation-play-state:paused}.tech-orbit:has(.tech-node-chip:hover) .tech-upright{animation-play-state:paused}.tech-orbit:has(.tech-node-chip:focus-visible) .tech-upright{animation-play-state:paused}.tech-orbit:has(.tech-node-chip.is-active) .tech-upright{animation-play-state:paused}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}#contact .shell{flex-direction:column;align-items:center;display:flex}#contact .section-heading{align-self:center}.contact-cards-wrap{place-items:center;width:100%;display:grid}.contact-cards{grid-template-columns:repeat(3,240px);gap:.75rem;width:max-content;max-width:100%;display:grid}.contact-cards a{border:1px solid var(--border);border-radius:var(--radius-frame);min-width:0;min-height:61px;color:var(--foreground);transition:border-color var(--base),transform var(--base),background var(--base);justify-content:center;align-items:center;padding:.85rem 1rem;font:500 .92rem/1 Alexandria,sans-serif;text-decoration:none;display:flex;position:relative}.contact-card-content{align-items:center;gap:.6rem;display:inline-flex}.contact-cards a:hover,.contact-cards a:focus-visible{border-color:var(--brand);background:var(--surface-2);transform:translateY(-2px)}.contact-icon{background:var(--surface);width:32px;height:32px;color:var(--brand);border-radius:50%;place-items:center;display:grid}.contact-icon .icon{width:16px;height:16px}.contact-cards .icon-arrow{width:.8rem;height:.8rem;color:var(--faint);padding:0;position:absolute;inset-inline-end:1rem}.contact-cards a:hover .contact-icon{background:var(--brand);color:var(--foreground)}.contact-cards a:hover .icon-arrow{color:var(--foreground)}.site-footer{margin-top:calc(var(--section) / 1.5);border-top:1px solid var(--border)}.footer-inner{min-height:0;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding-block:2.5rem;display:flex}.footer-inner p{margin:0;font-size:.85rem}[data-theme=dark] .tool-icon[data-tool=AppKit] img,[data-theme=dark] .tool-icon[data-tool=Notion] img,[data-theme=dark] .tool-icon[data-tool=Tally] img{filter:invert()}.tool-icon img{object-fit:contain;width:100%;height:100%}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spin-back{to{transform:rotate(-360deg)}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes about-spin{to{transform:translate(-50%,-50%)rotate(360deg)}}@keyframes service-float{0%,to{transform:translateY(-2.5px)}50%{transform:translateY(2.5px)}}@keyframes project-border-travel{to{stroke-dashoffset:-100px}}@keyframes hero-border-tail-travel{0%{stroke-dashoffset:var(--tail-offset)}to{stroke-dashoffset:calc(var(--tail-offset) - 100px)}}@keyframes hero-text-light{0%{background-position:100%}to{background-position:0}}@keyframes flow-x{0%{left:12.5%}to{left:75.5%}}@keyframes flow-y{0%{top:28px}to{top:85%}}@media (width<=860px){.hero{min-height:calc(var(--hero-size) + 48px);padding-top:1rem}.hero-copy{min-height:var(--hero-size);padding-block:4rem}.hero-greeting{margin-bottom:22px}.project-link{min-height:44px}.process{grid-template-columns:1fr;gap:2.5rem;max-width:420px}.process:before{transform-origin:top;width:1px;height:auto;top:28px;bottom:28px;left:50%;transform:scaleY(0)}.process.is-in:before{transform:scaleY(1)}.process:after{width:1px;height:12%;animation-name:flow-y;animation-direction:normal;top:28px;left:50%}.process h3,.process p{background:var(--background)}.process h3{padding-inline:.5rem}.process p{max-width:none}}@media (width<=1100px){.projects{grid-template-columns:repeat(2,minmax(0,325px))}}@media (width<=820px){.projects{grid-template-columns:minmax(0,360px)}.project-card{width:100%}}@media (width<=720px){.contact-cards{grid-template-columns:1fr;width:min(100%,380px)}.contact-cards a{width:100%;padding:.8rem 1rem}}@media (width<=640px){.constellation{--node:40px}.tech-orbit-1{--node:34px}.tech-node-tip{font-size:.68rem;display:block}.tech-node-chip.is-active .tech-node-tip{bottom:calc(100% + 7px)}}@media (width<=560px){.header-inner{gap:.75rem}.lang-btn{padding:.45rem .65rem}.hero{--hero-size:min(calc(100vw - 2 * var(--gutter) - 16px), calc(100svh - 144px))}.about-mark{width:280px;height:280px;margin-bottom:2.75rem}.about-ring-1{width:250px;height:250px}.about-ring-2{width:200px;height:200px}.services{grid-template-columns:1fr}.service{padding:1.75rem 1.25rem}.constellation{--node:34px}.tech-orbit-1{--node:30px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.hero h1 strong{-webkit-text-fill-color:var(--brand);background-image:none}.hero-primary .action-border-highlight{stroke-dasharray:none;animation:none}.hero-border-light{display:none}.service-icon:before,.service-icon:after,.service-icon .icon,.process:after{animation:none!important}.process:after{display:none}[data-reveal]{opacity:1;transform:none}}
