:root{--size-gallery-column-min:240px;--control-compact-height:34px;--content-footer-column-min:180px;--radius-signature:9.5px;--duration-border-spin:3s;--tracking-impact:.04em;--opacity-control-disabled:.72;--content-photo-width:480px;--content-lightbox-width:1000px;--font-size-hero-title:clamp(44px, 7vw, 88px);--font-size-case-title:clamp(40px, 6vw, 80px);--font-size-case-lede:clamp(17px, 1.4vw, 21px);--radius-cover:10px;--size-portrait-wrapper:590px;--control-hit-area:44px;--control-copy-size:36px;--control-padding-block:10px;--control-padding-inline:14px;--control-padding-roomy:18px;--control-copy-reserve:56px;--space-compact:6px;--space-micro:2px;--space-tag-block:3px;--space-tag-inline:9px;--space-tag-cover-block:5px;--content-reading-width:640px;--content-answer-width:720px;--content-about-width:1040px;--content-about-column:560px;--content-consent-width:580px;--content-footer-summary:360px;--font-size-page-title:clamp(32px, 4.6vw, 56px);--font-size-lede:clamp(17px, 1.6vw, 21px);--font-size-prose:clamp(16px, 1.25vw, 19px);--font-size-case-heading:clamp(26px, 2.6vw, 34px);--font-size-case-subheading:clamp(19px, 1.5vw, 22px);--font-size-quote:clamp(18px, 1.5vw, 22px);--font-size-case-featured:clamp(24px, 2.6vw, 32px);--font-size-case-card:22px;--tracking-label:.08em;--tracking-label-compact:.06em;--tracking-display:-.04em;--tracking-heading:-.02em;--tracking-card:-.025em;--tracking-body-tight:-.01em;--z-component-cover:1;--z-component-content:2;--z-component-action:3;--z-site-menu:60;--z-consent:10000;--ask-response-min-height:288px;--size-window-dot:6px;--size-window-bar:20px;--scroll-margin-heading:88px;--border-signature-width:1.5px;--color-window-close:rgba(255,95,86,var(--opacity-95));--color-window-minimize:rgba(255,189,46,var(--opacity-95));--color-window-expand:rgba(39,201,63,var(--opacity-95));--opacity-control-hover:.86;--easing-case-cover:cubic-bezier(.22,1,.36,1);--duration-filter:.24s;--color-omar-black:#171717;--color-white:#fff;--color-ship-red:#ff5b4f;--color-preview-pink:#de1d8d;--color-develop-blue:#0a72ef;--color-link:#0072f5;--color-focus:#0072f5;--color-status-online:#22c55e;--color-gray-900:#171717;--color-gray-600:#4d4d4d;--color-gray-500:#666;--color-gray-400:gray;--color-gray-100:#ebebeb;--color-gray-50:#fafafa;--fg-primary:var(--color-omar-black);--fg-secondary:var(--color-gray-600);--fg-tertiary:var(--color-gray-500);--fg-disabled:var(--color-gray-400);--fg-on-dark:var(--color-white);--bg-page:var(--color-white);--bg-subtle:var(--color-gray-50);--shadow-card-subtle:#00000014 0px 0px 0px 1px, #0000000a 0px 2px 2px;--shadow-card-full:#00000014 0px 0px 0px 1px, #0000000a 0px 2px 2px, #0000000a 0px 8px 8px -8px, #fafafa 0px 0px 0px 1px;--shadow-ring:inset 0 0 0 1px #7f7f7f2e;--font-sans:"Geist", Arial, sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--layout-1:48px;--layout-2:64px;--layout-3:96px;--layout-4:120px;--opacity-5:.05;--opacity-8:.08;--opacity-10:.1;--opacity-12:.12;--opacity-16:.16;--opacity-18:.18;--opacity-22:.22;--opacity-26:.26;--opacity-28:.28;--opacity-32:.32;--opacity-35:.35;--opacity-42:.42;--opacity-45:.45;--opacity-55:.55;--opacity-60:.6;--opacity-68:.68;--opacity-95:.95;--radius-micro:2px;--radius-subtle:4px;--radius-standard:6px;--radius-comfort:8px;--radius-image:12px;--radius-large:14px;--radius-xl:16px;--radius-circle:9999px;--duration-fast:.15s;--duration-fastest:.12s;--duration-fast-mid:.16s;--duration-fast-plus:.18s;--duration-base-short:.2s;--duration-base:.22s;--duration-base-plus:.25s;--duration-base-plus-xl:.26s;--duration-slow:.3s;--duration-slower:.32s;--duration-slowest:.34s;--duration-slowest-xl:.36s;--duration-very-slow:.4s;--duration-slower-xl:.5s;--duration-slowest-xxl:.6s;--easing-ease-out:cubic-bezier(.16, 1, .3, 1);--easing-ease-in-out:cubic-bezier(.4, 0, .2, 1);--easing-ease-linear:linear;--easing-ease-out-bouncy:cubic-bezier(.34, 1.56, .64, 1);--duration-nav:.52s;--z-base:0;--z-dropdown:10;--z-sticky:20;--z-fixed:50;--z-modal-backdrop:100;--z-modal:101;--z-popover:102;--z-tooltip:103;--z-critical:9999;--blur-subtle:blur(4px);--blur-base:blur(6px);--blur-medium:blur(10px);--blur-strong:blur(12px);--blur-heavy:blur(16px);--gradient-hero-radial-blur:radial-gradient(circle at 50% 38%, color-mix(in srgb, #fff2d8 82%, var(--color-preview-pink) 18%) 0%, color-mix(in srgb, #fff4e6 76%, var(--color-ship-red) 24%) 34%, color-mix(in srgb, #f6f7ff 80%, var(--color-develop-blue) 20%) 72%, #fff0 100%);--gradient-hero-overlay-pink:radial-gradient(circle, color-mix(in srgb, var(--color-preview-pink) 22%, white) 0%, #fff0 72%);--gradient-mask-fade-vertical:linear-gradient(to bottom, #000 0%, #000 62%, #0009 82%, #0000 100%);--gradient-overlay-diagonal:linear-gradient(155deg, color-mix(in srgb, var(--color-preview-pink) 10%, transparent) 0%, transparent 34%, color-mix(in srgb, var(--color-develop-blue) 11%, transparent) 67%, color-mix(in srgb, var(--color-ship-red) 10%, transparent) 100%);--font-size-display-lg:88px;--font-size-display-md:44px;--font-size-display-sm:32px;--font-size-heading-xl:40px;--font-size-heading-lg:24px;--font-size-heading-md:20px;--font-size-heading-sm:16px;--font-size-body-xl:18px;--font-size-body-lg:16px;--font-size-body-md:14px;--font-size-body-sm:12px;--font-size-body-xs:13px;--font-size-body-micro:10px;--font-size-label-lg:14px;--font-size-label-md:12px;--font-size-label-sm:11px;--font-size-mono-lg:14px;--font-size-mono-md:12px;--font-size-mono-sm:11px;--font-size-mono-xs:13px;--font-size-mono-micro:10px;--font-size-xs:13px;--font-size-micro:10px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:.96;--line-height-semi-tight:.98;--line-height-solid:1;--line-height-compact:1.05;--line-height-snug:1.15;--line-height-snug-plus:1.2;--line-height-card:1.25;--line-height-normal:1.33;--line-height-medium:1.4;--line-height-button:1.43;--line-height-relaxed:1.5;--line-height-relaxed-plus:1.55;--line-height-relaxed-mid:1.56;--line-height-relaxed-xl:1.6;--line-height-loose:1.65;--line-height-looser:1.8}[data-theme=dark]{--color-gray-900:#ededed;--color-gray-600:#a1a1a1;--color-gray-500:#8f8f8f;--color-gray-400:#7e7e7e;--color-gray-100:#2e2e2e;--color-gray-50:#1a1a1a;--bg-page:#0a0a0a;--bg-subtle:#1a1a1a;--fg-primary:#ededed;--fg-secondary:#a1a1a1;--fg-tertiary:#8f8f8f;--fg-disabled:#5a5a5a;--fg-on-dark:#0a0a0a;--color-ship-red:#ff6b60;--color-preview-pink:#ff3da0;--color-develop-blue:#3291ff;--shadow-card-subtle:#ffffff1f 0px 0px 0px 1px, #0006 0px 2px 2px;--shadow-card-full:#ffffff1f 0px 0px 0px 1px, #0006 0px 2px 2px, #0009 0px 8px 8px -8px, #ffffff0a 0px 0px 0px 1px inset;--shadow-ring:inset 0 0 0 1px #ffffff1f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.text-link{align-items:center;gap:var(--space-2);width:fit-content;font-family:inherit;font-size:var(--font-size-body-md);font-weight:var(--font-weight-medium);line-height:var(--line-height-medium);color:var(--fg-secondary);cursor:pointer;transition:color var(--duration-fast-mid) ease, transform var(--duration-fast-mid) ease;background:0 0;border:none;padding:0;text-decoration:none;display:inline-flex}.text-link:hover{color:var(--fg-primary);transform:translate(4px)}@keyframes navShapeBounce{0%{transform:translateY(0)}22%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-52%)}40%{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateY(0)}54%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-22%)}68%{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateY(0)}79%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-8%)}88%{transform:translateY(0)}to{transform:translateY(0)}}@property --contact-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes contact-border-spin{to{--contact-angle:360deg}}@keyframes hintPulse{0%,to{opacity:.28}50%{opacity:.5}}.contact-card{position:relative}.contact-card:before{pointer-events:none;content:"";inset:calc(-1 * var(--border-signature-width));border-radius:var(--radius-signature);background:conic-gradient(from var(--contact-angle), var(--color-ship-red), var(--color-preview-pink), var(--color-develop-blue), var(--color-ship-red));opacity:0;transition:opacity var(--duration-slow) ease;animation:contact-border-spin var(--duration-border-spin) linear infinite;z-index:var(--z-base);position:absolute}.contact-card:after{pointer-events:none;content:"";border-radius:var(--radius-comfort);background:var(--bg-page);z-index:var(--z-component-cover);position:absolute;inset:0}.contact-card>span{pointer-events:none;z-index:var(--z-component-content);position:relative}.contact-card:hover:before{opacity:1}.ask-field{isolation:isolate;border-radius:var(--radius-standard);position:relative}.ask-field:before{content:"";inset:calc(-1 * var(--border-signature-width));border-radius:calc(var(--radius-standard) + var(--border-signature-width));background:conic-gradient(from var(--contact-angle), var(--color-ship-red), var(--color-preview-pink), var(--color-develop-blue), var(--color-ship-red));z-index:var(--z-base);position:absolute}.ask-field:after{content:"";border-radius:var(--radius-standard);background:var(--bg-page);z-index:var(--z-component-cover);position:absolute;inset:0}.ask-field>input{z-index:var(--z-component-content);position:relative}.ask-field:hover:before,.ask-field:focus-within:before{animation:contact-border-spin var(--duration-border-spin) linear infinite}.case-card{transition:transform var(--duration-base) ease}.case-card-media{isolation:isolate}.case-card-screen{transition:transform var(--duration-slowest-xl) var(--easing-case-cover), box-shadow var(--duration-slowest-xl) ease, filter var(--duration-filter) ease;will-change:transform}.case-card-line,.case-card-tag,.case-card-sheen{transition:transform var(--duration-slower) var(--easing-case-cover), opacity var(--duration-base) ease, background var(--duration-fast-plus) ease}.case-card-sheen{z-index:var(--z-component-cover);opacity:0;pointer-events:none;background:linear-gradient(110deg,#0000 8%,#fff0 36%,#ffffff2e 50%,#fff0 64%,#0000 92%);position:absolute;inset:-10% 30% 0 -34%;transform:translate(-12%)rotate(-8deg)}.case-card:hover{transform:translateY(-3px)}.case-card:hover .case-card-screen{filter:saturate(1.06);transform:translateY(-9px)scale(1.025);box-shadow:0 -1px #ffffff1f,0 30px 70px #0000006b}.case-card:hover .case-card-sheen{opacity:1;transform:translate(34%)rotate(-8deg)}.case-card:hover .case-card-line--full{transform:translate(10px)}.case-card:hover .case-card-line--left{transform:translate(16px)}.case-card:hover .case-card-line--right{transform:translate(8px)}.case-card:hover .case-card-tag{background:#0000006b;transform:translateY(-2px)}.ds-button,.ds-icon-button,.ds-copy-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-hit-area);border-radius:var(--radius-standard);font-family:inherit;font-size:var(--font-size-body-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--duration-fast) ease, color var(--duration-fast) ease, opacity var(--duration-fast) ease, transform var(--duration-fast) ease;border:0;text-decoration:none;display:inline-flex}.ds-button{padding:var(--control-padding-block) var(--space-4)}.ds-button--primary{background:var(--fg-primary);color:var(--bg-page)}.ds-button--secondary{color:var(--fg-primary);box-shadow:inset 0 0 0 1px var(--color-gray-100);background:0 0}.ds-button--quiet{color:var(--fg-secondary);background:0 0}.ds-button:hover,.ds-icon-button:hover,.ds-copy-button:hover{transform:translateY(-1px)}.ds-button--primary:hover{opacity:var(--opacity-control-hover)}.ds-button--secondary:hover,.ds-icon-button:hover,.ds-copy-button:hover{background:var(--bg-subtle)}.ds-button[disabled]{color:var(--fg-disabled);background:var(--bg-subtle);cursor:not-allowed;opacity:var(--opacity-control-disabled)}.ds-icon-button{width:var(--control-hit-area);min-width:var(--control-hit-area);border-radius:var(--radius-circle);color:var(--fg-primary);box-shadow:inset 0 0 0 1px var(--color-gray-100);background:0 0;padding:0}.ds-copy-button{min-height:var(--control-compact-height);padding:var(--space-compact) var(--control-padding-block);color:var(--fg-secondary);box-shadow:inset 0 0 0 1px var(--color-gray-100);font-family:var(--font-mono);font-size:var(--font-size-mono-sm);background:0 0}@media (prefers-reduced-motion:reduce){.contact-card *,.case-card *,.ds-button,.ds-icon-button,.ds-copy-button{transition:none!important;animation:none!important}.contact-card:before,.ask-field:before{animation:none!important}.case-card:hover,.case-card:hover .case-card-screen,.case-card:hover .case-card-line,.case-card:hover .case-card-tag,.case-card:hover .case-card-sheen,.ds-button:hover,.ds-icon-button:hover,.ds-copy-button:hover,.text-link:hover{transform:none}.case-card:hover .case-card-sheen{opacity:0}}.site-footer-grid{grid-template-columns:minmax(0, 1.35fr) minmax(var(--content-footer-column-min), .85fr) minmax(var(--content-footer-column-min), .85fr);gap:var(--layout-1) var(--layout-2);display:grid}.site-footer-block{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}@media (width<=900px){.site-footer-grid{gap:var(--layout-1) var(--layout-1);grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer-brand{grid-column:1/-1}}@media (width<=600px){.site-footer-grid{gap:var(--layout-1);grid-template-columns:minmax(0,1fr)}}.github-contributions{--github-cell-size:12px;--github-cell-gap:3px;--github-level-0:color-mix(in oklab, var(--fg-primary) 9%, var(--bg-subtle));--github-level-1:color-mix(in oklab, var(--color-status-online) 30%, var(--bg-subtle));--github-level-2:color-mix(in oklab, var(--color-status-online) 52%, var(--bg-subtle));--github-level-3:color-mix(in oklab, var(--color-status-online) 76%, var(--bg-subtle));--github-level-4:var(--color-status-online);margin-top:var(--layout-1);padding:var(--space-7);border-radius:var(--radius-image);background:var(--bg-subtle);box-shadow:var(--shadow-card-subtle);color:var(--fg-primary)}.github-contributions-visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.github-contributions-header{justify-content:space-between;align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-7);display:flex}.github-contributions-eyebrow{margin:0 0 var(--space-3);color:var(--fg-tertiary);font-family:var(--font-mono);font-size:var(--font-size-label-sm);letter-spacing:.08em;text-transform:uppercase}.github-contributions h3{max-width:720px;color:var(--fg-primary);font-size:clamp(22px,2.6vw,32px);font-weight:var(--font-weight-medium);letter-spacing:-.025em;line-height:var(--line-height-compact);margin:0}.github-contributions-link{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);box-shadow:inset 0 0 0 1px var(--color-gray-100);border-radius:var(--radius-standard);color:var(--fg-primary);font-family:var(--font-sans);font-size:var(--font-size-body-md);font-weight:var(--font-weight-medium);transition:background var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) ease;flex:none;text-decoration:none;display:inline-flex}.github-contributions-link:hover{background:color-mix(in oklab, var(--fg-primary) 6%, transparent);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--fg-primary) 28%, var(--color-gray-100));transform:translateY(-1px)}.github-contributions-link:focus-visible,.github-contributions-scroll:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.github-contributions-scroll{max-width:100%;padding:var(--space-2) 0 var(--space-3);border-top:1px solid var(--color-gray-100);overscroll-behavior-inline:contain;overflow:auto hidden}.github-contributions-calendar{width:max-content;min-width:100%;padding-top:var(--space-4)}.github-contributions-months,.github-contributions-row{align-items:center;column-gap:var(--github-cell-gap);display:grid}.github-contributions-months{height:20px;color:var(--fg-tertiary);font-family:var(--font-mono);font-size:var(--font-size-body-micro);line-height:1}.github-contributions-months span{white-space:nowrap;overflow:hidden}.github-contributions-grid{gap:var(--github-cell-gap);display:grid}.github-contributions-day-label{color:var(--fg-tertiary);font-family:var(--font-mono);font-size:var(--font-size-body-micro);line-height:1}.github-contributions-day,.github-contributions-day-placeholder{width:var(--github-cell-size);height:var(--github-cell-size);border-radius:var(--radius-micro);display:block}.github-contributions-day[data-level="0"]{background:var(--github-level-0)}.github-contributions-day[data-level="1"]{background:var(--github-level-1)}.github-contributions-day[data-level="2"]{background:var(--github-level-2)}.github-contributions-day[data-level="3"]{background:var(--github-level-3)}.github-contributions-day[data-level="4"]{background:var(--github-level-4)}.github-contributions-meta{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-3);color:var(--fg-tertiary);font-family:var(--font-mono);font-size:var(--font-size-body-micro);line-height:var(--line-height-relaxed);display:flex}.github-contributions-legend{align-items:center;gap:var(--space-2);display:flex}.github-contributions-legend .github-contributions-day{--github-cell-size:10px}.github-contributions-skeleton{min-height:176px;padding-top:var(--space-5);border-top:1px solid var(--color-gray-100)}.github-contributions-skeleton-heading{width:min(280px,62%);height:12px;margin-bottom:var(--space-5);border-radius:var(--radius-subtle);background:var(--github-level-0)}.github-contributions-skeleton-grid{grid-template-columns:repeat(14,10px);gap:4px;display:grid}.github-contributions-skeleton-grid span{border-radius:var(--radius-micro);background:var(--github-level-0);width:10px;height:10px}.github-contributions-error{min-height:128px;padding-top:var(--space-5);border-top:1px solid var(--color-gray-100);color:var(--fg-tertiary);font-size:var(--font-size-body-md);line-height:var(--line-height-loose);margin:0}@media (width<=600px){.github-contributions{--github-cell-size:10px;padding:var(--space-5)}.github-contributions-header{margin-bottom:var(--space-5);flex-direction:column}.github-contributions-link{align-self:flex-start}.github-contributions-calendar{min-width:max-content}.github-contributions-meta{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.github-contributions-link{transition:none}.github-contributions-link:hover{transform:none}}
