wilddragon-site/components.min.js

1 line
40 KiB
JavaScript

const{useState,useEffect,useRef,Fragment}=React,Icon=({size=16,sw=1.75,className="",children})=>React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:size,height:size,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:sw,strokeLinecap:"round",strokeLinejoin:"round",className},children),ChevronDown=p=>React.createElement(Icon,{size:16,...p},React.createElement("polyline",{points:"6 9 12 15 18 9"})),Menu=p=>React.createElement(Icon,{size:24,...p},React.createElement("line",{x1:"4",x2:"20",y1:"6",y2:"6"}),React.createElement("line",{x1:"4",x2:"20",y1:"12",y2:"12"}),React.createElement("line",{x1:"4",x2:"20",y1:"18",y2:"18"})),X=p=>React.createElement(Icon,{size:24,...p},React.createElement("path",{d:"M18 6 6 18"}),React.createElement("path",{d:"m6 6 12 12"})),ArrowRight=p=>React.createElement(Icon,{size:16,...p},React.createElement("path",{d:"M5 12h14"}),React.createElement("path",{d:"m12 5 7 7-7 7"})),ArrowLeft=p=>React.createElement(Icon,{size:16,...p},React.createElement("path",{d:"m12 19-7-7 7-7"}),React.createElement("path",{d:"M19 12H5"})),ArrowUpRight=p=>React.createElement(Icon,{size:14,...p},React.createElement("path",{d:"M7 17 17 7"}),React.createElement("path",{d:"M7 7h10v10"})),Mail=p=>React.createElement(Icon,{size:16,...p},React.createElement("rect",{width:"20",height:"16",x:"2",y:"4",rx:"2"}),React.createElement("path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"})),MapPin=p=>React.createElement(Icon,{size:16,...p},React.createElement("path",{d:"M20 10c0 7-8 13-8 13s-8-6-8-13a8 8 0 0 1 16 0Z"}),React.createElement("circle",{cx:"12",cy:"10",r:"3"})),Linkedin=p=>React.createElement(Icon,{size:16,...p},React.createElement("path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"}),React.createElement("rect",{width:"4",height:"12",x:"2",y:"9"}),React.createElement("circle",{cx:"4",cy:"4",r:"2"})),ExternalLink=p=>React.createElement(Icon,{size:13,...p},React.createElement("path",{d:"M15 3h6v6"}),React.createElement("path",{d:"M10 14 21 3"}),React.createElement("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})),Radio=p=>React.createElement(Icon,{...p},React.createElement("path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9"}),React.createElement("path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5"}),React.createElement("circle",{cx:"12",cy:"12",r:"2"}),React.createElement("path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5"}),React.createElement("path",{d:"M19.1 4.9C23 8.8 23 15.2 19.1 19.1"})),Tv=p=>React.createElement(Icon,{...p},React.createElement("rect",{width:"20",height:"15",x:"2",y:"7",rx:"2",ry:"2"}),React.createElement("polyline",{points:"17 2 12 7 7 2"})),Cloud=p=>React.createElement(Icon,{...p},React.createElement("path",{d:"M17.5 19a4.5 4.5 0 1 0-1.41-8.775A6.5 6.5 0 1 0 7 19h10.5z"})),Cable=p=>React.createElement(Icon,{...p},React.createElement("path",{d:"M4 9a2 2 0 0 1-2-2V5h6v2a2 2 0 0 1-2 2Z"}),React.createElement("path",{d:"M3 5V3"}),React.createElement("path",{d:"M7 5V3"}),React.createElement("path",{d:"M19 15V6.5a3.5 3.5 0 0 0-7 0v11a3.5 3.5 0 0 1-7 0V9"}),React.createElement("path",{d:"M17 21v-2"}),React.createElement("path",{d:"M21 21v-2"}),React.createElement("path",{d:"M22 19v-2a2 2 0 0 0-2-2h-2v4Z"})),Ruler=p=>React.createElement(Icon,{...p},React.createElement("path",{d:"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z"}),React.createElement("path",{d:"m14.5 12.5 2-2"}),React.createElement("path",{d:"m11.5 9.5 2-2"}),React.createElement("path",{d:"m8.5 6.5 2-2"}),React.createElement("path",{d:"m17.5 15.5 2-2"})),Wrench=p=>React.createElement(Icon,{...p},React.createElement("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})),MonitorCheck=p=>React.createElement(Icon,{...p},React.createElement("path",{d:"m9 10 2 2 4-4"}),React.createElement("rect",{width:"20",height:"14",x:"2",y:"3",rx:"2"}),React.createElement("path",{d:"M12 17v4"}),React.createElement("path",{d:"M8 21h8"})),Headset=p=>React.createElement(Icon,{...p},React.createElement("path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H3v-7a9 9 0 0 1 18 0v7h-3a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3"})),Camera=p=>React.createElement(Icon,{...p},React.createElement("path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z"}),React.createElement("circle",{cx:"12",cy:"13",r:"3"})),Film=p=>React.createElement(Icon,{...p},React.createElement("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}),React.createElement("path",{d:"M7 3v18"}),React.createElement("path",{d:"M3 7.5h4"}),React.createElement("path",{d:"M3 12h18"}),React.createElement("path",{d:"M3 16.5h4"}),React.createElement("path",{d:"M17 3v18"}),React.createElement("path",{d:"M17 7.5h4"}),React.createElement("path",{d:"M17 16.5h4"})),Package=p=>React.createElement(Icon,{...p},React.createElement("path",{d:"m7.5 4.27 9 5.15"}),React.createElement("path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"}),React.createElement("path",{d:"m3.3 7 8.7 5 8.7-5"}),React.createElement("path",{d:"M12 22V12"})),Monitor=p=>React.createElement(Icon,{...p},React.createElement("rect",{width:"20",height:"14",x:"2",y:"3",rx:"2"}),React.createElement("line",{x1:"8",x2:"16",y1:"21",y2:"21"}),React.createElement("line",{x1:"12",x2:"12",y1:"17",y2:"21"}));function Reveal({children,delay=0,className=""}){const ref=useRef(null),[visible,setVisible]=useState(!1);return useEffect(()=>{const obs=new IntersectionObserver(([e])=>{e.isIntersecting&&(setTimeout(()=>setVisible(!0),delay),obs.unobserve(e.target))},{threshold:.1,rootMargin:"0px 0px -60px 0px"});return ref.current&&obs.observe(ref.current),()=>obs.disconnect()},[delay]),React.createElement("div",{ref,className:`reveal ${visible?"visible":""} ${className}`},children)}function CursorDot(){const ref=useRef(null);return useEffect(()=>{const onMove=e=>{ref.current&&(ref.current.style.transform=`translate(${e.clientX}px, ${e.clientY}px) translate(-50%, -50%)`),document.body.dataset.cursor="on"};return window.addEventListener("mousemove",onMove),()=>window.removeEventListener("mousemove",onMove)},[]),React.createElement("div",{ref,className:"cursor-dot"})}function Curtain(){const[gone,setGone]=useState(!1);return useEffect(()=>{const t=setTimeout(()=>setGone(!0),1300);return()=>clearTimeout(t)},[]),gone?null:React.createElement("div",{className:"curtain"})}function Navigation(){const[scrolled,setScrolled]=useState(!1),[open,setOpen]=useState(!1);useEffect(()=>{const onScroll=()=>setScrolled(window.scrollY>50);return window.addEventListener("scroll",onScroll),()=>window.removeEventListener("scroll",onScroll)},[]);const links=[{href:"#about",label:"About"},{href:"#projects",label:"Projects"},{href:"#on-set",label:"On Set"},{href:"#contact",label:"Contact"}];return React.createElement("nav",{className:`nav ${scrolled?"scrolled":""}`},React.createElement("div",{className:"nav-inner"},React.createElement("a",{href:"#",className:"nav-logo"},React.createElement("img",{src:__R("images/dragon-mark.png"),alt:"Wild Dragon"}),React.createElement("span",null,"Wild Dragon")),React.createElement("div",{className:"nav-links"},links.map(l=>React.createElement("a",{key:l.href,href:l.href},l.label))),React.createElement("button",{className:"nav-toggle",onClick:()=>setOpen(!open),"aria-label":"Toggle menu"},React.createElement(open?X:Menu,null))),React.createElement("div",{className:`nav-mobile ${open?"open":""}`},links.map(l=>React.createElement("a",{key:l.href,href:l.href,onClick:()=>setOpen(!1)},l.label))))}const HERO_ROLES=["Broadcast Systems Integration","Production Facility Design","IP & Cloud Production","Extended Reality Stages"];function Hero({ctaLabel}){const[loaded,setLoaded]=useState(!1),[idx,setIdx]=useState(0),[text,setText]=useState(""),[typing,setTyping]=useState(!0);useEffect(()=>{const t=setTimeout(()=>setLoaded(!0),100);return()=>clearTimeout(t)},[]),useEffect(()=>{const role=HERO_ROLES[idx];if(typing)if(text.length<role.length){const t=setTimeout(()=>setText(role.slice(0,text.length+1)),50);return()=>clearTimeout(t)}else{const t=setTimeout(()=>setTyping(!1),2500);return()=>clearTimeout(t)}else if(text.length>0){const t=setTimeout(()=>setText(text.slice(0,-1)),25);return()=>clearTimeout(t)}else setIdx(i=>(i+1)%HERO_ROLES.length),setTyping(!0)},[text,typing,idx]);const aniBase=d=>({transition:`opacity .9s ${d}s, transform .9s ${d}s`,opacity:loaded?1:0,transform:loaded?"translateY(0)":"translateY(24px)"});return React.createElement("section",{className:"hero grain"},React.createElement("div",{className:"hero-bg"},React.createElement("img",{src:__R("images/photos/production-switcher.jpg"),alt:"Production switcher in a broadcast control room"})),React.createElement("div",{className:"hero-grid"}),React.createElement("div",{className:"hero-fade-v"}),React.createElement("div",{className:"hero-fade-h"}),React.createElement("div",{className:"hero-corner tl"},"// 38.9\xB0N \xB7 77.0\xB0W"),React.createElement("div",{className:"hero-corner tr"},"EST. 2024 \xB7 DC"),React.createElement("div",{className:"hero-corner bl"},"REC \xB7 LIVE"),React.createElement("div",{className:"hero-corner br"},"\u25CF 01 / 09"),React.createElement("div",{className:"hero-content"},React.createElement("div",{className:"hero-logo",style:aniBase(0)},React.createElement("img",{src:__R("images/wild-dragon-logo.png"),alt:"Wild Dragon \u2014 Zachary Gaetano"})),React.createElement("div",{className:"hero-tag",style:aniBase(.15)},text,React.createElement("span",{className:"caret"},"|")),React.createElement("h1",{style:aniBase(.3)},"Zachary",React.createElement("br",null),React.createElement("span",{className:"last"},"Gaetano")),React.createElement("div",{className:"hero-rule",style:{transition:"opacity 1s .4s, width 1s .4s",opacity:loaded?1:0,width:loaded?"6rem":0}}),React.createElement("p",{className:"hero-desc",style:aniBase(.5)},"Designing and integrating broadcast production facilities for sports, corporate, aerospace, and financial organizations."),React.createElement("div",{className:"hero-ctas",style:aniBase(.65)},React.createElement("a",{href:"#projects",className:"btn btn-primary"},ctaLabel||"View Projects"),React.createElement("a",{href:"mailto:zgaetano@wilddragon.net",className:"btn btn-ghost-dark"},"Get in Touch"))),React.createElement("a",{href:"#clients",className:"scroll-indicator",style:{transition:"opacity 1s .8s",opacity:loaded?1:0}},React.createElement("span",null,"Scroll"),React.createElement(ChevronDown,null)))}const CLIENTS=[{name:"Broadcast Management Group",logo:__R("images/clients/bmg.png")},{name:"AVI-SPL",logo:__R("images/clients/avispl.png")},{name:"NBC Sports",logo:__R("images/clients/nbc-sports.png")},{name:"Washington Commanders",logo:__R("images/clients/commanders.png")},{name:"CVS / Aetna",logo:__R("images/clients/cvs.png")},{name:"UBS",logo:__R("images/clients/ubs.png")},{name:"BetMGM",logo:__R("images/clients/betmgm.svg")},{name:"Intuit",logo:__R("images/clients/intuit.png")},{name:"Monumental Sports",logo:__R("images/clients/monumental.svg")},{name:"COSM",logo:__R("images/clients/cosm.svg")},{name:"Red Sands",logo:__R("images/clients/redsands.svg")}];function Clients({marquee}){return React.createElement("section",{id:"clients",className:"clients","aria-label":"Clients"},React.createElement("div",{className:"container"},React.createElement(Reveal,null,React.createElement("p",{className:"clients-label"},"\u2014 Trusted by \u2014"))),marquee?React.createElement("div",{className:"marquee"},React.createElement("div",{className:"marquee-track"},[...CLIENTS,...CLIENTS].map((c,i)=>React.createElement("div",{className:"marquee-item",key:i,title:c.name},React.createElement("img",{src:c.logo,alt:c.name}))))):React.createElement("div",{className:"container"},React.createElement(Reveal,null,React.createElement("div",{className:"clients-static"},CLIENTS.map(c=>React.createElement("div",{className:"marquee-item",key:c.name,title:c.name},React.createElement("img",{src:c.logo,alt:c.name})))))))}const PARTNERS=[{name:"THOR Broadcast",logo:__R("images/clients/thor-logo.png")},{name:"Ross Video",logo:__R("images/clients/ross-video.png")},{name:"Filmtools",logo:__R("images/clients/filmtools.png")},{name:"Forecast Consoles",logo:__R("images/clients/forecast.png")},{name:"vMix by Studio Coast",logo:__R("images/clients/vmix.png")},{name:"RED Digital Cinema",logo:__R("images/partners/red-digital.png")}];function Partners(){return React.createElement("section",{className:"partners"},React.createElement("div",{className:"container"},React.createElement(Reveal,null,React.createElement("p",null,"// Technology Partners"),React.createElement("div",{className:"partners-grid"},PARTNERS.map(p=>React.createElement("div",{className:"partner-logo",title:p.name,key:p.name},React.createElement("img",{src:p.logo,alt:p.name})))))))}const CAPS=[{icon:Radio,title:"Systems Design",desc:"End-to-end broadcast facility design including signal flow engineering, equipment specification, and architectural documentation."},{icon:Cable,title:"Integration",desc:"Full system integration from rack builds and wiring to commissioning, testing, and operator training."},{icon:Cloud,title:"Cloud & IP",desc:"Cloud-native production architectures, SMPTE ST 2110, NDI, SRT, and hybrid on-prem/cloud workflows."},{icon:Tv,title:"Broadcast Engineering",desc:"Live production engineering, RF systems, video routing, and real-time broadcast operations."}];function About(){return React.createElement("section",{id:"about",className:"about"},React.createElement("div",{className:"container"},React.createElement(Reveal,null,React.createElement("div",{className:"about-intro"},React.createElement("div",{className:"section-counter"},React.createElement("span",{className:"num"},"01"),React.createElement("span",{className:"bar"}),React.createElement("span",null,"About")),React.createElement("h2",{className:"section-title"},"From live production to",React.createElement("br",null),"systems architecture."),React.createElement("div",{className:"body",style:{marginTop:"2rem"}},React.createElement("p",null,"I'm a broadcast engineer and systems integrator based in the Washington DC area, with a career that spans both sides of the industry \u2014 production and infrastructure."),React.createElement("p",null,"My background in live production as a 1st AC, DIT, Camera Operator, and Trinity Operator gives me an operator's perspective that most systems designers don't have. I build facilities that work the way production teams actually need them to \u2014 not just the way engineers imagine they will."),React.createElement("p",null,"Today, my focus is broadcast systems integration. As a principal systems designer with ",React.createElement("a",{className:"inline",href:"https://broadcastmgmt.com",target:"_blank",rel:"noopener noreferrer"},"Broadcast Management Group"),", I design production facilities for organizations including the ",React.createElement("strong",null,"Washington Commanders"),", ",React.createElement("strong",null,"CVS/Aetna"),", ",React.createElement("strong",null,"UBS"),", ",React.createElement("strong",null,"BetMGM"),", ",React.createElement("strong",null,"Intuit"),", and ",React.createElement("strong",null,"Monumental Sports")," \u2014 engineering control rooms, studios, XR stages, and IP-based workflows across sports, corporate, financial services, aerospace, and defense.")))),React.createElement("div",{className:"cap-grid"},CAPS.map((c,i)=>React.createElement(Reveal,{key:c.title,delay:i*100},React.createElement("div",{className:"cap"},React.createElement("div",{className:"cap-icon"},React.createElement(c.icon,{size:20,sw:1.5})),React.createElement("h3",null,c.title),React.createElement("p",null,c.desc)))))))}const STATS=[{v:10,suf:"+",label:"Years in Broadcast",desc:"Production & engineering"},{v:8,suf:"+",label:"Major Facilities",desc:"Designed & integrated"},{v:5900,suf:"+",label:"End Users Served",desc:"Global content delivery"},{v:5,suf:"",label:"Industry Verticals",desc:"Sports, corporate, financial, aerospace, defense"}];function AnimatedNumber({value,suffix}){const[n,setN]=useState(0),ref=useRef(null),done=useRef(!1);useEffect(()=>{const obs=new IntersectionObserver(([e])=>{if(e.isIntersecting&&!done.current){done.current=!0;const dur=2e3,steps=60,inc=value/steps;let cur=0;const t=setInterval(()=>{cur+=inc,cur>=value?(setN(value),clearInterval(t)):setN(Math.floor(cur))},dur/steps)}},{threshold:.3});return ref.current&&obs.observe(ref.current),()=>obs.disconnect()},[value]);const display=n>=1e3&&value>=1e3?`${(n/1e3).toFixed(1).replace(/\.0$/,"")}k`:n;return React.createElement("span",{ref,className:"tabular-nums"},display,React.createElement("span",{className:"suf"},suffix))}function Stats(){return React.createElement("section",{className:"stats grain dark-section"},React.createElement("div",{className:"container"},React.createElement("div",{className:"stats-grid"},STATS.map((s,i)=>React.createElement(Reveal,{key:s.label,delay:i*80},React.createElement("div",null,React.createElement("div",{className:"stat-value"},React.createElement(AnimatedNumber,{value:s.v,suffix:s.suf})),React.createElement("p",{className:"stat-label"},s.label),React.createElement("p",{className:"stat-desc"},s.desc)))))))}const SERVICES=[{icon:Ruler,phase:"01",title:"Design",desc:"Signal flow engineering, system architecture, and equipment specification. Every facility starts with documentation that defines how signals move and how operators interact."},{icon:Wrench,phase:"02",title:"Integrate",desc:"Full system builds from rack fabrication and cable infrastructure through to final termination and labeling \u2014 clean builds technicians can troubleshoot and maintain for years."},{icon:MonitorCheck,phase:"03",title:"Commission",desc:"End-to-end system testing, calibration, and performance verification. Every signal path tested, every failover validated, every workflow documented before handoff."},{icon:Headset,phase:"04",title:"Support",desc:"Operator training, documentation packages, and ongoing technical support. Systems designed with the people who use them in mind \u2014 not just the engineers who build them."}];function Services(){return React.createElement("section",{id:"services",className:"services"},React.createElement("div",{className:"container"},React.createElement(Reveal,null,React.createElement("div",{style:{maxWidth:"48rem",marginBottom:"4rem"}},React.createElement("div",{className:"section-counter"},React.createElement("span",{className:"num"},"02"),React.createElement("span",{className:"bar"}),React.createElement("span",null,"Process")),React.createElement("h2",{className:"section-title",style:{marginBottom:"1.25rem"}},"From blueprint to broadcast."),React.createElement("p",{className:"section-lede"},"A complete lifecycle approach to broadcast facility design and systems integration. Every project follows a disciplined process so systems work flawlessly when the red light goes on."))),React.createElement("div",{className:"svc-timeline"},React.createElement("div",{className:"svc-line"}),React.createElement("div",{className:"svc-grid"},SERVICES.map((s,i)=>React.createElement(Reveal,{key:s.title,delay:i*100},React.createElement("div",{className:"svc"},React.createElement("div",{className:"svc-node"},s.phase),React.createElement("div",{className:"svc-icon"},React.createElement(s.icon,{size:20,sw:1.5})),React.createElement("h3",null,s.title),React.createElement("p",null,s.desc))))))))}function pickScopeChips(scopes){return(scopes||[]).slice(0,3)}function Projects({onOpen}){const list=window.PROJECTS||[],[featured,...rest]=list;return React.createElement("section",{id:"projects",className:"projects","aria-label":"Selected projects"},React.createElement("div",{className:"container"},React.createElement(Reveal,null,React.createElement("div",{className:"projects-head"},React.createElement("div",null,React.createElement("div",{className:"section-counter"},React.createElement("span",{className:"num"},"03"),React.createElement("span",{className:"bar"}),React.createElement("span",null,"Projects")),React.createElement("h2",{className:"section-title"},"Selected work.")),React.createElement("p",{className:"lede"},"Broadcast facility design and systems integration for enterprise, sports, aerospace, and financial services clients."))),featured&&React.createElement(Reveal,null,React.createElement("a",{className:"proj-featured",href:`#/projects/${featured.slug}`,onClick:e=>{e.preventDefault(),onOpen(featured.slug)}},React.createElement("img",{src:featured.thumbnail,alt:`${featured.client} \u2014 ${featured.category}`}),React.createElement("div",{className:"proj-featured-body"},React.createElement("div",{className:"proj-featured-meta"},React.createElement("span",{className:"badge"},"Featured"),React.createElement("span",{className:"yr"},featured.category," \xB7 ",featured.year)),React.createElement("h3",null,featured.client),React.createElement("p",null,featured.summary),React.createElement("span",{className:"cta"},"View case study ",React.createElement(ArrowRight,null))))),React.createElement("div",{className:"proj-grid"},rest.map((p,i)=>React.createElement(Reveal,{key:p.slug,delay:i*60},React.createElement("a",{className:"proj-card",href:`#/projects/${p.slug}`,onClick:e=>{e.preventDefault(),onOpen(p.slug)}},React.createElement("img",{src:p.thumbnail,alt:`${p.client} \u2014 ${p.category}`}),React.createElement("div",{className:"proj-card-overlay"}),React.createElement("div",{className:"proj-arrow"},React.createElement(ArrowUpRight,null)),React.createElement("div",{className:"proj-card-body"},React.createElement("div",{className:"proj-card-meta"},React.createElement("span",{className:"cat"},p.category),React.createElement("span",{className:"sep"},"/"),React.createElement("span",{className:"yr"},p.year)),React.createElement("h3",null,p.client),React.createElement("p",{className:"summary"},p.summary),React.createElement("div",{className:"scope-chips"},pickScopeChips(p.scope).map(s=>React.createElement("span",{key:s},s))))))))))}const TECH_CATS=[{name:"Routing & Switching",items:["Ross Ultrix","Blackmagic ATEM","Evertz EQX","Panasonic Kairos"]},{name:"All-In-One Production",items:["vMix","Vizrt","AMPP"]},{name:"Signal Transport",items:["SMPTE 2110","NDI","SRT","SDI","Dante","MADI","JPEG XS"]},{name:"Infrastructure",items:["IP Networking","Fiber Infrastructure","KVM Systems","UPS & Power","Cooling & Ventilation"]},{name:"Display & XR",items:["LED Processing","Unreal Engine","Camera Tracking","Projection","Color Management"]}];function TechStack(){return React.createElement("section",{className:"tech grain dark-section"},React.createElement("div",{className:"container"},React.createElement(Reveal,null,React.createElement("div",{style:{maxWidth:"48rem",marginBottom:"3rem"}},React.createElement("div",{className:"section-counter"},React.createElement("span",{className:"num"},"04"),React.createElement("span",{className:"bar"}),React.createElement("span",null,"Technology")),React.createElement("h2",{className:"section-title",style:{marginBottom:"1.25rem"}},"Tools of the trade."),React.createElement("p",{className:"section-lede"},"Deep experience across the full broadcast technology stack \u2014 from traditional SDI infrastructure to modern IP and cloud-native production platforms."))),React.createElement("div",{className:"tech-table"},TECH_CATS.map((c,i)=>React.createElement(Reveal,{key:c.name,delay:i*60},React.createElement("div",{className:"tech-row"},React.createElement("h3",null,c.name),React.createElement("div",{className:"items"},c.items.map(it=>React.createElement("span",{key:it},it)))))))))}const REEL_URL="https://player.vimeo.com/video/225920311?h=0&badge=0&autopause=0&player_id=0&app_id=58479",CREDITS=[{t:"Bethesda Fallout Day",r:"1st AC",f:"Corporate / Event",y:"2025"},{t:"ZeniMax Elder Scrolls Online Update",r:"1st AC",f:"Corporate",y:"2025"},{t:"Palo Alto Ad",r:"Arri Trinity Operator",f:"Commercial",y:"2025"},{t:"Street Fighter DLC Ad",r:"Arri Trinity Operator",f:"Commercial",y:"2025"},{t:"Chase Small Business Promo",r:"Arri Trinity Operator",f:"Commercial",y:"2025"},{t:"ZeniMax Elder Scrolls Online Update",r:"1st AC",f:"Corporate",y:"2024"},{t:"Joe Vogel For Congress",r:"Camera Op / Trinity Op",f:"Political",y:"2024"},{t:"I Am a Champion",r:"Camera Op / Trinity Op",f:"Sports",y:"2023"},{t:"Washington Commanders Schedule Release",r:"Director of Photography",f:"Sports",y:"2023"},{t:"Stephen Sharer \u2013 MIDNIGHT",r:"DP / Trinity Operator",f:"Narrative",y:"2023"},{t:"Stephen Sharer \u2013 YOU and I",r:"DP / Trinity Operator",f:"Narrative",y:"2023"},{t:"A Chocolate Lens",r:"Camera Operator",f:"Narrative",y:"2023"},{t:"Capital One: Pride Month",r:"Director of Photography",f:"Corporate",y:"2021"},{t:"Tafon Nchukwi: My Goal Is to Be UFC Champion",r:"Camera Operator",f:"Sports Doc",y:"2020"},{t:"Tinder",r:"Director of Photography",f:"Commercial",y:"2020"},{t:"Conewago",r:"DP / Editor",f:"Documentary",y:"2020"},{t:"In Memoriam",r:"Director of Photography",f:"Documentary",y:"2019"}],GEAR=[{cat:"Cinema Cameras",icon:Camera,items:["RED Komodo-X","RED DSMC3 V-Raptor-X 8K VV + 6K S35 Dual-Format (Canon RF)"]},{cat:"Lenses",icon:Film,items:["Mamiya 645 Sekor C PL 7 Lens Set","Mamiya 645 Sekor C 35mm","Mamiya 645 Sekor C 110mm","Mamiya 645 Sekor C 150mm","16-30mm / 28-75mm / 75-180mm T2.9 Zoom Set"]},{cat:"Monitoring & Transmission",icon:Monitor,items:['SmallHD DSMC3 7"',"SmallHD Cine7 with Bolt 6 1500RX","Teradek Bolt 6 Max XT Kit (TX + RX)","DJI SDR Transmission"]},{cat:"Camera Support",icon:Package,items:["Arri Trinity \u2014 Certified Owner & Operator","Dana Dolly Kit (8 / 4ft Speedrail, 2\xD7 Matthews Stands)","DJI Focus Pro All In One"]}];function OnSet(){return React.createElement("section",{id:"on-set",className:"onset"},React.createElement("div",{className:"container onset-stack"},React.createElement(Reveal,null,React.createElement("div",{className:"onset-intro"},React.createElement("div",{className:"section-counter"},React.createElement("span",{className:"num"},"05"),React.createElement("span",{className:"bar"}),React.createElement("span",null,"On Set")),React.createElement("h2",{className:"section-title"},"Trinity Operator & DIT, ",React.createElement("span",{className:"light"},"Washington DC.")),React.createElement("p",{className:"section-lede",style:{marginTop:"1.25rem"}},"Certified Arri Trinity owner and operator with RED camera packages and specialized live production gear \u2014 from run-and-gun documentary to multi-camera sports and political campaigns. Available for commercial, corporate, sports, and narrative work throughout the DMV."))),React.createElement(Reveal,null,React.createElement("div",null,React.createElement("p",{className:"eyebrow"},"Reel"),React.createElement("div",{className:"reel-frame"},React.createElement("iframe",{src:REEL_URL,allow:"autoplay; fullscreen; picture-in-picture",allowFullScreen:!0,title:"Zachary Gaetano \u2014 Showreel"})))),React.createElement(Reveal,null,React.createElement("div",null,React.createElement("p",{className:"eyebrow"},"Selected Credits"),React.createElement("div",{className:"credits-list"},CREDITS.map((c,i)=>React.createElement("div",{key:i,className:"credit-row"},React.createElement("span",{className:"t"},c.t),React.createElement("span",{className:"r"},c.r),React.createElement("span",{className:"f"},c.f),React.createElement("span",{className:"y"},c.y)))))),React.createElement("div",null,React.createElement(Reveal,null,React.createElement("p",{className:"eyebrow"},"Kit")),React.createElement("div",{className:"gear-grid"},GEAR.map((g,i)=>React.createElement(Reveal,{key:g.cat,delay:i*100},React.createElement("div",{className:"gear-card"},React.createElement("div",{className:"cap-icon",style:{marginBottom:"1rem"}},React.createElement(g.icon,{size:20,sw:1.5})),React.createElement("h3",null,g.cat),React.createElement("ul",null,g.items.map(it=>React.createElement("li",{key:it},it))))))))))}function Contact(){return React.createElement("section",{id:"contact",className:"contact"},React.createElement("div",{className:"container"},React.createElement(Reveal,null,React.createElement("div",{className:"contact-head"},React.createElement("div",{className:"section-rule center"}),React.createElement("p",{className:"eyebrow center"},"// Contact"),React.createElement("h2",{className:"section-title"},"Let's create something."),React.createElement("p",{className:"lede",style:{marginTop:"1.25rem"}},"Whether you're planning a new broadcast facility, upgrading existing infrastructure, or exploring cloud and IP-based production workflows, I'd love to discuss your project."))),React.createElement("div",{className:"contact-grid"},React.createElement(Reveal,{delay:0},React.createElement("a",{className:"contact-card",href:"mailto:zgaetano@wilddragon.net"},React.createElement("div",{className:"icon"},React.createElement(Mail,{size:16,sw:1.5})),React.createElement("span",{className:"label"},"Email"),React.createElement("span",{className:"val"},"zgaetano@wilddragon.net"))),React.createElement(Reveal,{delay:80},React.createElement("a",{className:"contact-card",href:"https://www.linkedin.com/in/zachary-gaetano-05962386/",target:"_blank",rel:"noopener noreferrer"},React.createElement("div",{className:"icon"},React.createElement(Linkedin,{size:16,sw:1.5})),React.createElement("span",{className:"label"},"LinkedIn"),React.createElement("span",{className:"val"},"Zachary Gaetano"))),React.createElement(Reveal,{delay:160},React.createElement("div",{className:"contact-card"},React.createElement("div",{className:"icon"},React.createElement(MapPin,{size:16,sw:1.5})),React.createElement("span",{className:"label"},"Location"),React.createElement("span",{className:"val"},"Washington, DC Area")))),React.createElement(Reveal,{delay:200},React.createElement("div",{className:"cta-banner grain"},React.createElement("div",{className:"cta-banner-grid"}),React.createElement("div",{className:"inner"},React.createElement("h3",null,"Ready to start your next project?"),React.createElement("p",null,"From initial concept through commissioning and training, I bring a complete lifecycle approach to every facility I design."),React.createElement("a",{href:"mailto:zgaetano@wilddragon.net",className:"btn btn-primary"},"Start a Conversation ",React.createElement(ArrowRight,null)))))))}function Footer(){const sections=[{title:"Navigation",links:[{l:"About",h:"#about"},{l:"Process",h:"#services"},{l:"Projects",h:"#projects"},{l:"On Set",h:"#on-set"},{l:"Contact",h:"#contact"}]},{title:"Expertise",links:[{l:"Systems Design",h:"#about"},{l:"IP & Cloud Production",h:"#about"},{l:"Broadcast Integration",h:"#about"},{l:"XR / Virtual Production",h:"#projects"}]}];return React.createElement("footer",{className:"footer"},React.createElement("div",{className:"container"},React.createElement("div",{className:"footer-top"},React.createElement("div",null,React.createElement("div",{className:"footer-brand"},React.createElement("img",{src:__R("images/dragon-mark.png"),alt:"Wild Dragon"}),React.createElement("span",null,"Wild Dragon")),React.createElement("p",{className:"about-line"},"Broadcast systems integration and production facility design for sports, corporate, financial services, and defense organizations."),React.createElement("div",{className:"footer-socials"},React.createElement("a",{href:"https://www.linkedin.com/in/zachary-gaetano-05962386/",target:"_blank",rel:"noopener noreferrer","aria-label":"LinkedIn"},React.createElement(Linkedin,{size:14})),React.createElement("a",{href:"mailto:zgaetano@wilddragon.net","aria-label":"Email"},React.createElement(Mail,{size:14})))),sections.map(s=>React.createElement("div",{className:"footer-col",key:s.title},React.createElement("h4",null,s.title),React.createElement("ul",null,s.links.map(l=>React.createElement("li",{key:l.l},React.createElement("a",{href:l.h},l.l))))))),React.createElement("div",{className:"footer-bottom"},React.createElement("p",null,"\xA9 ",new Date().getFullYear()," Zachary Gaetano. All rights reserved."),React.createElement("p",null,"Washington, DC Area"))))}function ProjectOverlay({slug,onClose,onOpen}){const projects=window.PROJECTS,project=projects.find(p=>p.slug===slug);useEffect(()=>{const onKey=e=>{e.key==="Escape"&&onClose()};return window.addEventListener("keydown",onKey),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",onKey),document.body.style.overflow=""}},[onClose]);const maskRef=useRef(null);if(useEffect(()=>{maskRef.current&&(maskRef.current.scrollTop=0)},[slug]),!project)return null;const idx=projects.findIndex(p=>p.slug===slug),total=projects.length,prev=idx>0?projects[idx-1]:projects[total-1],next=idx<total-1?projects[idx+1]:projects[0],num=String(idx+1).padStart(2,"0"),totalStr=String(total).padStart(2,"0"),[lede,...rest]=project.description;return React.createElement("div",{className:"po-mask",ref:maskRef,onClick:e=>{e.target===maskRef.current&&onClose()}},React.createElement("button",{className:"po-close",onClick:onClose,"aria-label":"Close"},React.createElement(X,{size:20})),React.createElement("div",{className:"po"},React.createElement("nav",{className:"po-nav"},React.createElement("div",{className:"po-nav-inner"},React.createElement("a",{className:"po-back",href:"#projects",onClick:e=>{e.preventDefault(),onClose()}},React.createElement(ArrowLeft,{size:15})," All projects"),React.createElement("span",{className:"po-counter"},React.createElement("span",{className:"n"},num),React.createElement("span",{className:"d"},"/"),React.createElement("span",{className:"t"},totalStr)),React.createElement("span",{className:"po-brand"},"Wild Dragon"))),React.createElement("section",{className:"po-hero"},React.createElement("div",{className:"po-hero-bg"},React.createElement("img",{src:project.thumbnail,alt:""}),React.createElement("div",{className:"po-hero-grid"}),React.createElement("div",{className:"po-hero-fade"})),React.createElement("div",{className:"container po-hero-inner"},React.createElement("div",{className:"po-hero-meta"},React.createElement("span",{className:"po-cat"},project.category),React.createElement("span",{className:"po-dot"}),React.createElement("span",{className:"po-yr"},project.year)),React.createElement("h1",{className:"po-title"},project.client),React.createElement("p",{className:"po-lede"},project.summary),React.createElement("div",{className:"po-hero-rule"}),React.createElement("div",{className:"po-hero-foot"},React.createElement("span",{className:"po-corner-l"},"// ",project.title||project.client),React.createElement("span",{className:"po-corner-r"},"Case Study \xB7 ",num,"/",totalStr)))),React.createElement("section",{className:"po-facts"},React.createElement("div",{className:"container"},React.createElement("div",{className:"po-facts-grid"},React.createElement("div",null,React.createElement("span",{className:"lbl"},"Client"),React.createElement("span",{className:"val"},project.client)),React.createElement("div",null,React.createElement("span",{className:"lbl"},"Category"),React.createElement("span",{className:"val"},project.category)),React.createElement("div",null,React.createElement("span",{className:"lbl"},"Year"),React.createElement("span",{className:"val"},project.year)),React.createElement("div",null,React.createElement("span",{className:"lbl"},"Role"),React.createElement("span",{className:"val"},project.scope&&project.scope[0]||"Systems Design"))))),lede&&React.createElement("section",{className:"po-section po-opening"},React.createElement("div",{className:"container po-opening-grid"},React.createElement("div",{className:"po-opening-label"},React.createElement("span",{className:"num"},"01"),React.createElement("span",{className:"bar"}),React.createElement("span",null,"Overview")),React.createElement("p",{className:"po-opening-text"},lede))),React.createElement("div",{className:"po-feature"},React.createElement("div",{className:"po-feature-inner"},React.createElement("img",{src:project.thumbnail,alt:`${project.client} \u2014 ${project.category}`}),React.createElement("div",{className:"po-feature-cap"},React.createElement("span",null,project.client," \xB7 ",project.category),React.createElement("span",null,project.year)))),React.createElement("section",{className:"po-section po-body"},React.createElement("div",{className:"container po-body-grid"},React.createElement("div",{className:"po-body-main"},React.createElement("div",{className:"po-body-label"},React.createElement("span",{className:"num"},"02"),React.createElement("span",{className:"bar"}),React.createElement("span",null,"The build")),React.createElement("div",{className:"po-body-prose"},rest.map((p,i)=>React.createElement("p",{key:i},p))),project.highlights&&project.highlights.length>0&&React.createElement(React.Fragment,null,React.createElement("div",{className:"po-body-label",style:{marginTop:"4.5rem"}},React.createElement("span",{className:"num"},"03"),React.createElement("span",{className:"bar"}),React.createElement("span",null,"Highlights")),React.createElement("ul",{className:"po-hl"},project.highlights.map((h,i)=>React.createElement("li",{key:i},React.createElement("span",{className:"hl-n"},String(i+1).padStart(2,"0")),React.createElement("span",{className:"hl-t"},h)))))),React.createElement("aside",{className:"po-sidecar"},React.createElement("div",{className:"po-spec"},React.createElement("div",{className:"po-spec-row"},React.createElement("span",{className:"k"},"Scope"),React.createElement("div",{className:"v"},project.scope.map(s=>React.createElement("span",{key:s,className:"chip"},s)))),React.createElement("div",{className:"po-spec-row"},React.createElement("span",{className:"k"},"Technology"),React.createElement("div",{className:"v"},project.technologies.map(t=>React.createElement("span",{key:t,className:"chip chip-accent"},t)))))))),React.createElement("section",{className:"po-cta"},React.createElement("div",{className:"container"},React.createElement("div",{className:"po-cta-inner grain"},React.createElement("div",null,React.createElement("p",{className:"po-cta-eyebrow"},"// Next step"),React.createElement("h3",null,"Planning a similar build?"),React.createElement("p",{className:"po-cta-desc"},"Same engineering discipline, end to end \u2014 design, integration, commissioning, training, support.")),React.createElement("a",{href:"mailto:zgaetano@wilddragon.net",className:"btn btn-primary"},"Start a conversation ",React.createElement(ArrowRight,null))))),React.createElement("section",{className:"po-related"},React.createElement("div",{className:"container"},React.createElement("div",{className:"po-related-head"},React.createElement("span",{className:"po-related-label"},"// Other case studies")),React.createElement("div",{className:"po-related-grid"},projects.filter(p=>p.slug!==project.slug).slice(0,3).map(p=>React.createElement("a",{key:p.slug,className:"po-related-card",href:`#/projects/${p.slug}`,onClick:e=>{e.preventDefault(),onOpen(p.slug)}},React.createElement("div",{className:"img"},React.createElement("img",{src:p.thumbnail,alt:p.client})),React.createElement("div",{className:"meta"},React.createElement("span",{className:"cat"},p.category),React.createElement("span",{className:"yr"},p.year)),React.createElement("h4",null,p.client),React.createElement("span",{className:"go"},"View case study ",React.createElement(ArrowRight,{size:13}))))))),React.createElement("section",{className:"po-prevnext"},React.createElement("div",{className:"po-prevnext-grid"},React.createElement("a",{className:"prev",href:`#/projects/${prev.slug}`,onClick:e=>{e.preventDefault(),onOpen(prev.slug)}},React.createElement(ArrowLeft,{size:20}),React.createElement("div",{className:"text"},React.createElement("div",{className:"label"},"Previous"),React.createElement("div",{className:"name"},prev.client))),React.createElement("a",{className:"next",href:`#/projects/${next.slug}`,onClick:e=>{e.preventDefault(),onOpen(next.slug)}},React.createElement("div",{className:"text"},React.createElement("div",{className:"label"},"Next"),React.createElement("div",{className:"name"},next.client)),React.createElement(ArrowRight,{size:20})))),React.createElement("footer",{className:"po-foot"},React.createElement("div",{className:"po-foot-inner"},React.createElement("a",{className:"brand",href:"#",onClick:e=>{e.preventDefault(),onClose()}},"Wild Dragon"),React.createElement("p",null,"\xA9 ",new Date().getFullYear()," Zachary Gaetano")))))}Object.assign(window,{Navigation,Hero,Clients,Partners,About,Stats,Services,Projects,TechStack,OnSet,Contact,Footer,ProjectOverlay,CursorDot,Curtain});