@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-latin-400-normal-DTRLJnHl.woff2)format("woff2"),url(/assets/geist-mono-latin-400-normal-B2yvC1Cq.woff)format("woff")}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}:root{--font-display:"Geist Variable", sans-serif;--font-body:"Geist Variable", sans-serif;--font-mono:"Geist Mono", monospace;--color-paper:oklch(100% 0 0);--color-ink:oklch(16% 0 0);--color-muted:oklch(45% 0 0);--color-subtle:oklch(53% 0 0);--color-surface:oklch(97.6% 0 0);--color-rule:oklch(91% 0 0);--color-accent:oklch(69% .18 153);--color-focus:oklch(43% .12 153);--color-green-ink:oklch(34% .06 153);--color-green-paper:oklch(94% .025 153);--color-orange:oklch(70% .18 42);--color-orange-paper:oklch(95% .028 55);--color-blue:oklch(66% .12 250);--color-blue-paper:oklch(95% .02 250);--color-lilac:oklch(72% .1 300);--color-lilac-paper:oklch(95% .02 300);--color-dark:oklch(24% 0 0);--color-white-soft:oklch(85% 0 0);--color-transparent:transparent;--color-shadow:oklch(16% 0 0/.08);--color-shadow-soft:oklch(16% 0 0/.035);--color-paper-glass:oklch(100% 0 0/.88);--color-hover-blue:#1f66ff;--color-footer:#000;--color-footer-wordmark:#111;--color-footer-muted:#969699;--color-footer-tile:#0b0b0d;--color-footer-edge:#e7e7eb;--color-footer-edge-muted:#363639;--color-footer-glass:#ffffff13;--color-footer-glass-hover:#ffffff24;--color-social-telegram:#28a9df;--color-social-instagram:#ed2d8b;--color-execution:#239b56;--color-execution-paper:#ecf9f1;--color-window-close:#ff5f57;--color-window-minimize:#febc2e;--color-window-full:#28c840;--color-window-chrome:#f6f6f6;--color-n8n-canvas:#1d1d1d;--color-window-symbol:#4c2300;--color-modal-scrim:#10101061;--color-modal-shadow:#0000003d;--ease-letter:cubic-bezier(.34, 1.56, .64, 1);--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:5rem;--space-4xl:8rem;--text-2xs:.6875rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-heading:clamp(2.5rem, 4.6vw, 4rem);--text-display:clamp(2.15rem, 5.35vw, 5.25rem);--radius-sm:.5rem;--radius-medium:1.25rem;--radius-panel:1.5625rem;--radius-pill:100rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-reveal:cubic-bezier(.22, .8, .25, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-card:cubic-bezier(.39, 0, 0, 1.01);--dur-micro:.12s;--dur-short:.22s;--dur-long:.55s;--rule-hair:1px;--gutter:clamp(1.25rem, 4vw, 3.125rem);--max-width:1450px;--z-base:1;--z-raised:10;--z-sticky:200;--z-cursor:600}*{box-sizing:border-box}html{scroll-padding-top:7rem;overflow-x:clip}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0;overflow-x:clip}button,a{-webkit-tap-highlight-color:var(--color-transparent)}button{font:inherit}a{color:inherit;text-decoration:none}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--color-focus);outline-offset:6px}::selection{color:var(--color-paper);background:var(--color-ink)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);overflow-wrap:anywhere;min-width:0;font-style:normal}h2{font-size:var(--text-heading);letter-spacing:-.045em;font-weight:550;line-height:1.05}p{line-height:1.55}svg{flex-shrink:0}.section{width:calc(100% - var(--gutter) * 2);max-width:var(--max-width);margin-inline:auto}.skip-link{left:var(--space-md);top:var(--space-md);z-index:var(--z-cursor);background:var(--color-ink);color:var(--color-paper);padding:var(--space-md);border-radius:var(--radius-sm);position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:none}.header{z-index:var(--z-sticky);padding-inline:var(--space-md);pointer-events:none;justify-content:center;display:flex;position:fixed;inset:20px 0 auto}.navigation{align-items:center;gap:var(--space-lg);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-paper-glass);-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);box-shadow:inset 0 1px 0 oklch(100% 0 0/.7), 0 3px 12px var(--color-shadow-soft), 0 12px 32px var(--color-shadow-soft);pointer-events:auto;padding:7px 8px 7px 16px;display:flex}.brand{letter-spacing:-.12em;white-space:nowrap;align-items:baseline;padding-right:10px;font-size:26px;font-weight:800;display:flex}.brand-j{transform:translateY(-.02em)}.brand-dot{color:var(--color-accent);margin-left:.08em}.nav-links{gap:var(--space-lg);font-size:var(--text-sm);align-items:center;font-weight:500;display:flex}.nav-links a{white-space:nowrap;align-items:center;min-height:38px;display:inline-flex}.nav-count{font-size:var(--text-2xs);color:var(--color-muted);padding:0 0 7px 3px}.bracket-link{position:relative}.bracket-link:before,.bracket-link:after{opacity:0;transition:opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);position:absolute}.bracket-link:before{content:"[";left:-8px;transform:translate(4px)}.bracket-link:after{content:"]";right:-8px;transform:translate(-4px)}.bracket-link:hover:before,.bracket-link:hover:after,.bracket-link:focus-visible:before,.bracket-link:focus-visible:after{opacity:1;transform:none}.nav-contact{border-radius:var(--radius-pill);gap:var(--space-xs);background:var(--color-ink);color:var(--color-paper);transition:opacity var(--dur-short) var(--ease-out);padding:0 14px}.nav-contact:hover{opacity:.8}.hero{padding-top:144px;padding-bottom:var(--space-xl);justify-content:space-between;align-items:flex-end;gap:var(--space-lg);display:flex}.hero-text{width:75%}.hero-name,.hero h1{font-size:var(--text-display);letter-spacing:-.045em;font-weight:540;line-height:1.04}.hero-name{margin-bottom:.03em;font-weight:700}.hero h1{font-weight:540}.hero-actions{align-items:center;gap:var(--space-lg);padding-top:var(--space-xl);flex-wrap:wrap;display:flex}.button{justify-content:center;align-items:center;gap:var(--space-sm);min-height:48px;font-size:var(--text-sm);border-radius:var(--radius-pill);white-space:nowrap;padding:0 22px;font-weight:500;display:inline-flex}.button-primary{background:var(--color-ink);color:var(--color-paper)}.button-primary:hover{background:var(--color-dark)}.button-secondary{border:var(--rule-hair) solid var(--color-rule)}.button-secondary:hover{background:var(--color-surface)}.hero-role{font-size:var(--text-xs);line-height:1.55}.hero-role>span{color:var(--color-muted)}.hero-aside{align-items:flex-start;gap:var(--space-xs);font-size:var(--text-xs);color:var(--color-muted);padding-bottom:4px;display:flex}.small-dot{background:var(--color-accent);border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.hero-aside .small-dot{margin-top:7px}.hero-text{opacity:1;transition:transform .65s var(--ease-out);transform:translateY(12px)}.hero.is-entered .hero-text{opacity:1;transform:none}.showcase{padding-bottom:0}.media-frame{border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:0 2px 4px var(--color-shadow-soft), 0 8px 24px var(--color-shadow-soft);padding:7px}.showcase-canvas{background:var(--color-surface);border-radius:var(--radius-medium);position:relative;overflow:clip}.showcase-top{z-index:var(--z-raised);justify-content:space-between;align-items:center;display:flex;position:absolute;top:30px;left:32px;right:32px}.showcase-top>span:first-child{letter-spacing:-.035em;font-size:clamp(1rem,2vw,1.5rem);font-weight:500}.flow-mark{gap:4px;display:inline-flex;transform:rotate(-20deg)}.flow-mark span{background:var(--color-muted);border-radius:2px;width:4px;height:16px}.flow-mark span:nth-child(2){height:24px;margin-top:-4px}.showcase-caption{justify-content:space-between;gap:var(--space-md);color:var(--color-muted);font-size:var(--text-xs);padding:18px 3px 0;display:flex}.workflow-art{aspect-ratio:16/8.2;isolation:isolate;background:var(--color-surface);width:100%;position:relative;overflow:clip;container-type:inline-size}.workflow-grid{opacity:.48;background-image:radial-gradient(var(--color-rule) .8px, var(--color-transparent) .8px);-webkit-mask-image:radial-gradient(ellipse at center, var(--color-ink) 25%, var(--color-transparent) 75%);mask-image:radial-gradient(ellipse at center, var(--color-ink) 25%, var(--color-transparent) 75%);background-size:18px 18px;position:absolute;inset:0}.workflow-plane{aspect-ratio:1000/440;width:90%;max-width:1000px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)perspective(1200px)rotateX(12deg)rotate(-6deg)}.workflow-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.wire{stroke-linecap:round;stroke-linejoin:round}.wire-back{stroke:var(--color-rule);stroke-width:2px}.wire-signal{stroke:var(--color-accent);stroke-width:2px;stroke-dasharray:10 550;stroke-dashoffset:200px;opacity:.8}.showcase-canvas:hover .wire-signal{animation:signal-pass 2s var(--ease-out) both}@keyframes signal-pass{to{stroke-dashoffset:-550px}}.flow-node{aspect-ratio:1;background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);width:12%;box-shadow:0 4px 1px var(--color-shadow-soft), 0 10px 24px var(--color-shadow);border-radius:23%;flex-direction:column;justify-content:center;align-items:center;gap:9px;display:flex;position:absolute;transform:translate(-50%,-50%)}.flow-node>svg{width:37%;height:auto}.flow-node>span{font-size:clamp(var(--text-2xs), .9cqw, var(--text-xs));letter-spacing:-.02em;white-space:nowrap}.workflow-plane .flow-node{width:9.5%}.workflow-plane .flow-node.node-center{width:12%}.node-center{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-dark)}.node-center>svg{width:48%;color:var(--color-accent)}.node-center>span{color:var(--color-white-soft)}.flow-node--webhook>svg{color:var(--color-focus)}.flow-node--router>svg{color:var(--color-accent)}.flow-caption{color:var(--color-muted);font-size:clamp(var(--text-2xs), 1.1cqw, 14px);letter-spacing:-.02em;position:absolute;transform:translate(-50%)}.caption-one{top:49%;left:9%}.caption-two{top:76%;left:60%}.canvas-caption{gap:var(--space-xs);font-size:var(--text-xs);color:var(--color-muted);align-items:center;display:flex;position:absolute;bottom:28px;left:32px}.canvas-disclosure{color:var(--color-muted);font-size:var(--text-xs);position:absolute;bottom:28px;right:32px}.work{padding-top:var(--space-4xl);padding-bottom:var(--space-3xl);grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:6%;display:grid}.work-sticky{position:sticky;top:160px}.section-note{color:var(--color-muted);font-size:var(--text-xs);margin-bottom:var(--space-lg);display:inline-block}.proximity-heading{letter-spacing:-.05em;font-size:clamp(2.75rem,4.5vw,4rem);font-weight:550;line-height:.98}.heading-line{display:block}.heading-line>span{transform-origin:50% 80%;display:inline-block}.work-sticky>p:first-of-type{padding-top:var(--space-lg);font-size:var(--text-xl);letter-spacing:-.035em;line-height:1.35}.work-explainer{color:var(--color-muted);font-size:var(--text-sm);max-width:28ch;padding-top:var(--space-md)}.work-count{align-items:center;gap:var(--space-xs);padding-top:var(--space-2xl);color:var(--color-muted);font-size:var(--text-xs);display:inline-flex}.project-stack{gap:var(--space-2xl);min-width:0;display:grid}.project{min-width:0}.project .media-frame{border-radius:var(--radius-panel);padding:5px;position:relative}.project .media-frame:after{content:"";border-radius:var(--radius-medium);background:var(--color-paper);opacity:0;pointer-events:none;transition:opacity var(--dur-short) var(--ease-out);position:absolute;inset:5px}@media (width>=48rem) and (orientation:landscape) and (hover:hover) and (pointer:fine){.custom-cursor-active .project:hover .media-frame:after{opacity:.92}}.project-art{border-radius:var(--radius-medium);aspect-ratio:1.2;position:relative;overflow:clip}.project-art--connect{background:var(--color-surface)}.project-art--layers{background:var(--color-orange-paper)}.project-art--orbit{background:var(--color-green-paper)}.project-art--blocks{background:var(--color-blue-paper)}.project-art--signal{background:var(--color-ink);color:var(--color-paper)}.project-image{object-fit:cover;width:100%;height:100%;display:block}.project-art>div:not(.pixel-mask){transition:transform var(--dur-long) var(--ease-card)}@media (hover:hover) and (pointer:fine){.project:hover .project-art>div:not(.pixel-mask){transform:scale(1.025)}}.project-caption{gap:var(--space-md);justify-content:space-between;align-items:center;padding:18px 3px 0;display:flex}.project-caption h3{letter-spacing:-.035em;font-size:clamp(.875rem,1.5vw,1.125rem);font-weight:500;line-height:1.4}.project-status{color:var(--color-muted);font-size:var(--text-xs);white-space:nowrap;flex-shrink:0;align-items:center;gap:7px;display:inline-flex}.project-status svg{opacity:.6}.project-art .workflow-art{aspect-ratio:auto;height:100%;position:absolute;inset:0}.workflow-art--compact .workflow-plane{width:100%;transform:translate(-50%,-50%)perspective(1200px)rotateX(15deg)rotate(-15deg)}.workflow-art--compact .flow-node>span{display:none}.workflow-art--compact .flow-node>svg{width:45%}.workflow-art--compact .canvas-caption{display:none}.project-art .workflow-art.workflow-art--card{padding:0}.project-art .workflow-art--card .workflow-plane{aspect-ratio:1000/700;width:96%;margin:0;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.project-art .workflow-art--card .flow-node{border-width:var(--rule-hair);width:10.5%}.project-art .workflow-art--card .flow-node.node-center{width:10.5%}.project-art .workflow-art--card .flow-node:not(.node-center)>svg{width:46%;color:var(--color-focus)}.project-art .workflow-art--card .flow-node>span:not(.brand-mark){width:max-content;max-width:7.5em;color:var(--color-muted);text-align:center;white-space:normal;font-size:clamp(9px,2.4cqw,12px);line-height:1.2;display:block;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.project-art .workflow-art--card .node-center>span:not(.brand-mark){color:var(--color-ink)}.project-art .workflow-art--card .canvas-caption{bottom:20px;left:22px;right:22px}.art-placeholder{z-index:var(--z-base);font-size:var(--text-xs);letter-spacing:.005em;color:var(--color-muted);position:absolute;bottom:22px;left:24px}.project-art--signal .art-placeholder{color:var(--color-white-soft)}.art-mark{font-family:var(--font-mono);font-size:var(--text-xs);opacity:.5;position:absolute;top:20px;right:22px}.layers-art,.orbit-art,.blocks-art,.signal-art{height:100%;position:relative}.layer{border:1px solid var(--color-orange);background:var(--color-paper);width:38%;height:48%;box-shadow:0 8px 18px var(--color-shadow-soft);border-radius:14%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-16deg)}.layer-back{background:var(--color-orange);opacity:.35;transform:translate(-25%,-63%)rotate(10deg)}.layer-middle{background:var(--color-orange-paper);place-items:center;display:grid;transform:translate(-65%,-52%)rotate(-16deg)}.layer-middle svg{width:33%;height:auto;color:var(--color-orange)}.layer-front{flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16%;display:flex;transform:translate(-38%,-38%)rotate(8deg)}.layer-front>svg{color:var(--color-orange);width:44px;height:44px;margin-bottom:12px}.art-line{border-radius:var(--radius-pill);background:var(--color-rule);width:85px;height:5px}.art-line--short{width:55px}.orbit{border:1px solid var(--color-accent);opacity:.5;border-radius:50%;width:60%;height:60%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotateX(45deg)rotate(-30deg)}.orbit-two{width:50%;height:80%;transform:translate(-50%,-50%)rotateX(45deg)rotate(30deg)}.orbit-three{width:70%;height:45%;transform:translate(-50%,-50%)rotateX(45deg)rotate(90deg)}.orbit-core{aspect-ratio:1;background:var(--color-green-ink);width:24%;color:var(--color-paper);box-shadow:0 12px 18px var(--color-shadow);border-radius:27%;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.orbit-core svg{width:53%;height:53%}.orbit-satellite{aspect-ratio:1;background:var(--color-accent);width:6%;box-shadow:0 3px 8px var(--color-shadow);border-radius:50%;position:absolute}.satellite-one{top:32%;left:24%}.satellite-two{background:var(--color-green-ink);width:4%;bottom:29%;right:23%}.blocks-art{perspective:900px}.block{aspect-ratio:1;background:var(--color-paper);border:1px solid var(--color-blue);width:27%;box-shadow:0 10px 0 var(--color-blue), 0 12px 24px var(--color-shadow);border-radius:22%;position:absolute;transform:rotateX(30deg)rotate(-30deg)}.block-one{top:22%;left:22%}.block-two{opacity:.5;top:40%;left:10%}.block-three{background:var(--color-blue);color:var(--color-paper);place-items:center;display:grid;top:43%;left:45%}.block-three svg{width:55%;height:55%}.block-four{opacity:.4;top:20%;left:59%}.signal-field{aspect-ratio:1;grid-template-columns:repeat(10,minmax(0,1fr));gap:12px;width:61%;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)perspective(1000px)rotateX(35deg)rotate(-18deg)}.signal-field>span{aspect-ratio:1;background:var(--color-accent);opacity:var(--signal);transform:scale(var(--signal));border-radius:50%}.signal-art>svg{width:19%;height:19%;color:var(--color-paper);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pixel-mask{pointer-events:none;grid-template-rows:repeat(6,minmax(0,1fr));grid-template-columns:repeat(10,minmax(0,1fr));display:grid;position:absolute;inset:0}.pixel-mask>span{background:var(--color-surface);transform-origin:bottom}.is-seen .pixel-mask>span{animation:pixel-reveal .55s var(--ease-card) var(--delay) both}@keyframes pixel-reveal{to{transform:scaleY(0)}}.capabilities{padding-block:var(--space-4xl) var(--space-3xl)}.section-top{justify-content:space-between;align-items:flex-end;gap:var(--space-xl);margin-bottom:var(--space-2xl);display:flex}.section-top h2{font-size:clamp(2.25rem,3.7vw,3.5rem)}.section-top>p{max-width:32ch;color:var(--color-muted);font-size:var(--text-sm);padding-bottom:3px}.skill-row{gap:var(--space-xl);border-top:var(--rule-hair) solid var(--color-rule);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.9fr);align-items:center;padding-block:28px;display:grid}.skill-row:last-child{border-bottom:var(--rule-hair) solid var(--color-rule)}.skill-name{gap:var(--space-md);align-items:center;display:flex}.skill-number{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-subtle)}.skill-name h3{letter-spacing:-.035em;font-size:clamp(1.125rem,2vw,1.5rem);font-weight:500}.skill-row>p{color:var(--color-muted);font-size:var(--text-sm);max-width:34ch}.skill-tools{font-size:var(--text-xs);color:var(--color-muted);text-align:right;line-height:1.6}.process-line{padding-top:var(--space-2xl);color:var(--color-muted);font-size:var(--text-sm);justify-content:center;align-items:center;gap:clamp(12px,4vw,60px);display:flex}.process-line svg{width:16px}.about{padding-block:var(--space-3xl) var(--space-4xl);grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:6%;display:grid}.about-heading h2{font-size:clamp(2.5rem,4.3vw,4rem)}.location{gap:var(--space-xs);padding-top:var(--space-lg);color:var(--color-muted);font-size:var(--text-xs);align-items:center;display:flex}.about-copy{gap:var(--space-lg);padding-top:3px;display:grid}.about-lead{letter-spacing:-.04em;padding-bottom:var(--space-xs);font-size:clamp(1.75rem,3vw,2.5rem);font-weight:500;line-height:1.2}.about-copy>p:not(.about-lead){max-width:48ch;font-size:var(--text-base);color:var(--color-muted);line-height:1.6}.education{padding-block:var(--space-md);font-size:var(--text-sm);flex-direction:column;gap:5px;display:flex}.education span:last-child{color:var(--color-muted);font-size:var(--text-xs)}.text-link{align-items:center;gap:var(--space-xs);width:fit-content;min-height:44px;font-size:var(--text-sm);white-space:nowrap;text-underline-offset:5px;transition:text-decoration-color var(--dur-short) var(--ease-out), opacity var(--dur-micro) var(--ease-out);-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:inline-flex}.text-link:hover{text-decoration-color:currentColor}.footer{border-top:var(--rule-hair) solid var(--color-rule);padding-top:var(--space-2xl)}.contact-top{justify-content:space-between;align-items:center;display:flex}.availability{align-items:center;gap:var(--space-xs);font-size:var(--text-xs);color:var(--color-muted);display:flex}.back-top{border:var(--rule-hair) solid var(--color-rule);width:44px;height:44px;transition:transform var(--dur-short) var(--ease-out);border-radius:50%;place-items:center;display:grid}.back-top:hover{transform:translateY(-3px)}.footer h2{letter-spacing:-.065em;padding-block:var(--space-2xl) var(--space-xl);font-size:clamp(3.5rem,8.5vw,8.25rem);font-weight:550;line-height:.95}.contact-actions{align-items:center;gap:var(--space-sm);display:flex}.footer-bottom{margin-top:var(--space-4xl);border-top:var(--rule-hair) solid var(--color-rule);padding-block:var(--space-lg);justify-content:space-between;align-items:center;gap:var(--space-lg);font-size:var(--text-xs);color:var(--color-muted);display:flex}.case-study{padding-top:160px;padding-bottom:var(--space-4xl)}.case-study h1,.not-found h1{font-size:var(--text-display);letter-spacing:-.045em;margin-block:var(--space-lg);font-weight:550;line-height:1.05}.case-tools{color:var(--color-muted);margin-bottom:var(--space-2xl)}.case-section{gap:var(--space-2xl);padding-block:var(--space-3xl) 0;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);display:grid}.case-section h2{font-size:2rem}.case-section p{white-space:pre-line;color:var(--color-muted)}.case-metrics{gap:var(--space-xl) var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));margin:0;display:grid}.case-metrics>div{justify-content:flex-end;gap:var(--space-xs);padding-top:var(--space-md);border-top:var(--rule-hair) solid var(--color-rule);flex-direction:column-reverse;display:flex}.case-metrics dt{color:var(--color-muted);font-size:var(--text-sm)}.case-metrics dd{letter-spacing:-.045em;overflow-wrap:anywhere;margin:0;font-size:clamp(1.75rem,2.6vw,2.5rem);font-weight:550;line-height:1.05}.case-metrics-source{margin-top:var(--space-lg);font-size:var(--text-xs);color:var(--color-muted)}.case-figure{min-width:0;margin:0}.case-figure figcaption{justify-content:space-between;align-items:center;gap:0 var(--space-lg);color:var(--color-muted);font-size:var(--text-xs);flex-wrap:wrap;padding:14px 3px 0;line-height:1.55;display:flex}.case-figure figcaption .text-link{font-size:var(--text-xs);color:var(--color-ink)}.case-workflow-frame{border-radius:var(--radius-medium);background:var(--color-n8n-canvas);overflow:hidden}.case-workflow-frame img{object-fit:contain;width:100%;height:auto;max-height:78dvh;display:block}.case-flow,.case-highlights{min-width:0;margin:0;padding:0;list-style:none}.case-flow{counter-reset:flow-step}.case-flow li,.case-highlights li{gap:var(--space-xs);padding-block:var(--space-lg);border-top:var(--rule-hair) solid var(--color-rule);display:grid}.case-flow li:first-child,.case-highlights li:first-child{border-top:0;padding-top:0}.case-flow li{column-gap:var(--space-sm);counter-increment:flow-step;grid-template-columns:2.25rem minmax(0,1fr)}.case-flow li:before{content:counter(flow-step, decimal-leading-zero);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-subtle);grid-row:span 2;padding-top:3px}.case-flow h4,.case-highlights h4{font-size:var(--text-lg);letter-spacing:-.02em;margin:0;font-weight:550}.case-flow p,.case-highlights p{color:var(--color-muted)}.not-found{padding-top:180px}.not-found>p{max-width:44ch;color:var(--color-muted);margin-bottom:var(--space-xl)}.motion-off .hero-text{opacity:1;transition:none;transform:none}.motion-off .project-art>div,.motion-off .button,.motion-off .back-top{transition:none}.motion-off .project:hover .project-art>div{transform:none}.motion-off .wire-signal{animation:none!important}.motion-off .back-top:hover,.motion-off .button:active{transform:none}button:disabled{opacity:.65}.nav-links a:active,.text-link:active{opacity:.7}.landing{isolation:isolate;grid-template-rows:1fr;min-height:100svh;padding-top:110px;padding-bottom:4rem;display:grid;position:relative;overflow:clip}.landing-wordmark{z-index:-1;color:var(--color-surface);letter-spacing:-.08em;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;font-size:clamp(25rem,65vw,70rem);font-weight:650;line-height:1;position:absolute;bottom:-.22em;left:50%;transform:translate(-50%)}.landing-introduction{text-align:center;align-self:center;padding-block:clamp(4rem,10vh,7rem)}.landing h1{letter-spacing:-.04em;text-wrap:balance;font-size:clamp(4rem,9vw,6rem);font-weight:550;line-height:.98}.landing-role{margin-top:var(--space-lg);font-size:var(--text-base);font-weight:500}.landing-description{margin-top:var(--space-sm);color:var(--color-muted);font-size:var(--text-sm);line-height:1.6}.landing-actions{justify-content:center;gap:var(--space-sm);margin-top:var(--space-xl);display:flex}.hover-line{white-space:nowrap;width:fit-content;margin-inline:auto;display:block}.hover-letter{transform-origin:50% 80%;transition:transform .35s var(--ease-letter), color .25s var(--ease-out);display:inline-block;position:relative}.hover-space{white-space:pre}@media (hover:hover) and (pointer:fine){.hover-letter:hover{z-index:1;color:var(--color-hover-blue);transition-duration:.2s,.15s;transform:translateY(-2px)scale(1.18)}}.not-found>.text-link{margin-left:var(--space-lg)}@media (width<=47.99rem){.landing{padding-top:100px}.landing-introduction{padding-block:64px}.landing h1{font-size:clamp(3.75rem,15vw,6rem)}.landing-role{font-size:var(--text-sm)}.landing-description{font-size:13px}.not-found>.text-link{margin-left:0;margin-top:var(--space-md);display:flex}}@media (width>=90rem){.hero{padding-top:155px}.hero-text{width:65%}.hero-aside{font-size:var(--text-sm)}.project-art{aspect-ratio:1.25}}@media (width<=59.99rem){.hero-aside{display:none}.hero-text{width:100%}.hero{padding-top:132px}.work{grid-template-columns:minmax(0,.7fr) minmax(0,1fr);gap:4%}.work-sticky{top:130px}.work-explainer{font-size:var(--text-xs);max-width:24ch}.skill-row{gap:var(--space-md);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.skill-tools{text-align:left;grid-column:2}.project-caption{flex-wrap:wrap;align-items:flex-start;gap:5px}}@media (width<=47.99rem){html{scroll-padding-top:100px}.header{top:14px}.navigation{gap:18px;padding-left:14px}.nav-links{gap:18px;font-size:12px}.brand{align-items:center;min-height:44px;margin-inline:-6px;padding:0 10px 0 6px;font-size:24px}.nav-links a{min-height:44px}.nav-links a:not(.nav-contact){margin-inline:-6px;padding-inline:6px}.bracket-link:before{left:-2px}.bracket-link:after{right:-2px}.nav-contact{padding-inline:12px}.hero{padding-top:125px;padding-bottom:24px}.hero-name,.hero h1{letter-spacing:-.04em;font-size:clamp(2.15rem,7.5vw,3.5rem);line-height:1.08}.hero-actions{gap:var(--space-md);padding-top:25px}.hero-role{font-size:var(--text-xs)}.button{gap:8px;min-height:46px;padding-inline:17px;font-size:12px}.media-frame{border-radius:20px;padding:5px}.showcase-canvas{border-radius:15px}.showcase-top{top:17px;left:18px;right:18px}.showcase-top>span:first-child{font-size:14px}.workflow-art{aspect-ratio:1.25}.workflow-plane{width:118%;top:49%}.workflow-art:not(.workflow-art--compact) .workflow-plane{width:100%}.workflow-art .flow-caption{display:none}.workflow-art--compact .workflow-plane{width:100%}.flow-node{border-width:.5px;gap:4px}.canvas-caption{font-size:var(--text-xs);bottom:17px;left:18px}.canvas-disclosure{font-size:var(--text-xs);bottom:17px;right:18px}.showcase-caption{font-size:var(--text-xs);padding-top:12px}.showcase-caption>span:last-child{display:none}.work{padding-top:88px;padding-bottom:24px;display:block}.work-sticky{margin-bottom:var(--space-2xl);position:static}.section-note{margin-bottom:18px;font-size:11px}.proximity-heading{font-size:48px}.work-sticky .heading-line{display:block}.work-sticky>p:first-of-type{font-size:20px}.work-explainer{max-width:36ch;padding-top:var(--space-sm);font-size:13px}.work-count{padding-top:var(--space-lg);font-size:11px}.project-stack{gap:36px}.project-art{aspect-ratio:1.15}.project-caption{flex-wrap:nowrap;align-items:center;padding-top:14px}.project-caption h3{font-size:13px}.project-status{font-size:var(--text-xs);gap:5px}.art-placeholder{font-size:var(--text-xs);bottom:18px;left:18px}.layer-front>svg{width:32px;height:32px}.art-line{width:60px}.art-line--short{width:40px}.signal-field{gap:8px}.capabilities{padding-top:88px;padding-bottom:56px}.section-top{margin-bottom:32px;display:block}.section-top h2{font-size:clamp(2rem,6.8vw,3rem)}.section-top>p{padding-top:var(--space-lg);font-size:13px}.skill-row{grid-template-columns:minmax(0,1fr);gap:12px;padding-block:24px}.skill-name{gap:12px}.skill-name h3{font-size:21px}.skill-row>p{max-width:40ch;font-size:13px}.skill-tools{grid-column:1;font-size:11px}.process-line{justify-content:space-between;gap:8px;font-size:11px}.process-line svg{width:12px}.about{grid-template-columns:minmax(0,1fr);gap:36px;padding-top:56px;padding-bottom:88px}.about-heading h2{font-size:44px}.about-lead{font-size:30px}.about-copy>p:not(.about-lead){font-size:14px}.education{font-size:12px}.education span:last-child{font-size:var(--text-xs)}.text-link{font-size:12px}.footer{padding-top:28px}.availability{font-size:var(--text-xs)}.footer h2{padding-top:40px;font-size:clamp(3.5rem,12vw,6rem)}.footer-bottom{font-size:var(--text-xs);flex-wrap:wrap;gap:12px;margin-top:88px}.footer-note{display:none}.case-section{grid-template-columns:minmax(0,1fr);gap:20px}.case-study{padding-top:130px}.custom-cursor,.cursor-pill{display:none}.project:hover .project-art>div,.back-top:hover,.button:active{transform:none}}@media (width<=37.5rem){.workflow-art:not(.workflow-art--compact){aspect-ratio:auto;padding:56px 0 68px}.workflow-art:not(.workflow-art--compact) .workflow-plane{aspect-ratio:1000/700;width:100%;margin-left:0;position:relative;top:auto;left:auto;transform:none}.workflow-art:not(.workflow-art--compact) .wire{vector-effect:non-scaling-stroke}.workflow-art .flow-node>span:not(.brand-mark){position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.workflow-art .flow-caption{text-align:center;width:7em;line-height:1.25;top:50%;transform:translate(-50%,-50%)}.workflow-art:not(.workflow-art--compact) .caption-one{left:max(9%,3.5em + 2px + 9cqw)}.workflow-art--compact .caption-one{left:max(9%,3.5em + 2px + 6cqw)}.workflow-art .flow-node>span:not(.brand-mark){display:none}}@media (width<=23.99rem){.canvas-caption{bottom:15px}.canvas-disclosure{bottom:33px}}@media (height<=31.25rem){.landing{padding-top:88px}.landing .landing-introduction{padding-block:20px 16px}.landing h1{font-size:clamp(1.75rem,9vh,3rem)}.landing-role{margin-top:var(--space-sm)}.landing-actions{margin-top:var(--space-md)}}@media (height<=21.25rem){.landing{padding-top:80px}.landing .landing-introduction{padding-block:8px}.landing-role{margin-top:var(--space-xs)}}@media (pointer:coarse){.nav-links a,.brand{min-height:44px}.brand{align-items:center}}@keyframes blur-in{0%{opacity:0;filter:blur(14px);translate:0 14px}}@keyframes drop-in{0%{opacity:0;translate:0 -12px}}@keyframes haze-in{0%{opacity:0;filter:blur(10px)}}@keyframes sheen{to{translate:120%}}.header .navigation{animation:drop-in .9s var(--ease-reveal) backwards}.landing-wordmark{animation:1.6s .3s backwards haze-in}:is(.landing-introduction,.projects-intro) .hover-line{animation:blur-in 1.1s var(--ease-reveal) backwards}:is(.landing-introduction,.projects-intro) .hover-line:nth-child(2){animation-delay:90ms}.landing-role,.projects-intro .hero-actions{animation:blur-in 1.1s var(--ease-reveal) .22s backwards}.landing-description,.projects-intro .hero-aside{animation:blur-in 1.1s var(--ease-reveal) .3s backwards}.landing-actions{animation:blur-in 1.1s var(--ease-reveal) .38s backwards}.showcase-caption{animation:blur-in 1.1s var(--ease-reveal) .52s backwards}body:has(#portfolio-loader:not(.is-leaving)) :is(.header .navigation,.landing-wordmark,.hover-line,.landing-role,.landing-description,.landing-actions,.hero-actions,.hero-aside,.showcase-caption){animation-play-state:paused}.reveal-ready [data-reveal]{opacity:0;filter:blur(6px);transition:opacity .9s var(--ease-reveal) var(--reveal-delay,0s), filter .9s var(--ease-reveal) var(--reveal-delay,0s), translate 1s var(--ease-reveal) var(--reveal-delay,0s);translate:0 28px}.reveal-ready [data-reveal].is-revealed{opacity:1;filter:none;translate:0}.button{isolation:isolate;transition:transform .5s var(--ease-letter), background-color var(--dur-short) var(--ease-out);position:relative;overflow:hidden}.button:active{transition-duration:90ms, var(--dur-short);transition-timing-function:var(--ease-out);transform:scale(.96)}.button-primary:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(105deg,#0000 35%,oklch(100% 0 0/.24) 50%,#0000 65%);position:absolute;inset:0;translate:-120%}@media (hover:hover) and (pointer:fine){.button:hover{transform:scale(1.025)}.button:active{transform:scale(.96)}.button-primary:hover:after{animation:sheen .75s var(--ease-out)}}.back-top{transition:transform .45s var(--ease-letter)}.ecosystem-mark .brand-mark{transform:rotate(var(--tilt,0deg));animation:mark-bob var(--bob,6s) ease-in-out var(--bob-delay,0s) infinite alternate}.ecosystem-mark[data-hover] .brand-mark{animation:.9s cubic-bezier(.25,.8,.3,1) forwards mark-pop,2.4s ease-in-out .9s infinite mark-sway}@keyframes mark-bob{0%{transform:translate(-6px, 0) rotate(calc(var(--tilt,0deg) - 4deg))}to{transform:translate(6px, -10px) rotate(calc(var(--tilt,0deg) + 4deg))}}@keyframes mark-pop{0%{transform:scale(1) rotate(var(--tilt,0deg))}to{transform:scale(1.15)rotate(0)}}@keyframes mark-sway{0%,to{transform:scale(1.15)rotate(0)}25%{transform:scale(1.17)rotate(-3deg)}75%{transform:scale(1.17)rotate(3deg)}}.navigation.lg-refract{-webkit-backdrop-filter:var(--lg-filter) blur(4px) saturate(1.7);backdrop-filter:var(--lg-filter) blur(4px) saturate(1.7);background:oklch(100% 0 0/.6)}.navigation{view-transition-name:site-nav}::view-transition-old(root){animation-duration:.34s;animation-timing-function:var(--ease-reveal)}::view-transition-new(root){animation-duration:.34s;animation-timing-function:var(--ease-reveal)}::view-transition-group(site-nav){animation-duration:.34s}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-property:opacity,color,background-color,border-color,text-decoration-color,box-shadow!important;transition-duration:.2s!important;transition-delay:0s!important;animation:none!important}.hover-letter:hover,.button:hover,.button:active,.back-top:hover{transform:none!important}.logo-letter:hover .logo-letter-mark,.process-step:hover .process-emoji{transform:translate(-50%,-50%)!important}.project:hover .project-art>div{transform:none!important}}@media (prefers-reduced-transparency:reduce){.navigation{background:var(--color-paper);-webkit-backdrop-filter:none;backdrop-filter:none}.project-dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--color-modal-scrim)}}@media (prefers-contrast:more){.navigation{background:var(--color-paper);border-color:var(--color-ink);-webkit-backdrop-filter:none;backdrop-filter:none}}.custom-cursor{z-index:var(--z-cursor);color:var(--color-ink);pointer-events:none;will-change:transform;visibility:hidden;transform-origin:0 0;width:0;height:0;line-height:0;position:fixed;top:0;left:0}.custom-cursor-active .custom-cursor{visibility:visible}.custom-cursor .cursor-press,.custom-cursor .cursor-heading,.custom-cursor .cursor-hand{transform-origin:0 0;width:0;height:0}.custom-cursor .cursor-arrow{display:block;transform:translate(-4.8125px,-4.8125px)}.custom-cursor svg path{stroke:var(--color-paper);stroke-width:12px;paint-order:stroke}.cursor-pill{border-radius:var(--radius-pill);background:var(--color-ink);color:var(--color-paper);white-space:nowrap;z-index:var(--z-cursor);pointer-events:none;will-change:transform;padding:9px 14px;font-size:11px;position:fixed;top:22px;left:18px}.custom-cursor-active,.custom-cursor-active *{cursor:none!important}.custom-cursor .cursor-hand svg{display:block;transform:translate(-13.125px,-1.875px)}.custom-cursor .cursor-eyes{transform-origin:0 0;width:0;height:0}.cursor-eyes img{object-fit:contain;width:64px;height:64px;filter:drop-shadow(0 8px 12px var(--color-shadow));display:block;transform:translate(-50%,-50%)}.motion-off .custom-cursor,.motion-off .cursor-pill{display:none}.motion-off.custom-cursor-active,.motion-off.custom-cursor-active *{cursor:revert!important}@media (hover:none),(pointer:coarse),(width<=47.999rem),(orientation:portrait){.custom-cursor,.cursor-pill{display:none}.custom-cursor-active,.custom-cursor-active *{cursor:revert!important}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.brand-mark{width:var(--brand-width);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.brand-mark img{object-fit:contain;width:100%;height:auto;max-height:72px;display:block}.brand-fallback{font-size:var(--text-sm);text-align:center;font-weight:500}.ecosystem-section{inset:var(--lane-top,170px) 0 var(--lane-bottom,80px);pointer-events:none;z-index:1;position:absolute}.ecosystem-field{pointer-events:none;position:absolute;inset:0}.ecosystem-mobile{display:none}.ecosystem-mark{opacity:0;transform-origin:50%;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:140px;min-height:92px;display:flex;position:absolute;top:0;left:calc(50% - 70px)}.ecosystem-field[data-moving] .ecosystem-mark{will-change:transform, opacity}.landing-introduction{z-index:2;position:relative}.workflow-art .workflow-plane,.workflow-art--compact .workflow-plane{transform:translate(-50%,-48%)}.flow-node .brand-mark{width:min(var(--brand-width), 58%)}.workflow-art--compact .flow-node .brand-mark{display:inline-flex}.flow-node .brand-mark img{max-height:60px}.flow-node.node-center{background:var(--color-paper);border-color:var(--color-rule);color:var(--color-ink)}.flow-node.node-center>span{color:var(--color-muted)}@media (width<=767px){.landing{grid-template-rows:1fr auto;grid-template-columns:minmax(0,1fr);padding-bottom:1.5rem}.landing .landing-introduction{padding-block:64px 48px}.ecosystem-section{width:100%;min-width:0;margin-bottom:24px;position:relative;inset:auto}.ecosystem-field{display:none}.ecosystem-mobile{width:100%;display:block;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 24px calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#0000,#000 24px calc(100% - 24px),#0000)}.ecosystem-mobile-track{width:max-content;display:flex}.ecosystem-mobile-track[data-moving]{will-change:transform}.ecosystem-mobile-group{flex-shrink:0;align-items:center;gap:32px;padding-right:32px;display:flex}.ecosystem-strip-mark{flex-shrink:0;justify-content:center;align-items:center;width:128px;height:88px;display:flex}.ecosystem-mobile[data-paused]{-webkit-mask-image:none;mask-image:none}.ecosystem-mobile[data-paused] .ecosystem-mobile-track{width:100%;transform:none!important}.ecosystem-mobile[data-paused] .ecosystem-mobile-group{width:100%;padding:0 var(--gutter);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.ecosystem-mobile[data-paused] .ecosystem-mobile-group+.ecosystem-mobile-group{display:none}.ecosystem-mobile[data-paused] .ecosystem-strip-mark{width:100%}.ecosystem-mobile[data-paused] .ecosystem-strip-mark:last-child{grid-column:1/-1}.landing-wordmark{display:none}}.showcase--lead{padding-top:8rem}.showcase--lead .showcase-frame{animation:workflow-enter .7s var(--ease-out) both;transform-origin:50% 80%}.hero.projects-intro{padding-top:clamp(3rem,5vw,5rem)}.projects-intro .hover-line{margin-inline:0}.workflow-execution .flow-node{animation:workflow-node-enter .8s var(--ease-letter) both;transition:border-color .35s var(--ease-out), background-color .35s var(--ease-out), box-shadow .35s var(--ease-out)}.workflow-execution .workflow-lines{animation:workflow-wires-enter .8s var(--ease-out) .35s both}.workflow-execution .wire-execution{stroke:var(--color-execution);stroke-width:3px;stroke-dasharray:1;stroke-dashoffset:1px;opacity:0;transition:opacity .5s var(--ease-out)}.workflow-execution .wire-execution.is-drawn{stroke-dashoffset:0;opacity:1;transition:stroke-dashoffset .86s var(--ease-in-out), opacity .16s var(--ease-out)}.workflow-execution .wire-execution.is-drawn.is-fading{opacity:0;transition:opacity .5s var(--ease-out)}.workflow-execution .flow-node[data-state=running],.workflow-execution .flow-node[data-state=complete]{border-color:var(--color-execution);box-shadow:0 0 0 1px var(--color-execution), 0 8px 24px var(--color-shadow)}.workflow-execution .flow-node[data-state=running]{background:var(--color-execution-paper)}.flow-state{border:2px solid var(--color-paper);background:var(--color-execution);width:1.25rem;height:1.25rem;color:var(--color-paper);opacity:0;transition:opacity .25s var(--ease-out), scale .45s var(--ease-letter);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-.375rem;right:-.375rem;scale:.6}.flow-state>*{animation:flow-state-in .3s var(--ease-out) both}@keyframes flow-state-in{0%{opacity:0;scale:.5}}.canvas-caption-text{animation:caption-in .36s var(--ease-out) both}@keyframes caption-in{0%{opacity:0;filter:blur(3px);translate:0 4px}}.flow-state svg{width:.8125rem;height:.8125rem}.flow-node[data-state=running] .flow-state,.flow-node[data-state=complete] .flow-state{opacity:1;scale:1}.flow-node[data-state=running] .flow-state>span{border:1.5px solid var(--color-paper);border-right-color:var(--color-transparent);border-radius:50%;width:.625rem;height:.625rem;animation:.7s linear infinite workflow-spin}.workflow-execution:not([data-playing]) .flow-state>span{animation-play-state:paused}.workflow-replay{border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-paper);min-height:2.75rem;color:var(--color-muted);font-size:var(--text-xs);transition:color .15s var(--ease-out), background-color .15s var(--ease-out);justify-content:center;align-items:center;gap:.5rem;padding:.5rem .75rem;display:inline-flex;position:absolute;bottom:1.125rem;right:1.5rem}.workflow-replay:hover{background:var(--color-execution-paper);color:var(--color-ink)}.workflow-replay:active{background:var(--color-green-paper)}@keyframes workflow-enter{0%{opacity:0;transform:translateY(24px)scale(.98)}to{opacity:1;transform:none}}@keyframes workflow-node-enter{0%{opacity:0;transform:translate(-50%,calc(20px - 50%))scale(.75)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes workflow-wires-enter{0%{opacity:0}to{opacity:1}}@keyframes workflow-spin{to{transform:rotate(360deg)}}@media (width<=47.99rem){.showcase--lead{padding-top:6.75rem}.hero.projects-intro{padding-top:2.5rem}.workflow-replay{gap:.375rem;padding-inline:.625rem;bottom:.5rem;right:.625rem}.workflow-execution .canvas-caption{bottom:1.375rem}.workflow-execution .flow-state{width:1rem;height:1rem;bottom:-.25rem;right:-.25rem}.flow-state svg{width:.625rem;height:.625rem}}body:has(#portfolio-loader:not(.is-leaving)) :is(.showcase--lead .showcase-frame,.workflow-execution .flow-node,.workflow-execution .workflow-lines){animation-play-state:paused}.landing-footer{isolation:isolate;background:var(--color-footer);color:var(--color-paper);position:relative;overflow:clip}.landing-footer-inner{justify-content:space-between;align-items:center;gap:var(--space-2xl);min-height:clamp(24rem,34vw,33.5rem);padding-block:3rem 5rem;display:flex;position:relative}.landing-footer-wordmark{z-index:-1;letter-spacing:-.09em;color:var(--color-footer-wordmark);-webkit-user-select:none;user-select:none;pointer-events:none;white-space:nowrap;font-size:clamp(20rem,44vw,48rem);font-weight:450;line-height:1;position:absolute;bottom:-.17em;left:50%;transform:translate(-50%)}.landing-footer-cta{z-index:2;flex-shrink:0;position:relative}.landing-footer-monogram{letter-spacing:-.12em;margin-bottom:2rem;font-size:2.5rem;font-weight:700;line-height:1;display:inline-block}.landing-footer-monogram>span{color:var(--color-accent)}.landing-footer h2{letter-spacing:-.035em;font-size:clamp(1.5rem,2.4vw,2.25rem);font-weight:500;line-height:1.15}.landing-footer .hover-line{margin-inline:0}.landing-footer-button{border:1px solid var(--color-footer-edge-muted);border-top-color:var(--color-footer-muted);border-radius:var(--radius-pill);background:var(--color-footer-glass);min-height:2.75rem;color:var(--color-paper);font-size:var(--text-sm);white-space:nowrap;transition:background-color var(--dur-short) var(--ease-out);justify-content:center;align-items:center;gap:.625rem;margin-top:1.25rem;padding:.625rem 1.125rem;font-weight:500;display:inline-flex}.landing-footer-button:hover{background:var(--color-footer-glass-hover)}.landing-footer-button:focus-visible,.social-tile:focus-visible{outline-color:var(--color-paper)}.landing-socials{z-index:2;flex-direction:column;align-items:center;padding-top:1rem;display:flex;position:relative}.social-stack{perspective:700px;width:15.5rem;height:17rem;position:relative}.social-slot{perspective:700px;position:absolute}.social-slot--telegram{width:7.5rem;height:9.125rem;top:0;left:0;rotate:-7deg}.social-slot--x{width:6.5rem;height:8rem;top:2.75rem;right:0;rotate:8deg}.social-slot--instagram{width:10rem;height:6.875rem;bottom:0;left:3.75rem;rotate:-5deg}.social-slot:hover,.social-slot:focus-within{z-index:3}.social-tile{border:2px solid var(--color-footer-edge);background:var(--color-footer-tile);width:100%;height:100%;color:var(--color-paper);cursor:default;border-radius:2rem;padding:0;display:block;position:relative;overflow:hidden}.social-glyph{aspect-ratio:1;height:auto;transition:filter var(--dur-short) var(--ease-out);border-radius:1.375rem;place-items:center;animation:4.5s ease-in-out infinite alternate paused social-float;display:grid;position:absolute}.social-glyph svg{width:80%;height:80%}.social-tile--telegram .social-glyph{background:var(--color-social-telegram);border-radius:50%;width:78%;animation-delay:-1.2s;top:-16%;left:8%}.social-tile--telegram .social-glyph svg{width:70%;height:70%}.social-tile--x .social-glyph{width:125%;animation-duration:5.2s;animation-delay:-2.6s;top:15%;left:15%}.social-tile--instagram .social-glyph{background:var(--color-social-instagram);width:70%;animation-duration:4s;animation-delay:-.4s;top:40%;left:20%}.social-stack:has(.social-tile:hover,.social-tile:focus-visible) .social-tile:not(:hover,:focus-visible) .social-glyph{filter:brightness(.4)}.landing-footer.is-visible .social-glyph{animation-play-state:running}.landing-socials>p{font-size:var(--text-2xs);color:var(--color-footer-muted);padding-top:1.25rem}.landing-footer-copyright{font-size:var(--text-2xs);color:var(--color-footer-muted);text-align:center;white-space:nowrap;position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%)}@keyframes social-float{0%{translate:0 -.25rem;rotate:-1.2deg}to{translate:0 .3125rem;rotate:1.4deg}}@media (width<=47.99rem){.landing-footer-inner{min-height:35rem;padding-block:2rem 6rem;display:block}.landing-footer-cta{padding-top:12.5rem}.landing-footer-monogram{margin:0;font-size:2.5rem;position:absolute;top:.5rem}.landing-footer h2{font-size:clamp(1.5rem,5.5vw,2.25rem)}.landing-socials{padding:0;position:absolute;top:1.75rem;right:0}.social-stack{width:9rem;height:9.75rem}.social-slot--telegram{width:4.25rem;height:5.25rem}.social-slot--x{width:3.75rem;height:4.5rem;top:1.75rem}.social-slot--instagram{width:5.75rem;height:4rem;left:2rem}.social-tile{border-width:1.5px;border-radius:1.125rem}.social-glyph{border-radius:.875rem}.landing-socials>p{padding-top:.75rem}.landing-footer-wordmark{font-size:80vw;bottom:-.08em}.landing-footer-copyright{font-size:.6875rem}}.landing-main{isolation:isolate;position:relative}.landing-main .landing{z-index:2}.landing-main .landing-footer{isolation:auto}.landing-main .landing-footer-inner,.landing-main .landing-footer-copyright{z-index:2}.landing-main .landing-footer-wordmark{visibility:hidden}.landing-wordmark-track{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:clip}.landing-wordmark-track .landing-wordmark{z-index:auto;transform-origin:50% 100%;color:var(--color-surface);letter-spacing:-.08em;white-space:nowrap;-webkit-user-select:none;user-select:none;will-change:transform;font-size:clamp(25rem,65vw,70rem);font-weight:650;line-height:1;position:absolute;bottom:auto;left:50%;transform:translate(-50%)}.wordmark-layer{display:block}.wordmark-layer--end{background:linear-gradient(#fff,#171717 65%);color:#0000;opacity:.08;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}@media (width>=48rem){.landing-main .landing{min-height:max(100svh,min(56.25vw,16.875vw + 567px))}}@media (width<=47.999rem){.landing-wordmark-track{display:none}.landing-main .landing-footer{isolation:isolate}.landing-main .landing-footer-wordmark{visibility:visible}}.project-open{z-index:2;border-radius:var(--radius-panel);background:var(--color-transparent);border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.project{position:relative}.project-preview-chrome{align-items:center;gap:7px;height:38px;padding:0 14px;display:flex}.project-preview-chrome i{background:var(--color-window-close);border-radius:50%;width:10px;height:10px}.project-preview-chrome i:nth-child(2){background:var(--color-window-minimize)}.project-preview-chrome i:nth-child(3){background:var(--color-window-full)}.project-preview-chrome span{color:var(--color-muted);font-size:var(--text-2xs);margin-inline:auto;padding-right:34px}.project .media-frame:after{top:43px}.project-dialog{background:var(--color-transparent);width:100%;max-width:none;height:100dvh;max-height:none;color:var(--color-ink);border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.project-dialog[open]{place-items:center;display:grid}.project-dialog::backdrop{background:var(--color-modal-scrim);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:calc(1 - var(--dismiss,0));animation:backdrop-in .28s var(--ease-out) backwards}@keyframes backdrop-in{0%{background:var(--color-transparent);-webkit-backdrop-filter:blur();backdrop-filter:blur()}}.project-dialog[data-state=minimize]::backdrop,.project-dialog[data-state=close]::backdrop{background:var(--color-transparent);-webkit-backdrop-filter:blur();backdrop-filter:blur();transition:background var(--dur-short) var(--ease-out), backdrop-filter var(--dur-short) var(--ease-out);animation:none}.project-window{border:1px solid var(--color-rule);border-radius:var(--radius-panel);background:var(--color-paper);width:min(1080px,100% - 64px);height:min(790px,100dvh - 80px);box-shadow:0 32px 100px var(--color-modal-shadow);transform-origin:50% 100%;transition:width .42s var(--ease-out), height .42s var(--ease-out), border-radius .42s var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.project-window.is-full{border-radius:0;width:100%;height:100dvh}.project-titlebar{background:var(--color-window-chrome);border-bottom:1px solid var(--color-rule);-webkit-user-select:none;user-select:none;touch-action:none;flex-shrink:0;grid-template-columns:108px minmax(0,1fr) 108px;align-items:center;min-height:56px;padding:0 14px;display:grid}.window-controls{align-items:center;display:flex}.window-control{background:var(--color-transparent);border-radius:var(--radius-sm);border:0;place-items:center;width:32px;height:40px;padding:0;display:grid}.window-control>span{transition:transform var(--dur-micro) var(--ease-out);width:14px;height:14px;color:var(--color-window-symbol);box-shadow:inset 0 0 0 1px var(--color-shadow);border-radius:50%;place-items:center;display:grid}.window-close>span{background:var(--color-window-close)}.window-minimize>span{background:var(--color-window-minimize)}.window-full>span{background:var(--color-window-full)}.window-control svg{opacity:0;transition:opacity var(--dur-short) var(--ease-out)}.window-controls:hover svg,.window-control:focus-visible svg{opacity:1}.window-control:active>span{transform:scale(.85)}.project-window-name{text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:var(--text-xs);font-weight:500;overflow:hidden}.project-window-body{overscroll-behavior:contain;flex:1;min-height:0;padding:clamp(24px,4vw,50px);overflow-y:auto}.project-window-heading{text-align:center;max-width:620px;margin:0 auto 32px}.project-window-heading h2{margin-top:12px;font-size:clamp(1.75rem,4vw,3rem)}.project-window-heading p{color:var(--color-muted);font-size:var(--text-sm);margin-top:14px}.project-window .project-art{aspect-ratio:1.7;width:100%;max-width:980px;margin-inline:auto}.project-window .art-placeholder,.project-window .pixel-mask{display:none}.project-window-video{border-radius:var(--radius-medium);background:var(--color-ink);width:100%;max-height:65dvh;display:block}.project-window-study{max-width:680px;margin:32px auto}.project-window-study section{margin-top:32px}.project-window-study h3{margin-bottom:10px}.project-window-study h4{font-size:var(--text-base)}.project-window .case-workflow{max-width:980px;margin-inline:auto}.project-window .case-workflow-frame img{max-height:64dvh}.project-window-study p,.project-window-note{color:var(--color-muted)}.project-window-note{text-align:center;max-width:38ch;font-size:var(--text-sm);margin:24px auto 0}.custom-cursor-active .project-dialog,.custom-cursor-active .project-dialog *{cursor:auto!important}.custom-cursor-active .project-dialog button{cursor:pointer!important}.project-modal-open .custom-cursor,.project-modal-open .cursor-pill{visibility:hidden}@media (width<=47.999rem){.project-window{border-radius:var(--radius-medium);width:calc(100% - 20px);height:calc(100dvh - 36px)}.project-titlebar{grid-template-columns:132px minmax(0,1fr) 20px;min-height:56px;padding:0 8px}.window-control{width:44px;height:44px}.window-control svg{opacity:1}.project-window-name{text-align:left;font-size:var(--text-2xs)}.project-window .project-art{aspect-ratio:1.15}}.logo-heading-line{display:block}.logo-heading-word{white-space:pre}.logo-letter{display:inline-block;position:relative}.logo-letter-glyph{transition:opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);display:inline-block}.logo-letter-mark{object-fit:contain;opacity:0;pointer-events:none;width:.85em;height:.8em;transition:opacity var(--dur-short) var(--ease-out), transform .36s var(--ease-letter);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.35)}@media (hover:hover) and (pointer:fine){.logo-letter:hover .logo-letter-glyph{opacity:0;transform:scale(.6)}.logo-letter:hover .logo-letter-mark{opacity:1;transform:translate(-50%,-50%)scale(1)}}.process-line{color:var(--color-footer);letter-spacing:-.045em;padding-block:var(--space-3xl) var(--space-xl);flex-wrap:wrap;justify-content:space-between;gap:clamp(12px,2vw,32px);font-size:clamp(1.5rem,3.5vw,3.5rem);font-weight:550;line-height:1.2;display:flex}.process-line>svg{width:clamp(18px,2.8vw,36px);height:auto}.process-step{padding-block:12px;display:inline-block;position:relative}.process-word{transition:opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);display:inline-block}.process-emoji{object-fit:contain;pointer-events:none;opacity:0;width:1.15em;height:1.15em;transition:opacity var(--dur-short) var(--ease-out), transform .36s var(--ease-letter);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.3)}@media (hover:hover) and (pointer:fine){.process-step:hover .process-word{opacity:0;transform:scale(.85)}.process-step:hover .process-emoji{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (width<=47.999rem){.process-line{padding-top:var(--space-2xl);grid-template-columns:1fr auto 1fr;gap:8px 12px;font-size:clamp(1.55rem,5.5vw,2.5rem);display:grid}.process-line>svg:nth-of-type(2){display:none}}.island{background:var(--color-ink);color:var(--color-paper);box-shadow:0 12px 32px var(--color-shadow), 0 2px 6px var(--color-shadow-soft);pointer-events:none;z-index:1;place-items:center;display:grid;position:absolute;top:0;left:50%;overflow:hidden;translate:-50%}.island-content{font-size:var(--text-sm);white-space:nowrap;align-items:center;gap:10px;padding-inline:20px;font-weight:500;display:flex}.island-content svg{color:var(--color-accent)}.navigation{transition:opacity .22s var(--ease-out), filter .26s var(--ease-out), scale .32s var(--ease-out)}.navigation[data-island]{opacity:0;filter:blur(8px);pointer-events:none;scale:.96}
