/* Motion lives separately so the content and layout remain easy to edit. */
.intro-complete .build-overlay{opacity:1;visibility:visible}.intro-complete .build-cursor{opacity:.85}.intro-complete .cursor-0{animation:hero-cursor-drift-a 11s ease-in-out infinite}.intro-complete .cursor-1{animation:hero-cursor-drift-b 13s ease-in-out infinite}.intro-complete .cursor-2{display:none}.intro-complete .build-frame,.intro-complete .build-guide{opacity:0}@keyframes hero-cursor-drift-a{0%,100%{left:7%;top:15%}30%{left:40%;top:8%}65%{left:82%;top:20%}85%{left:70%;top:75%}}@keyframes hero-cursor-drift-b{0%,100%{left:85%;top:80%}35%{left:70%;top:40%}65%{left:42%;top:85%}85%{left:20%;top:65%}}
.build-scene{position:relative;isolation:isolate}.scene-tools{position:absolute;inset:0;pointer-events:none;z-index:8;overflow:hidden;visibility:hidden;opacity:0}.scene-running>.scene-tools{visibility:visible;animation:scene-tools-life 2.4s both}.scene-outline{position:absolute;inset:2px;border:1px solid #ff647a;transform-origin:top left;opacity:0}.scene-running>.scene-tools .scene-outline{animation:scene-box-draw 2.4s both}.scene-outline:before,.scene-outline:after{content:'';position:absolute;background:#fff;border:1px solid #ff263d;width:5px;height:5px;bottom:-3px}.scene-outline:before{left:-3px}.scene-outline:after{right:-3px}.scene-pointer{position:absolute;left:0;top:0;color:#ff455b;display:flex;align-items:flex-start;filter:drop-shadow(0 2px 4px #0009)}.scene-pointer svg{width:22px;height:27px;fill:currentColor;stroke:#fff;stroke-width:1.4}.scene-pointer span{font:7px Mono;letter-spacing:1px;padding:4px 7px;margin:20px 0 0 -3px;border-radius:3px;background:#e82541;color:#fff}.scene-pointer-1{color:#56c6df}.scene-pointer-1 span{background:#15758c}.scene-running>.scene-tools .scene-pointer-0{animation:scene-design-path 2.4s cubic-bezier(.4,0,.25,1) both}.scene-running>.scene-tools .scene-pointer-1{animation:scene-build-path 2.4s cubic-bezier(.4,0,.25,1) both}.scene-running>.project-image img,.scene-running>.featured-image img,.scene-running>.stoqzy-image img{animation:scene-image-in 1.8s both}.scene-running>.project-title,.scene-running>.app-copy,.scene-running>.featured-content,.scene-running>.about-copy,.scene-running>.contact-form{animation:scene-content-in 1.7s both}.scene-running>.app-phones img,.scene-running .ios-shot{animation:scene-phone-in 1.8s both}.scene-running>.app-phones img:nth-child(2),.scene-running .ios-shot:nth-child(2){animation-delay:.15s}.scene-running>.app-phones img:nth-child(3),.scene-running .ios-shot:nth-child(3){animation-delay:.3s}.scene-running.plan>h3,.scene-running.plan>.plan-price{animation:scene-text-in 1.6s both}.motion-heading.heading-built{animation:heading-sweep 1.15s cubic-bezier(.16,1,.3,1) both}.scene-running .project-image img{animation:scene-image-in 1.8s both}@keyframes scene-tools-life{0%{opacity:0}12%,78%{opacity:1}100%{opacity:0}}@keyframes scene-box-draw{0%,8%{scale:.01 .01;opacity:0}14%{scale:.01 .01;opacity:.8}64%{scale:1 1;opacity:.8}100%{scale:1 1;opacity:0}}@keyframes scene-design-path{0%{left:2%;top:2%}18%{left:3%;top:3%}55%{left:92%;top:75%}78%,100%{left:80%;top:92%}}@keyframes scene-build-path{0%{left:85%;top:10%}22%{left:4%;top:38%}48%{left:75%;top:43%}78%,100%{left:92%;top:85%}}@keyframes scene-image-in{0%{clip-path:inset(0 0 100% 0);opacity:.2}100%{clip-path:inset(0);opacity:1}}@keyframes scene-content-in{0%{opacity:.15;translate:0 22px}100%{opacity:1;translate:0 0}}@keyframes scene-phone-in{0%{clip-path:inset(0 0 100% 0);opacity:.1}100%{clip-path:inset(0);opacity:1}}@keyframes scene-text-in{0%{clip-path:inset(0 100% 0 0)}100%{clip-path:inset(0)}}@keyframes heading-sweep{0%{clip-path:inset(0 0 100% 0);translate:0 20px}100%{clip-path:inset(0);translate:0 0}}@media(max-width:650px){.scene-pointer svg{width:17px;height:22px}.scene-pointer span{font-size:6px;padding:3px 5px}}@media(prefers-reduced-motion:reduce){.scene-tools{display:none}.motion-heading{clip-path:none;translate:none}}
.intro-controls{display:flex;align-items:center;gap:18px}.intro-controls button{border:0;background:none;color:#ff8996;font:8px Mono;letter-spacing:1px;padding:7px 0;cursor:pointer}.intro-controls button:disabled{opacity:.4;cursor:default}.intro-controls button[hidden]{display:none}.hero-bottom{gap:20px;flex-wrap:wrap}.portrait-wrap{translate:0 var(--parallax,0px)}.hero-word{translate:0 var(--parallax,0px)}.portrait-halo{animation:halo-breathe 6s ease-in-out infinite}.intro-complete .portrait{animation:portrait-breathe 7s ease-in-out infinite}.cross{animation:cross-turn 18s linear infinite}.status{animation:status-beat 2s ease-in-out infinite}.hero-word{background:linear-gradient(110deg,#ef1730 15%,#ff3048 40%,#ff6373 49%,#f52138 57%,#eb152d 85%);background-size:240% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:type-shine 10s ease-in-out infinite}.js .reveal{transform:translateY(44px);transition:opacity .85s ease,transform .85s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}.js .reveal.visible{opacity:1;transform:none}.project-image{transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .3s ease,box-shadow .3s}.project-image:hover{box-shadow:0 16px 45px #ff263d16}.plan,.featured-card{transition:translate .35s,border-color .35s,box-shadow .35s}.plan:hover,.featured-card:hover{translate:0 -6px;border-color:#d84054;box-shadow:0 15px 40px #0004}.button{position:relative;overflow:hidden}.button:after{content:'';position:absolute;inset:-100% auto -100% -60%;width:28%;background:linear-gradient(90deg,transparent,#ffffff28,transparent);transform:rotate(20deg);transition:left .65s;pointer-events:none}.button:hover:after{left:140%}.ios-shot:nth-child(1) img{animation:phone-float 7s ease-in-out infinite}.ios-shot:nth-child(2) img{animation:phone-float 7s .6s ease-in-out infinite}.ios-shot:nth-child(3) img{animation:phone-float 7s 1.2s ease-in-out infinite}.build-overlay{position:absolute;inset:0;z-index:6;pointer-events:none;opacity:0;visibility:hidden;overflow:hidden}.intro-running .build-overlay{visibility:visible;animation:overlay-life 4.4s both}.build-cursor{position:absolute;left:0;top:0;display:flex;align-items:flex-start;color:#ff455b;filter:drop-shadow(0 2px 5px #0008)}.build-cursor svg{width:25px;height:30px;fill:currentColor;stroke:#fff;stroke-width:1.5}.build-cursor>span{background:currentColor;border-radius:3px;margin:23px 0 0 -4px;padding:3px 8px;font:8px Mono;letter-spacing:1px}.build-cursor>span{color:#fff;background:#ec2c44}.cursor-1{color:#4cbad8}.cursor-1>span{background:#177b98}.cursor-2{color:#b9a0ff}.cursor-2>span{background:#7458b9}.intro-running .cursor-0{animation:cursor-type 4.4s cubic-bezier(.45,0,.25,1) both}.intro-running .cursor-1{animation:cursor-design 4.4s cubic-bezier(.45,0,.25,1) both}.intro-running .cursor-2{animation:cursor-build 4.4s cubic-bezier(.45,0,.25,1) both}.build-guide{position:absolute;background:#ff5365;opacity:0;box-shadow:0 0 8px #ff263d40}.guide-x{height:1px;width:100%;top:24%;left:0}.guide-y{width:1px;height:100%;left:31%;top:0}.intro-running .build-guide{animation:guide-life 4.4s both}.build-frame{position:absolute;left:30%;top:13%;width:54%;height:78%;border:1px solid #ff7186;transform-origin:top left;opacity:0}.build-frame:before,.build-frame:after{content:'';position:absolute;bottom:-3px;width:5px;height:5px;background:#fff;border:1px solid #ff263d}.build-frame:before{left:-3px}.build-frame:after{right:-3px}.intro-running .build-frame{animation:frame-draw 4.4s both}.intro-running .hero-word{animation:word-build 4.4s both}.intro-running .hello{animation:line-build 4.4s .15s both}.intro-running h1{animation:name-build 4.4s both}.intro-running .role{animation:line-build 4.4s .5s both}.intro-running .hero-desc{animation:line-build 4.4s .7s both}.intro-running .hero-intro>.button{animation:line-build 4.4s .9s both}.intro-running .portrait{animation:portrait-build 4.4s both}.intro-running .hero-side{animation:side-build 4.4s both}
@keyframes overlay-life{0%{opacity:0}8%,82%{opacity:1}100%{opacity:0}}@keyframes word-build{0%,8%{clip-path:inset(0 100% 0 0);opacity:.15}38%,100%{clip-path:inset(0);opacity:1}}@keyframes name-build{0%,16%{clip-path:inset(0 100% 0 0);opacity:0}46%,100%{clip-path:inset(0);opacity:1}}@keyframes line-build{0%,15%{opacity:0;translate:0 14px}40%,100%{opacity:1;translate:0 0}}@keyframes portrait-build{0%,26%{clip-path:inset(0 0 100% 0);opacity:0}68%,100%{clip-path:inset(0);opacity:1}}@keyframes side-build{0%,48%{opacity:0;translate:15px 0}80%,100%{opacity:1;translate:0 0}}@keyframes cursor-type{0%{left:42%;top:46%}12%{left:2%;top:10%}38%{left:94%;top:18%}45%{left:2%;top:40%}65%{left:31%;top:50%}85%,100%{left:49%;top:90%}}@keyframes cursor-design{0%{left:49%;top:46%}22%{left:30%;top:13%}65%{left:84%;top:91%}82%,100%{left:53%;top:90%}}@keyframes cursor-build{0%{left:55%;top:46%}20%{left:31%;top:24%}40%{left:5%;top:74%}65%{left:88%;top:48%}85%,100%{left:57%;top:90%}}@keyframes guide-life{0%,12%{opacity:0}22%,65%{opacity:.55}80%,100%{opacity:0}}@keyframes frame-draw{0%,20%{opacity:0;scale:.01 .01}25%{opacity:1;scale:.01 .01}65%{opacity:1;scale:1 1}85%,100%{opacity:0;scale:1 1}}@keyframes portrait-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes halo-breathe{0%,100%{opacity:.5;scale:.95}50%{opacity:1;scale:1.08}}@keyframes cross-turn{to{rotate:360deg}}@keyframes status-beat{0%,100%{box-shadow:0 0 0 0 #ff263d50}50%{box-shadow:0 0 0 5px #ff263d00}}@keyframes type-shine{0%,100%{background-position:100% 0}50%{background-position:0 0}}@keyframes phone-float{0%,100%{translate:0 0}50%{translate:0 -9px}}
@media(max-width:650px){.intro-controls{width:100%;justify-content:space-between;border-top:1px solid #30252f;padding-top:8px}.intro-controls button{font-size:7px}.build-cursor svg{width:18px;height:23px}.build-cursor>span{font-size:6px;margin-top:18px;padding:3px 5px}.build-frame{top:120px;height:360px;width:80%;left:17%}.guide-x{top:140px}.guide-y{left:17%}.intro-running .hero-side{animation:none}.portrait-wrap,.hero-word{translate:0 0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.build-overlay,.intro-controls{display:none}.js .reveal{opacity:1;transform:none}.portrait-wrap,.hero-word{translate:0 0}.hero-word{color:#f32136;background:none}.project-image{transform:none}}
