.home{overflow-x:clip}.home-track{position:relative}.film-grain{pointer-events:none;background-size:180px 180px;position:fixed;inset:-15%}@keyframes film-grain{0%{transform:translate(0)}20%{transform:translate(-7%,4%)}40%{transform:translate(5%,-9%)}60%{transform:translate(-3%,8%)}80%{transform:translate(9%,2%)}to{transform:translate(0)}}.home-header{background:linear-gradient(#06070beb 40%,#06070b00)}.home-scramble>span{position:relative}.home-scramble>span[data-scrambling=true]{color:color-mix(in srgb, var(--color-text) 35%, transparent)}.home-scramble>span:after{content:attr(data-glyph);text-align:center;color:var(--color-blue-glow);position:absolute;inset:0}.home-caret{vertical-align:text-bottom;background:var(--color-blue-bright);width:.5em;height:1.1em;margin-left:.2em;display:inline-block}.intro-loader,.intro-shade{display:none}.intro-name{overflow-wrap:anywhere;line-height:.9}.intro-full-name{overflow-wrap:normal;line-height:1.5}.home-intro{container-type:inline-size}.kinetic-name{letter-spacing:-.01em;font-weight:500}.kinetic-word{vertical-align:top;flex-wrap:wrap;justify-content:center;max-width:100%;display:inline-flex}.kinetic-mask{vertical-align:top;margin-block:-.16em -.1em;padding:.16em .03em .1em;display:inline-block;overflow:visible clip}.kinetic-exit{transform-origin:50% 100%;display:inline-block}.kinetic-rise{display:inline-block;position:relative}.kinetic-rise:before{content:attr(data-char);visibility:hidden}.kinetic-glyph{position:absolute;top:0;left:50%;translate:-50%}.intro-scroll-hint{color:var(--color-muted);letter-spacing:.2em;text-transform:uppercase;flex-direction:column;align-items:center;gap:.75rem;display:flex}.intro-scroll-line{background:linear-gradient(var(--color-blue-glow), #7cc4ff00);width:1px;height:3.5rem}.home-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.home-decor{display:none}.home-card-image{transition:transform var(--transition-duration-hover) var(--ease-out)}@media (hover:hover){.home-card:hover .home-card-image{transform:scale(1.06)skew(-1.5deg)rotate(-.5deg)}}.home-page-mask{z-index:100;background:var(--color-bg);animation:home-mask-open var(--transition-duration-snap) var(--ease-mask) forwards;position:fixed;inset:0}@keyframes home-mask-open{0%{clip-path:circle(0 at var(--mask-x) var(--mask-y))}to{clip-path:circle(150vmax at var(--mask-x) var(--mask-y))}}@keyframes home-fade-in{0%{opacity:0}}@keyframes home-blink{50%{opacity:0}}@keyframes intro-scroll-line{0%{transform-origin:top;transform:scaleY(0)}45%{transform-origin:top;transform:scaleY(1)}55%{transform-origin:bottom;transform:scaleY(1)}to{transform-origin:bottom;transform:scaleY(0)}}@media (prefers-reduced-motion:no-preference){.home:not([data-home-tier=low]) .film-grain{animation:.9s step-end infinite film-grain}.home-caret{animation:1.1s step-end infinite home-blink}.intro-scroll-line{animation:intro-scroll-line 2.4s var(--ease-mask) infinite}}.home-scene{align-items:center;min-height:100svh;padding-block:6rem;display:flex}.home-gallery-section{max-width:72rem;margin-inline:auto;padding:6rem 1.5rem}.home-gallery-intro{margin-bottom:2.5rem}.home-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));gap:1.5rem;display:grid}@supports (animation-timeline:view()){.home[data-home-mode=stacked] :is(.home-scene-inner,.home-gallery-section){animation:linear both home-fade-in;animation-timeline:view();animation-range:entry entry 60%}}@media (scripting:enabled){html:not([data-intro-parsed]) .intro-layout{visibility:hidden;animation:0s 3s forwards intro-failsafe-show}}@keyframes intro-failsafe-hide{to{visibility:hidden}}@keyframes intro-failsafe-show{to{visibility:visible;opacity:1}}@keyframes intro-rise{0%{transform:translateY(110%)}}@keyframes intro-line-type{0%{clip-path:inset(0 100% 0 0)}}@media (scripting:enabled) and (prefers-reduced-motion:no-preference){html:not([data-intro-seen]) .home:not([data-home-mode=stacked]) .intro-loader{z-index:30;pointer-events:none;animation:intro-failsafe-hide 0s var(--intro-failsafe,6s) forwards;display:block;position:fixed;inset:0}html:not([data-intro-seen]) .home:not([data-home-mode=stacked]):is(:not([data-intro-phase]),[data-intro-phase=boot],[data-intro-phase=collapse]) .home-header-bar{visibility:hidden;opacity:0;animation:intro-failsafe-show 0s var(--intro-failsafe,6s) forwards}.home-header-bar{transition:opacity .7s var(--ease-out)}:is(html[data-intro-seen] .home,.home:is([data-intro-phase=collapse],[data-intro-phase=open],[data-intro-phase=done])):not([data-home-mode=stacked]) .kinetic-rise{animation:intro-rise var(--letter-rise) var(--ease-mask) calc(var(--letter-start) + var(--i) * var(--letter-stagger)) both}:is(html[data-intro-seen] .home,.home:is([data-intro-phase=collapse],[data-intro-phase=open],[data-intro-phase=done])):not([data-home-mode=stacked]) .intro-role .home-scramble{animation:home-fade-in .4s var(--ease-out) both}:is(html[data-intro-seen] .home,.home:is([data-intro-phase=collapse],[data-intro-phase=open],[data-intro-phase=done])):not([data-home-mode=stacked]) .intro-full-name{animation:home-fade-in .8s var(--ease-out) var(--name-settled) both}:is(html[data-intro-seen] .home,.home:is([data-intro-phase=collapse],[data-intro-phase=open],[data-intro-phase=done])):not([data-home-mode=stacked]) .intro-scroll-hint>*{animation:home-fade-in .8s var(--ease-out) calc(var(--name-settled) + .4s) both}.intro-loader{--seam:var(--loader-seam,50%)}.intro-loader-half{background:var(--color-bg);transition:transform var(--loader-open-ms) var(--ease-mask);position:absolute;inset:0}.intro-loader-half[data-half=top]{clip-path:inset(0 0 calc(100% - var(--seam)) 0)}.intro-loader-half[data-half=bottom]{clip-path:inset(var(--seam) 0 0 0)}.intro-loader-slot{display:flex;position:absolute;inset-inline:0}[data-half=top]>.intro-loader-slot{height:var(--seam);align-items:flex-end;top:0}[data-half=bottom]>.intro-loader-slot{top:var(--seam);align-items:flex-start;bottom:0}.intro-loader-content{width:100%;max-width:72rem;transition:transform var(--loader-collapse-ms) var(--ease-mask), opacity var(--loader-collapse-ms) var(--ease-mask);margin-inline:auto;padding-inline:1.5rem}.intro-loader-log{transform-origin:bottom;padding-bottom:1.5rem}.intro-loader:not([data-fonts]) :is(.intro-loader-slot,.intro-loader-rule){visibility:hidden}.intro-loader-line{min-height:1.5em;margin-top:.35rem}.intro-loader-entry{grid-template-columns:7ch 8ch minmax(0,1fr) auto;gap:1ch;animation:.26s steps(12,end) both intro-line-type;display:grid}.intro-loader-caret{height:1em;margin-left:0}.intro-loader-meter{transform-origin:top;justify-content:space-between;align-items:baseline;padding-top:1.25rem;display:flex}.intro-loader-count{color:var(--color-text);font-size:var(--text-h2);font-variant-numeric:tabular-nums;line-height:1}.intro-loader-rule{top:var(--seam);height:1px;transition:opacity var(--loader-open-ms) var(--ease-mask);background:#7cc4ff24;position:absolute;inset-inline:0}.intro-loader-rule-fill{background:var(--color-blue-glow);height:100%;box-shadow:0 0 .75rem var(--color-blue-glow);transform-origin:0;display:block;transform:scaleX(0)}.intro-loader:is([data-phase=collapse],[data-phase=open]) .intro-loader-content{opacity:0;transform:scaleY(0)}.intro-loader[data-phase=open] .intro-loader-half[data-half=top]{transform:translateY(-100%)}.intro-loader[data-phase=open] .intro-loader-half[data-half=bottom]{transform:translateY(100%)}.intro-loader[data-phase=open] .intro-loader-rule{opacity:0}.home:not([data-home-mode=stacked]) .home-track{height:calc(var(--home-track-vh) * 1vh)}.home:not([data-home-mode=stacked]) .home-stage{height:100dvh;position:sticky;top:0;overflow:clip}.home:not([data-home-mode=stacked]) .home-canvas{animation:home-fade-in 1.2s var(--ease-out) both}.home:not([data-home-mode=stacked]) .home-scene{opacity:0;pointer-events:none;min-height:0;padding-block:5.5rem 3rem;position:absolute;inset:0}.home:not([data-home-mode=stacked]) .home-scene[data-chapter=intro]{opacity:1}.home:not([data-home-mode=stacked]) :is(.home-scene,.home-gallery)[data-active]{pointer-events:auto}@media not (min-width:48rem){.home:not([data-home-mode=stacked]) .home-scene:not(.home-intro){align-items:flex-end}.home:not([data-home-mode=stacked]) .home-scene[data-chapter=contact] .home-copy{background:#06070be6;border-radius:.5rem;padding:1.25rem}}@media (pointer:coarse){.home:not([data-home-mode=stacked]) [data-contact-anchor]{display:none}}.home:not([data-home-mode=stacked]) .intro-layout{isolation:isolate;height:100%;position:relative}.home:not([data-home-mode=stacked]) .intro-hero{isolation:isolate;position:relative}.home:not([data-home-mode=stacked]) .intro-shade{z-index:-1;background:radial-gradient(closest-side,#06070bbf,#06070b00);display:block;position:absolute;inset:12% -4rem}.home:not([data-home-mode=stacked]) .intro-scroll-hint{isolation:isolate;position:absolute;bottom:0;left:50%;translate:-50%}.home:not([data-home-mode=stacked]) .home-scene[data-entrance=mask]{background:radial-gradient(circle at 50% 60%,#0f2a6b59,#06070b00 70%)}.home:not([data-home-mode=stacked]) .home-scene[data-entrance=mask] [data-chapter-copy]{opacity:0}.home:not([data-home-mode=stacked]) .home-copy{isolation:isolate;position:relative}.home:not([data-home-mode=stacked]) .home-copy:before{--shade-edge:4rem;content:"";z-index:-1;-webkit-mask-image:linear-gradient(to right, transparent, #000 var(--shade-edge), #000 calc(100% - var(--shade-edge)), transparent), linear-gradient(transparent, #000 var(--shade-edge), #000 calc(100% - var(--shade-edge)), transparent);mask-image:linear-gradient(to right, transparent, #000 var(--shade-edge), #000 calc(100% - var(--shade-edge)), transparent), linear-gradient(transparent, #000 var(--shade-edge), #000 calc(100% - var(--shade-edge)), transparent);background:#06070bbf;position:absolute;inset:-3rem -4rem;-webkit-mask-composite:source-in;mask-composite:intersect}.home:not([data-home-mode=stacked]) .intro-role{isolation:isolate;position:relative}.home:not([data-home-mode=stacked]) :is(.intro-role,.intro-scroll-hint):before{content:"";z-index:-1;background:radial-gradient(closest-side,#06070bd9 40%,#06070b00);position:absolute;inset:-1.5rem -3rem}@media (48rem<=width<64rem){.home:not([data-home-mode=stacked]) .home-scene[data-entrance]:not([data-surface=blue-deep]){align-items:flex-end}}@media (min-width:64rem){.home:not([data-home-mode=stacked]) .home-scene:is([data-chapter=front],[data-chapter=back],[data-chapter=infra],[data-chapter=ia]) .home-scene-inner{grid-template-columns:minmax(0,1fr);justify-items:start}.home:not([data-home-mode=stacked]) .home-scene:is([data-chapter=front],[data-chapter=back],[data-chapter=infra],[data-chapter=ia]) .home-copy{max-width:56vw}.home:not([data-home-mode=stacked]) .home-scene:is([data-chapter=front],[data-chapter=back],[data-chapter=infra],[data-chapter=ia]) .home-copy h2{font-size:10vw}.home:not([data-home-mode=stacked]) .home-scene:is([data-chapter=front],[data-chapter=back],[data-chapter=infra],[data-chapter=ia]) .home-copy p{max-width:min(34rem,40vw)}.home:not([data-home-mode=stacked]) .home-scene:is([data-chapter=front],[data-chapter=back],[data-chapter=infra],[data-chapter=ia]) .home-sketch{max-width:min(15rem,18vw);margin:0}}.home:not([data-home-mode=stacked]) .home-scene[data-surface=blue-deep] .home-copy{background:#0f2a6be6;border-radius:.5rem;padding:2rem}.home:not([data-home-mode=stacked]) .home-scene[data-surface=blue-deep] .home-copy:before{display:none}.home:not([data-home-mode=stacked]) .home-gallery{clip-path:circle(0);pointer-events:none;background:#06070b8c;position:absolute;inset:0}.home:not([data-home-mode=stacked]) .home-gallery-drag{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;height:100%}.home:not([data-home-mode=stacked]) .home-gallery-drag[data-dragging]{cursor:grabbing}.home:not([data-home-mode=stacked]) .home-gallery-track{align-items:center;gap:8rem;width:max-content;height:100%;padding:5.5rem 6vw 3rem;display:flex}.home:not([data-home-mode=stacked]) .home-gallery-section{align-items:center;gap:2.5rem;max-width:none;margin:0;padding:0;display:flex}.home:not([data-home-mode=stacked]) .home-gallery-intro{flex:none;width:min(24rem,80vw);margin:0}.home:not([data-home-mode=stacked]) .home-cards{gap:2rem;display:flex}.home:not([data-home-mode=stacked]) .home-card-slot{flex:none;width:min(26rem,78vw)}.home:not([data-home-mode=stacked]) .home-card-slot :is(a,img){-webkit-user-drag:none}.home:not([data-home-mode=stacked]) .home-decor{z-index:5;pointer-events:none;display:block;position:absolute;inset:0}.home:not([data-home-mode=stacked]) .home-mask-ring{width:100%;height:100%;position:absolute;inset:0}.home:not([data-home-mode=stacked]) .home-mask-ring circle{fill:none;stroke:var(--color-blue-glow);stroke-width:1.5px;opacity:0;filter:drop-shadow(0 0 6px var(--color-blue-glow))}.home:not([data-home-mode=stacked]) .home-point-anchor{width:0;height:0;position:absolute;top:50%;left:50%}.home:not([data-home-mode=stacked]) .home-point{background:var(--color-blue-ice);width:1rem;height:1rem;box-shadow:0 0 1.5rem .5rem var(--color-blue-glow), 0 0 5rem 2rem #7cc4ff59;opacity:0;border-radius:50%;margin:-.5rem;position:absolute;transform:scale(0)}}
.layer-stage{perspective:1000px;grid-column:1/-1;gap:2rem;width:100%;max-width:44rem;display:grid}.layer-visuals{perspective:1000px;flex-wrap:wrap;align-items:flex-end;gap:1.5rem;display:flex}.layer-visual{--tilt-y:9deg;--tilt-x:3deg;max-width:20rem;transform:rotateY(var(--tilt-y)) rotateX(var(--tilt-x));flex:14rem}.layer-visual:nth-child(2){--tilt-y:-7deg;--tilt-x:-2deg}.layer-visual:has([data-device=phone]){flex:0 0 7.5rem}.layer-visual-image{transition:transform var(--transition-duration-hover) var(--ease-out)}@media (hover:hover){.layer-visual:hover .layer-visual-image{transform:scale(1.05)}}.device-body,.code-window{box-shadow:0 1.5rem 3rem -1rem #000000b3,0 0 2.5rem -.75rem #2f6bff73}.device{flex-direction:column;gap:.75rem;display:flex}.device-body{border:1px solid var(--color-surface-2);background:var(--color-surface);transition:border-color var(--transition-duration-hover) var(--ease-out);border-radius:.5rem;position:relative;overflow:hidden}.group:hover .device-body{border-color:var(--color-blue)}.group:has(a:focus-visible) .device-body{border-color:var(--color-blue)}.device-screen{aspect-ratio:16/10;position:relative;overflow:hidden}.device-bar{border-bottom:1px solid var(--color-surface-2);align-items:center;gap:.5rem;padding:.375rem .5rem;display:flex}.device-dots,.code-window-dots{background:radial-gradient(circle, var(--color-surface-2) .1875rem, transparent .2rem) 0 0 / .625rem 100% repeat-x;flex:none;width:1.75rem;height:.375rem}.device-address{background:var(--color-bg);min-width:0;font-family:var(--font-mono);color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;flex:1;padding:.125rem .625rem;font-size:.625rem;line-height:1.5;overflow:hidden}[data-device=phone] .device-body{border-width:.3125rem;border-radius:1.25rem}[data-device=phone] .device-screen{aspect-ratio:9/19;border-radius:.875rem}[data-device=phone] .device-body:after{content:"";z-index:1;background:var(--color-bg);border-radius:999px;width:34%;height:.5rem;position:absolute;top:.375rem;left:50%;translate:-50%}[data-device=wide] .device{gap:1.5rem}[data-device=wide] .device-body{border-width:.375rem;border-radius:.375rem;overflow:visible}[data-device=wide] .device-screen{aspect-ratio:16/9}[data-device=wide] .device-body:after{content:"";background:linear-gradient(var(--color-surface-2), var(--color-surface));clip-path:polygon(22% 0,78% 0,100% 100%,0 100%);width:24%;height:.875rem;position:absolute;top:calc(100% + .375rem);left:50%;translate:-50%}.device-caption{background:var(--color-surface);border-radius:.375rem;padding:.5rem .75rem}.code-window{--tilt-y:-6deg;--tilt-x:2deg;--reveal:1;border:1px solid var(--color-surface-2);background:var(--color-surface);font-family:var(--font-mono);transform:rotateY(var(--tilt-y)) rotateX(var(--tilt-x));border-radius:.5rem;font-size:.6875rem;line-height:1.6;overflow:hidden}.code-window-bar{border-bottom:1px solid var(--color-surface-2);background:var(--color-bg);align-items:flex-end;gap:.75rem;padding:.375rem .75rem 0;display:flex}.code-window-dots{align-self:center}.code-window-tabs{min-width:0;display:flex;overflow:hidden}.code-window-tabs li{color:var(--color-muted);white-space:nowrap;border-radius:.25rem .25rem 0 0;padding:.25rem .75rem}.code-window-tabs li[data-current]{background:var(--color-surface);color:var(--color-text)}.code-window-file+.code-window-file{border-top:1px solid var(--color-surface-2)}.code-window-file-name{color:var(--color-muted);padding:.5rem 1rem 0}.code-window pre{color:var(--color-text);white-space:pre;padding:.75rem 1rem;overflow:hidden}@media not (min-width:64rem){.code-window pre{-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}}.code-line{min-height:1lh;opacity:clamp(0, calc(var(--reveal) * (var(--lines) + 2) - var(--line)), 1);display:block}.stack-row{flex-wrap:wrap;gap:.75rem 1.25rem;display:flex}.stack-row-item{align-items:center;gap:.5rem;display:flex}.stack-icon{background:var(--color-blue-ice);width:1.25rem;height:1.25rem;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;flex:none}@media (scripting:enabled) and (prefers-reduced-motion:no-preference){.home:not([data-home-mode=stacked]) .stack-row{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.home:not([data-home-mode=stacked]) .home-scene .layer-stage{top:7.5rem;pointer-events:none;justify-content:center;align-items:flex-start;gap:1rem;width:auto;max-width:30rem;margin-inline:auto;display:flex;position:absolute;inset-inline:1.5rem}.home:not([data-home-mode=stacked]) .home-scene .layer-visuals{flex-wrap:nowrap;flex:1 1 0;justify-content:center;align-items:flex-start;gap:1rem;min-width:0}.home:not([data-home-mode=stacked]) .home-scene .layer-visual{flex:1 1 0;min-width:0}.home:not([data-home-mode=stacked]) .home-scene .layer-visual:has([data-device=phone]){flex:0 0 34%}.home:not([data-home-mode=stacked]) .home-scene .layer-visual:only-child{flex:0 0 60%}.home:not([data-home-mode=stacked]) .home-scene[data-active] .layer-visual{pointer-events:auto}.home:not([data-home-mode=stacked]) .home-scene:not([data-near]) .layer-visual-image{display:none}.home:not([data-home-mode=stacked]) .home-scene .code-window{--reveal:0;flex:1 1 0;min-width:0;max-height:11rem;font-size:.5625rem}@media not (min-width:64rem){.home:not([data-home-mode=stacked]) .home-scene .layer-stage{top:5rem}.home:not([data-home-mode=stacked]) .home-scene .layer-visual:has([data-device=phone]){flex:0 0 50%}.home:not([data-home-mode=stacked]) .home-scene .layer-visual:only-child{flex:0 0 50%}.home:not([data-home-mode=stacked]) .home-scene [data-device=phone]{flex-direction:row;align-items:flex-end;gap:.5rem}.home:not([data-home-mode=stacked]) .home-scene [data-device=phone] .device-body{flex:0 0 4rem}.home:not([data-home-mode=stacked]) .home-scene [data-device=phone] .device-caption{flex:1 1 0;min-width:0;padding-inline:.5rem}.home:not([data-home-mode=stacked]) .layer-stage[data-has-code] .layer-visual:nth-child(n+2),.home:not([data-home-mode=stacked]) .code-window-file~.code-window-file{display:none}.home:not([data-home-mode=stacked]) .code-window pre{-webkit-mask-image:linear-gradient(#000 60%,#0000);mask-image:linear-gradient(#000 60%,#0000)}}@media (min-width:64rem){.home:not([data-home-mode=stacked]) .home-scene .layer-stage{--content-inset:max(1.5rem, calc((100% - 72rem) / 2 + 1.5rem));--device-lead:min(17rem, 19vw, 25vh);--device-second:min(14rem, 16vw, 21vh);max-width:none;margin:0;display:block;inset:0}.home:not([data-home-mode=stacked]) .home-scene .layer-visuals{display:block;position:absolute;inset:0}.home:not([data-home-mode=stacked]) .home-scene .layer-visual{right:var(--content-inset);width:var(--device-lead);position:absolute}.home:not([data-home-mode=stacked]) .home-scene .layer-visual:first-child{top:5.5rem}.home:not([data-home-mode=stacked]) .home-scene .layer-visual:nth-child(2){right:calc(var(--content-inset) + var(--device-lead) * .75);width:var(--device-second);bottom:2rem}.home:not([data-home-mode=stacked]) .home-scene .layer-visual:only-child{width:min(20rem,24vw,32vh);top:50%;translate:0 -50%}.home:not([data-home-mode=stacked]) .home-scene .layer-visual:has([data-device=phone]){width:min(6.5rem,7.5vw,12vh)}.home:not([data-home-mode=stacked]) [data-device=phone] .device-caption{width:max-content;max-width:12rem}.home:not([data-home-mode=stacked]) .home-scene .code-window{top:6.5rem;right:var(--content-inset);width:min(24rem,27vw);max-height:min(16rem,30vh);font-size:.6875rem;position:absolute}.home:not([data-home-mode=stacked]) .layer-stage[data-has-code] .layer-visual:first-child,.home:not([data-home-mode=stacked]) .layer-stage[data-has-code] .layer-visual:only-child{width:var(--device-second);top:auto;bottom:2rem;translate:none}.home:not([data-home-mode=stacked]) .layer-stage[data-has-code] .layer-visual:nth-child(2){right:calc(var(--content-inset) + var(--device-second) + 1.5rem)}}}.stack-tooltip{z-index:20;border:1px solid var(--color-surface-2);background:var(--color-surface);color:var(--color-text);white-space:nowrap;pointer-events:none;border-radius:.25rem;padding:.125rem .5rem;position:fixed;top:0;left:0}
