.tpi{--navy:var(--color-graphite);--graph:var(--color-graphite);--or:var(--accent);--amb:var(--accent-amber);--blue:#6da9d8;--ease:cubic-bezier(.22,.7,.2,1);--t:.35s;position:relative;background:var(--color-paper);color:var(--graph);font-family:var(--font-sans)}.tpi a{color:inherit;text-decoration:none}.tpi h1{font-size:clamp(34px,4.6vw,52px);line-height:1.1;margin:0 0 18px;font-weight:600}.tpi-wrap{max-width:1180px;margin:0 auto;padding:0 32px}.tpi-hero{position:relative;background:var(--navy);color:#fff;min-height:540px;overflow:hidden;display:flex;align-items:center;padding:72px 0}.tpi-hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--navy) 6%,rgba(22,24,29,.78) 38%,rgba(22,24,29,.12) 70%,transparent),linear-gradient(0deg,rgba(22,24,29,.55),transparent 22%)}.tpi-hero__txt{position:relative;z-index:2;width:100%}.tpi-eyebrow{color:var(--or);font-size:12px;font-weight:600;letter-spacing:.1em;margin:0 0 12px}.tpi-sub{max-width:360px;margin:0;color:#d5dbe3;font-size:17px}.tpi-hero__art{position:absolute;top:0;right:0;bottom:0;width:68%;animation:tpi-artIn 1.7s cubic-bezier(.2,.7,.2,1) both}.tpi-hero__art svg{display:block;width:100%;height:100%}@keyframes tpi-artIn{0%{opacity:0;transform:scale(1.05);filter:brightness(.55)}}.tpi-hero .lay-far{animation:tpi-driftA 28s ease-in-out infinite alternate}.tpi-hero .lay-mid{animation:tpi-driftB 34s ease-in-out infinite alternate}.tpi-hero .lay-near{animation:tpi-driftA 40s ease-in-out infinite alternate-reverse}@keyframes tpi-driftA{to{transform:translate(-7px,4px)}}@keyframes tpi-driftB{to{transform:translate(6px,-3px)}}.tpi .edge,.tpi .eglow,.tpi .run,.tpi .sg{vector-effect:non-scaling-stroke}.tpi .edge{stroke:#a9d8ff;stroke-width:1.6;stroke-opacity:.4;stroke-dasharray:1;animation:tpi-edgeIn 1.5s var(--ease) both,tpi-edgeIdle 10s ease-in-out infinite;animation-delay:calc(1.4s + var(--i) * .14s),calc(4s + var(--i) * 1.1s)}@keyframes tpi-edgeIn{0%{stroke-dashoffset:1;stroke-opacity:1}to{stroke-dashoffset:0;stroke-opacity:.4}}@keyframes tpi-edgeIdle{50%{stroke-opacity:.85}}.tpi .eglow{stroke:#6da9d8;stroke-width:6;opacity:.14;animation:tpi-glowIn 2.4s ease-out both;animation-delay:calc(1.4s + var(--i) * .14s)}@keyframes tpi-glowIn{0%{opacity:.7}to{opacity:.14}}.tpi .run{stroke:#d6ecff;stroke-width:2.2;stroke-dasharray:.1 1;stroke-dashoffset:.1;opacity:0;animation:tpi-scan 10s infinite var(--ease);animation-delay:calc(3.4s + var(--i) * 1.25s)}.tpi .band{mix-blend-mode:screen;opacity:0}.tpi .b1{animation:tpi-bandIn 1.7s cubic-bezier(.5,.1,.3,1) 1.4s both}.tpi .b2{animation:tpi-bandIdle 15s linear 5s infinite}@keyframes tpi-bandIn{0%{transform:translateY(840px) skewY(-7deg);opacity:0}12%{opacity:.95}88%{opacity:.95}to{transform:translateY(-300px) skewY(-7deg);opacity:0}}@keyframes tpi-bandIdle{0%{transform:translateY(840px) skewY(-7deg);opacity:0}5%{opacity:.3}38%{opacity:.3}44%,to{transform:translateY(-300px) skewY(-7deg);opacity:0}}.tpi .sg{stroke:#cfe8ff;stroke-width:1.8;stroke-dasharray:.1 1;stroke-dashoffset:.1;opacity:0;animation:tpi-scan 9s linear infinite}.tpi .sg0{animation-delay:2.2s}.tpi .sg1{animation-delay:3.9s}.tpi .sg2{animation-delay:5.6s}.tpi .sg3{stroke:var(--amb);animation-delay:7.3s}.tpi .sg4{animation-delay:9s}@keyframes tpi-scan{0%{stroke-dashoffset:.1;opacity:0}8%{opacity:.9}35%{stroke-dashoffset:-1;opacity:.9}40%,to{stroke-dashoffset:-1;opacity:0}}.tpi-sec{padding:44px 0 4px}.tpi-sec h2{font-size:22px;margin:0 0 20px}.tpi-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}.tpi-link{color:var(--or);font-size:14px;font-weight:600}.tpi-link span{display:inline-block;transition:transform var(--t)}.tpi-link:hover span{transform:translateX(4px)}.tpi-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;position:relative}.tpi-card{position:relative;background:#fff;border:1px solid #ececef;border-radius:12px;padding:20px;min-height:100px;box-shadow:0 1px 3px rgba(22,24,29,.05);transition:transform var(--t) var(--ease),box-shadow var(--t),border-color var(--t)}.tpi-card h3{margin:12px 0 0;font-size:16px;font-weight:500;line-height:1.35}.tpi-prac h3,.tpi-wf h3{font-size:14px}.tpi-card:focus-within,.tpi-card:hover{transform:translateY(-4px);border-color:rgba(242,104,60,.55);box-shadow:0 12px 28px rgba(22,24,29,.1),0 0 0 3px rgba(242,104,60,.08)}.tpi-ico{display:block;width:26px;height:26px;color:var(--or)}.tpi-ico svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.tpi-ico circle,.tpi-ico path,.tpi-ico rect{stroke-dasharray:1;stroke-dashoffset:1}.is-in .tpi-ico circle,.is-in .tpi-ico path,.is-in .tpi-ico rect{animation:tpi-draw 1.1s var(--ease) forwards;animation-delay:calc(var(--i) * .12s + .25s)}@keyframes tpi-draw{to{stroke-dashoffset:0}}[data-reveal] .tpi-card{opacity:0;transform:translateY(18px)}[data-reveal].is-in .tpi-card{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease),box-shadow var(--t),border-color var(--t);transition-delay:calc(var(--i) * .1s)}[data-reveal].is-in .tpi-card:hover{transform:translateY(-4px);transition-delay:0s;transition-duration:var(--t)}.tpi-track{position:absolute;top:22px;right:18px;display:flex;gap:10px;align-items:center}.tpi-track i{width:5px;height:5px;border-radius:50%;background:#e2e3e8}.tpi-signal{position:absolute;left:0;right:0;top:50%;height:1px;pointer-events:none;overflow:hidden;opacity:0}.tpi-signal:before{content:"";position:absolute;top:0;height:1px;width:22%;left:-25%;background:linear-gradient(90deg,transparent,var(--or),transparent)}.is-in .tpi-signal{animation:tpi-sigfade 10s 2s infinite}.is-in .tpi-signal:before{animation:tpi-sig 10s 2s infinite var(--ease)}@keyframes tpi-sig{0%{left:-25%}25%,to{left:105%}}@keyframes tpi-sigfade{0%,25%{opacity:1}26%,to{opacity:0}}[data-reveal=rise] .tpi-card{transform:translateY(24px) scale(.97)}[data-reveal=rise].is-in .tpi-card{transition-delay:calc(var(--i) * .11s)}.is-in .ico-shield svg{animation:tpi-pop .8s var(--ease) calc(var(--i) * .11s + 1.3s)}.is-in .ico-flow svg{animation:tpi-turn 1.5s var(--ease) calc(var(--i) * .11s + 1.2s)}.is-in .ico-person svg{animation:tpi-bob .9s var(--ease) calc(var(--i) * .11s + 1.3s)}.is-in .ico-check svg{animation:tpi-pop .8s var(--ease) calc(var(--i) * .11s + 1.3s)}.tpi-card:hover .ico-flow svg{animation:tpi-turn .9s var(--ease)}.tpi-card:hover .ico-check svg,.tpi-card:hover .ico-shield svg{animation:tpi-pop .6s var(--ease)}.tpi-card:hover .ico-person svg{animation:tpi-bob .6s var(--ease)}@keyframes tpi-pop{40%{transform:scale(1.2)}}@keyframes tpi-turn{to{transform:rotate(1turn)}}@keyframes tpi-bob{40%{transform:translateY(-3px)}}[data-reveal=slide] .tpi-card{transform:translateX(-30px)}[data-reveal=slide].is-in .tpi-card{transition-delay:calc(var(--i) * .18s)}.tpi-wf .tpi-card:first-child{--t:1.5s}.tpi-wf .tpi-card:nth-child(2){--t:2.2s}.tpi-wf .tpi-card:nth-child(3){--t:2.9s}.tpi-wf .tpi-card:nth-child(4){--t:3.6s}.tpi-wf .tpi-track i:nth-child(2){--k:1}.tpi-wf .tpi-track i:nth-child(3){--k:2}.tpi-wf:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(242,104,60,.4);transform:scaleX(0);transform-origin:left}.tpi-wf.is-in:before{transform:scaleX(1);transition:transform 1.2s var(--ease) .5s}.tpi-wf.is-in .tpi-track i{animation:tpi-mark 7.5s infinite;animation-delay:calc(var(--t) + var(--k, 0) * .12s)}@keyframes tpi-mark{0%,14%,to{background:#e2e3e8;box-shadow:none}5%{background:var(--or);box-shadow:0 0 7px rgba(242,104,60,.8)}}.tpi-wf .tpi-card:before{content:"";position:absolute;top:-1px;left:14px;right:14px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--or),transparent);opacity:0}.tpi-wf.is-in .tpi-card:before{animation:tpi-hop 7.5s infinite;animation-delay:var(--t)}@keyframes tpi-hop{0%,16%,to{opacity:0;transform:scaleX(.2)}5%{opacity:1;transform:scaleX(1)}}.tpi-wf.is-in .ico-lock svg path:nth-child(2){animation:tpi-draw 1.1s var(--ease) calc(var(--i) * .12s + .25s) forwards,tpi-lockk 7.5s ease-in-out calc(var(--t) + .1s) infinite}@keyframes tpi-lockk{0%,16%,to{transform:translateY(0)}6%{transform:translateY(-2.6px)}}.tpi-wf.is-in .ico-doc svg path:nth-child(2){animation:tpi-draw 1.1s var(--ease) calc(var(--i) * .12s + .25s) forwards,tpi-redraw 7.5s ease-in-out calc(var(--t) + .1s) infinite}@keyframes tpi-redraw{0%{stroke-dashoffset:0}3%{stroke-dashoffset:1}16%,to{stroke-dashoffset:0}}.tpi-wf .ico-id svg circle{transform-box:fill-box;transform-origin:center}.tpi-wf.is-in .ico-id svg circle{animation:tpi-draw 1.1s var(--ease) calc(var(--i) * .12s + .25s) forwards,tpi-beat 7.5s ease-in-out calc(var(--t) + .1s) infinite}@keyframes tpi-beat{0%,16%,to{transform:scale(1)}7%{transform:scale(1.5)}}.tpi-wf.is-in .ico-chat svg{animation:tpi-pop2 7.5s ease-in-out calc(var(--t) + .1s) infinite}@keyframes tpi-pop2{0%,16%,to{transform:scale(1)}7%{transform:scale(1.16)}}[data-reveal=bloom] .tpi-card{transform:scale(.92);filter:blur(6px)}[data-reveal=bloom].is-in .tpi-card{filter:none;transition:opacity .8s var(--ease),transform .9s var(--ease),filter .8s var(--ease),box-shadow var(--t),border-color var(--t);transition-delay:calc(var(--c) * .13s)}[data-reveal=bloom].is-in .tpi-card:hover{transition-delay:0s;transition-duration:var(--t)}.tpi-prac .tpi-card{overflow:hidden}.tpi-prac .tpi-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(242,104,60,.2) 50%,transparent 65%);background-size:300% 100%;background-position:130% 0;background-repeat:no-repeat}.tpi-prac.is-in .tpi-card:after{animation:tpi-sweep 11s var(--ease) infinite;animation-delay:calc(1.4s + var(--i) * .22s)}@keyframes tpi-sweep{0%{background-position:130% 0}22%,to{background-position:-30% 0}}.tpi-prac .tpi-card:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(160px circle at var(--mx,50%) var(--my,0),rgba(242,104,60,.13),transparent 70%)}.tpi-prac .tpi-card:hover:before{opacity:1}.tpi-prac .tpi-ico,.tpi-prac h3{position:relative;z-index:1}.tpi-cta{background:var(--navy);color:#fff;margin-top:48px;overflow:hidden}.tpi-cta__in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:56px;padding-bottom:56px}.tpi-cta h2{font-size:clamp(26px,3.2vw,34px);line-height:1.2;margin:0 0 14px;max-width:420px;font-weight:600}.tpi-orbit{flex:0 0 min(420px,45%);width:min(420px,45%);height:auto;margin-right:-60px;opacity:0;transform:scale(.94);transition:opacity 1.2s var(--ease),transform 1.4s var(--ease)}.tpi-cta.is-in .tpi-orbit{opacity:1;transform:none}.tpi-cta:not(.is-in) .tpi-orbit *{animation-play-state:paused}.tpi .orb{transform-origin:200px 200px;animation:tpi-spin 22s linear infinite;filter:drop-shadow(0 0 7px rgba(242,104,60,.85))}@keyframes tpi-spin{to{transform:rotate(1turn)}}.tpi .core{transform-origin:200px 200px;animation:tpi-glow 6.5s ease-in-out infinite}@keyframes tpi-glow{50%{opacity:.55;transform:scale(1.18)}}.tpi .rp{transform-origin:200px 200px;opacity:0;animation:tpi-ripple 6.5s linear infinite}@keyframes tpi-ripple{0%{transform:scale(1);opacity:.9}49%{transform:scale(6.33);opacity:0}to{transform:scale(6.33);opacity:0}}.tpi .rg{animation:tpi-ringflash 6.5s linear infinite}.tpi .rg1{animation-delay:.5s}.tpi .rg2{animation-delay:1.4s}.tpi .rg3{animation-delay:2.3s}.tpi .rg4{animation-delay:3.2s}@keyframes tpi-ringflash{0%,14%,to{stroke:#fff;stroke-opacity:.16}3%{stroke:#f2683c;stroke-opacity:.85}}@media (max-width:900px){.tpi-grid{grid-template-columns:repeat(2,1fr)}.tpi-signal{display:none}.tpi-hero{min-height:500px}.tpi-hero__art{width:100%}.tpi-hero:after{background:linear-gradient(180deg,var(--navy) 0,rgba(22,24,29,.9) 34%,rgba(22,24,29,.2) 72%,rgba(22,24,29,.35))}.tpi-wf:before{display:none}}@media (max-width:640px){.tpi-wrap{padding-left:20px;padding-right:20px}.tpi-grid{gap:12px}.tpi-card{padding:16px}.tpi-hero{min-height:580px;padding:56px 0 40px;align-items:flex-start}.tpi .eglow,.tpi .lay-far,.tpi .sg2,.tpi .sg3,.tpi .sg4{display:none}.tpi-hero__art svg{opacity:1}.tpi-prac .tpi-card:before{display:none}.tpi-cta__in{flex-direction:column;align-items:flex-start}.tpi-orbit{flex:none;width:90%;margin:0 auto}}@media (prefers-reduced-motion:reduce){.tpi .band,.tpi .eglow,.tpi .rp,.tpi .run,.tpi .sg{display:none}.tpi-hero__art,.tpi-orbit{opacity:1;transform:none;filter:none}[data-reveal] .tpi-card{opacity:1!important;transform:none!important;filter:none!important}.tpi .edge{stroke-dasharray:none}.tpi-ico circle,.tpi-ico path,.tpi-ico rect{stroke-dashoffset:0}.tpi-prac .tpi-card:after,.tpi-wf .tpi-card:before{display:none}}