1import"./modulepreload-polyfill-B5Qt9EMX.js";import{_ as Me,a as Fe,b as Oe,c as je,d as Ne,e as Ve,f as Re,g as Ge,h as Je,i as Ye,j as ke,k as Ke,l as qe,m as He,n as De,o as Pe,p as ze,q as Be,r as Te,s as Xe,t as $e,u as Ue,v as Qe,w as et,x as tt,y as ot,z as at,A as it,B as st,C as rt,D as nt,E as lt,F as ct}from"./thumb-pixelate-AUKdk52G.js";import{d as dt,b as gt,m as ut,a as mt,e as It,c as pt}from"./gpu-check-DIkHax18.js";import{i as At,b as ft}from"./analytics-B75gEMkU.js";import{mountWarp as Ct,HOME_WARP_COLORS as ht}from"./warp-layer-aI1FJrRt.js";import"./imgfx-safe-DbstGoJg.js";import"./client-CbHxib7S.js";const c=document.documentElement,V=document.querySelector("[data-hero-track]"),u=Object.fromEntries([...document.querySelectorAll("[data-out]")].map(e=>[e.dataset.out,e])),$=matchMedia("(prefers-reduced-motion: reduce)"),N=e=>Math.min(1,Math.max(0,e)),M=e=>1-Math.pow(1-e,3),F=(e,t,o)=>o<=t?e>=o?1:0:N((e-t)/(o-t)),bt=.9;let le=.55;const r={split:.55,grow:.18,track:220,bloom:.15,thresh:.94,page:.55,backdrop:.32,turns:1,msize:.8,exposure:1,gifEnd:.25,riseStart:.05,riseEnd:.8,m1a:.06,m1b:.3,m2a:.31,m2b:.55,m3a:.56,m3b:.8,copyRise:520,andreEnter:760,augustoEnter:900,augustoDrop:180,lift:80,drift:300,magnetReach:340,magnetPull:.12,nameSize:19.26,nameLeft:64},D={copyRise:"--copy-rise",andreEnter:"--andre-enter",augustoEnter:"--augusto-enter",augustoDrop:"--augusto-drop",lift:"--lift",drift:"--drift"},vt={copyRise:520,andreEnter:760,augustoEnter:900,augustoDrop:180,lift:80,drift:300},P=document.querySelector("[data-nav]");let _="scrub",w=null,a=null,S=!1;const n=document.querySelector("[data-bg]"),s=document.querySelector("[data-video]");let Z=null;function z(){if(Z!==null)return Z;const e=Math.max(1,V.offsetHeight-innerHeight);return N(-V.getBoundingClientRect().top/e)}function B(){const e=getComputedStyle(c),t=parseFloat(e.getPropertyValue("--nav"))||88,o=parseFloat(e.getPropertyValue("--pad-bottom"))||128,i=parseFloat(e.getPropertyValue("--gutter"))||32,d=innerWidth-i*2,I=innerHeight-t-o,h=Math.max(d/innerWidth,I/innerHeight);c.style.setProperty("--capsule",Math.max(.1,h).toFixed(4));const p=Math.max(1,V.offsetHeight-innerHeight);c.style.setProperty("--page-lead",(p*(1-le)).toFixed(1)+"px")}function R(){if($.matches)return;const e=z(),t=M(N(e/r.split)),o=N((e-r.split)/(1-r.split));c.style.setProperty("--p",t.toFixed(4)),c.style.setProperty("--pg",o.toFixed(4)),X(e),c.style.setProperty("--cue",N(1-e/.06).toFixed(3)),a?.setSpin(e*r.turns*Math.PI*2),c.style.setProperty("--g",M(F(e,0,r.gifEnd)).toFixed(3)),c.style.setProperty("--m1",M(F(e,r.m1a,r.m1b)).toFixed(3)),c.style.setProperty("--m2",M(F(e,r.m2a,r.m2b)).toFixed(3)),c.style.setProperty("--m3",M(F(e,r.m3a,r.m3b)).toFixed(3));const i=Math.max(1,V.offsetHeight-innerHeight),d=Math.max(0,Math.min(innerHeight+600,scrollY-i*le));c.style.setProperty("--after",d.toFixed(1)+"px"),c.style.setProperty("--rise",F(e,r.riseStart,r.riseEnd).toFixed(3)),u.p2&&(u.p2.textContent=e.toFixed(2)),u.p&&(u.p.textContent=t.toFixed(2)),u.pg&&(u.pg.textContent=o.toFixed(2))}let ae=!1;const ye=()=>{ae||(ae=!0,requestAnimationFrame(()=>{ae=!1,R()}))};addEventListener("scroll",()=>{Z=null,ye()},{passive:!0});addEventListener("resize",()=>{B(),ye()});$.addEventListener("change",R);const l=e=>`${Math.round(e*100)}%`,yt={pos:e=>"live",split:l,grow:l,track:e=>`${e}vh`,bloom:l,thresh:e=>e.toFixed(2),page:l,backdrop:e=>e.toFixed(2),turns:e=>e.toFixed(2),msize:e=>e.toFixed(2),exposure:e=>e.toFixed(2),transmission:l,rough:l,metal:l,irid:l,clearcoat:l,ccRough:l,dispersion:e=>e.toFixed(1),filmMin:e=>`${e}nm`,filmMax:e=>`${e}nm`,envRotY:e=>`${e}°`,gifEnd:l,riseStart:l,riseEnd:l,m1a:l,m1b:l,m2a:l,m2b:l,m3a:l,m3b:l,copyRise:e=>`${e}px`,andreEnter:e=>`${e}px`,augustoEnter:e=>`${e}px`,augustoDrop:e=>`${e}px`,lift:e=>`${e}px`,drift:e=>`${e}px`,magnetReach:e=>`${e}px`,magnetPull:l,nameSize:e=>`${e.toFixed(2)}vw · ${Math.round(e/100*innerWidth)}px`,nameLeft:e=>`${e}px`},we=(e,t)=>(yt[e]||(o=>o.toFixed(2)))(t),ce=new Set(["track","filmMin","filmMax","envRotY","magnetReach","nameLeft",...Object.keys(D)]),pe={transmission:"transmission",ior:"ior",thickness:"thickness",dispersion:"dispersion",rough:"roughness",metal:"metalness",attnDist:"attenuationDistance",irid:"iridescence",iridIOR:"iridescenceIOR",clearcoat:"clearcoat",ccRough:"clearcoatRoughness",envMap:"envMapIntensity"};function T(e,t){const o=ce.has(e)?Number(t):Number(t)/100;r[e]=o,u[e]&&(u[e].textContent=we(e,o)),e==="pos"&&(Z=t<0?null:Number(t)/100,u.pos&&(u.pos.textContent=Z===null?"live":Math.round(Z*100)+"%")),e==="grow"&&c.style.setProperty("--grow",o),e==="bloom"&&a?.setBloom({strength:o,enabled:o>0}),e==="thresh"&&a?.setBloom({threshold:o}),e==="bradius"&&a?.setBloom({radius:o}),e==="backdrop"&&a?.setBackdrop({blur:o}),e==="msize"&&a?.setModel({scale:o}),e==="ypos"&&a?.setModel({y:o}),e==="tilt"&&a?.setModel({tilt:o}),e==="exposure"&&a?.setExposure(o),pe[e]&&a?.setMaterial({[pe[e]]:o}),(e==="filmMin"||e==="filmMax")&&a?.setMaterial({film:[r.filmMin??100,r.filmMax??400]}),D[e]&&(o===vt[e]?c.style.removeProperty(D[e]):c.style.setProperty(D[e],`${o}px`)),e==="nameSize"&&c.style.setProperty("--name-size",`${o}vw`),e==="nameLeft"&&c.style.setProperty("--name-left",`${o}px`),e==="envInt"&&a?.setLight({envIntensity:o}),e==="envRotY"&&a?.setLight({envRotY:o}),e==="ambient"&&a?.setLight({ambient:o}),e==="keyLight"&&a?.setLight({keyLight:o}),e==="turns"&&R(),e==="track"&&(V.style.height=`${o}svh`,B()),e==="page"&&(le=o,B()),R()}const k=Object.fromEntries([...document.querySelectorAll("[data-ctl]")].map(e=>[e.dataset.ctl,e]));
1Object.entries(k).forEach(([e,t])=>{T(e,t.value),t.addEventListener("input",()=>{T(e,t.value),me()})});const m=document.querySelector('[data-color="tint"]');m?.addEventListener("input",()=>{a?.setMaterial({attenuationColor:m.value}),me()});function wt(){const e=a?.readState();if(e)for(const[t,o]of Object.entries(e)){if(typeof o=="string"){t==="tint"&&m&&(m.value=o);continue}r[t]=o;const i=k[t];if(i){const d=ce.has(t)?o:o*100;i.value=Math.min(Number(i.max),Math.max(Number(i.min),d))}u[t]&&(u[t].textContent=we(t,o))}}const St=document.querySelector("[data-shader]"),_t=document.querySelector("[data-model]"),j=document.querySelector("[data-backdrop-video]");let g="warp",f=null,G=!1;dt()||(G=!0,console.warn("[home] effects off (Windows, software graphics or ?fx=off) â video hero instead of the 3D mark"));function xt(){if(!a)return;const e=[];let t=0;const o=performance.now(),i=d=>{if(n.dataset.showing!=="model"||S||document.hidden)return;if(t&&d-o>400&&e.push(d-t),t=d,d-o<2400){requestAnimationFrame(i);return}e.sort((h,p)=>h-p);const I=e[e.length>>1]??1/0;I<=50||(console.warn(`[home] hero too slow (${Math.round(I)}ms/frame) â showing the still`),Zt())};requestAnimationFrame(i)}function Zt(){G=!0,g="none",a?.destroy(),a=null,f?.stop(),y("image")}const Lt=ht;let H=null;async function Wt(){if(f)return f.canvas;if(!H){let e=document.querySelector("[data-warp]");e||(e=document.createElement("div"),e.dataset.warp="",e.style.cssText="position:absolute;inset:0;pointer-events:none;opacity:0",document.querySelector("[data-bg]")?.append(e)),H=Ct(e,{colors:Lt,minPixelRatio:1,maxPixelCount:1920*1080}).then(t=>(f=t,t.canvas)).catch(t=>(console.error("[hero-lab-2] warp unavailable:",t.message),H=null,null))}return H}let L="ui",se=Promise.resolve(),re=null;function Se(e){!e||e.readyState>=2||(e.preload!=="auto"&&(e.preload="auto"),e.networkState!==HTMLMediaElement.NETWORK_LOADING&&e.load())}function y(e){if(e==="shader"){if(!w)try{w=nt(St)}catch(o){console.error("[hero-lab] molten shader unavailable:",o.message),e="image"}w?w.start():e="image"}else w&&w.stop();let t=!1;if(e==="model"&&!a){if(!G)try{a=lt(_t,new URL("/assets/hero-mark-DY3wGVuD.glb",import.meta.url).href,{attenuationColor:5724149}),t=!0}catch(o){G=!0,console.error("[home] 3D mark unavailable, showing the still:",o.message)}a||(e="image")}if(e==="model"?(J(),t&&(b("model","loading"),se=a.loaded.then(async()=>{try{re=await fetch(new URL("data:application/json;base64,ewogICJ2ZXJzaW9uIjogMSwKICAibWF0ZXJpYWxQcmVzZXQiOiB7CiAgICAiYmFzZUNvbG9yIjogIiNmZmZmZmYiLAogICAgInJvdWdobmVzcyI6IDAsCiAgICAibWV0YWxuZXNzIjogMCwKICAgICJ0cmFuc21pc3Npb24iOiAxLAogICAgImlvciI6IDEsCiAgICAidGhpY2tuZXNzIjogMC44LAogICAgImF0dGVudWF0aW9uQ29sb3IiOiAiI2ZmZmZmZiIsCiAgICAiYXR0ZW51YXRpb25EaXN0YW5jZSI6IDEsCiAgICAiZGlzcGVyc2lvbiI6IDAuNSwKICAgICJpcmlkZXNjZW5jZSI6IDAuMTMsCiAgICAiaXJpZGVzY2VuY2VJT1IiOiAxLjYyLAogICAgImlyaWRlc2NlbmNlVGhpY2tuZXNzTWluIjogODAsCiAgICAiaXJpZGVzY2VuY2VUaGlja25lc3NNYXgiOiA0MDAsCiAgICAiY2xlYXJjb2F0IjogMCwKICAgICJjbGVhcmNvYXRSb3VnaG5lc3MiOiAwLAogICAgImVudk1hcEludGVuc2l0eSI6IDEsCiAgICAiZW1pc3NpdmUiOiAiIzAwMDAwMCIsCiAgICAiZW1pc3NpdmVJbnRlbnNpdHkiOiAwCiAgfSwKICAibWF0ZXJpYWxNb2RlIjogImN1c3RvbSIsCiAgIm9iamVjdFRyYW5zZm9ybSI6IHsKICAgICJwb3NpdGlvbiI6IHsKICAgICAgIngiOiAwLAogICAgICAieSI6IDAuMSwKICAgICAgInoiOiAwCiAgICB9LAogICAgInNjYWxlIjogewogICAgICAieCI6IDAuOCwKICAgICAgInkiOiAwLjgsCiAgICAgICJ6IjogMC44CiAgICB9CiAgfSwKICAibW9tZW50dW1FbmFibGVkIjogdHJ1ZSwKICAidGlsdEFtcGxpdHVkZSI6IDAuMTUsCiAgIm9iamVjdFJvdGF0aW9uIjogewogICAgIngiOiAtMC41MjM1OTg3NzU1OTgyOTg4LAogICAgInkiOiAwLjI0NDM0NjA5NTI3OTIwNjE0LAogICAgInoiOiAwLjQwMTQyNTcyNzk1ODY5NTgKICB9LAogICJleHBsb2RlRW5hYmxlZCI6IGZhbHNlLAogICJleHBsb2RlRGlzdGFuY2UiOiAwLjIsCiAgImNhbWVyYVBvc2l0aW9uIjogewogICAgIngiOiAwLAogICAgInkiOiAwLAogICAgInoiOiA1CiAgfSwKICAibGlnaHRzIjogewogICAgImFtYmllbnQiOiB7CiAgICAgICJjb2xvciI6ICIjZmZmZmZmIiwKICAgICAgImludGVuc2l0eSI6IDAuNQogICAgfSwKICAgICJkaXJlY3Rpb25hbCI6IHsKICAgICAgImNvbG9yIjogIiNmZmZmZmYiLAogICAgICAiaW50ZW5zaXR5IjogMSwKICAgICAgInBvc2l0aW9uIjogewogICAgICAgICJ4IjogNSwKICAgICAgICAieSI6IDUsCiAgICAgICAgInoiOiA1CiAgICAgIH0KICAgIH0KICB9LAogICJlbnZpcm9ubWVudCI6IHsKICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICJwcmVzZXQiOiAiY2l0eSIsCiAgICAiZW52aXJvbm1lbnRJbnRlbnNpdHkiOiAxLAogICAgImVudmlyb25tZW50Um90YXRpb24iOiB7CiAgICAgICJ4IjogMCwKICAgICAgInkiOiAwLAogICAgICAieiI6IDAKICAgIH0sCiAgICAiYmx1ciI6IDAuNjUKICB9LAogICJiYWNrZ3JvdW5kIjogewogICAgInR5cGUiOiAidmlkZW8iLAogICAgInNvbGlkQ29sb3IiOiAiIzAwMDAwMCIsCiAgICAic2hhZGVyUHJlc2V0IjogIndhcnAiLAogICAgImltYWdlU291cmNlIjogInVybCIsCiAgICAiaW1hZ2VVcmwiOiAiL2ltYWdlcy9leGFtcGxlMi53ZWJwIiwKICAgICJpbWFnZURhdGFVcmwiOiBudWxsLAogICAgImltYWdlRml0IjogImNvdmVyIiwKICAgICJ2aWRlb1NvdXJjZSI6ICJ1cmwiLAogICAgInZpZGVvVXJsIjogImh0dHBzOi8vbnoyaGwzZHF6Yy51ZnMuc2gvZi9zNUlqejdBZWJ0YU9Sb3ZucFJ5bHhjZXkxd0hxNlp0NU12SmJFM0FEb1M3R0NhdXMiLAogICAgInZpZGVvRGF0YVVybCI6IG51bGwsCiAgICAidmlkZW9GaXQiOiAiY292ZXIiLAogICAgInZpZGVvTG9vcCI6IHRydWUsCiAgICAidmlkZW9NdXRlZCI6IHRydWUsCiAgICAicG9zaXRpb24iOiB7CiAgICAgICJ4IjogMCwKICAgICAgInkiOiAwLAogICAgICAieiI6IC0xMAogICAgfSwKICAgICJzY2FsZSI6IDEzLAogICAgIm9wYWNpdHkiOiAxCiAgfSwKICAicG9zdEZ4IjogewogICAgImVuYWJsZWQiOiBmYWxzZSwKICAgICJibG9vb
1SI6IHsKICAgICAgImVuYWJsZWQiOiBmYWxzZSwKICAgICAgImx1bWluYW5jZVRocmVzaG9sZCI6IDAuOSwKICAgICAgImx1bWluYW5jZVNtb290aGluZyI6IDAuMDI1LAogICAgICAiaW50ZW5zaXR5IjogMSwKICAgICAgInJhZGl1cyI6IDAuODUKICAgIH0sCiAgICAiY2hyb21hdGljQWJlcnJhdGlvbiI6IHsKICAgICAgImVuYWJsZWQiOiBmYWxzZSwKICAgICAgIm9mZnNldCI6IDAuMDAyCiAgICB9CiAgfSwKICAidGV4dCI6IHsKICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICJjb250ZW50IjogIiIsCiAgICAic2l6ZSI6IDAuMywKICAgICJjb2xvciI6ICIjZmZmZmZmIiwKICAgICJmb250RmFtaWx5IjogIkFyaWFsIiwKICAgICJmb250V2VpZ2h0IjogImJvbGQiLAogICAgInBvc2l0aW9uIjogewogICAgICAieCI6IDAsCiAgICAgICJ5IjogLTIuOCwKICAgICAgInoiOiAtNQogICAgfSwKICAgICJsZXR0ZXJTcGFjaW5nIjogMCwKICAgICJsaW5lSGVpZ2h0IjogMS4yLAogICAgIm9wYWNpdHkiOiAxLAogICAgImN1c3RvbUZvbnRVcmwiOiAiIgogIH0sCiAgImRlYnVnVmlldyI6IHsKICAgICJlbmFibGVkIjogZmFsc2UsCiAgICAid2lyZWZyYW1lIjogZmFsc2UsCiAgICAiZmxhdFNoYWRpbmciOiBmYWxzZSwKICAgICJzaG93Tm9ybWFscyI6IGZhbHNlLAogICAgIm5vcm1hbExlbmd0aCI6IDAuMSwKICAgICJzZWN0aW9uQ2xpcCI6IGZhbHNlLAogICAgImNsaXBQb3NpdGlvbiI6IDAsCiAgICAiY2xpcEF4aXMiOiAieCIsCiAgICAiY2xpcEludmVydCI6IGZhbHNlCiAgfSwKICAiYW5pbWF0aW9uIjogewogICAgImVuYWJsZWQiOiB0cnVlLAogICAgIm1vZGUiOiAiYXV0b1JvdGF0ZSIsCiAgICAicm90YXRlWCI6IGZhbHNlLAogICAgInJvdGF0ZVkiOiB0cnVlLAogICAgInJvdGF0ZVoiOiBmYWxzZSwKICAgICJzcGVlZCI6IDAuNSwKICAgICJjbGlwUGxheWJhY2tNb2RlIjogImF1dG9wbGF5IiwKICAgICJzZWxlY3RlZENsaXBJZCI6IG51bGwsCiAgICAiY2xpcFRpbWVTZWNvbmRzIjogMAogIH0KfQ==",import.meta.url)).then(o=>o.json())}catch(o){console.warn("[hero-lab] no Valessa config available:",o.message)}b("model",null),a.setBloom({strength:r.bloom,threshold:r.thresh,enabled:r.bloom>0}),a.setBackdrop({blur:r.backdrop,enabled:g==="scene"}),U(),J(),n.dataset.showing==="model"&&!S&&a.start(),xt()}).catch(o=>{console.error("[hero-lab] GLB failed:",o.message||o),b("model","failed"),n.dataset.showing="image"}),se.finally?.(()=>Y())),S||a.start()):a&&(a.stop(),j.pause()),e!=="video"&&s.pause(),document.querySelectorAll("[data-bg-pick]").forEach(o=>{o.setAttribute("aria-pressed",String(o.dataset.bgPick===e))}),e==="video"){Se(s);const o=()=>{n.dataset.showing="video",b("video",null)};return _==="scrub"?(clearTimeout(O),s.readyState>=2?(s.pause(),X(z()),o(),e):(b("video","loading"),s.addEventListener("loadeddata",()=>{s.pause(),X(z()),o()},{once:!0}),O=setTimeout(()=>{n.dataset.showing!=="video"&&(b("video","failed"),n.dataset.showing="image",ie("no frame to scrub"))},s.readyState===0?15e3:2500),e)):!s.paused&&s.readyState>=3?(o(),e):(b("video","loading"),s.addEventListener("playing",o,{once:!0}),clearTimeout(O),O=setTimeout(()=>{n.dataset.showing!=="video"&&(b("video","failed"),n.dataset.showing="image",ie("did not start"))},s.readyState===0?15e3:2500),s.play().catch(i=>{clearTimeout(O),b("video","failed"),n.dataset.showing="image",ie(i.name+": "+i.message)}),e)}return n.dataset.showing=e,Y(),e}const Et=e=>document.querySelector(`[data-bg-pick="${e}"]`),b=(e,t)=>{const o=Et(e);o&&(t?o.dataset.state=t:o.removeAttribute("data-state"))};function U(){if(a){if(L==="json"&&re){const t=ct(a,re)?.bloomFromConfig;t&&a.setBloom({threshold:t.threshold,radius:t.radius,enabled:t.enabled})}else a.applyParams();document.querySelectorAll("[data-mat]").forEach(e=>{e.setAttribute("aria-pressed",String(e.dataset.mat===L))}),wt()}}document.querySelectorAll("[data-mat]").forEach(e=>{e.addEventListener("click",()=>{L=e.dataset.mat,n.dataset.showing!=="model"&&y("model"),U(),J()})});function J(){n.dataset.backdrop=g,a?.setBackdrop({enabled:g==="scene"}),g==="warp"?Wt().then(e=>{!e||g!=="warp"||(S||f.start(),a?.setCanvasBackdrop(e))}):g==="video"?(f?.stop(),Se(j),a?.setVideoBackdrop(j)):(f?.stop(),a?.hideVideoBackdrop()),Y(),g==="video"&&n.dataset.showing==="model"?j.play().catch(e=>console.warn("[hero-lab] backdrop video:",e.name)):j.pause(),document.querySelectorAll("[data-backdrop-pick]").forEach(e=>{e.setAttribute("aria-pressed",String(e.dataset.backdropPick===g))})}document.querySelectorAll("[data-backdrop-pick]").forEach(e=>{e.addEventListener("click",()=>{g=e.dataset.backdropPick,n.dataset.showing!=="model"?y("model"):J()})});const Mt={molten:{color1:"#292929",color2:"#8a8a8b",color3:"#FFFFFF",colorMode:0},iris:{color1:"#141438",color2:"#5757f5",color3:"#dcdcff",colorMode:1},violet:{color1:"#1a0d2e",color2:"#8b1fc4",color3:"#f2b6ff",colorMode:1}};let _e="molten";function xe(e){_e=e,w?.setPalette(Mt[e]),document.querySelectorAll("[data-palette]").forEach(t=>{t.setAttribute("aria-pressed",String(t.dataset.palette===e))})}
1document.querySelectorAll("[data-palette]").forEach(e=>{e.addEventListener("click",()=>{n.dataset.showing!=="shader"&&y("shader"),xe(e.dataset.palette)})});function X(e){if(_!=="scrub"||!s||n?.dataset.showing!=="video")return;const t=s.duration;if(!t||Number.isNaN(t)||s.seeking)return;const o=Math.min(1,e/bt),i=Math.max(0,Math.min(t-.001,o*t));Math.abs(s.currentTime-i)<1/60||(typeof s.fastSeek=="function"?s.fastSeek(i):s.currentTime=i)}function de(e){_=e,document.querySelectorAll("[data-vmode]").forEach(t=>{t.setAttribute("aria-pressed",String(t.dataset.vmode===e))}),n.dataset.showing==="video"&&(e==="scrub"?(s.pause(),X(z())):s.play().catch(()=>{}))}document.querySelectorAll("[data-vmode]").forEach(e=>{e.addEventListener("click",()=>de(e.dataset.vmode))});let O=0;const Ft=["0 nothing","1 metadata","2 current frame","3 future frames","4 enough"];function ie(e){const t=[e,"paused="+s.paused,"ready="+(Ft[s.readyState]||s.readyState),"buffered="+(s.buffered.length?s.buffered.end(0).toFixed(1)+"s":"none"),"t="+s.currentTime.toFixed(2),"tab="+document.visibilityState,s.error?"err="+s.error.code:""].filter(Boolean).join(" · ");console.error("[hero-lab] video",t);const o=document.querySelector('[data-out="video"]');o&&(o.textContent=t)}setInterval(()=>{const e=document.querySelector('[data-out="video"]');!e||n.dataset.showing!=="video"||(e.textContent=(_==="scrub"?"scrub":"playing")+" · t="+s.currentTime.toFixed(2)+"s / "+(s.duration||0).toFixed(0)+"s"+(s.seeking?" · seeking":""))},500);document.querySelectorAll("[data-bg-pick]").forEach(e=>{e.addEventListener("click",()=>y(e.dataset.bgPick))});At();gt({letters:!1});ut();mt(document.querySelector('.lab-nav-meta a[href^="mailto:"]'));document.querySelector("footer")?.classList.add("site-footer--dark");const Ae={...Object.assign({"./assets/home-aap-large.png":it,"./assets/home-aap-md.png":at,"./assets/home-aap-xl.png":ot,"./assets/home-avis-large.png":tt,"./assets/home-avis-md.png":et,"./assets/home-avis-xl.png":Qe,"./assets/home-c1-large.png":Ue,"./assets/home-c1-md.png":$e,"./assets/home-c1-xl.png":Xe,"./assets/home-clara-large.png":Te,"./assets/home-clara-md.png":Be,"./assets/home-clara-xl.png":ze,"./assets/home-frb-large.png":Pe,"./assets/home-frb-md.png":De,"./assets/home-frb-xl.png":He,"./assets/home-humana-large.png":qe,"./assets/home-humana-md.png":Ke,"./assets/home-humana-xl.png":ke,"./assets/home-reliance-large.png":Ye,"./assets/home-reliance-md.png":Je,"./assets/home-reliance-xl.png":Ge,"./assets/home-ryds-large.png":Re,"./assets/home-ryds-md.png":Ve,"./assets/home-ryds-xl.png":Ne}),...Object.assign({"./assets/home-aap-xl.webp":je,"./assets/home-avis-xl.webp":Oe,"./assets/home-clara-xl.webp":Fe,"./assets/home-ryds-xl.webp":Me})},fe=st();[...document.querySelectorAll("[data-lab-size]")].forEach((e,t)=>{const o=fe[t%fe.length];if(!o)return;const i=e.dataset.labSize,d=Ae[`./assets/home-${o.slug}-${i}.webp`]??Ae[`./assets/home-${o.slug}-${i}.png`];e.href=o.href,e.innerHTML=`<span class="lab-thumb"><img src="${d}" alt="${o.alt}"></span><h3>${o.title}</h3><p class="lab-eyebrow">${o.eyebrow}</p>`});const Ze=[...document.querySelectorAll(".lab-card")];rt(".lab-thumb",{threshold:.25});Ze.forEach(e=>{It(e,{distance:()=>r.magnetReach,strength:()=>r.magnetPull})});function ge(){const e=document.querySelector(".lab-card--large .lab-thumb"),t=document.querySelector(".lab-card--small .lab-thumb");if(!e||!t)return;const o=(e.offsetHeight-t.offsetHeight)/2;c.style.setProperty("--card-offset",`${Math.max(0,o).toFixed(1)}px`)}ge();addEventListener("resize",ge);addEventListener("load",ge);if(!$.matches){c.classList.add("lab-reveal"),requestAnimationFrame(()=>requestAnimationFrame(()=>c.classList.add("lab-reveal-armed")));const e=new IntersectionObserver(t=>{t.forEach(o=>{o.isIntersecting&&(o.target.classList.add("is-visible"),e.unobserve(o.target))})},{threshold:.12,rootMargin:"0px 0px -7% 0px"});Ze.forEach(t=>e.observe(t))}window.__lab2={get mark(){return a},get warp(){return f},get backdropKind(){return g}};de("loop");if(G){const e=n.querySelector(".hero-media");e&&(e.src=new URL("/assets/hero-safe-still-CCuBt3At.webp",import.meta.url).href),s.src=new URL("/assets/hero-safe-loop-ClPqN3dQ.mp4",import.meta.url).href,s.poster=e?.src||"",y($.matches?"image":"video")}else y("model");const Ce=document.querySelector(".lab-work");Ce&&"IntersectionObserver"in window&&(new IntersectionObserver(([e])=>{const t=e.boundingClientRect.top<=0;
1t!==S&&(S=t,n.dataset.heroPaused=String(t),t?(a?.stop(),f?.stop(),n.dataset.showing==="video"&&_==="loop"&&s.pause()):(n.dataset.showing==="video"&&_==="loop"&&s.play().catch(()=>{}),n.dataset.showing==="model"&&a?.start(),g==="warp"&&f?.start()))},{rootMargin:"0px 0px -99% 0px"}).observe(Ce),document.addEventListener("visibilitychange",()=>{!document.hidden&&S&&a?.stop()}));const W="hero-lab-2-presets",K="hero-lab-2-live",v=document.querySelector("[data-preset-list]"),C=document.querySelector("[data-preset-note]"),x=(e,t)=>{try{return JSON.parse(localStorage.getItem(e))??t}catch{return t}},Q=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}};function ue(){return{settings:{...r},tint:m?.value,materialSource:L,backdropKind:g,videoMode:_,palette:_e,bg:n.dataset.showing}}async function he(e){if(e){e.bg&&y(e.bg),e.backdropKind&&(g=e.backdropKind),e.videoMode&&de(e.videoMode),e.palette&&xe(e.palette),e.bg==="model"&&await se,e.materialSource&&(L=e.materialSource,U()),J(),Ot();for(const[t,o]of Object.entries(e.settings||{})){const i=k[t];if(!i){r[t]=o;continue}i.value=ce.has(t)?o:o*100,T(t,i.value)}e.tint&&m&&(m.value=e.tint,a?.setMaterial({attenuationColor:e.tint})),Y()}}const Le="__last-session";function ee(e=""){if(!v)return;const t=x(W,{});if(v.innerHTML='<option value="">â defaults â</option>',x(K,null)){const o=document.createElement("option");o.value=Le,o.textContent="â last session â",v.append(o)}Object.keys(t).sort().forEach(o=>{const i=document.createElement("option");i.value=o,i.textContent=o,v.append(i)}),v.value=e}let be=0;function me(){clearTimeout(be),be=setTimeout(()=>Q(K,ue()),250)}document.querySelector("[data-preset-save]")?.addEventListener("click",()=>{const e=v.value||new Date().toISOString().slice(11,16);let t;try{t=prompt("Save these values as:",e)}catch{t=e}if(!t)return;const o=x(W,{});o[t]=ue(),Q(W,o),ee(t),C.textContent=`saved â${t}â`});document.querySelector("[data-preset-del]")?.addEventListener("click",()=>{const e=v.value;if(!e)return;let t=!0;try{t=confirm(`Delete preset â${e}â?`)}catch{t=!0}if(!t)return;const o=x(W,{});delete o[e],Q(W,o),ee(""),C.textContent=`deleted â${e}â`});document.querySelector("[data-preset-copy]")?.addEventListener("click",async()=>{const e=JSON.stringify(ue(),null,2);try{await navigator.clipboard.writeText(e),C.textContent="copied as JSON"}catch{console.log(e),C.textContent="clipboard blocked â logged to console"}});function We(){Object.entries(k).forEach(([e,t])=>{t.value=t.getAttribute("value"),T(e,t.value)}),m&&(m.value=m.getAttribute("value"),a?.setMaterial({attenuationColor:m.value})),L="ui",U()}document.querySelector("[data-preset-reset]")?.addEventListener("click",()=>{We(),Q(K,null),ee(""),C.textContent="defaults"});v?.addEventListener("change",()=>{const e=v.value;if(!e){We(),C.textContent="defaults";return}if(e===Le){he(x(K,null)),C.textContent="loaded last session";return}he(x(W,{})[e]),C.textContent=`loaded â${e}â`});function Y(){const e=document.querySelector("[data-hint-model]");e&&(e.hidden=n.dataset.showing==="model");const t=k.backdrop;t&&(t.disabled=g!=="scene",t.closest("label")?.classList.toggle("is-off",t.disabled))}document.querySelector("[data-hint-go]")?.addEventListener("click",()=>y("model"));function Ot(){document.querySelectorAll("[data-backdrop-pick]").forEach(e=>{e.setAttribute("aria-pressed",String(e.dataset.backdropPick===g))})}document.querySelector("[data-tuner]")?.addEventListener("click",e=>{const t=e.target;t instanceof Element&&t.closest("[data-bg-pick],[data-mat],[data-backdrop-pick],[data-palette],[data-vmode]")&&me()});ee();C&&(C.textContent=x(K,null)?"defaults · last session in the list":"defaults");Y();document.querySelectorAll("[data-tab]").forEach(e=>{e.addEventListener("click",()=>{const t=e.dataset.tab;document.querySelectorAll("[data-tab]").forEach(i=>i.setAttribute("aria-selected",String(i===e))),document.querySelectorAll("[data-tab-panel]").forEach(i=>{i.classList.toggle("is-active",i.dataset.tabPanel===t)});const o=document.querySelector(".lab-tuner-body");o&&(o.scrollTop=0)})});const ne=document.querySelector("[data-tuner]");
1matchMedia("(max-width:900px)").matches&&ne?.setAttribute("data-collapsed","");document.querySelector("[data-tuner-toggle]")?.addEventListener("click",e=>{const t=ne.hasAttribute("data-collapsed");ne.toggleAttribute("data-collapsed",!t),e.currentTarget.setAttribute("aria-expanded",String(t))});const ve=document.getElementById("lab-clock"),Ee=()=>{ve&&(ve.textContent=new Intl.DateTimeFormat("en-US",{hour:"2-digit",minute:"2-digit",hour12:!0,timeZone:"America/Sao_Paulo"}).format(new Date))};Ee();setInterval(Ee,1e4);const A=document.querySelector("[data-thumb]");if(A&&!matchMedia("(prefers-reduced-motion: reduce)").matches){let o=0,i=0,d=1,I=0,h=0,p=1,te=0;const Ie=()=>{o+=(I-o)*.12,i+=(h-i)*.12,d+=(p-d)*.12,A.style.setProperty("--tx",o.toFixed(2)+"px"),A.style.setProperty("--ty",i.toFixed(2)+"px"),A.style.setProperty("--ts",d.toFixed(4)),te=Math.abs(I-o)<.05&&Math.abs(h-i)<.05&&Math.abs(p-d)<.001?0:requestAnimationFrame(Ie)},E=()=>{te||(te=requestAnimationFrame(Ie))};A.addEventListener("pointerenter",()=>{p=1.25,E()}),A.addEventListener("pointermove",oe=>{const q=A.getBoundingClientRect();I=(oe.clientX-(q.left+q.width/2-o))*.25,h=(oe.clientY-(q.top+q.height/2-i))*.25,E()},{passive:!0}),A.addEventListener("pointerleave",()=>{I=0,h=0,p=1,E()}),A.addEventListener("focus",()=>{p=1.25,E()}),A.addEventListener("blur",()=>{I=0,h=0,p=1,E()})}P&&pt(P);P&&ft(P,{theme:"dark"});B();R();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.