@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}:root{--color-surface:#f3f2f9;--color-surface-raised:#fff;--color-text:#1b1c26;--color-text-muted:var(--color-text)}@supports (color:color-mix(in lab,red,red)){:root{--color-text-muted:color-mix(in srgb, var(--color-text) 62%, transparent)}}:root{--color-border:#1b1c262e;--color-accent:#796cbf;--color-accent-text:#5d5294;--color-accent-contrast:#f3f2f9;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:6rem;--font-body-latin:"Inter", system-ui, sans-serif;--font-display-latin:"Inter", system-ui, sans-serif;--font-body-fa:"Vazirmatn", "IRANSansX", "Tahoma", sans-serif;--font-display-fa:"Vazirmatn", "IRANSansX", "Tahoma", sans-serif;--font-mono:"SFMono-Regular", "SF Mono", "Cascadia Code", "JetBrains Mono", Consolas, "Liberation Mono", Menlo, monospace;--color-info:#1d4ed8;--color-warning:#b45309;--color-tip:#15803d;--color-danger:#b91c1c;--text-latin-xs:.75rem;--leading-latin-xs:1.5;--text-latin-sm:.875rem;--leading-latin-sm:1.5;--text-latin-base:1rem;--leading-latin-base:1.6;--text-latin-lg:1.125rem;--leading-latin-lg:1.55;--text-latin-xl:1.25rem;--leading-latin-xl:1.5;--text-latin-2xl:1.5rem;--leading-latin-2xl:1.4;--text-latin-3xl:1.875rem;--leading-latin-3xl:1.3;--text-latin-4xl:2.25rem;--leading-latin-4xl:1.25;--text-latin-5xl:3rem;--leading-latin-5xl:1.15;--text-latin-6xl:3.75rem;--leading-latin-6xl:1.1;--text-fa-xs:.75rem;--leading-fa-xs:1.75;--text-fa-sm:.875rem;--leading-fa-sm:1.75;--text-fa-base:1rem;--leading-fa-base:1.9;--text-fa-lg:1.125rem;--leading-fa-lg:1.85;--text-fa-xl:1.25rem;--leading-fa-xl:1.8;--text-fa-2xl:1.5rem;--leading-fa-2xl:1.7;--text-fa-3xl:1.875rem;--leading-fa-3xl:1.6;--text-fa-4xl:2.25rem;--leading-fa-4xl:1.5;--text-fa-5xl:3rem;--leading-fa-5xl:1.4;--text-fa-6xl:3.75rem;--leading-fa-6xl:1.3;--color-neutral-100:#f3f5fe;--color-neutral-200:#e4e7f5;--color-neutral-300:#cfd3e5;--color-neutral-400:#b2b6ca;--color-neutral-500:#9397ab;--color-neutral-600:#75798c;--color-neutral-700:#595d6c;--color-neutral-800:#3f424d;--color-neutral-900:#292b31;--color-accent-100:#f5f4ff;--color-accent-200:#e7e5fe;--color-accent-300:#d2cefd;--color-accent-400:#b5abfc;--color-accent-500:#968ae0;--color-accent-600:#796cbf;--color-accent-700:#5d5294;--color-accent-800:#423a6a;--color-accent-900:#2b2741;--color-accent-2-100:#f5f4ff;--color-accent-2-200:#e7e5fe;--color-accent-2-300:#d2cefd;--color-accent-2-400:#b5afe8;--color-accent-2-500:#9690c9;--color-accent-2-600:#7972a9;--color-accent-2-700:#5c5783;--color-accent-2-800:#423e5d;--color-accent-2-900:#2b293a;--color-section:#262a60;--color-section-glow:#353b80;--color-section-ghost:#4c5397;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--shadow-sm:0 0 0 1px #1b1c2624;--shadow-md:0 0 0 1px #1b1c2624, 0 6px 18px #1b1c2617;--shadow-lg:0 0 0 1px #1b1c2629, 0 16px 40px #1b1c2624;--dir:1}html[dir=rtl]{--dir:-1}.dark{--color-surface:#161826;--color-surface-raised:#232532;--color-text:#e9e9ed;--color-text-muted:var(--color-text)}@supports (color:color-mix(in lab,red,red)){.dark{--color-text-muted:color-mix(in srgb, var(--color-text) 55%, transparent)}}.dark{--color-border:#e9e9ed29;--color-accent:#9184d9;--color-accent-text:#9184d9;--color-accent-contrast:#161826;--color-section:#262a60;--color-section-glow:#353b80;--color-section-ghost:#4c5397;--shadow-sm:0 0 0 1px #3f424d;--shadow-md:0 0 0 1px #595d6c, 0 6px 18px #0000008c;--shadow-lg:0 0 0 1px #9397ab, 0 16px 40px #000000a6;--color-info:#60a5fa;--color-warning:#fbbf24;--color-tip:#4ade80;--color-danger:#f87171}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--font-weight-medium:500;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-surface:var(--color-surface);--color-surface-raised:var(--color-surface-raised);--color-text:var(--color-text);--color-text-muted:var(--color-text-muted);--color-border:var(--color-border);--color-accent:var(--color-accent);--color-accent-contrast:var(--color-accent-contrast);--font-display:var(--font-display-latin)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{font-family:var(--font-body-latin);font-size:var(--text-latin-base);line-height:var(--leading-latin-base);color-scheme:light}html.dark{color-scheme:dark}body{background-color:var(--color-surface);color:var(--color-text)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}html[lang=fa]{font-family:var(--font-body-fa);font-size:var(--text-fa-base);line-height:var(--leading-fa-base);--font-body-latin:var(--font-body-fa);--font-display-latin:var(--font-display-fa);--text-latin-xs:var(--text-fa-xs);--leading-latin-xs:var(--leading-fa-xs);--text-latin-sm:var(--text-fa-sm);--leading-latin-sm:var(--leading-fa-sm);--text-latin-base:var(--text-fa-base);--leading-latin-base:var(--leading-fa-base);--text-latin-lg:var(--text-fa-lg);--leading-latin-lg:var(--leading-fa-lg);--text-latin-xl:var(--text-fa-xl);--leading-latin-xl:var(--leading-fa-xl);--text-latin-2xl:var(--text-fa-2xl);--leading-latin-2xl:var(--leading-fa-2xl);--text-latin-3xl:var(--text-fa-3xl);--leading-latin-3xl:var(--leading-fa-3xl);--text-latin-4xl:var(--text-fa-4xl);--leading-latin-4xl:var(--leading-fa-4xl);--text-latin-5xl:var(--text-fa-5xl);--leading-latin-5xl:var(--leading-fa-5xl);--text-latin-6xl:var(--text-fa-6xl);--leading-latin-6xl:var(--leading-fa-6xl)}}@layer components{.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,5vw,64px)}.section{padding:64px 0}.rule{background:linear-gradient(to right,transparent,var(--color-border) 48px calc(100% - 48px),transparent);border:0;height:1px;margin:0}.kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent);align-items:center;gap:10px;margin:0 0 14px;font-size:13px;font-weight:500;display:flex}.kicker .dash{background:var(--color-accent);flex:none;width:32px;height:1px}.chip{font-family:var(--font-mono);border:1px solid var(--color-border);color:var(--color-text);background:0 0;border-start-start-radius:var(--radius-sm);border-start-end-radius:var(--radius-sm);border-end-end-radius:var(--radius-sm);border-end-start-radius:var(--radius-sm);align-items:center;gap:6px;padding-block:4px;padding-inline:8px 10px;font-size:11.5px;font-weight:500;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.chip{color:color-mix(in srgb,var(--color-text) 80%,transparent)}}.chip{transition:border-color .26s cubic-bezier(.4,0,.2,1),color .26s cubic-bezier(.4,0,.2,1)}.chip:before{content:"";background:var(--color-accent);border-start-start-radius:50%;border-start-end-radius:50%;border-end-end-radius:50%;border-end-start-radius:50%;flex:none;width:5px;height:5px}.chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.filter-chip{font-family:var(--font-mono);border:1px solid var(--color-border);color:var(--color-text);background:0 0;border-start-start-radius:var(--radius-sm);border-start-end-radius:var(--radius-sm);border-end-end-radius:var(--radius-sm);border-end-start-radius:var(--radius-sm);padding:6px 12px;font-size:11.5px;font-weight:500}@supports (color:color-mix(in lab,red,red)){.filter-chip{color:color-mix(in srgb,var(--color-text) 75%,transparent)}}.filter-chip{cursor:pointer;transition:border-color .26s cubic-bezier(.4,0,.2,1),color .26s cubic-bezier(.4,0,.2,1),background-color .26s cubic-bezier(.4,0,.2,1)}.filter-chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.filter-chip.active{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.filter-chip.active{background:color-mix(in srgb,var(--color-accent) 10%,transparent)}}.btn{cursor:pointer;font-family:var(--font-display-latin);color:var(--color-text);background:0 0;border:1px solid #0000;border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-end-start-radius:var(--radius-md);justify-content:center;align-items:center;gap:6px;padding:5.6px 10.08px;font-size:14px;font-weight:500;line-height:1.2;text-decoration:none;transition:background-color .26s cubic-bezier(.4,0,.2,1),border-color .26s cubic-bezier(.4,0,.2,1),color .26s cubic-bezier(.4,0,.2,1),transform .12s ease-out;display:inline-flex}.btn svg{display:block}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:active{transform:scale(.96)}.btn-primary{color:var(--color-accent);border-color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.btn-primary:hover{background:color-mix(in srgb,var(--color-accent) 12%,transparent)}}.btn-primary:active{background:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.btn-primary:active{background:color-mix(in srgb,var(--color-accent) 22%,transparent)}}.btn-secondary{border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-text)}@supports (color:color-mix(in lab,red,red)){.btn-secondary:hover{background:color-mix(in srgb,var(--color-text) 7%,transparent)}}.btn-secondary:active{background:var(--color-text)}@supports (color:color-mix(in lab,red,red)){.btn-secondary:active{background:color-mix(in srgb,var(--color-text) 14%,transparent)}}.btn-ghost{color:var(--color-accent);padding-inline:2.8px}.btn-ghost:hover{background:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.btn-ghost:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent)}}.btn-ghost:active{background:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.btn-ghost:active{background:color-mix(in srgb,var(--color-accent) 18%,transparent)}}.icon-btn{border:1px solid var(--color-border);width:34px;height:34px;color:var(--color-text);cursor:pointer;background:0 0;border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-end-start-radius:var(--radius-md);place-items:center;transition:background-color .26s cubic-bezier(.4,0,.2,1),border-color .26s cubic-bezier(.4,0,.2,1),color .26s cubic-bezier(.4,0,.2,1);display:grid}.icon-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.icon-btn:hover{background:color-mix(in srgb,var(--color-accent) 8%,transparent)}}.icon-btn:active{transform:scale(.88)}.icon-btn svg{transition:transform .35s cubic-bezier(.4,0,.2,1)}.icon-btn:hover svg{transform:rotate(14deg)}.lang-btn{letter-spacing:.02em;font-size:12px;font-weight:600}.viewall{color:var(--color-accent);align-items:center;gap:6px;font-size:13.5px;text-decoration:none;display:inline-flex}.viewall svg{transition:transform .16s ease-out}.viewall:hover svg{transform:translate(calc(3px * var(--dir)))}.pulse-dot{background:var(--color-accent);border-start-start-radius:50%;border-start-end-radius:50%;border-end-end-radius:50%;border-end-start-radius:50%;flex:none;width:7px;height:7px;animation:2.4s ease-out infinite badgePulse}@keyframes badgePulse{0%{box-shadow:0 0 color-mix(in srgb,var(--color-accent) 45%,transparent)}70%{box-shadow:0 0 0 7px color-mix(in srgb,var(--color-accent) 0%,transparent)}to{box-shadow:0 0 color-mix(in srgb,var(--color-accent) 0%,transparent)}}.card{background:var(--color-surface-raised);border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-end-start-radius:var(--radius-md);flex-direction:column;gap:5.6px;padding:8.4px;display:flex}.empty-state{text-align:center;color:var(--color-text);flex-direction:column;align-items:center;gap:10px;padding:64px 20px;display:flex}@supports (color:color-mix(in lab,red,red)){.empty-state{color:color-mix(in srgb,var(--color-text) 70%,transparent)}}.empty-state svg{color:var(--color-text)}@supports (color:color-mix(in lab,red,red)){.empty-state svg{color:color-mix(in srgb,var(--color-text) 62%,transparent)}}.empty-state svg{margin-block-end:6px}.empty-state h3{color:var(--color-text);margin:0;font-size:17px}.empty-state p{max-width:40ch;margin:0;font-size:13.5px}.empty-state button{margin-block-start:12px}.topnav{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--color-surface);position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.topnav{background:color-mix(in srgb,var(--color-surface) 78%,transparent)}}.topnav{border-block-end:1px solid var(--color-border)}.topnav-inner{align-items:center;gap:28px;max-width:1240px;margin:0 auto;padding:14px clamp(20px,5vw,64px);display:flex}.brand{font-family:var(--font-display-latin);color:var(--color-text);align-items:center;gap:9px;font-size:17px;font-weight:600;display:flex}.brand-badge{background:var(--color-accent);width:27px;height:27px;font-family:var(--font-display-latin);color:var(--color-accent-contrast);border-start-start-radius:7px;border-start-end-radius:7px;border-end-end-radius:7px;border-end-start-radius:7px;flex:none;place-items:center;font-size:14px;font-weight:700;line-height:1;display:grid}.navlinks{gap:22px;margin-inline-start:8px;display:flex}.navlinks a{color:var(--color-text);position:relative}@supports (color:color-mix(in lab,red,red)){.navlinks a{color:color-mix(in srgb,var(--color-text) 75%,transparent)}}.navlinks a{padding-block-end:3px;font-size:13.5px;text-decoration:none;transition:color .26s cubic-bezier(.4,0,.2,1)}.navlinks a:after{content:"";background:var(--color-accent);transform-origin:0;height:1px;transition:transform .2s ease-out;position:absolute;inset-block-end:-1px;inset-inline:0;transform:scaleX(0)}.navlinks a:hover{color:var(--color-accent)}.navlinks a:hover:after{transform:scaleX(1)}html[dir=rtl] .navlinks a:after{transform-origin:100%}.navlinks .n{color:var(--color-accent);font-feature-settings:"tnum" 1;margin-inline-end:5px}.nav-actions{align-items:center;gap:8px;margin-inline-start:auto;display:flex}.nav-actions .btn-primary{white-space:nowrap}@media(max-width:860px){.navlinks{display:none}}.site-footer{border-block-start:1px solid var(--color-border);padding:40px 0 28px}.footer-top{grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px;margin-block-end:32px;display:grid}.footer-col h5{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text);font-size:12px}@supports (color:color-mix(in lab,red,red)){.footer-col h5{color:color-mix(in srgb,var(--color-text) 62%,transparent)}}.footer-col h5{margin:0 0 14px}.footer-col a{color:var(--color-text);display:block}@supports (color:color-mix(in lab,red,red)){.footer-col a{color:color-mix(in srgb,var(--color-text) 78%,transparent)}}.footer-col a{margin-block-end:10px;font-size:13.5px;text-decoration:none;transition:color .26s cubic-bezier(.4,0,.2,1)}.footer-col a:hover{color:var(--color-accent)}.footer-bottom{border-block-start:1px solid var(--color-border);color:var(--color-text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-block-start:20px;font-size:12.5px;display:flex}@supports (color:color-mix(in lab,red,red)){.footer-bottom{color:color-mix(in srgb,var(--color-text) 62%,transparent)}}.footer-social{gap:10px;display:flex}@media(max-width:780px){.footer-top{grid-template-columns:repeat(2,1fr)}}html[dir=rtl] .icon-flip{transform:scaleX(-1)}body,.topnav,.brand,.brand-badge,.site-footer,.footer-col h5,.footer-bottom,.card,.empty-state,.exp-card,.proj-card,.blog-card,.next-proj,.contact-band{transition:background-color .26s cubic-bezier(.4,0,.2,1),border-color .26s cubic-bezier(.4,0,.2,1),color .26s cubic-bezier(.4,0,.2,1)}@media(prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:.01ms!important}}@keyframes heroIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.hero{grid-template-columns:minmax(0,1fr) 280px;align-items:center;gap:40px;padding-block:0 40px;display:grid}.hero-row{grid-template-columns:44px minmax(0,1fr);gap:32px;animation:.75s cubic-bezier(.16,1,.3,1) backwards heroIn;display:grid}.social-rail{flex-direction:column;align-self:start;gap:12px;display:flex;position:sticky;top:90px}.hero-identity{flex-wrap:wrap;align-items:center;gap:10px;margin-block-end:20px;display:flex}.hero-name-tag{font-family:var(--font-display-latin);color:var(--color-text);letter-spacing:-.005em;font-size:18px;font-weight:600}.hero-role-tag{color:var(--color-text);font-size:13px}@supports (color:color-mix(in lab,red,red)){.hero-role-tag{color:color-mix(in srgb,var(--color-text) 62%,transparent)}}.hero-role-tag{border-inline-start:1px solid var(--color-border);padding-inline-start:11px}.hero-name{font-family:var(--font-display-latin);letter-spacing:-.01em;color:var(--color-text);margin:0;font-size:clamp(26px,3.2vw,38px);font-weight:500;line-height:1.2}@supports (color:color-mix(in lab,red,red)){.hero-name{color:color-mix(in srgb,var(--color-text) 88%,transparent)}}.hero-name .line{display:block}.hero-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-block:18px 26px;display:flex}.meta-highlight.chip{border-color:var(--color-accent);color:var(--color-accent)}.meta-highlight.chip:before{display:none}.meta-highlight .pulse-dot{width:5px;height:5px}.hero-bio{max-width:52ch;color:var(--color-text);font-size:15.5px;line-height:1.7}@supports (color:color-mix(in lab,red,red)){.hero-bio{color:color-mix(in srgb,var(--color-text) 82%,transparent)}}.hero-bio{margin:0 0 26px}.hero-ctas{flex-wrap:wrap;gap:12px;display:flex}.avatar-frame{transition:transform .3s ease-out;animation:.75s cubic-bezier(.16,1,.3,1) .14s backwards heroIn;position:relative}.avatar-frame:hover{transform:translateY(-4px)}.avatar-ring{background:linear-gradient(135deg,var(--color-accent),transparent 60%);opacity:.3;z-index:0;border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg);transition:opacity .3s ease-out;position:absolute;inset:-8px}.avatar-frame:hover .avatar-ring{opacity:.6}.avatar-frame img{z-index:1;aspect-ratio:4/5;object-fit:cover;border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg);width:100%;transition:transform .4s ease-out;display:block;position:relative}.avatar-frame:hover img{transform:scale(1.015)}@media(max-width:900px){.hero,.hero-row{grid-template-columns:1fr}.social-rail{flex-direction:row;position:static}.avatar-frame{max-width:260px;margin-inline:auto}}.about-grid{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:48px;display:grid}.about-side{position:sticky;top:90px}.linkback{color:var(--color-accent);align-items:center;gap:8px;margin-block-end:20px;font-size:13.5px;text-decoration:none;transition:gap .16s ease-out;display:inline-flex}.linkback:hover{gap:11px}.about-body p{color:var(--color-text);font-size:15px;line-height:1.8}@supports (color:color-mix(in lab,red,red)){.about-body p{color:color-mix(in srgb,var(--color-text) 84%,transparent)}}.about-body p{max-width:62ch;margin:0 0 14px}.stack-tags{flex-wrap:wrap;gap:8px;display:flex}.cap-list{margin-block-start:36px}.cap-row{padding:22px 0;position:relative}.cap-row+.cap-row:before{content:"";background:linear-gradient(to right,transparent,var(--color-border) 48px calc(100% - 48px),transparent);inset-inline:0;height:1px;position:absolute;top:0}.cap-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-block-end:8px;display:flex}.cap-head h3{margin:0;font-size:17px;transition:color .16s ease-out}.cap-row:hover .cap-head h3{color:var(--color-accent)}.cap-row p{color:var(--color-text);margin:0;font-size:14.5px;line-height:1.75}@supports (color:color-mix(in lab,red,red)){.cap-row p{color:color-mix(in srgb,var(--color-text) 78%,transparent)}}.cap-row p{max-width:64ch}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.now-status{border-block-start:1px solid var(--color-border);margin-block-start:28px;padding-block-start:22px}.now-status p{color:var(--color-text);font-size:13px;line-height:1.65}@supports (color:color-mix(in lab,red,red)){.now-status p{color:color-mix(in srgb,var(--color-text) 75%,transparent)}}.now-status p{margin:0}@media(max-width:860px){.about-grid{grid-template-columns:1fr}.about-side{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex;position:static}}.exp-filters{flex-wrap:wrap;gap:8px;margin-block-end:28px;display:flex}.exp-card{background:var(--color-surface-raised);box-shadow:var(--shadow-sm);border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg);padding:32px;transition:box-shadow .2s ease-out}.exp-card:hover{box-shadow:var(--shadow-md)}.exp-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-block-end:6px;display:flex}.exp-tagline{font-family:var(--font-mono);color:var(--color-accent);letter-spacing:.02em;margin-block-end:10px;font-size:11px;display:block}.exp-meta{color:var(--color-text);align-items:center;gap:10px;font-size:12.5px;display:flex}@supports (color:color-mix(in lab,red,red)){.exp-meta{color:color-mix(in srgb,var(--color-text) 62%,transparent)}}.exp-card h3{margin:0 0 4px;font-size:22px}.exp-company{color:var(--color-accent-text);margin:0;font-size:14px}.exp-card p.desc{color:var(--color-text);font-size:14.5px;line-height:1.75}@supports (color:color-mix(in lab,red,red)){.exp-card p.desc{color:color-mix(in srgb,var(--color-text) 82%,transparent)}}.exp-card p.desc{max-width:76ch;margin:18px 0 0}.exp-diff{border-block-start:1px solid var(--color-border);flex-direction:column;gap:11px;margin-block-start:20px;padding-block-start:20px;display:flex}.diff-line{color:var(--color-text);align-items:flex-start;gap:11px;font-size:14px;display:flex}@supports (color:color-mix(in lab,red,red)){.diff-line{color:color-mix(in srgb,var(--color-text) 80%,transparent)}}.diff-plus{font-family:var(--font-mono);color:var(--color-accent);flex:none;font-weight:700}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-block-end:32px;display:flex}.section-head .kicker{margin-block-end:8px}.proj-list{flex-direction:column;gap:28px;display:flex}.proj-card{background:var(--color-surface-raised);box-shadow:var(--shadow-sm);border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg);grid-template-columns:minmax(0,1fr) 380px;align-items:center;gap:32px;transition:transform .2s ease-out,box-shadow .2s ease-out;display:grid;overflow:hidden}.proj-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.proj-card--no-media{grid-template-columns:minmax(0,1fr)}.proj-card:nth-child(2n){grid-template-columns:380px minmax(0,1fr)}.proj-card:nth-child(2n).proj-card--no-media{grid-template-columns:minmax(0,1fr)}.proj-card:nth-child(2n) .proj-media{order:1}.proj-media{align-self:stretch}.proj-media img{object-fit:cover;width:100%;height:100%;min-height:220px;display:block}.proj-copy{padding-block:28px;padding-inline:0 32px}.proj-card:nth-child(2n) .proj-copy{padding-block:28px;padding-inline:32px 0}.proj-roles{flex-wrap:wrap;gap:8px;margin-block-end:14px;display:flex}.proj-copy h3{margin:0 0 8px;font-size:22px}.proj-meta{color:var(--color-text);font-size:12px}@supports (color:color-mix(in lab,red,red)){.proj-meta{color:color-mix(in srgb,var(--color-text) 62%,transparent)}}.proj-meta{text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px}.proj-copy p{color:var(--color-text);font-size:14px;line-height:1.7}@supports (color:color-mix(in lab,red,red)){.proj-copy p{color:color-mix(in srgb,var(--color-text) 78%,transparent)}}.proj-copy p{max-width:60ch;margin:0 0 16px}.proj-tags{flex-wrap:wrap;gap:8px;display:flex}.proj-link{margin-block-start:20px}@media(max-width:820px){.proj-card,.proj-card:nth-child(2n),.proj-card--no-media,.proj-card:nth-child(2n).proj-card--no-media{grid-template-columns:1fr}.proj-copy,.proj-card:nth-child(2n) .proj-copy{padding:24px}.proj-card:nth-child(2n) .proj-media{order:0}}.blog-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.blog-card{color:inherit;flex-direction:column;gap:12px;text-decoration:none;display:flex}.blog-card h4{margin:0;font-size:15px;line-height:1.4;transition:color .16s ease-out}.blog-card:hover h4{color:var(--color-accent-text)}.blog-meta{color:var(--color-text);align-items:center;gap:12px;font-size:12px;display:flex}@supports (color:color-mix(in lab,red,red)){.blog-meta{color:color-mix(in srgb,var(--color-text) 62%,transparent)}}.blog-meta span{align-items:center;gap:4px;display:flex}@media(max-width:980px){.blog-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.blog-grid{grid-template-columns:1fr}}.section-contact{padding-block:24px 64px}.contact-band{background:var(--color-section);background-image:radial-gradient(900px 420px at 85% -30%,var(--color-section-glow),transparent 64%)}@supports (color:color-mix(in lab,red,red)){.contact-band{background-image:radial-gradient(900px 420px at 85% -30%,color-mix(in srgb,var(--color-section-glow) 70%,transparent),transparent 64%)}}.contact-band{border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px;padding:48px;display:flex}.contact-copy{max-width:60ch}.avail-badge{color:#f3f5fed9;align-items:center;gap:8px;margin-block-end:16px;font-size:12.5px;display:inline-flex}.contact-band h2{color:#f3f5fe;max-width:20ch;margin:0 0 12px;font-size:clamp(24px,2.6vw,30px)}.contact-band p{color:#f3f5fec7;margin:0;font-size:14.5px;line-height:1.75}.contact-ctas{flex-wrap:wrap;gap:12px;margin-block-start:24px;display:flex}.band-btn{color:#f3f5fe;border-color:#f3f5fe}.band-btn:hover{background:#ffffff1f}.band-btn-soft{color:#f3f5fe;background:#ffffff1f;border-color:#0000}.band-btn-soft:hover{background:#ffffff2e}.contact-social{gap:10px;display:flex}.band-icon-btn{color:#f3f5fe;border:1px solid #f3f5fe66;border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-end-start-radius:var(--radius-md);place-items:center;width:38px;height:38px;transition:border-color .16s ease-out,background-color .16s ease-out;display:grid}.band-icon-btn:hover{background:#ffffff1f;border-color:#f3f5fe}@media(max-width:760px){.contact-band{padding:32px}}.blog-hero{max-width:62ch;padding-block:56px 8px}.blog-hero h1{font-family:var(--font-display-latin);margin:16px 0 12px;font-size:clamp(30px,3.6vw,44px);font-weight:500;line-height:1.15}.blog-hero p{color:var(--color-text-muted);margin:0;font-size:15px;line-height:1.7}.blog-stats{flex-wrap:wrap;gap:28px;margin-block-start:26px;display:flex}.blog-stat b{font-family:var(--font-display-latin);font-size:20px;font-weight:500;line-height:1.2;display:block}.blog-stat span{color:var(--color-text-muted);font-size:12px}.search-row{margin-block:8px 20px}.search-box{align-items:center;max-width:380px;display:flex;position:relative}.search-box>svg{color:var(--color-text-muted);pointer-events:none;position:absolute;inset-inline-start:14px}.search-box input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-end-start-radius:var(--radius-md);padding-block:11px;padding-inline:40px;font-size:13.5px}.search-box input::placeholder{color:var(--color-text-muted)}.search-box input:focus-visible{outline:2px solid var(--color-accent);outline-offset:0}.search-clear{width:22px;height:22px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-start-start-radius:50%;border-start-end-radius:50%;border-end-end-radius:50%;border-end-start-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;inset-inline-end:10px}.search-clear:hover{color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.search-clear:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent)}}.filters-row{flex-wrap:wrap;gap:8px;margin-block:8px 32px;display:flex}.blog-grid--index{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.blog-card--index h4{font-size:16px}.blog-thumb{aspect-ratio:16/10;background:var(--color-surface-raised);border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-end-start-radius:var(--radius-md);overflow:hidden}.blog-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .26s cubic-bezier(.4,0,.2,1)}.blog-card:hover .blog-thumb img{transform:scale(1.045)}.blog-card .chip{align-self:flex-start}.blog-excerpt{color:var(--color-text);font-size:13.5px;line-height:1.6}@supports (color:color-mix(in lab,red,red)){.blog-excerpt{color:color-mix(in srgb,var(--color-text) 72%,transparent)}}.blog-excerpt{margin:0}@media(max-width:980px){.blog-grid--index{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.blog-grid--index{grid-template-columns:1fr}}.subscribe-band{background:var(--color-section);background-image:radial-gradient(900px 420px at 85% -30%,var(--color-section-glow),transparent 64%)}@supports (color:color-mix(in lab,red,red)){.subscribe-band{background-image:radial-gradient(900px 420px at 85% -30%,color-mix(in srgb,var(--color-section-glow) 70%,transparent),transparent 64%)}}.subscribe-band{border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px;margin-block-start:36px;padding:44px;display:flex}.subscribe-band h3{font-family:var(--font-display-latin);color:#f3f5fe;margin:0 0 8px;font-size:clamp(20px,2.2vw,26px);font-weight:500;line-height:1.3}.subscribe-band p{color:#f3f5fec7;max-width:46ch;margin:0;font-size:14px;line-height:1.7}.subscribe-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.subscribe-form input{color:#f3f5fe;background:#ffffff0f;border:1px solid #f3f5fe40;border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-end-start-radius:var(--radius-md);min-width:220px;padding:11px 14px;font-size:13.5px}.subscribe-form input::placeholder{color:#f3f5fec7}@media(max-width:760px){.subscribe-band{flex-direction:column;align-items:flex-start;padding:32px}}.post-wrap{max-width:1140px;margin-inline:auto}.post-layout{grid-template-columns:minmax(0,1fr) 240px;align-items:start;gap:48px;display:grid}.post-layout--no-toc{grid-template-columns:minmax(0,1fr)}.post-main{max-width:820px}.post-layout__toc{align-self:start;max-height:calc(100vh - 48px);position:sticky;top:24px;overflow-y:auto}.post-layout__toc h2{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 12px;font-size:12px;font-weight:600}.post-layout__toc ul{border-inline-start:1px solid var(--color-border);flex-direction:column;gap:8px;margin:0;padding:0;padding-inline-start:16px;list-style:none;display:flex}.post-layout__toc a{color:var(--color-text);font-size:13px;line-height:1.45}@supports (color:color-mix(in lab,red,red)){.post-layout__toc a{color:color-mix(in srgb,var(--color-text) 70%,transparent)}}.post-layout__toc a{text-decoration:none}.post-layout__toc a:hover{color:var(--color-accent)}.back-link{margin-block:28px 20px}.viewall--back:hover svg{transform:translate(calc(-3px * var(--dir)))}.article-head{margin-block-start:16px}.article-head h1{font-family:var(--font-display-latin);margin:0 0 20px;font-size:clamp(28px,3.4vw,42px);font-weight:500;line-height:1.2}.article-byline{align-items:center;gap:12px;margin-block-end:32px;display:flex}.byline-avatar{border-start-start-radius:50%;border-start-end-radius:50%;border-end-end-radius:50%;border-end-start-radius:50%;flex:none;width:40px;height:40px;overflow:hidden}.byline-avatar img{object-fit:cover;width:100%;height:100%}.byline-name{margin:0;font-size:14px;font-weight:500}.byline-meta{color:var(--color-text-muted);align-items:center;gap:8px;font-size:12.5px;display:flex}.byline-meta .dot{opacity:.5}.byline-meta span{align-items:center;gap:4px;display:inline-flex}.cover-media{aspect-ratio:21/9;background:var(--color-surface-raised);border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg);margin-block-end:8px;overflow:hidden}.cover-media img{object-fit:cover;width:100%;height:100%}.author-card{background:var(--color-surface);border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg);align-items:center;gap:16px;margin-block-start:48px;padding:24px;display:flex}.author-card__avatar{border-start-start-radius:50%;border-start-end-radius:50%;border-end-end-radius:50%;border-end-start-radius:50%;flex:none;width:56px;height:56px;overflow:hidden}.author-card__avatar img{object-fit:cover;width:100%;height:100%}.author-card h3{margin:0;font-size:15px;font-weight:500}.author-card p{color:var(--color-text-muted);margin:4px 0 0;font-size:13.5px;line-height:1.6}.related-section{margin-block-start:48px}.related-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-block-start:20px;display:grid}.related-card{color:inherit;flex-direction:column;gap:10px;text-decoration:none;display:flex}.related-thumb{aspect-ratio:16/10;background:var(--color-surface-raised);border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-end-start-radius:var(--radius-md);overflow:hidden}.related-thumb img{object-fit:cover;width:100%;height:100%}.related-card h4{margin:0;font-size:14.5px;line-height:1.4;transition:color .16s ease-out}.related-card:hover h4{color:var(--color-accent)}.prevnext{margin-block-start:48px}.prose .lede{color:var(--color-text);font-size:18px}@supports (color:color-mix(in lab,red,red)){.prose .lede{color:color-mix(in srgb,var(--color-text) 82%,transparent)}}.prose .pull-quote{font-family:var(--font-display-latin);color:var(--color-accent);margin-block:40px;font-size:clamp(20px,2.2vw,26px);font-weight:500;line-height:1.5}@media(max-width:980px){.post-layout{grid-template-columns:minmax(0,1fr)}.post-layout__toc{max-height:none;position:static}}@media(max-width:780px){.author-card{text-align:center;flex-direction:column;align-items:center}.related-grid{grid-template-columns:1fr}}.proj-hero h1{font-family:var(--font-display);letter-spacing:-.01em;max-width:20ch;margin:14px 0 18px;font-size:clamp(30px,4.2vw,48px);font-weight:500;line-height:1.15}.proj-hero p{max-width:62ch;color:var(--color-text);font-size:15.5px;line-height:1.75}@supports (color:color-mix(in lab,red,red)){.proj-hero p{color:color-mix(in srgb,var(--color-text) 82%,transparent)}}.proj-hero p{margin:0 0 28px}.spec-row{border-block:1px solid var(--color-border);grid-template-columns:repeat(4,1fr);gap:20px;margin-block-end:40px;padding-block:24px;display:grid}.spec-item dt{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text);font-size:11px;display:block}@supports (color:color-mix(in lab,red,red)){.spec-item dt{color:color-mix(in srgb,var(--color-text) 62%,transparent)}}.spec-item dt{margin-block-end:6px}.spec-item dd{font-size:15px;font-weight:500}@media(max-width:780px){.spec-row{grid-template-columns:repeat(2,1fr)}}.case-intro p:first-child{color:var(--color-text);font-size:18px}@supports (color:color-mix(in lab,red,red)){.case-intro p:first-child{color:color-mix(in srgb,var(--color-text) 82%,transparent)}}.case-intro p:last-child{margin-block-end:0}.story-grid{grid-template-columns:200px minmax(0,1fr);gap:40px;padding-block:36px;display:grid}.story-grid+.story-grid{border-block-start:1px solid var(--color-border)}.story-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent);font-size:12px;font-family:var(--font-mono);margin:0}.story-body p{color:var(--color-text);font-size:15px;line-height:1.8}@supports (color:color-mix(in lab,red,red)){.story-body p{color:color-mix(in srgb,var(--color-text) 84%,transparent)}}.story-body p{max-width:68ch;margin:0 0 14px}.story-body p:last-child{margin-block-end:0}@media(max-width:780px){.story-grid{grid-template-columns:1fr;gap:12px}}.story-body ul{flex-direction:column;gap:12px;margin-block-start:8px;padding:0;list-style:none;display:flex}.story-body li{color:var(--color-text);align-items:flex-start;gap:11px;font-size:15px;line-height:1.7;display:flex}@supports (color:color-mix(in lab,red,red)){.story-body li{color:color-mix(in srgb,var(--color-text) 85%,transparent)}}.story-body li:before{content:"+";font-family:var(--font-mono);color:var(--color-accent);flex:none;font-weight:700}.exp-card .prose{margin-block-start:18px}.case-gallery{padding-block:8px 64px}.gallery-grid{grid-template-columns:1fr 1fr;gap:16px;margin-block-start:8px;display:grid}.gallery-item{aspect-ratio:4/3;border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-end-start-radius:var(--radius-md);overflow:hidden}.gallery-item img{object-fit:cover;width:100%;height:100%}@media(max-width:700px){.gallery-grid{grid-template-columns:1fr}}.next-wrap{padding-block-end:64px}.next-proj{background:var(--color-surface-raised);box-shadow:var(--shadow-sm);color:inherit;border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:20px;margin-block-start:8px;padding:32px;text-decoration:none;transition:transform .2s ease-out,box-shadow .2s ease-out;display:flex}.next-proj:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.next-proj-label{color:var(--color-text);font-size:12px}@supports (color:color-mix(in lab,red,red)){.next-proj-label{color:color-mix(in srgb,var(--color-text) 62%,transparent)}}.next-proj-label{text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px}.next-proj h3{margin:0;font-size:20px}.avail-chip{color:var(--color-text);align-items:center;gap:8px;font-size:12.5px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.avail-chip{color:color-mix(in srgb,var(--color-text) 75%,transparent)}}.avail-chip{margin-block-end:20px}.contact-grid{grid-template-columns:minmax(0,1fr) 420px;align-items:start;gap:56px;padding-block-start:20px;display:grid}.contact-grid h1{font-family:var(--font-display-latin);letter-spacing:-.01em;max-width:16ch;margin:0 0 20px;font-size:clamp(30px,4vw,46px);font-weight:500;line-height:1.18}.contact-grid p.lede{color:var(--color-text);font-size:15.5px;line-height:1.75}@supports (color:color-mix(in lab,red,red)){.contact-grid p.lede{color:color-mix(in srgb,var(--color-text) 82%,transparent)}}.contact-grid p.lede{max-width:52ch;margin:0 0 32px}.direct-list{flex-direction:column;gap:4px;margin-block-end:32px;display:flex}.direct-row{border-block-start:1px solid var(--color-border);align-items:center;gap:12px;padding-block:14px;display:flex}.direct-row:last-child{border-block-end:1px solid var(--color-border)}.direct-row .dl{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text);font-size:11px}@supports (color:color-mix(in lab,red,red)){.direct-row .dl{color:color-mix(in srgb,var(--color-text) 62%,transparent)}}.direct-row .dl{flex:none;width:90px}.direct-row a,.direct-row span.val{font-size:14.5px;font-weight:500}.social-row{gap:10px;display:flex}.now-label{font-family:var(--font-mono);color:var(--color-accent);margin-block-end:8px;font-size:11px;display:block}.now-box{border-block-start:1px solid var(--color-border);margin-block-start:32px;padding-block-start:22px}.now-box p{color:var(--color-text);font-size:13px;line-height:1.65}@supports (color:color-mix(in lab,red,red)){.now-box p{color:color-mix(in srgb,var(--color-text) 75%,transparent)}}.now-box p{margin:0}.form-card{background:var(--color-surface);box-shadow:var(--shadow-sm);border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg);padding:32px}.form-card h2{margin:0 0 20px;font-size:18px}.field-group{flex-direction:column;gap:16px;display:flex}.field label{color:var(--color-text);margin-block-end:6px;font-size:12.5px;display:block}@supports (color:color-mix(in lab,red,red)){.field label{color:color-mix(in srgb,var(--color-text) 70%,transparent)}}.field input,.field textarea{border:1px solid var(--color-border);background:var(--color-text);border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-end-start-radius:var(--radius-md);width:100%;padding:11px 14px}@supports (color:color-mix(in lab,red,red)){.field input,.field textarea{background:color-mix(in srgb,var(--color-text) 3%,transparent)}}.field input,.field textarea{color:var(--color-text);font-family:inherit;font-size:14px;transition:border-color .16s ease-out}.field textarea{resize:vertical}.field input::placeholder,.field textarea::placeholder{color:var(--color-text)}@supports (color:color-mix(in lab,red,red)){.field input::placeholder,.field textarea::placeholder{color:color-mix(in srgb,var(--color-text) 62%,transparent)}}.field input:focus,.field textarea:focus{border-color:var(--color-accent)}.honeypot{width:1px;height:1px;position:absolute;inset-inline-start:-9999px;overflow:hidden}.form-status{border:1px solid var(--color-border);background:var(--color-text);border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-end-start-radius:var(--radius-md);margin:0;padding:10px 12px;font-size:13px;line-height:1.6}@supports (color:color-mix(in lab,red,red)){.form-status{background:color-mix(in srgb,var(--color-text) 4%,transparent)}}.form-status{color:var(--color-text)}@supports (color:color-mix(in lab,red,red)){.form-status{color:color-mix(in srgb,var(--color-text) 80%,transparent)}}.form-status--success{border-color:var(--color-tip)}@supports (color:color-mix(in lab,red,red)){.form-status--success{border-color:color-mix(in srgb,var(--color-tip) 45%,transparent)}}.form-status--success{color:var(--color-tip)}.form-status--error{border-color:var(--color-danger)}@supports (color:color-mix(in lab,red,red)){.form-status--error{border-color:color-mix(in srgb,var(--color-danger) 45%,transparent)}}.form-status--error{color:var(--color-danger)}.subscribe-status{color:#f3f5fe;background:#ffffff0f;border:1px solid #f3f5fe40;border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-end-start-radius:var(--radius-md);flex-basis:100%;margin:0;padding:10px 12px;font-size:13px;line-height:1.6}.subscribe-status--success{color:#4ade80;border-color:#4ade8073}@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:36px}}.prose{max-width:68ch;color:var(--color-text);font-size:var(--text-latin-lg);line-height:var(--leading-latin-lg)}.prose>*+*{margin-block-start:var(--spacing-6)}.prose h1{font-family:var(--font-display-latin);font-size:var(--text-latin-4xl);line-height:var(--leading-latin-4xl);margin-block-end:var(--spacing-8)}.prose h2,.prose h3{font-family:var(--font-display-latin);color:var(--color-text);scroll-margin-block-start:var(--spacing-20);position:relative}.prose h2{font-size:var(--text-latin-2xl);line-height:var(--leading-latin-2xl);margin-block-start:var(--spacing-12)}.prose h3{font-size:var(--text-latin-xl);line-height:var(--leading-latin-xl);margin-block-start:var(--spacing-10)}.prose .anchor{color:var(--color-text-muted);opacity:0;font-weight:400;text-decoration:none;transition:opacity .15s;position:absolute;inset-inline-start:-1.25em}.prose h2:hover .anchor,.prose h3:hover .anchor{opacity:1}.prose a.prose-link{color:var(--color-accent);text-underline-offset:.2em;text-decoration:underline}.prose a.prose-link:hover{text-decoration-thickness:2px}.prose strong{font-weight:600}.prose ul,.prose ol{padding-inline-start:var(--spacing-6)}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li{margin-block-start:var(--spacing-2)}.prose li::marker{color:var(--color-accent)}.prose img.img{border-start-start-radius:var(--spacing-2);border-start-end-radius:var(--spacing-2);border-end-end-radius:var(--spacing-2);border-end-start-radius:var(--spacing-2);width:100%;height:auto}.prose blockquote.blockquote{border-inline-start:4px solid var(--color-accent);color:var(--color-text-muted);margin-inline:0;padding-inline-start:var(--spacing-4);font-style:italic}.prose .table-scroll{overflow-x:auto}.prose table.table{border-collapse:collapse;width:100%;font-size:var(--text-latin-sm)}.prose table.table th,.prose table.table td{border:1px solid var(--color-border);padding-block:var(--spacing-2);padding-inline:var(--spacing-3);text-align:start}.prose table.table th{background-color:var(--color-surface);font-weight:600}.prose :not(pre)>code{font-family:var(--font-mono);background-color:var(--color-surface);border:1px solid var(--color-border);direction:ltr;unicode-bidi:isolate;border-start-start-radius:var(--spacing-1);border-start-end-radius:var(--spacing-1);border-end-end-radius:var(--spacing-1);border-end-start-radius:var(--spacing-1);padding-block:.1em;padding-inline:.35em;font-size:.85em}.code-block{margin-block:var(--spacing-6);border:1px solid var(--color-border);text-align:start;direction:ltr;border-start-start-radius:var(--spacing-2);border-start-end-radius:var(--spacing-2);border-end-end-radius:var(--spacing-2);border-end-start-radius:var(--spacing-2);overflow:hidden}.code-block__header{justify-content:space-between;align-items:center;gap:var(--spacing-4);padding-block:var(--spacing-2);padding-inline:var(--spacing-4);border-block-end:1px solid var(--color-border);background-color:var(--color-surface);font-family:var(--font-mono);font-size:var(--text-latin-xs);color:var(--color-text-muted);line-height:1.5;display:flex}.code-block__filename{color:var(--color-text);font-weight:500}.code-block__lang{text-transform:uppercase;letter-spacing:.06em}pre.shiki{padding:var(--spacing-4);font-family:var(--font-mono);font-size:var(--text-latin-sm);text-align:start;background-color:var(--shiki-light-bg);direction:ltr;margin:0;line-height:1.7;overflow-x:auto}pre.shiki code{font-family:inherit;font-size:inherit;line-height:inherit}.callout{margin-block:var(--spacing-6);border:1px solid var(--color-border);padding:var(--spacing-4);background-color:var(--color-surface);border-inline-start-width:4px;border-start-start-radius:var(--spacing-2);border-start-end-radius:var(--spacing-2);border-end-end-radius:var(--spacing-2);border-end-start-radius:var(--spacing-2)}.callout__title{margin:0 0 var(--spacing-2);font-weight:600}.callout--info{border-inline-start-color:var(--color-info)}.callout--warning{border-inline-start-color:var(--color-warning)}.callout--tip{border-inline-start-color:var(--color-tip)}.callout--danger{border-inline-start-color:var(--color-danger)}html[lang=fa] .hero-name-tag,html[lang=fa] .hero-name,html[lang=fa] .proj-hero h1,html[lang=fa] .contact-grid h1{letter-spacing:normal}}@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.isolate{isolation:isolate}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.table{display:table}.h-4{height:calc(var(--spacing) * 4)}.w-4{width:calc(var(--spacing) * 4)}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.scroll-mt-24{scroll-margin-top:calc(var(--spacing) * 24)}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.rounded-s-md{border-start-start-radius:var(--radius-md);border-end-start-radius:var(--radius-md)}.rounded-e-md{border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-border{border-color:var(--color-border)}.bg-surface-raised{background-color:var(--color-surface-raised)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-12{padding-block:calc(var(--spacing) * 12)}.text-end{text-align:end}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.font-display{font-family:var(--font-display-latin)}.text-3xl{font-size:var(--text-latin-3xl);line-height:var(--tw-leading,var(--leading-latin-3xl))}.text-sm{font-size:var(--text-latin-sm);line-height:var(--tw-leading,var(--leading-latin-sm))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-accent{color:var(--color-accent)}.text-text{color:var(--color-text)}.text-text-muted{color:var(--color-text-muted)}.lowercase{text-transform:lowercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.accent-text{accent-color:var(--color-text)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:text-accent:hover{color:var(--color-accent)}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:fixed:focus{position:fixed}.focus\:start-4:focus{inset-inline-start:calc(var(--spacing) * 4)}.focus\:top-4:focus{top:calc(var(--spacing) * 4)}.focus\:z-50:focus{z-index:50}.aria-disabled\:cursor-not-allowed[aria-disabled=true]{cursor:not-allowed}.aria-disabled\:opacity-60[aria-disabled=true]{opacity:.6}.rtl\:-scale-x-100:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-scale-x: -100% ;scale:var(--tw-scale-x) var(--tw-scale-y)}}.shiki,.shiki span{color:var(--shiki-light);background-color:var(--shiki-light-bg)}html.dark .shiki,html.dark .shiki span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;text-decoration:var(--shiki-dark-text-decoration)!important}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
