:root{color-scheme:light dark;--s-25: 2px;--s-50: 4px;--s-75: 8px;--s-100: 12px;--s-200: 16px;--s-300: 24px;--s-400: 32px;--s-500: 40px;--s-600: 48px;--s-700: 64px;--s-800: 80px;--s-900: 96px;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-2xl: 24px;--r-full: 9999px;--font: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Noto Sans Arabic", sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs: .75rem;--lh-xs: 1rem;--text-sm: .875rem;--lh-sm: 1.25rem;--text-base: 1rem;--lh-base: 1.5rem;--text-lg: 1.125rem;--lh-lg: 1.75rem;--text-xl: 1.25rem;--lh-xl: 1.75rem;--text-2xl: 1.5rem;--lh-2xl: 2rem;--text-3xl: 1.875rem;--lh-3xl: 2.25rem;--text-4xl: 2.25rem;--lh-4xl: 2.5rem;--text-5xl: 3rem;--lh-5xl: 1;--bg: #ffffff;--bg-2: #f6f7f9;--bg-3: #eceef2;--fg: #0f172a;--fg-2: #475569;--fg-3: #64748b;--line: #e2e8f0;--line-2: #cbd5e1;--accent: #b45309;--accent-ink: #ffffff;--accent-text: #9a4507;--focus: #2563eb;--ok-bg: #ecfdf5;--ok-fg: #065f46;--err-bg: #fef2f2;--err-fg: #991b1b;--shadow: 0 1px 2px rgb(15 23 42 / 6%), 0 8px 24px rgb(15 23 42 / 6%);--ease: cubic-bezier(.32, .72, 0, 1);--dur: .3s;--dur-slow: .5s;--max: 1120px;--gutter: 16px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #131209;--bg-2: #1f1f1f;--bg-3: #272727;--fg: #f1f5f9;--fg-2: #cbd5e1;--fg-3: #94a3b8;--line: #313131;--line-2: #3f3f3f;--accent: #f59e0b;--accent-ink: #131209;--accent-text: #f59e0b;--focus: #60a5fa;--ok-bg: #052e22;--ok-fg: #a7f3d0;--err-bg: #3b0a0a;--err-fg: #fecaca;--shadow: 0 1px 2px rgb(0 0 0 / 40%), 0 8px 24px rgb(0 0 0 / 40%)}}:root[data-theme=dark]{--bg: #131209;--bg-2: #1f1f1f;--bg-3: #272727;--fg: #f1f5f9;--fg-2: #cbd5e1;--fg-3: #94a3b8;--line: #313131;--line-2: #3f3f3f;--accent: #f59e0b;--accent-ink: #131209;--accent-text: #f59e0b;--focus: #60a5fa;--ok-bg: #052e22;--ok-fg: #a7f3d0;--err-bg: #3b0a0a;--err-fg: #fecaca;--shadow: 0 1px 2px rgb(0 0 0 / 40%), 0 8px 24px rgb(0 0 0 / 40%)}@media(min-width:640px){:root{--gutter: 24px}}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font);font-size:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--s-700)}body{margin:0;background:var(--bg);color:var(--fg);font-size:var(--text-base);line-height:var(--lh-base);overflow-x:hidden;-webkit-font-smoothing:antialiased;text-wrap:pretty}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.2;text-wrap:balance;letter-spacing:-.01em}p{margin:0}a{color:inherit;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:.15em;transition:text-decoration-color var(--dur) var(--ease)}a:hover{text-decoration-color:currentColor}img,video{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}code,pre{font-family:var(--mono);font-size:.9em}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:var(--s-75);left:var(--s-75);z-index:100;padding:var(--s-75) var(--s-100);background:var(--fg);color:var(--bg);border-radius:var(--r-md);transform:translateY(-200%);transition:transform var(--dur) var(--ease)}.skip-link:focus{transform:translateY(0)}.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:var(--s-700)}.section+.section{padding-top:0}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-200);margin-bottom:var(--s-300)}.section-head h2{font-size:var(--text-2xl);line-height:var(--lh-2xl)}.section-head .more{font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--fg-2);white-space:nowrap}.lede{color:var(--fg-2);font-size:var(--text-lg);line-height:var(--lh-lg);max-width:680px}.muted{color:var(--fg-3)}.small{font-size:var(--text-sm);line-height:var(--lh-sm)}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s-200);min-height:56px}.brand{font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:var(--s-75)}.brand-mark{width:24px;height:24px;border-radius:var(--r-md);background:var(--accent);display:inline-block}.site-nav{display:flex;gap:var(--s-50);overflow-x:auto;scrollbar-width:none}@media(width<=480px){.site-nav a[href$="#contact"]{display:none}}.site-nav::-webkit-scrollbar{display:none}.site-nav a{padding:var(--s-50) var(--s-100);border-radius:var(--r-full);text-decoration:none;font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--fg-2);white-space:nowrap;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.site-nav a:hover{background:var(--bg-2);color:var(--fg)}.site-nav a[aria-current=page]{background:var(--bg-3);color:var(--fg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-75);padding:var(--s-75) var(--s-200);border-radius:var(--r-md);border:1px solid transparent;font-size:var(--text-base);line-height:var(--lh-base);font-weight:600;text-decoration:none;cursor:pointer;transition:transform var(--dur) var(--ease),background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.btn:active{transform:scale(.98)}.btn-primary{background:var(--fg);color:var(--bg)}.btn-primary:hover{background:color-mix(in srgb,var(--fg) 85%,var(--bg))}.btn-secondary{background:transparent;color:var(--fg);border-color:var(--line-2)}.btn-secondary:hover{background:var(--bg-2)}.btn-sm{padding:var(--s-50) var(--s-100);font-size:var(--text-sm);line-height:var(--lh-sm)}.btn[disabled],.btn[aria-disabled=true]{opacity:.6;cursor:not-allowed;transform:none}.hero{padding-block:var(--s-800) var(--s-700)}.hero h1{font-size:var(--text-4xl);line-height:var(--lh-4xl);max-width:680px}.hero .lede{margin-top:var(--s-200)}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--s-100);margin-top:var(--s-400)}.hero-proof{margin-top:var(--s-400);display:flex;flex-wrap:wrap;gap:var(--s-100) var(--s-300);color:var(--fg-3);font-size:var(--text-sm);line-height:var(--lh-sm)}.hero-proof strong{color:var(--fg);font-weight:600}@media(min-width:768px){.hero h1{font-size:var(--text-5xl);line-height:1.05}}.badge{display:inline-flex;align-items:center;gap:var(--s-50);padding:var(--s-25) var(--s-75);border-radius:var(--r-full);font-size:var(--text-xs);line-height:var(--lh-xs);font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:var(--bg-3);color:var(--fg-2);white-space:nowrap}.badge-dot:before{content:"";width:6px;height:6px;border-radius:var(--r-full);background:currentColor}.badge-stage-live,.badge-stage-done{background:var(--ok-bg);color:var(--ok-fg)}.badge-stage-building,.badge-stage-beta,.badge-stage-closed_test{background:color-mix(in srgb,var(--accent) 16%,var(--bg));color:var(--accent-text)}.badge-on-cover{background:#ffffffd9;color:#0f172a}.chips{display:flex;flex-wrap:wrap;gap:var(--s-50);padding:0;margin:0;list-style:none}.chip{padding:var(--s-25) var(--s-75);border:1px solid var(--line);border-radius:var(--r-full);font-size:var(--text-xs);line-height:var(--lh-xs);color:var(--fg-2);background:var(--bg)}.grid{display:grid;gap:var(--s-200);grid-template-columns:1fr}@media(min-width:640px){.grid{grid-template-columns:repeat(2,1fr);gap:var(--s-300)}}@media(min-width:1024px){.grid-3{grid-template-columns:repeat(3,1fr)}}.card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--bg);overflow:hidden;text-decoration:none;color:inherit;transition:transform var(--dur-slow) var(--ease),box-shadow var(--dur-slow) var(--ease),border-color var(--dur-slow) var(--ease)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--line-2)}.card:active{transform:translateY(0)}.card-cover{position:relative;aspect-ratio:16 / 9;background:var(--bg-3);overflow:hidden}.card-cover img{width:100%;height:100%;object-fit:cover}.card-cover .badge{position:absolute;top:var(--s-100);left:var(--s-100)}.card-cover-gradient{display:flex;align-items:flex-end;padding:var(--s-200);background:linear-gradient(135deg,var(--c1) 0%,var(--c2) 100%);color:var(--ink)}.card-cover-gradient .card-cover-name{font-size:var(--text-2xl);line-height:var(--lh-2xl);font-weight:600;letter-spacing:-.02em;text-wrap:balance}.card-body{display:flex;flex-direction:column;gap:var(--s-75);padding:var(--s-200);flex:1;border-top:3px solid var(--c1, var(--line))}.card-title{font-size:var(--text-lg);line-height:var(--lh-lg)}.card-text{color:var(--fg-2);font-size:var(--text-sm);line-height:var(--lh-sm)}.card-meta{margin-top:auto;padding-top:var(--s-75);display:flex;flex-wrap:wrap;gap:var(--s-50) var(--s-100);font-size:var(--text-xs);line-height:var(--lh-xs);color:var(--fg-3)}.card-meta .kind{font-weight:600;color:var(--fg-2)}.card-play{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.card-play span{width:48px;height:48px;border-radius:var(--r-full);background:#ffffffe5;color:#0f172a;display:grid;place-items:center;box-shadow:var(--shadow)}.rows{display:flex;flex-direction:column;border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:1fr;gap:var(--s-100);padding:var(--s-200) 0;border-bottom:1px solid var(--line)}@media(min-width:640px){.row{grid-template-columns:112px 1fr;gap:var(--s-200)}}.row-thumb{aspect-ratio:16 / 9;border-radius:var(--r-md);background:var(--bg-3);overflow:hidden;max-width:200px}.row-thumb img{width:100%;height:100%;object-fit:cover}.row-title{font-size:var(--text-base);line-height:var(--lh-base);font-weight:600}.row-title a{text-decoration:none}.row-title a:hover{text-decoration:underline}.row-summary{color:var(--fg-2);font-size:var(--text-sm);line-height:var(--lh-sm);margin-top:var(--s-25)}.row-meta{margin-top:var(--s-50);display:flex;flex-wrap:wrap;gap:var(--s-50) var(--s-100);font-size:var(--text-xs);line-height:var(--lh-xs);color:var(--fg-3)}.row-meta .project-dot{display:inline-flex;align-items:center;gap:var(--s-50)}.project-dot:before{content:"";width:8px;height:8px;border-radius:var(--r-full);background:var(--c1, var(--accent));border:1px solid var(--line-2)}.tabs{display:flex;gap:var(--s-50);overflow-x:auto;padding-bottom:var(--s-50);margin-bottom:var(--s-300);scrollbar-width:none}.tabs a{padding:var(--s-50) var(--s-100);border:1px solid var(--line);border-radius:var(--r-full);text-decoration:none;font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--fg-2);white-space:nowrap;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.tabs a:hover{background:var(--bg-2)}.tabs a[aria-current=page]{background:var(--fg);color:var(--bg);border-color:var(--fg)}.services{display:grid;gap:var(--s-200);grid-template-columns:1fr}@media(min-width:768px){.services{grid-template-columns:repeat(3,1fr);gap:var(--s-300)}}.service{padding:var(--s-300);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--bg-2)}.service h3{font-size:var(--text-lg);line-height:var(--lh-lg);margin-bottom:var(--s-75)}.service p{color:var(--fg-2);font-size:var(--text-sm);line-height:var(--lh-sm)}.service-index{display:inline-block;font-family:var(--mono);font-size:var(--text-xs);color:var(--accent);margin-bottom:var(--s-100)}.project-head{padding-block:var(--s-700) var(--s-500);border-bottom:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--c1) 10%,var(--bg)) 0%,var(--bg) 100%)}.project-head h1{font-size:var(--text-4xl);line-height:var(--lh-4xl);margin-top:var(--s-100)}.project-head .lede{margin-top:var(--s-100)}.project-pitch{margin-top:var(--s-200);max-width:680px;color:var(--fg-2)}.project-links{display:flex;flex-wrap:wrap;gap:var(--s-100);margin-top:var(--s-300)}.project-head .chips{margin-top:var(--s-300)}.project-stats{display:flex;flex-wrap:wrap;gap:var(--s-100) var(--s-300);margin-top:var(--s-300);font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--fg-3)}.project-stats strong{color:var(--fg);font-weight:600}.eyebrow{display:inline-flex;align-items:center;gap:var(--s-100);font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--fg-3)}.eyebrow a{text-decoration:none}.eyebrow a:hover{text-decoration:underline}.timeline{position:relative;display:flex;flex-direction:column;gap:var(--s-500)}.tl-month{display:grid;grid-template-columns:1fr;gap:var(--s-200)}@media(min-width:768px){.tl-month{grid-template-columns:160px 1fr;gap:var(--s-400)}}.tl-month-label{font-size:var(--text-sm);line-height:var(--lh-sm);font-weight:600;color:var(--fg-3);position:sticky;top:72px;align-self:start}.tl-items{display:flex;flex-direction:column;gap:var(--s-300);border-left:2px solid var(--line);padding-left:var(--s-300)}.tl-item{position:relative;scroll-margin-top:var(--s-800)}.tl-item:before{content:"";position:absolute;left:calc(-1 * var(--s-300) - 7px);top:6px;width:12px;height:12px;border-radius:var(--r-full);background:var(--bg);border:3px solid var(--c1, var(--accent))}.tl-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-75);font-size:var(--text-xs);line-height:var(--lh-xs);color:var(--fg-3)}.tl-title{font-size:var(--text-lg);line-height:var(--lh-lg);margin-top:var(--s-50)}.tl-title a{text-decoration:none}.tl-title a:hover{text-decoration:underline}.tl-text{margin-top:var(--s-75);color:var(--fg-2);white-space:pre-line}.tl-text[dir=rtl]{text-align:right}.tl-media{margin-top:var(--s-200);display:grid;gap:var(--s-100)}.tl-links{margin-top:var(--s-100);display:flex;flex-wrap:wrap;gap:var(--s-100) var(--s-200);font-size:var(--text-sm);line-height:var(--lh-sm)}.media{margin:0;border-radius:var(--r-lg);overflow:hidden;background:var(--bg-3);border:1px solid var(--line)}.media img,.media video{width:100%;height:auto}.media video{aspect-ratio:16 / 9;background:#000}.media a{display:block}.prose,.tl-text,.row-summary,.card-text{overflow-wrap:anywhere}.prose table{display:block;max-width:100%;overflow-x:auto}.media-unsized img,.media-unsized video{aspect-ratio:16 / 9;object-fit:cover}.media figcaption{padding:var(--s-75) var(--s-100);font-size:var(--text-xs);line-height:var(--lh-xs);color:var(--fg-3);border-top:1px solid var(--line)}.media-pdf{display:flex;align-items:center;gap:var(--s-100);padding:var(--s-200);text-decoration:none;font-size:var(--text-sm)}.media-portrait{max-width:360px}.gallery{display:grid;gap:var(--s-200);grid-template-columns:1fr}@media(min-width:640px){.gallery{grid-template-columns:repeat(2,1fr)}}.article-head{padding-block:var(--s-700) var(--s-400);max-width:760px}.article-head h1{font-size:var(--text-4xl);line-height:var(--lh-4xl);margin-top:var(--s-200)}.article-head .lede{margin-top:var(--s-200)}.article-meta{margin-top:var(--s-300);display:flex;flex-wrap:wrap;gap:var(--s-75) var(--s-200);font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--fg-3)}.article-cover{max-width:960px;margin-bottom:var(--s-500)}.prose{max-width:720px;font-size:var(--text-lg);line-height:var(--lh-lg)}.prose[dir=rtl]{text-align:right;line-height:1.8}.prose>*+*{margin-top:var(--s-300)}.prose h2{font-size:var(--text-2xl);line-height:var(--lh-2xl);margin-top:var(--s-500)}.prose h3{font-size:var(--text-xl);line-height:var(--lh-xl);margin-top:var(--s-400)}.prose ul,.prose ol{padding-inline-start:var(--s-300)}.prose li+li{margin-top:var(--s-75)}.prose a{color:var(--accent)}.prose img{border-radius:var(--r-lg)}.prose blockquote{margin:0;padding-inline-start:var(--s-200);border-inline-start:3px solid var(--line-2);color:var(--fg-2)}.prose pre{padding:var(--s-200);background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);overflow-x:auto;font-size:var(--text-sm);line-height:var(--lh-sm)}.prose :not(pre)>code{padding:var(--s-25) var(--s-50);background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm)}.prose table{width:100%;border-collapse:collapse;font-size:var(--text-base);line-height:var(--lh-base)}.prose th,.prose td{text-align:start;padding:var(--s-75) var(--s-100);border-bottom:1px solid var(--line)}.prose th{font-weight:600}.prose hr{border:0;border-top:1px solid var(--line)}.contact{display:grid;gap:var(--s-400);grid-template-columns:1fr}@media(min-width:900px){.contact{grid-template-columns:1fr 1.4fr;gap:var(--s-700)}}.contact-intro h2{font-size:var(--text-3xl);line-height:var(--lh-3xl)}.contact-intro p{margin-top:var(--s-200);color:var(--fg-2)}.contact-intro .btn{margin-top:var(--s-300)}.form{display:grid;gap:var(--s-200);padding:var(--s-300);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--bg-2)}@media(min-width:640px){.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-200)}}.field{display:grid;gap:var(--s-50)}.field label{font-size:var(--text-sm);line-height:var(--lh-sm);font-weight:600}.field input,.field select,.field textarea{width:100%;padding:var(--s-75) var(--s-100);border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--bg);transition:border-color var(--dur) var(--ease)}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--fg-3)}.field textarea{min-height:140px;resize:vertical}.field .hint{font-size:var(--text-xs);line-height:var(--lh-xs);color:var(--fg-2)}.field input:user-invalid,.field textarea:user-invalid{border-color:var(--err-fg)}.form-status:empty{display:none}.form-status{padding:var(--s-100) var(--s-200);border-radius:var(--r-md);font-size:var(--text-sm);line-height:var(--lh-sm)}.form-status[hidden]{display:none}.form-status.ok{background:var(--ok-bg);color:var(--ok-fg)}.form-status.err{background:var(--err-bg);color:var(--err-fg)}.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.site-footer{margin-top:var(--s-800);padding-block:var(--s-500);border-top:1px solid var(--line);color:var(--fg-3);font-size:var(--text-sm);line-height:var(--lh-sm)}.site-footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-200) var(--s-400)}.socials{display:flex;flex-wrap:wrap;gap:var(--s-100) var(--s-200);padding:0;margin:0;list-style:none}.socials a{text-decoration:none}.socials a:hover{text-decoration:underline;color:var(--fg)}.empty{padding:var(--s-500) var(--s-300);border:1px dashed var(--line-2);border-radius:var(--r-xl);text-align:center;color:var(--fg-2)}.empty a{color:var(--fg)}.showcase-stage{margin-block:var(--s-400)}.showcase-stage .media{border-radius:var(--r-xl)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}:root{--dur: .01ms;--dur-slow: .01ms}}
