{"id":15,"date":"2026-10-10T04:05:14","date_gmt":"2026-10-10T04:05:14","guid":{"rendered":"https:\/\/nsdevsiteconcept.neonsnow.com.au\/?page_id=15"},"modified":"2026-10-10T05:53:22","modified_gmt":"2026-10-10T05:53:22","slug":"ns-homepage-concept","status":"publish","type":"page","link":"https:\/\/nsdevsiteconcept.neonsnow.com.au\/","title":{"rendered":"NS Homepage Concept"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15\" class=\"elementor elementor-15\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c679d07 e-con-full e-flex e-con e-parent\" data-id=\"c679d07\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-08ec87a elementor-widget elementor-widget-html\" data-id=\"08ec87a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- NEON SNOW \/ single Elementor HTML widget. Edit CONFIG below. -->\n<section class=\"ns-collage\" aria-label=\"NEON SNOW creative studio\">\n  <header class=\"ns-header\">\n    <a class=\"ns-brand\" href=\"https:\/\/nsdevsiteconcept.neonsnow.com.au\/\" aria-label=\"NEON SNOW home\" data-ns-link=\"home\"><span class=\"ns-wordmark\">NEON<span>SNOW<\/span><\/span><img fetchpriority=\"high\" class=\"ns-logo\" alt=\"NEON SNOW\" width=\"1199\" height=\"219\" hidden><\/a>\n    <button class=\"ns-toggle\" type=\"button\" aria-expanded=\"false\" hidden><span class=\"ns-toggle-label\">Menu<\/span><span aria-hidden=\"true\">\u2630<\/span><\/button>\n    <nav class=\"ns-nav\" aria-label=\"Primary navigation\"><a href=\"#services\" data-ns-link=\"services\">Services<\/a><a href=\"#work\" data-ns-link=\"work\">Work<\/a><a href=\"#about\" data-ns-link=\"about\">About<\/a><a href=\"#contact\" data-ns-link=\"contact\">Contact<\/a><\/nav>\n  <\/header>\n  <div class=\"ns-intro\"><p class=\"ns-eyebrow\">CONSULTANCY \/ WEBSITES \/ SOFTWARE<\/p><h1>Ideas beyond<br>the ordinary.<\/h1><div class=\"ns-actions\"><a class=\"ns-button ns-primary\" href=\"#contact\" data-ns-link=\"project\">Start a project <span aria-hidden=\"true\">\u2197<\/span><\/a><a class=\"ns-button ns-secondary\" href=\"#work\" data-ns-link=\"explore\">Explore our work <span aria-hidden=\"true\">\u2197<\/span><\/a><\/div><\/div>\n  <div class=\"ns-art\" aria-hidden=\"true\"><div class=\"ns-fallback\"><span><\/span><i><\/i><\/div><div class=\"ns-art-canvas\"><\/div><\/div>\n<\/section>\n<style>\n.ns-collage{--ns-paper:#f4f1e9;--ns-ink:#151515;--ns-blue:#233cff;--ns-coral:#fa735f;--ns-gutter:clamp(20px,5vw,80px);background:var(--ns-paper);color:var(--ns-ink);font-family:Arial,Helvetica,sans-serif;width:100%;max-width:100%;min-width:0;isolation:isolate;overflow:hidden;position:relative}\n.ns-collage *,.ns-collage *::before,.ns-collage *::after{box-sizing:border-box}\n.ns-collage [hidden]{display:none!important}\n.ns-collage a{color:inherit;text-decoration:none;box-shadow:none}\n.ns-collage a:focus-visible,.ns-collage button:focus-visible{outline:3px solid var(--ns-blue);outline-offset:5px}\n.ns-collage .ns-header{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px var(--ns-gutter)}\n.ns-collage .ns-brand{flex-shrink:0;display:inline-flex;align-items:center;min-height:44px}\n.ns-collage .ns-wordmark{font-size:27px;font-weight:900;font-style:italic;line-height:.82;letter-spacing:-1.8px;position:relative;display:block;padding-right:12px}\n.ns-collage .ns-wordmark span{display:block}.ns-collage .ns-wordmark::after{content:\"\";position:absolute;left:43%;top:-6%;height:115%;width:5px;background:var(--ns-paper);transform:skew(-22deg)}\n.ns-collage .ns-logo{display:block;width:clamp(154px,17vw,230px);height:auto;max-height:none;object-fit:contain;filter:brightness(0)}\n.ns-collage .ns-nav{display:flex;align-items:center;gap:clamp(22px,3vw,46px)}\n.ns-collage .ns-nav a{font-size:14px;font-weight:600;line-height:1.4;padding:12px 0;min-height:44px;display:flex;align-items:center}\n.ns-collage .ns-nav a:hover{text-decoration:underline;text-underline-offset:5px}\n.ns-collage .ns-toggle{display:none;font:600 14px Arial,sans-serif;background:transparent;color:var(--ns-ink);border:1px solid currentColor;border-radius:0;min-height:44px;padding:9px 12px;gap:14px;align-items:center;cursor:pointer}\n.ns-collage .ns-intro{text-align:center;padding:clamp(36px,6vw,92px) var(--ns-gutter) 36px;position:relative;z-index:1}\n.ns-collage .ns-eyebrow{font-size:clamp(9px,1vw,12px);font-weight:600;letter-spacing:.15em;line-height:1.6;margin:0 0 23px}\n.ns-collage h1{font-family:Arial,Helvetica,sans-serif;font-size:clamp(48px,8.8vw,136px);font-weight:800;line-height:.96;letter-spacing:-.065em;text-transform:none;margin:0;color:var(--ns-ink);padding:0}\n.ns-collage .ns-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:32px}\n.ns-collage .ns-button{font-size:13px;font-weight:600;line-height:1.5;border:1px solid var(--ns-ink);border-radius:0;padding:15px 22px;min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:24px;transition:transform .2s,background .2s;max-width:100%}\n.ns-collage .ns-primary{background:var(--ns-blue);border-color:var(--ns-blue);color:white}\n.ns-collage .ns-secondary{background:transparent}\n.ns-collage .ns-button:hover{transform:translateY(-2px)}\n.ns-collage .ns-secondary:hover{background:#e8e4db}\n.ns-collage .ns-art{width:100%;position:relative;aspect-ratio:1672\/641;overflow:hidden;margin-top:12px}\n.ns-collage .ns-art-canvas{width:100%;height:100%;position:relative}\n.ns-collage .ns-art[data-mode=\"layered\"] .ns-art-canvas{position:absolute;top:-46.801872%;height:146.801872%;left:0}\n.ns-collage .ns-art img{display:block;width:100%;height:100%;object-fit:contain;position:absolute;inset:0;max-width:none;border-radius:0;transform:translate(var(--ns-x,0px),var(--ns-y,0px));will-change:auto}\n.ns-collage .ns-art[data-mode=\"layered\"] img{transition:transform .25s ease-out}\n.ns-collage .ns-fallback{position:absolute;inset:0;background:var(--ns-paper)}\n.ns-collage .ns-fallback span{position:absolute;inset:15% -2% 0;background:var(--ns-blue);clip-path:polygon(0 25%,23% 15%,24% 21%,61% 0,77% 18%,100% 8%,100% 100%,0 100%)}\n.ns-collage .ns-fallback i{position:absolute;inset:40% 0 0 54%;background:var(--ns-coral);clip-path:polygon(0 23%,100% 0,100% 100%,18% 100%)}\n.ns-collage .ns-art.ns-enter{animation:ns-collage-enter .8s ease-out both}\n@keyframes ns-collage-enter{from{opacity:.2;translate:0 14px}to{opacity:1;translate:0 0}}\n@media(max-width:767px){.ns-collage .ns-header{padding-top:22px;padding-bottom:22px;flex-wrap:wrap;gap:16px}.ns-collage.ns-js .ns-toggle{display:inline-flex}.ns-collage .ns-nav{width:100%;justify-content:space-between;gap:14px;flex-wrap:wrap}.ns-collage.ns-js .ns-nav{display:none}.ns-collage.ns-js.ns-open .ns-nav{display:flex;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid #ccc7bd;padding-top:8px}.ns-collage .ns-nav a{padding:12px 0}.ns-collage .ns-intro{padding-top:36px;padding-bottom:24px}.ns-collage .ns-eyebrow{letter-spacing:.08em;margin-bottom:22px}.ns-collage h1{font-size:clamp(43px,10.2vw,78px);letter-spacing:-.06em}.ns-collage .ns-actions{margin-top:26px;gap:12px}.ns-collage .ns-button{padding:13px 17px;gap:16px}.ns-collage .ns-art{margin-top:10px}}\n@media(max-width:359px){.ns-collage .ns-actions{flex-direction:column;align-items:stretch}.ns-collage .ns-button{width:100%}}\n@media(prefers-reduced-motion:reduce){.ns-collage .ns-art.ns-enter{animation:none}.ns-collage .ns-art img,.ns-collage .ns-button{transition:none!important;transform:none!important}}\n.ns-collage .ns-scene{display:block;width:100%;height:100%;overflow:hidden;pointer-events:none}.ns-collage .ns-intro{padding-bottom:10px}.ns-collage .ns-art{margin-top:0;aspect-ratio:1672\/611}.ns-collage .ns-art[data-mode=\"walking\"] .ns-art-canvas{position:relative;inset:auto;height:100%}.ns-collage .ns-art[data-mode=\"walking\"]{touch-action:pan-y;mask-image:linear-gradient(to bottom,transparent,#000 12px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 12px)}\n.ns-collage .ns-float{animation:none;transform:translate(0,0)}.ns-collage.ns-motion-on .ns-decor-float{animation:ns-element-drift var(--ns-duration,20s) ease-in-out var(--ns-delay,0s) infinite alternate}.ns-collage.ns-motion-on .ns-structure-float{animation:ns-structure-drift 16s ease-in-out infinite alternate}.ns-collage .ns-parallax{transition:transform .45s ease-out}.ns-collage.ns-motion-on .ns-float{animation-play-state:running}@keyframes ns-element-drift{from{transform:translate(calc(var(--ns-dx)*-1),calc(var(--ns-dy)*-1))}to{transform:translate(var(--ns-dx),var(--ns-dy))}}@keyframes ns-structure-drift{from{transform:translate(0,-1.5px)}to{transform:translate(0,1.5px)}}@media(prefers-reduced-motion:reduce){.ns-collage .ns-float,.ns-collage .ns-parallax{animation:none!important;transform:none!important;transition:none!important}}@media(max-width:767px),(pointer:coarse){.ns-collage .ns-float,.ns-collage .ns-parallax{animation:none!important;transform:none!important;transition:none!important}}\n.ns-collage{background-color:var(--ns-paper);background-image:url(\"https:\/\/nsdevsiteconcept.neonsnow.com.au\/wp-content\/uploads\/2026\/10\/07-ivory-paper-background.png\");background-size:cover;background-position:center top;background-repeat:no-repeat}.ns-collage .ns-header,.ns-collage .ns-intro,.ns-collage .ns-nav,.ns-collage .ns-art,.ns-collage .ns-art-canvas,.ns-collage .ns-fallback{background:transparent}\n.ns-collage .ns-intro{padding-top:clamp(28px,4vw,64px)}.ns-collage .ns-art{margin-top:calc(6px - 1.97368421%)}\n<\/style>\n<script>\n(()=>{'use strict';\nconst root=document.currentScript.previousElementSibling.previousElementSibling;\nif(!root||!root.classList.contains('ns-collage')||root.dataset.nsReady)return;\nroot.dataset.nsReady='true';\nconst CONFIG={\n staticFigureUrl:'https:\/\/nsdevsiteconcept.neonsnow.com.au\/wp-content\/uploads\/2026\/10\/neon-snow-static-figure.png',\n logoUrl:'https:\/\/neonsnow.com.au\/wp-content\/uploads\/2025\/01\/ChatGPT-Image-Feb-27-2026-03_58_30-PM.png',\n \/\/ Rebuilt from 13 independently registered assets; no flattened architecture plate.\n \/\/ Assets, route and occlusion share a 1672 x 941 scene coordinate system.\n cropTop:330,figureHeight:54,maxSpeed:190,\n links:{home:'https:\/\/nsdevsiteconcept.neonsnow.com.au\/',services:'#services',work:'#work',about:'#about',contact:'#contact',project:'#contact',explore:'#work'}\n};\nconst nav=root.querySelector('.ns-nav'),toggle=root.querySelector('.ns-toggle'),art=root.querySelector('.ns-art'),canvas=root.querySelector('.ns-art-canvas');\nconst uid='ns-'+(globalThis.crypto?.randomUUID?.()||Math.random().toString(36).slice(2));nav.id=uid+'-nav';toggle.setAttribute('aria-controls',nav.id);toggle.hidden=false;root.classList.add('ns-js');\nroot.querySelectorAll('[data-ns-link]').forEach(a=>{const value=CONFIG.links[a.dataset.nsLink];if(value)a.setAttribute('href',value)});\nconst mobile=matchMedia('(max-width:767px)'),reduced=matchMedia('(prefers-reduced-motion:reduce)'),fine=matchMedia('(hover:hover) and (pointer:fine)');\nconst setOpen=(open,focus=false)=>{root.classList.toggle('ns-open',open);toggle.setAttribute('aria-expanded',String(open));toggle.querySelector('.ns-toggle-label').textContent=open?'Close':'Menu';if(focus)toggle.focus()};\ntoggle.addEventListener('click',()=>setOpen(toggle.getAttribute('aria-expanded')!=='true'));\nnav.addEventListener('click',e=>{if(e.target.closest('a'))setOpen(false)});\ndocument.addEventListener('keydown',e=>{if(root.isConnected&&e.key==='Escape'&&root.classList.contains('ns-open'))setOpen(false,true)});\ndocument.addEventListener('click',e=>{if(root.isConnected&&!root.contains(e.target))setOpen(false)});\nroot.addEventListener('focusout',e=>{if(e.relatedTarget&&!root.contains(e.relatedTarget))setOpen(false)});mobile.addEventListener('change',()=>setOpen(false));\nconst load=src=>new Promise((resolve,reject)=>{const i=new Image();i.alt='';i.decoding='async';i.onload=()=>resolve(i);i.onerror=reject;i.src=src});\nload(CONFIG.logoUrl).then(i=>{const logo=root.querySelector('.ns-logo');logo.src=i.src;logo.hidden=false;root.querySelector('.ns-wordmark').hidden=true}).catch(()=>{});\n\/\/ Foot anchor route: left landing, down to bridge, up to wall, concealed bend,\n\/\/ stair landing, then individual stair treads\/risers. No guide is rendered.\nconst base='https:\/\/nsdevsiteconcept.neonsnow.com.au\/wp-content\/uploads\/2026\/10\/';\n\/\/ Registration matrices are static. Motion is on OUTER wrappers, never these transforms.\nconst ASSETS=[\n {id:'paper',file:'07-ivory-paper-background.png',w:1254,h:1254,m:[1,1,0,0]},\n {id:'cobalt',file:'01-cobalt-rear-torn-paper.png',m:[.563574,.709949,402.357,256.297]},\n {id:'disk',file:'02-coral-left-disk.png',m:[.664336,.667447,152.154,162.717]},\n {id:'wedge',file:'03-coral-bottom-left-wedge.png',m:[.650138,.620294,-14,385]},\n {id:'ribbon',file:'04-coral-right-torn-ribbon.png',m:[.591651,.63388,711,298.699]},\n {id:'foliage',file:'05-black-halftone-left-foliage.png',m:[.795714,.66526,-9,284.643]},\n {id:'right-bg',file:'06-black-halftone-right-background.png',m:[.744756,.810905,442,184]},\n {id:'left',file:'01-left-cantilever-building.png',w:1671,m:[.482,.482,-22,312.456],arch:true},\n {id:'bridge',file:'03-central-connecting-bridge.png',m:[.375,.375,441.6,453.5],arch:true},\n {id:'terrace',file:'02-left-terrace-deck.png',m:[.738,.648,-10,340.848],arch:true},\n {id:'wall',file:'04-central-vertical-wall.png',m:[.54,.54,537.4,392.06],arch:true},\n {id:'right',file:'05-right-cantilever-building.png',m:[.49,.49,777.58,288.52],arch:true},\n {id:'stairs',file:'06-right-descending-stairs.png',m:[.6,.47,573.2,498.63],arch:true}\n];\nconst byId=Object.fromEntries(ASSETS.map(a=>[a.id,a]));\nconst world=(id,p)=>{const m=byId[id].m;return[p[0]*m[0]+m[2],p[1]*m[1]+m[3]]};\nconst matrix=id=>{const m=byId[id].m;return'matrix('+m[0]+' 0 0 '+m[1]+' '+m[2]+' '+m[3]+')'};\n\/\/ Traced in each NEW asset's native canvas, then registered through the same matrix as its pixels.\nconst terraceRoute=[[435,499],[588,500],[642,526],[700,554],[737,570],[769,581]].map(p=>world('terrace',p));\nconst bridgeRoute=[[315,706],[600,639],[950,557],[1270,482],[1430,443]].map(p=>world('bridge',p));\nconst stairRoute=[[1000,589],[1120,602],[1141,609],[1141,630],[1156,630],[1156,652],[1174,652],[1174,675],[1195,675],[1195,699],[1220,699],[1220,724],[1248,724],[1248,750],[1280,750],[1280,777],[1316,777],[1316,806],[1356,806],[1356,837],[1401,837],[1401,869],[1451,869],[1451,903],[1506,903],[1506,936]].map(p=>world('stairs',p));\nconst route=[...terraceRoute,...bridgeRoute,[1045,670],[1130,740],...stairRoute];\n\nconst lengths=[0];for(let i=1;i<route.length;i++)lengths.push(lengths[i-1]+Math.hypot(route[i][0]-route[i-1][0],route[i][1]-route[i-1][1]));const total=lengths.at(-1);\nfunction point(distance){let i=1;while(i<lengths.length-1&&lengths[i]<distance)i++;const t=Math.max(0,Math.min(1,(distance-lengths[i-1])\/(lengths[i]-lengths[i-1])));return {x:route[i-1][0]+(route[i][0]-route[i-1][0])*t,y:route[i-1][1]+(route[i][1]-route[i-1][1])*t,segment:i};}\nfunction groundPoint(distance){const p=point(distance),i=p.segment;if(route[i][0]===route[i-1][0])p.y=Math.max(route[i][1],route[i-1][1]);return p;}\nconst wallEntry=terraceRoute.length+bridgeRoute.length-1,wallExit=terraceRoute.length+bridgeRoute.length+2;\nlet ready=false,visible=false,raf=0,last=0,s=0,target=0,speed=0,phase=0,direction=1,svg,walker,body,raster;\nconst active=()=>ready&&visible&&!document.hidden&&!reduced.matches&&fine.matches&&!mobile.matches&&root.isConnected;\nfunction pose(moving){if(!body)return;const swing=moving?Math.sin(phase)*.65:0,p=point(s),scale=CONFIG.figureHeight\/54;\n \/\/ Each stance foot stays at a fixed world-route coordinate; only the swing foot lifts.\n \/\/ Driving phase from route distance also preserves ground contact during reversal.\n for(const [name,offset,hip] of [['left-leg',0,-2],['right-leg',.5,2]]){\n  const q=s\/28+offset,cycle=Math.floor(q),t=q-cycle;let d,lift=0,stance=true;\n  if(!moving)d=s+(offset===0?-2:2);\n  else if(t<.5)d=(cycle-offset+.25)*28;\n  else{const u=(t-.5)*2,e=u*u*(3-2*u);d=(cycle-offset+.25+e)*28;lift=Math.sin(Math.PI*u)*5;stance=false;}\n  d=Math.max(0,Math.min(total,d));const foot=groundPoint(d),x=(foot.x-p.x)\/(direction*scale),y=(foot.y-lift-p.y)\/scale-2;\n  const kneeX=(hip+x)\/2+3,kneeY=(-25+y)\/2;\n  body.querySelector('[data-limb=\"'+name+'\"]').setAttribute('d','M '+hip+' -25 Q '+kneeX+' '+kneeY+' '+x+' '+y);\n  art.dataset[name==='left-leg'?'leftFoot':'rightFoot']=JSON.stringify({x:foot.x,y:foot.y,lift,stance,d});\n }\n body.querySelector('[data-limb=\"left-arm\"]').setAttribute('d','M -4 -40 Q '+(-6+swing*7)+' -31 '+(-5+swing*11)+' -23');\n body.querySelector('[data-limb=\"right-arm\"]').setAttribute('d','M 4 -40 Q '+(6-swing*7)+' -31 '+(5-swing*11)+' -23');\n}\nfunction draw(moving=false){if(!ready)return;const p=point(s),concealed=s>=lengths[wallEntry]+6&&s<=lengths[wallExit]-8;\n walker.setAttribute('transform','translate('+p.x+' '+p.y+')');walker.style.visibility=concealed?'hidden':'visible';body.setAttribute('transform','scale('+direction*(CONFIG.figureHeight\/54)+' '+(CONFIG.figureHeight\/54)+')');pose(moving);\n \/\/ Minimal diagnostic state for integration tests; no global controller.\n art.dataset.progress=(s\/total).toFixed(5);art.dataset.feet=p.x.toFixed(2)+','+p.y.toFixed(2);art.dataset.walking=String(moving);art.dataset.concealed=String(concealed);art.dataset.direction=String(direction);\n}\nfunction stop(){if(raf)cancelAnimationFrame(raf);raf=0;last=0;speed=0;if(ready)draw(false);art.dataset.running='false';}\nfunction tick(now){raf=0;if(!active()){stop();return}const dt=Math.min((now-(last||now))\/1000,.04);last=now;const delta=target-s;\n if(Math.abs(delta)<.3&&Math.abs(speed)<2){s=target;stop();return}\n const desired=Math.sign(delta)*Math.min(CONFIG.maxSpeed,Math.abs(delta)*5);speed+=(desired-speed)*(1-Math.exp(-dt*10));let step=speed*dt;if(Math.abs(step)>=Math.abs(delta)&&Math.sign(step)===Math.sign(delta)){s=target;stop();return}\n s=Math.max(0,Math.min(total,s+step));if(Math.abs(step)>.02){direction=step>0?1:-1;phase+=Math.abs(step)*Math.PI\/18;}draw(Math.abs(speed)>1);raf=requestAnimationFrame(tick);art.dataset.running='true';\n}\nfunction start(){if(active()&&!raf&&Math.abs(target-s)>.3){last=0;raf=requestAnimationFrame(tick);art.dataset.running='true';}}\nfunction preference(){stop();motionState();if(!ready)return;const stationary=reduced.matches||!fine.matches||mobile.matches;\n if(stationary){s=0;target=0;direction=1;body.style.display=raster.dataset.loaded==='true'?'none':'';raster.style.display=raster.dataset.loaded==='true'?'':'none';}else{body.style.display='';raster.style.display='none';}\n draw(false);if(reduced.matches)art.classList.remove('ns-enter');start();}\nart.addEventListener('pointermove',e=>{if(!active()||e.pointerType==='touch')return;const r=art.getBoundingClientRect();target=Math.max(0,Math.min(1,(e.clientX-r.left)\/r.width))*total;start();},{passive:true});\nart.addEventListener('pointerleave',()=>{target=s;stop();},{passive:true});\nreduced.addEventListener('change',preference);fine.addEventListener('change',preference);mobile.addEventListener('change',preference);\ndocument.addEventListener('visibilitychange',()=>{motionState();if(document.hidden)stop();else start()});\nconst observer=new IntersectionObserver(entries=>{visible=entries[0].isIntersecting;motionState();if(visible)start();else stop();},{threshold:0});observer.observe(art);\nconst WALKER_MARKUP=\"<g class=\\\"ns-walker\\\"><g class=\\\"ns-body\\\" fill=\\\"#101010\\\" stroke=\\\"#101010\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path data-limb=\\\"left-arm\\\" fill=\\\"none\\\" stroke-width=\\\"3.3\\\"\/><path data-limb=\\\"left-leg\\\" fill=\\\"none\\\" stroke-width=\\\"4\\\"\/><path data-limb=\\\"right-leg\\\" fill=\\\"none\\\" stroke-width=\\\"4\\\"\/><path d=\\\"M-4-42 Q0-45 4-42 L5-27 Q0-23-5-27Z\\\" stroke-width=\\\"2\\\"\/><path data-limb=\\\"right-arm\\\" fill=\\\"none\\\" stroke-width=\\\"3.3\\\"\/><circle cx=\\\"0\\\" cy=\\\"-49\\\" r=\\\"4.5\\\" stroke=\\\"none\\\"\/><path d=\\\"M3-51 L6-49 L3-47Z\\\" stroke=\\\"none\\\"\/><\/g><svg class=\\\"ns-raster\\\" x=\\\"-8.58\\\" y=\\\"-54\\\" width=\\\"17.16\\\" height=\\\"54\\\" viewBox=\\\"467 122 321 1010\\\" overflow=\\\"hidden\\\" style=\\\"display:none\\\"><image width=\\\"1254\\\" height=\\\"1254\\\"\/><\/svg><\/g>\";\nconst NS='http:\/\/www.w3.org\/2000\/svg';\nconst el=(tag,attrs={})=>{const n=document.createElementNS(NS,tag);for(const[k,v]of Object.entries(attrs))n.setAttribute(k,v);return n};\nconst clearParallax=()=>root.querySelectorAll('.ns-parallax').forEach(g=>g.style.removeProperty('transform'));\nfunction motionState(){const enabled=visible&&!document.hidden&&!reduced.matches&&!mobile.matches&&fine.matches;root.classList.toggle('ns-motion-on',enabled);if(!enabled)clearParallax();}\nart.addEventListener('pointermove',e=>{if(!ready||!active()||e.pointerType==='touch')return;const r=art.getBoundingClientRect(),x=(e.clientX-r.left)\/r.width-.5,y=(e.clientY-r.top)\/r.height-.5;root.querySelectorAll('.ns-parallax').forEach(g=>{const depth=Number(g.dataset.depth)||0;g.style.transform='translate('+(x*depth)+'px,'+(y*depth*.65)+'px)'})},{passive:true});\nart.addEventListener('pointerleave',clearParallax,{passive:true});\nPromise.allSettled(ASSETS.map(a=>load(base+a.file).then(i=>{if(i.naturalWidth!==(a.w||1672)||i.naturalHeight!==(a.h||941))throw Error('Unexpected canvas '+a.id);return i}))).then(results=>{\n const missing=ASSETS.filter((a,i)=>results[i].status!=='fulfilled');art.dataset.missingAssets=missing.map(a=>a.id).join(',');if(missing.some(a=>a.arch))throw Error('Missing structural asset');\n svg=el('svg',{viewBox:'0 '+CONFIG.cropTop+' 1672 '+(941-CONFIG.cropTop),'aria-hidden':'true',focusable:'false'});svg.classList.add('ns-scene');\n const defs=el('defs'),mask=el('mask',{id:uid+'-wall',maskUnits:'userSpaceOnUse',x:0,y:0,width:1672,height:941});mask.append(el('rect',{width:1672,height:941,fill:'white'}));defs.append(mask);svg.append(defs);\n \/\/ Occluders use the SAME registrations as the corresponding architecture asset.\n const maskPath=(id,d,stroke)=>{const p=el('path',{d,transform:matrix(id),fill:stroke?'none':'black'});if(stroke){p.setAttribute('stroke','black');p.setAttribute('stroke-width',stroke)}mask.append(p)};\n maskPath('wall','M792 410 L840 395 L840 348 L1090 161 L1166 180 L1166 760 L840 891 L840 609 L792 550Z');\n maskPath('terrace','M335 498 L588 498 L737 565 L770 579 L770 682 L380 590 L335 584Z');\n let tr='M335 468 L588 470 L737 541 M335 483 L588 485 L737 555';for(const x of[339,367,400,435,468,504,540,588,618,652,691,736]){const y=x<=588?470:470+(x-588)*71\/149;tr+=' M'+x+' '+y+' V'+(y+29)}maskPath('terrace',tr,3);\n maskPath('bridge','M305 705 L1430 438 L1496 466 L1496 570 L1430 538 L313 783Z');let br='M307 675 L1430 399 M308 690 L1430 416';for(const x of[358,426,486,553,629,707,782,846,923,1005,1084,1156,1188,1262,1323,1396]){const y=675+(x-307)*(399-675)\/1123;br+=' M'+x+' '+y+' V'+(y+30)}maskPath('bridge',br,5);\n maskPath('stairs','M936 482 L985 471 L985 588 L1025 590 L1245 941 L1150 941 L1034 638 L936 653Z M1238 599 L1672 941 L1540 941 L1230 622Z');\n function imageNode(a){const n=el('image',{'data-asset':a.id,href:base+a.file,width:a.w||1672,height:a.h||941,transform:matrix(a.id)});if(a.arch)n.style.filter='grayscale(1)';return n;}\n function decor(id,depth,dx,dy,duration){const a=byId[id];if(missing.includes(a))return;const float=el('g',{'class':'ns-float ns-decor-float','data-motion-layer':id});float.style.setProperty('--ns-dx',dx+'px');float.style.setProperty('--ns-dy',dy+'px');float.style.setProperty('--ns-duration',duration+'s');float.style.setProperty('--ns-delay',-(duration*.37)+'s');const par=el('g',{'class':'ns-parallax','data-depth':depth});par.append(imageNode(a));float.append(par);svg.append(float);}\n \/\/ Paper is applied once to the full hero wrapper in CSS, never again inside the scene.\n decor('right-bg',2,2,-2,23);decor('foliage',3,-2,2,21);decor('cobalt',7,4,-4,18);decor('disk',5,-3,3,22);decor('ribbon',4,2,-3,19);\n const structureFloat=el('g',{'class':'ns-float ns-structure-float','data-motion-layer':'structure'});const structure=el('g',{'class':'ns-parallax ns-structure','data-depth':'2'});for(const a of ASSETS.filter(a=>a.arch))structure.append(imageNode(a));\n const masked=el('g',{'class':'ns-person-mask',mask:'url(#'+uid+'-wall)'});masked.innerHTML=WALKER_MARKUP;structure.append(masked);structureFloat.append(structure);svg.append(structureFloat);decor('wedge',2,-2,2,24);\n walker=svg.querySelector('.ns-walker');body=svg.querySelector('.ns-body');raster=svg.querySelector('.ns-raster');canvas.replaceChildren(svg);art.style.aspectRatio='1672\/'+(941-CONFIG.cropTop);art.dataset.mode='walking';art.dataset.loadedAssets=String(ASSETS.length-missing.length);root.querySelector('.ns-fallback').hidden=true;ready=true;draw(false);preference();motionState();if(!reduced.matches)art.classList.add('ns-enter');\n load(CONFIG.staticFigureUrl).then(()=>{raster.querySelector('image').setAttribute('href',CONFIG.staticFigureUrl);raster.dataset.loaded='true';preference()}).catch(()=>{raster.dataset.loaded='false';preference()});\n}).catch(()=>{art.dataset.mode='fallback';stop();root.classList.remove('ns-motion-on')});\n\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e885d33 e-con-full e-flex e-con e-parent\" data-id=\"e885d33\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7278872 elementor-widget elementor-widget-html\" data-id=\"7278872\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><title>NEON SNOW \u2014 Services preview<\/title><style>body{margin:0;background:#f4f1e9}.preview-contact{font:16px Arial;padding:32px 5vw;background:#233cff;color:white}<\/style><\/head><body><!-- NEON SNOW services: paste this complete block into ONE Elementor HTML widget.\nDESTINATIONS: edit each href=\"#contact\" below. The page must contain id=\"contact\",\nor replace each href with a real destination. Use section id=\"services\" only once. -->\n<section id=\"services\" class=\"ns-services\" aria-labelledby=\"ns-services-heading\">\n  <div class=\"ns-services-inner\">\n    <div class=\"ns-services-strap\">\n      <svg class=\"ns-services-star\" viewBox=\"0 0 100 100\" aria-hidden=\"true\" focusable=\"false\"><g stroke=\"currentColor\" stroke-width=\"17\"><path d=\"M50 3V97M9.3 26.5L90.7 73.5M9.3 73.5L90.7 26.5\"\/><\/g><\/svg>\n      <p>Clear thinking. Distinctive websites. Useful software.<\/p>\n    <\/div>\n    <div class=\"ns-services-intro\">\n      <p class=\"ns-services-eyebrow\">01 \/ WHAT WE DO<\/p>\n      <h2 id=\"ns-services-heading\"><span>From the first question<\/span> <span>to the finished thing.<\/span><\/h2>\n    <\/div>\n    <div class=\"ns-services-grid\">\n      <a class=\"ns-services-card\" href=\"#contact\" data-ns-services-link=\"consultancy\">\n        <span class=\"ns-services-number\">01<\/span>\n        <h3>Consultancy<\/h3>\n        <p>Find clarity.<br>Choose a direction.<\/p>\n        <span class=\"ns-services-arrow\" aria-hidden=\"true\"><svg viewBox=\"0 0 48 28\" focusable=\"false\"><path d=\"M1 14h43M33 3l11 11-11 11\"\/><\/svg><\/span>\n      <\/a>\n      <a class=\"ns-services-card\" href=\"#contact\" data-ns-services-link=\"websites\">\n        <span class=\"ns-services-number\">02<\/span>\n        <h3>Websites<\/h3>\n        <p>Make an impression.<br>Make it work.<\/p>\n        <span class=\"ns-services-arrow\" aria-hidden=\"true\"><svg viewBox=\"0 0 48 28\" focusable=\"false\"><path d=\"M1 14h43M33 3l11 11-11 11\"\/><\/svg><\/span>\n      <\/a>\n      <a class=\"ns-services-card\" href=\"#contact\" data-ns-services-link=\"software\">\n        <span class=\"ns-services-number\">03<\/span>\n        <h3>Software<\/h3>\n        <p>Solve problems.<br>Move things forward.<\/p>\n        <span class=\"ns-services-arrow\" aria-hidden=\"true\"><svg viewBox=\"0 0 48 28\" focusable=\"false\"><path d=\"M1 14h43M33 3l11 11-11 11\"\/><\/svg><\/span>\n      <\/a>\n    <\/div>\n  <\/div>\n<\/section>\n<style>\n.ns-services{--ns-services-paper:#f4f1e9;--ns-services-ink:#151515;--ns-services-blue:#233cff;--ns-services-gutter:clamp(20px,5vw,80px);width:100%;max-width:100%;min-width:0;position:relative;isolation:isolate;background:var(--ns-services-paper) url('https:\/\/nsdevsiteconcept.neonsnow.com.au\/wp-content\/uploads\/2026\/10\/07-ivory-paper-background.png') center\/1254px auto repeat;color:var(--ns-services-ink);font-family:Arial,Helvetica,sans-serif;scroll-margin-top:24px}\n.ns-services,.ns-services *,.ns-services *::before,.ns-services *::after{box-sizing:border-box}\n.ns-services .ns-services-inner{width:100%;padding:clamp(64px,9.8vw,150px) var(--ns-services-gutter) clamp(64px,6.5vw,100px);margin:0 auto}\n.ns-services .ns-services-strap{display:flex;align-items:center;gap:clamp(22px,2.6vw,40px);padding-bottom:clamp(34px,3.5vw,54px);border-bottom:1px solid var(--ns-services-ink)}\n.ns-services .ns-services-star{flex:0 0 clamp(64px,7.2vw,110px);width:clamp(64px,7.2vw,110px);height:clamp(64px,7.2vw,110px);color:var(--ns-services-blue);overflow:visible}\n.ns-services .ns-services-strap p{font:800 clamp(22px,2.45vw,38px)\/1.15 Arial,Helvetica,sans-serif;letter-spacing:-.045em;color:inherit;padding:0;margin:0;max-width:1100px}\n.ns-services .ns-services-intro{padding:clamp(32px,3.2vw,49px) 0 clamp(40px,4.6vw,70px)}\n.ns-services .ns-services-eyebrow{font:500 12px\/1.5 'Courier New',monospace;letter-spacing:.15em;margin:0 0 clamp(28px,3vw,46px);padding:0;color:inherit}\n.ns-services #ns-services-heading{font:800 clamp(40px,6.45vw,100px)\/.99 Arial,Helvetica,sans-serif;letter-spacing:-.065em;color:inherit;margin:0;padding:0;text-transform:none;overflow-wrap:normal}\n.ns-services #ns-services-heading span{display:block}\n.ns-services .ns-services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ns-services-ink);border-bottom:1px solid var(--ns-services-ink);padding:34px 0 40px}\n.ns-services .ns-services-card{display:flex;flex-direction:column;min-width:0;padding:0 clamp(22px,3vw,46px);margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--ns-services-ink);text-decoration:none;transition:color .2s ease}\n.ns-services .ns-services-card:first-child{padding-left:0}\n.ns-services .ns-services-card:last-child{padding-right:0}\n.ns-services .ns-services-card+.ns-services-card{border-left:1px solid var(--ns-services-ink)}\n.ns-services .ns-services-number{font:500 12px\/1.5 'Courier New',monospace;letter-spacing:.08em;margin-bottom:22px}\n.ns-services .ns-services-card h3{font:800 clamp(25px,2.65vw,41px)\/1.1 Arial,Helvetica,sans-serif;letter-spacing:-.045em;color:inherit;text-transform:none;margin:0 0 18px;padding:0}\n.ns-services .ns-services-card p{font:400 clamp(15px,1.38vw,21px)\/1.45 Arial,Helvetica,sans-serif;color:inherit;margin:0 0 32px;padding:0}\n.ns-services .ns-services-arrow{display:block;border-bottom:1px solid currentColor;padding:0 0 15px;margin-top:auto}\n.ns-services .ns-services-arrow svg{display:block;width:42px;height:25px;stroke:currentColor;stroke-width:1.6;fill:none;transition:transform .2s ease}\n.ns-services .ns-services-card:focus-visible{outline:3px solid var(--ns-services-blue);outline-offset:7px;color:var(--ns-services-blue)}\n.ns-services .ns-services-card:focus-visible .ns-services-arrow svg{transform:translateX(7px)}\n@media(hover:hover){.ns-services .ns-services-card:hover{color:var(--ns-services-blue)}.ns-services .ns-services-card:hover .ns-services-arrow svg{transform:translateX(7px)}}\n@media(max-width:900px) and (min-width:641px){.ns-services .ns-services-card{padding-right:22px;padding-left:22px}.ns-services .ns-services-card p{font-size:15px}.ns-services .ns-services-card h3{font-size:26px}}\n@media(max-width:640px){.ns-services .ns-services-strap{align-items:flex-start;gap:20px}.ns-services .ns-services-star{flex-basis:54px;width:54px;height:54px}.ns-services .ns-services-strap p{font-size:24px;line-height:1.15}.ns-services #ns-services-heading{font-size:clamp(40px,8.8vw,56px);line-height:1.02;letter-spacing:-.06em}.ns-services #ns-services-heading span{display:inline}.ns-services .ns-services-grid{grid-template-columns:minmax(0,1fr);padding:0}.ns-services .ns-services-card,.ns-services .ns-services-card:first-child,.ns-services .ns-services-card:last-child{padding:28px 0 30px}.ns-services .ns-services-card+.ns-services-card{border-left:0;border-top:1px solid var(--ns-services-ink)}.ns-services .ns-services-number{margin-bottom:14px}.ns-services .ns-services-card h3{font-size:32px;margin-bottom:14px}.ns-services .ns-services-card p{font-size:18px;margin-bottom:24px}.ns-services .ns-services-arrow{padding-bottom:12px}.ns-services .ns-services-card:focus-visible{outline-offset:5px}}\n@media(prefers-reduced-motion:reduce){.ns-services .ns-services-card,.ns-services .ns-services-arrow svg{transition:none}.ns-services .ns-services-card:hover .ns-services-arrow svg,.ns-services .ns-services-card:focus-visible .ns-services-arrow svg{transform:none}}\n<\/style><footer id=\"contact\" class=\"preview-contact\" tabindex=\"-1\">Preview contact target \u2014 replace with your real contact section in Elementor.<\/footer><\/body><\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-221b3db e-con-full e-flex e-con e-parent\" data-id=\"221b3db\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b3f48c3 elementor-widget elementor-widget-html\" data-id=\"b3f48c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- NEON SNOW \/ single Elementor HTML widget. Edit CONFIG below. -->\n<section class=\"ns-collage\" aria-label=\"NEON SNOW creative studio\">\n  <header class=\"ns-header\">\n    <a class=\"ns-brand\" href=\"https:\/\/nsdevsiteconcept.neonsnow.com.au\/\" aria-label=\"NEON SNOW home\" data-ns-link=\"home\"><span class=\"ns-wordmark\">NEON<span>SNOW<\/span><\/span><img fetchpriority=\"high\" class=\"ns-logo\" alt=\"NEON SNOW\" width=\"1199\" height=\"219\" hidden><\/a>\n    <button class=\"ns-toggle\" type=\"button\" aria-expanded=\"false\" hidden><span class=\"ns-toggle-label\">Menu<\/span><span aria-hidden=\"true\">\u2630<\/span><\/button>\n    <nav class=\"ns-nav\" aria-label=\"Primary navigation\"><a href=\"#services\" data-ns-link=\"services\">Services<\/a><a href=\"#work\" data-ns-link=\"work\">Work<\/a><a href=\"#about\" data-ns-link=\"about\">About<\/a><a href=\"#contact\" data-ns-link=\"contact\">Contact<\/a><\/nav>\n  <\/header>\n  <div class=\"ns-intro\"><p class=\"ns-eyebrow\">CONSULTANCY \/ WEBSITES \/ SOFTWARE<\/p><h1>Ideas beyond<br>the ordinary.<\/h1><div class=\"ns-actions\"><a class=\"ns-button ns-primary\" href=\"#contact\" data-ns-link=\"project\">Start a project <span aria-hidden=\"true\">\u2197<\/span><\/a><a class=\"ns-button ns-secondary\" href=\"#work\" data-ns-link=\"explore\">Explore our work <span aria-hidden=\"true\">\u2197<\/span><\/a><\/div><\/div>\n  <div class=\"ns-art\" aria-hidden=\"true\"><div class=\"ns-fallback\"><span><\/span><i><\/i><\/div><div class=\"ns-art-canvas\"><\/div><\/div>\n<\/section>\n<style>\n.ns-collage{--ns-paper:#f4f1e9;--ns-ink:#151515;--ns-blue:#233cff;--ns-coral:#fa735f;--ns-gutter:clamp(20px,5vw,80px);background:var(--ns-paper);color:var(--ns-ink);font-family:Arial,Helvetica,sans-serif;width:100%;max-width:100%;min-width:0;isolation:isolate;overflow:hidden;position:relative}\n.ns-collage *,.ns-collage *::before,.ns-collage *::after{box-sizing:border-box}\n.ns-collage [hidden]{display:none!important}\n.ns-collage a{color:inherit;text-decoration:none;box-shadow:none}\n.ns-collage a:focus-visible,.ns-collage button:focus-visible{outline:3px solid var(--ns-blue);outline-offset:5px}\n.ns-collage .ns-header{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px var(--ns-gutter)}\n.ns-collage .ns-brand{flex-shrink:0;display:inline-flex;align-items:center;min-height:44px}\n.ns-collage .ns-wordmark{font-size:27px;font-weight:900;font-style:italic;line-height:.82;letter-spacing:-1.8px;position:relative;display:block;padding-right:12px}\n.ns-collage .ns-wordmark span{display:block}.ns-collage .ns-wordmark::after{content:\"\";position:absolute;left:43%;top:-6%;height:115%;width:5px;background:var(--ns-paper);transform:skew(-22deg)}\n.ns-collage .ns-logo{display:block;width:clamp(154px,17vw,230px);height:auto;max-height:none;object-fit:contain;filter:brightness(0)}\n.ns-collage .ns-nav{display:flex;align-items:center;gap:clamp(22px,3vw,46px)}\n.ns-collage .ns-nav a{font-size:14px;font-weight:600;line-height:1.4;padding:12px 0;min-height:44px;display:flex;align-items:center}\n.ns-collage .ns-nav a:hover{text-decoration:underline;text-underline-offset:5px}\n.ns-collage .ns-toggle{display:none;font:600 14px Arial,sans-serif;background:transparent;color:var(--ns-ink);border:1px solid currentColor;border-radius:0;min-height:44px;padding:9px 12px;gap:14px;align-items:center;cursor:pointer}\n.ns-collage .ns-intro{text-align:center;padding:clamp(36px,6vw,92px) var(--ns-gutter) 36px;position:relative;z-index:1}\n.ns-collage .ns-eyebrow{font-size:clamp(9px,1vw,12px);font-weight:600;letter-spacing:.15em;line-height:1.6;margin:0 0 23px}\n.ns-collage h1{font-family:Arial,Helvetica,sans-serif;font-size:clamp(48px,8.8vw,136px);font-weight:800;line-height:.96;letter-spacing:-.065em;text-transform:none;margin:0;color:var(--ns-ink);padding:0}\n.ns-collage .ns-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:32px}\n.ns-collage .ns-button{font-size:13px;font-weight:600;line-height:1.5;border:1px solid var(--ns-ink);border-radius:0;padding:15px 22px;min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:24px;transition:transform .2s,background .2s;max-width:100%}\n.ns-collage .ns-primary{background:var(--ns-blue);border-color:var(--ns-blue);color:white}\n.ns-collage .ns-secondary{background:transparent}\n.ns-collage .ns-button:hover{transform:translateY(-2px)}\n.ns-collage .ns-secondary:hover{background:#e8e4db}\n.ns-collage .ns-art{width:100%;position:relative;aspect-ratio:1672\/641;overflow:hidden;margin-top:12px}\n.ns-collage .ns-art-canvas{width:100%;height:100%;position:relative}\n.ns-collage .ns-art[data-mode=\"layered\"] .ns-art-canvas{position:absolute;top:-46.801872%;height:146.801872%;left:0}\n.ns-collage .ns-art img{display:block;width:100%;height:100%;object-fit:contain;position:absolute;inset:0;max-width:none;border-radius:0;transform:translate(var(--ns-x,0px),var(--ns-y,0px));will-change:auto}\n.ns-collage .ns-art[data-mode=\"layered\"] img{transition:transform .25s ease-out}\n.ns-collage .ns-fallback{position:absolute;inset:0;background:var(--ns-paper)}\n.ns-collage .ns-fallback span{position:absolute;inset:15% -2% 0;background:var(--ns-blue);clip-path:polygon(0 25%,23% 15%,24% 21%,61% 0,77% 18%,100% 8%,100% 100%,0 100%)}\n.ns-collage .ns-fallback i{position:absolute;inset:40% 0 0 54%;background:var(--ns-coral);clip-path:polygon(0 23%,100% 0,100% 100%,18% 100%)}\n.ns-collage .ns-art.ns-enter{animation:ns-collage-enter .8s ease-out both}\n@keyframes ns-collage-enter{from{opacity:.2;translate:0 14px}to{opacity:1;translate:0 0}}\n@media(max-width:767px){.ns-collage .ns-header{padding-top:22px;padding-bottom:22px;flex-wrap:wrap;gap:16px}.ns-collage.ns-js .ns-toggle{display:inline-flex}.ns-collage .ns-nav{width:100%;justify-content:space-between;gap:14px;flex-wrap:wrap}.ns-collage.ns-js .ns-nav{display:none}.ns-collage.ns-js.ns-open .ns-nav{display:flex;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid #ccc7bd;padding-top:8px}.ns-collage .ns-nav a{padding:12px 0}.ns-collage .ns-intro{padding-top:36px;padding-bottom:24px}.ns-collage .ns-eyebrow{letter-spacing:.08em;margin-bottom:22px}.ns-collage h1{font-size:clamp(43px,10.2vw,78px);letter-spacing:-.06em}.ns-collage .ns-actions{margin-top:26px;gap:12px}.ns-collage .ns-button{padding:13px 17px;gap:16px}.ns-collage .ns-art{margin-top:10px}}\n@media(max-width:359px){.ns-collage .ns-actions{flex-direction:column;align-items:stretch}.ns-collage .ns-button{width:100%}}\n@media(prefers-reduced-motion:reduce){.ns-collage .ns-art.ns-enter{animation:none}.ns-collage .ns-art img,.ns-collage .ns-button{transition:none!important;transform:none!important}}\n.ns-collage .ns-scene{display:block;width:100%;height:100%;overflow:hidden;pointer-events:none}.ns-collage .ns-intro{padding-bottom:10px}.ns-collage .ns-art{margin-top:0;aspect-ratio:1672\/611}.ns-collage .ns-art[data-mode=\"walking\"] .ns-art-canvas{position:relative;inset:auto;height:100%}.ns-collage .ns-art[data-mode=\"walking\"]{touch-action:pan-y;mask-image:linear-gradient(to bottom,transparent,#000 12px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 12px)}\n.ns-collage .ns-float{animation:none;transform:translate(0,0)}.ns-collage.ns-motion-on .ns-decor-float{animation:ns-element-drift var(--ns-duration,20s) ease-in-out var(--ns-delay,0s) infinite alternate}.ns-collage.ns-motion-on .ns-structure-float{animation:ns-structure-drift 16s ease-in-out infinite alternate}.ns-collage .ns-parallax{transition:transform .45s ease-out}.ns-collage.ns-motion-on .ns-float{animation-play-state:running}@keyframes ns-element-drift{from{transform:translate(calc(var(--ns-dx)*-1),calc(var(--ns-dy)*-1))}to{transform:translate(var(--ns-dx),var(--ns-dy))}}@keyframes ns-structure-drift{from{transform:translate(0,-1.5px)}to{transform:translate(0,1.5px)}}@media(prefers-reduced-motion:reduce){.ns-collage .ns-float,.ns-collage .ns-parallax{animation:none!important;transform:none!important;transition:none!important}}@media(max-width:767px),(pointer:coarse){.ns-collage .ns-float,.ns-collage .ns-parallax{animation:none!important;transform:none!important;transition:none!important}}\n.ns-collage{background-color:var(--ns-paper);background-image:url(\"https:\/\/nsdevsiteconcept.neonsnow.com.au\/wp-content\/uploads\/2026\/10\/07-ivory-paper-background.png\");background-size:cover;background-position:center top;background-repeat:no-repeat}.ns-collage .ns-header,.ns-collage .ns-intro,.ns-collage .ns-nav,.ns-collage .ns-art,.ns-collage .ns-art-canvas,.ns-collage .ns-fallback{background:transparent}\n.ns-collage .ns-intro{padding-top:clamp(28px,4vw,64px)}.ns-collage .ns-art{margin-top:calc(6px - 1.97368421%)}\n<\/style>\n<script>\n(()=>{'use strict';\nconst root=document.currentScript.previousElementSibling.previousElementSibling;\nif(!root||!root.classList.contains('ns-collage')||root.dataset.nsReady)return;\nroot.dataset.nsReady='true';\nconst CONFIG={\n staticFigureUrl:'https:\/\/nsdevsiteconcept.neonsnow.com.au\/wp-content\/uploads\/2026\/10\/neon-snow-static-figure.png',\n logoUrl:'https:\/\/neonsnow.com.au\/wp-content\/uploads\/2025\/01\/ChatGPT-Image-Feb-27-2026-03_58_30-PM.png',\n \/\/ Rebuilt from 13 independently registered assets; no flattened architecture plate.\n \/\/ Assets, route and occlusion share a 1672 x 941 scene coordinate system.\n cropTop:330,figureHeight:54,maxSpeed:190,\n links:{home:'https:\/\/nsdevsiteconcept.neonsnow.com.au\/',services:'#services',work:'#work',about:'#about',contact:'#contact',project:'#contact',explore:'#work'}\n};\nconst nav=root.querySelector('.ns-nav'),toggle=root.querySelector('.ns-toggle'),art=root.querySelector('.ns-art'),canvas=root.querySelector('.ns-art-canvas');\nconst uid='ns-'+(globalThis.crypto?.randomUUID?.()||Math.random().toString(36).slice(2));nav.id=uid+'-nav';toggle.setAttribute('aria-controls',nav.id);toggle.hidden=false;root.classList.add('ns-js');\nroot.querySelectorAll('[data-ns-link]').forEach(a=>{const value=CONFIG.links[a.dataset.nsLink];if(value)a.setAttribute('href',value)});\nconst mobile=matchMedia('(max-width:767px)'),reduced=matchMedia('(prefers-reduced-motion:reduce)'),fine=matchMedia('(hover:hover) and (pointer:fine)');\nconst setOpen=(open,focus=false)=>{root.classList.toggle('ns-open',open);toggle.setAttribute('aria-expanded',String(open));toggle.querySelector('.ns-toggle-label').textContent=open?'Close':'Menu';if(focus)toggle.focus()};\ntoggle.addEventListener('click',()=>setOpen(toggle.getAttribute('aria-expanded')!=='true'));\nnav.addEventListener('click',e=>{if(e.target.closest('a'))setOpen(false)});\ndocument.addEventListener('keydown',e=>{if(root.isConnected&&e.key==='Escape'&&root.classList.contains('ns-open'))setOpen(false,true)});\ndocument.addEventListener('click',e=>{if(root.isConnected&&!root.contains(e.target))setOpen(false)});\nroot.addEventListener('focusout',e=>{if(e.relatedTarget&&!root.contains(e.relatedTarget))setOpen(false)});mobile.addEventListener('change',()=>setOpen(false));\nconst load=src=>new Promise((resolve,reject)=>{const i=new Image();i.alt='';i.decoding='async';i.onload=()=>resolve(i);i.onerror=reject;i.src=src});\nload(CONFIG.logoUrl).then(i=>{const logo=root.querySelector('.ns-logo');logo.src=i.src;logo.hidden=false;root.querySelector('.ns-wordmark').hidden=true}).catch(()=>{});\n\/\/ Foot anchor route: left landing, down to bridge, up to wall, concealed bend,\n\/\/ stair landing, then individual stair treads\/risers. No guide is rendered.\nconst base='https:\/\/nsdevsiteconcept.neonsnow.com.au\/wp-content\/uploads\/2026\/10\/';\n\/\/ Registration matrices are static. Motion is on OUTER wrappers, never these transforms.\nconst ASSETS=[\n {id:'paper',file:'07-ivory-paper-background.png',w:1254,h:1254,m:[1,1,0,0]},\n {id:'cobalt',file:'01-cobalt-rear-torn-paper.png',m:[.563574,.709949,402.357,256.297]},\n {id:'disk',file:'02-coral-left-disk.png',m:[.664336,.667447,152.154,162.717]},\n {id:'wedge',file:'03-coral-bottom-left-wedge.png',m:[.650138,.620294,-14,385]},\n {id:'ribbon',file:'04-coral-right-torn-ribbon.png',m:[.591651,.63388,711,298.699]},\n {id:'foliage',file:'05-black-halftone-left-foliage.png',m:[.795714,.66526,-9,284.643]},\n {id:'right-bg',file:'06-black-halftone-right-background.png',m:[.744756,.810905,442,184]},\n {id:'left',file:'01-left-cantilever-building.png',w:1671,m:[.482,.482,-22,312.456],arch:true},\n {id:'bridge',file:'03-central-connecting-bridge.png',m:[.375,.375,441.6,453.5],arch:true},\n {id:'terrace',file:'02-left-terrace-deck.png',m:[.738,.648,-10,340.848],arch:true},\n {id:'wall',file:'04-central-vertical-wall.png',m:[.54,.54,537.4,392.06],arch:true},\n {id:'right',file:'05-right-cantilever-building.png',m:[.49,.49,777.58,288.52],arch:true},\n {id:'stairs',file:'06-right-descending-stairs.png',m:[.6,.47,573.2,498.63],arch:true}\n];\nconst byId=Object.fromEntries(ASSETS.map(a=>[a.id,a]));\nconst world=(id,p)=>{const m=byId[id].m;return[p[0]*m[0]+m[2],p[1]*m[1]+m[3]]};\nconst matrix=id=>{const m=byId[id].m;return'matrix('+m[0]+' 0 0 '+m[1]+' '+m[2]+' '+m[3]+')'};\n\/\/ Traced in each NEW asset's native canvas, then registered through the same matrix as its pixels.\nconst terraceRoute=[[435,499],[588,500],[642,526],[700,554],[737,570],[769,581]].map(p=>world('terrace',p));\nconst bridgeRoute=[[315,706],[600,639],[950,557],[1270,482],[1430,443]].map(p=>world('bridge',p));\nconst stairRoute=[[1000,589],[1120,602],[1141,609],[1141,630],[1156,630],[1156,652],[1174,652],[1174,675],[1195,675],[1195,699],[1220,699],[1220,724],[1248,724],[1248,750],[1280,750],[1280,777],[1316,777],[1316,806],[1356,806],[1356,837],[1401,837],[1401,869],[1451,869],[1451,903],[1506,903],[1506,936]].map(p=>world('stairs',p));\nconst route=[...terraceRoute,...bridgeRoute,[1045,670],[1130,740],...stairRoute];\n\nconst lengths=[0];for(let i=1;i<route.length;i++)lengths.push(lengths[i-1]+Math.hypot(route[i][0]-route[i-1][0],route[i][1]-route[i-1][1]));const total=lengths.at(-1);\nfunction point(distance){let i=1;while(i<lengths.length-1&&lengths[i]<distance)i++;const t=Math.max(0,Math.min(1,(distance-lengths[i-1])\/(lengths[i]-lengths[i-1])));return {x:route[i-1][0]+(route[i][0]-route[i-1][0])*t,y:route[i-1][1]+(route[i][1]-route[i-1][1])*t,segment:i};}\nfunction groundPoint(distance){const p=point(distance),i=p.segment;if(route[i][0]===route[i-1][0])p.y=Math.max(route[i][1],route[i-1][1]);return p;}\nconst wallEntry=terraceRoute.length+bridgeRoute.length-1,wallExit=terraceRoute.length+bridgeRoute.length+2;\nlet ready=false,visible=false,raf=0,last=0,s=0,target=0,speed=0,phase=0,direction=1,svg,walker,body,raster;\nconst active=()=>ready&&visible&&!document.hidden&&!reduced.matches&&fine.matches&&!mobile.matches&&root.isConnected;\nfunction pose(moving){if(!body)return;const swing=moving?Math.sin(phase)*.65:0,p=point(s),scale=CONFIG.figureHeight\/54;\n \/\/ Each stance foot stays at a fixed world-route coordinate; only the swing foot lifts.\n \/\/ Driving phase from route distance also preserves ground contact during reversal.\n for(const [name,offset,hip] of [['left-leg',0,-2],['right-leg',.5,2]]){\n  const q=s\/28+offset,cycle=Math.floor(q),t=q-cycle;let d,lift=0,stance=true;\n  if(!moving)d=s+(offset===0?-2:2);\n  else if(t<.5)d=(cycle-offset+.25)*28;\n  else{const u=(t-.5)*2,e=u*u*(3-2*u);d=(cycle-offset+.25+e)*28;lift=Math.sin(Math.PI*u)*5;stance=false;}\n  d=Math.max(0,Math.min(total,d));const foot=groundPoint(d),x=(foot.x-p.x)\/(direction*scale),y=(foot.y-lift-p.y)\/scale-2;\n  const kneeX=(hip+x)\/2+3,kneeY=(-25+y)\/2;\n  body.querySelector('[data-limb=\"'+name+'\"]').setAttribute('d','M '+hip+' -25 Q '+kneeX+' '+kneeY+' '+x+' '+y);\n  art.dataset[name==='left-leg'?'leftFoot':'rightFoot']=JSON.stringify({x:foot.x,y:foot.y,lift,stance,d});\n }\n body.querySelector('[data-limb=\"left-arm\"]').setAttribute('d','M -4 -40 Q '+(-6+swing*7)+' -31 '+(-5+swing*11)+' -23');\n body.querySelector('[data-limb=\"right-arm\"]').setAttribute('d','M 4 -40 Q '+(6-swing*7)+' -31 '+(5-swing*11)+' -23');\n}\nfunction draw(moving=false){if(!ready)return;const p=point(s),concealed=s>=lengths[wallEntry]+6&&s<=lengths[wallExit]-8;\n walker.setAttribute('transform','translate('+p.x+' '+p.y+')');walker.style.visibility=concealed?'hidden':'visible';body.setAttribute('transform','scale('+direction*(CONFIG.figureHeight\/54)+' '+(CONFIG.figureHeight\/54)+')');pose(moving);\n \/\/ Minimal diagnostic state for integration tests; no global controller.\n art.dataset.progress=(s\/total).toFixed(5);art.dataset.feet=p.x.toFixed(2)+','+p.y.toFixed(2);art.dataset.walking=String(moving);art.dataset.concealed=String(concealed);art.dataset.direction=String(direction);\n}\nfunction stop(){if(raf)cancelAnimationFrame(raf);raf=0;last=0;speed=0;if(ready)draw(false);art.dataset.running='false';}\nfunction tick(now){raf=0;if(!active()){stop();return}const dt=Math.min((now-(last||now))\/1000,.04);last=now;const delta=target-s;\n if(Math.abs(delta)<.3&&Math.abs(speed)<2){s=target;stop();return}\n const desired=Math.sign(delta)*Math.min(CONFIG.maxSpeed,Math.abs(delta)*5);speed+=(desired-speed)*(1-Math.exp(-dt*10));let step=speed*dt;if(Math.abs(step)>=Math.abs(delta)&&Math.sign(step)===Math.sign(delta)){s=target;stop();return}\n s=Math.max(0,Math.min(total,s+step));if(Math.abs(step)>.02){direction=step>0?1:-1;phase+=Math.abs(step)*Math.PI\/18;}draw(Math.abs(speed)>1);raf=requestAnimationFrame(tick);art.dataset.running='true';\n}\nfunction start(){if(active()&&!raf&&Math.abs(target-s)>.3){last=0;raf=requestAnimationFrame(tick);art.dataset.running='true';}}\nfunction preference(){stop();motionState();if(!ready)return;const stationary=reduced.matches||!fine.matches||mobile.matches;\n if(stationary){s=0;target=0;direction=1;body.style.display=raster.dataset.loaded==='true'?'none':'';raster.style.display=raster.dataset.loaded==='true'?'':'none';}else{body.style.display='';raster.style.display='none';}\n draw(false);if(reduced.matches)art.classList.remove('ns-enter');start();}\nart.addEventListener('pointermove',e=>{if(!active()||e.pointerType==='touch')return;const r=art.getBoundingClientRect();target=Math.max(0,Math.min(1,(e.clientX-r.left)\/r.width))*total;start();},{passive:true});\nart.addEventListener('pointerleave',()=>{target=s;stop();},{passive:true});\nreduced.addEventListener('change',preference);fine.addEventListener('change',preference);mobile.addEventListener('change',preference);\ndocument.addEventListener('visibilitychange',()=>{motionState();if(document.hidden)stop();else start()});\nconst observer=new IntersectionObserver(entries=>{visible=entries[0].isIntersecting;motionState();if(visible)start();else stop();},{threshold:0});observer.observe(art);\nconst WALKER_MARKUP=\"<g class=\\\"ns-walker\\\"><g class=\\\"ns-body\\\" fill=\\\"#101010\\\" stroke=\\\"#101010\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path data-limb=\\\"left-arm\\\" fill=\\\"none\\\" stroke-width=\\\"3.3\\\"\/><path data-limb=\\\"left-leg\\\" fill=\\\"none\\\" stroke-width=\\\"4\\\"\/><path data-limb=\\\"right-leg\\\" fill=\\\"none\\\" stroke-width=\\\"4\\\"\/><path d=\\\"M-4-42 Q0-45 4-42 L5-27 Q0-23-5-27Z\\\" stroke-width=\\\"2\\\"\/><path data-limb=\\\"right-arm\\\" fill=\\\"none\\\" stroke-width=\\\"3.3\\\"\/><circle cx=\\\"0\\\" cy=\\\"-49\\\" r=\\\"4.5\\\" stroke=\\\"none\\\"\/><path d=\\\"M3-51 L6-49 L3-47Z\\\" stroke=\\\"none\\\"\/><\/g><svg class=\\\"ns-raster\\\" x=\\\"-8.58\\\" y=\\\"-54\\\" width=\\\"17.16\\\" height=\\\"54\\\" viewBox=\\\"467 122 321 1010\\\" overflow=\\\"hidden\\\" style=\\\"display:none\\\"><image width=\\\"1254\\\" height=\\\"1254\\\"\/><\/svg><\/g>\";\nconst NS='http:\/\/www.w3.org\/2000\/svg';\nconst el=(tag,attrs={})=>{const n=document.createElementNS(NS,tag);for(const[k,v]of Object.entries(attrs))n.setAttribute(k,v);return n};\nconst clearParallax=()=>root.querySelectorAll('.ns-parallax').forEach(g=>g.style.removeProperty('transform'));\nfunction motionState(){const enabled=visible&&!document.hidden&&!reduced.matches&&!mobile.matches&&fine.matches;root.classList.toggle('ns-motion-on',enabled);if(!enabled)clearParallax();}\nart.addEventListener('pointermove',e=>{if(!ready||!active()||e.pointerType==='touch')return;const r=art.getBoundingClientRect(),x=(e.clientX-r.left)\/r.width-.5,y=(e.clientY-r.top)\/r.height-.5;root.querySelectorAll('.ns-parallax').forEach(g=>{const depth=Number(g.dataset.depth)||0;g.style.transform='translate('+(x*depth)+'px,'+(y*depth*.65)+'px)'})},{passive:true});\nart.addEventListener('pointerleave',clearParallax,{passive:true});\nPromise.allSettled(ASSETS.map(a=>load(base+a.file).then(i=>{if(i.naturalWidth!==(a.w||1672)||i.naturalHeight!==(a.h||941))throw Error('Unexpected canvas '+a.id);return i}))).then(results=>{\n const missing=ASSETS.filter((a,i)=>results[i].status!=='fulfilled');art.dataset.missingAssets=missing.map(a=>a.id).join(',');if(missing.some(a=>a.arch))throw Error('Missing structural asset');\n svg=el('svg',{viewBox:'0 '+CONFIG.cropTop+' 1672 '+(941-CONFIG.cropTop),'aria-hidden':'true',focusable:'false'});svg.classList.add('ns-scene');\n const defs=el('defs'),mask=el('mask',{id:uid+'-wall',maskUnits:'userSpaceOnUse',x:0,y:0,width:1672,height:941});mask.append(el('rect',{width:1672,height:941,fill:'white'}));defs.append(mask);svg.append(defs);\n \/\/ Occluders use the SAME registrations as the corresponding architecture asset.\n const maskPath=(id,d,stroke)=>{const p=el('path',{d,transform:matrix(id),fill:stroke?'none':'black'});if(stroke){p.setAttribute('stroke','black');p.setAttribute('stroke-width',stroke)}mask.append(p)};\n maskPath('wall','M792 410 L840 395 L840 348 L1090 161 L1166 180 L1166 760 L840 891 L840 609 L792 550Z');\n maskPath('terrace','M335 498 L588 498 L737 565 L770 579 L770 682 L380 590 L335 584Z');\n let tr='M335 468 L588 470 L737 541 M335 483 L588 485 L737 555';for(const x of[339,367,400,435,468,504,540,588,618,652,691,736]){const y=x<=588?470:470+(x-588)*71\/149;tr+=' M'+x+' '+y+' V'+(y+29)}maskPath('terrace',tr,3);\n maskPath('bridge','M305 705 L1430 438 L1496 466 L1496 570 L1430 538 L313 783Z');let br='M307 675 L1430 399 M308 690 L1430 416';for(const x of[358,426,486,553,629,707,782,846,923,1005,1084,1156,1188,1262,1323,1396]){const y=675+(x-307)*(399-675)\/1123;br+=' M'+x+' '+y+' V'+(y+30)}maskPath('bridge',br,5);\n maskPath('stairs','M936 482 L985 471 L985 588 L1025 590 L1245 941 L1150 941 L1034 638 L936 653Z M1238 599 L1672 941 L1540 941 L1230 622Z');\n function imageNode(a){const n=el('image',{'data-asset':a.id,href:base+a.file,width:a.w||1672,height:a.h||941,transform:matrix(a.id)});if(a.arch)n.style.filter='grayscale(1)';return n;}\n function decor(id,depth,dx,dy,duration){const a=byId[id];if(missing.includes(a))return;const float=el('g',{'class':'ns-float ns-decor-float','data-motion-layer':id});float.style.setProperty('--ns-dx',dx+'px');float.style.setProperty('--ns-dy',dy+'px');float.style.setProperty('--ns-duration',duration+'s');float.style.setProperty('--ns-delay',-(duration*.37)+'s');const par=el('g',{'class':'ns-parallax','data-depth':depth});par.append(imageNode(a));float.append(par);svg.append(float);}\n \/\/ Paper is applied once to the full hero wrapper in CSS, never again inside the scene.\n decor('right-bg',2,2,-2,23);decor('foliage',3,-2,2,21);decor('cobalt',7,4,-4,18);decor('disk',5,-3,3,22);decor('ribbon',4,2,-3,19);\n const structureFloat=el('g',{'class':'ns-float ns-structure-float','data-motion-layer':'structure'});const structure=el('g',{'class':'ns-parallax ns-structure','data-depth':'2'});for(const a of ASSETS.filter(a=>a.arch))structure.append(imageNode(a));\n const masked=el('g',{'class':'ns-person-mask',mask:'url(#'+uid+'-wall)'});masked.innerHTML=WALKER_MARKUP;structure.append(masked);structureFloat.append(structure);svg.append(structureFloat);decor('wedge',2,-2,2,24);\n walker=svg.querySelector('.ns-walker');body=svg.querySelector('.ns-body');raster=svg.querySelector('.ns-raster');canvas.replaceChildren(svg);art.style.aspectRatio='1672\/'+(941-CONFIG.cropTop);art.dataset.mode='walking';art.dataset.loadedAssets=String(ASSETS.length-missing.length);root.querySelector('.ns-fallback').hidden=true;ready=true;draw(false);preference();motionState();if(!reduced.matches)art.classList.add('ns-enter');\n load(CONFIG.staticFigureUrl).then(()=>{raster.querySelector('image').setAttribute('href',CONFIG.staticFigureUrl);raster.dataset.loaded='true';preference()}).catch(()=>{raster.dataset.loaded='false';preference()});\n}).catch(()=>{art.dataset.mode='fallback';stop();root.classList.remove('ns-motion-on')});\n\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>NEONSNOW Menu\u2630 ServicesWorkAboutContact CONSULTANCY \/ WEBSITES \/ SOFTWARE Ideas beyondthe ordinary. Start a project \u2197Explore our work \u2197 NEON SNOW \u2014 Services preview Clear thinking. Distinctive websites. Useful software. 01 \/ WHAT WE DO From the first question to the finished thing. 01 Consultancy Find clarity.Choose a direction. 02 Websites Make an impression.Make it work. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-15","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/nsdevsiteconcept.neonsnow.com.au\/index.php?rest_route=\/wp\/v2\/pages\/15","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nsdevsiteconcept.neonsnow.com.au\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nsdevsiteconcept.neonsnow.com.au\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nsdevsiteconcept.neonsnow.com.au\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nsdevsiteconcept.neonsnow.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15"}],"version-history":[{"count":5,"href":"https:\/\/nsdevsiteconcept.neonsnow.com.au\/index.php?rest_route=\/wp\/v2\/pages\/15\/revisions"}],"predecessor-version":[{"id":62,"href":"https:\/\/nsdevsiteconcept.neonsnow.com.au\/index.php?rest_route=\/wp\/v2\/pages\/15\/revisions\/62"}],"wp:attachment":[{"href":"https:\/\/nsdevsiteconcept.neonsnow.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}