html{background:#d8d8d5;overscroll-behavior:none}
body{background:radial-gradient(120% 120% at 50% 42%,#f5f5f3 0%,#e6e6e3 56%,#d8d8d5 100%);overscroll-behavior:none}
/* 3D Cards Tornado — styled by data-attrs (whtml drops classes) */
[data-3d-tornado-init]{cursor:grab;touch-action:none;width:100%;height:100dvh;position:fixed;inset:0;overflow:clip;opacity:0;transition:opacity .5s ease}
[data-3d-tornado-init]>div{width:100%;height:100%;position:relative}
[data-3d-tornado-list]{font-size:clamp(.5em,.75vw,1.5em);width:100%;height:100%;perspective:75em;transform-style:preserve-3d;position:relative}
[data-3d-tornado-item]{transform-style:preserve-3d;backface-visibility:visible;will-change:transform,filter;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}
[data-3d-tornado-item]>div{aspect-ratio:4/5;pointer-events:none;-webkit-user-select:none;user-select:none;background-color:transparent;border-radius:0;width:18em;position:relative}
[data-3d-tornado-item] img{object-fit:cover;border-radius:0;width:calc(100% + 2px);height:calc(100% + 2px);max-width:none;position:absolute;top:-1px;left:-1px}
/* Infinite Draggable Grid */
[data-infinite-grid-init]{touch-action:none;width:100%;height:100svh;position:fixed;inset:0;overflow:clip;cursor:grab;transition:opacity .5s ease;opacity:1}
[data-infinite-grid-init][data-infinite-grid-status="loading"]{opacity:0}
[data-infinite-grid-init][data-infinite-grid-status="dragging"]{cursor:grabbing}
[data-infinite-grid-collection]{will-change:transform;width:100%;height:100%;position:absolute}
[data-infinite-grid-list]{grid-template-columns:repeat(var(--grid-columns),auto);display:grid;position:absolute;top:0;left:0}
[data-infinite-grid-item]{width:13em;padding:.55em;font-size:clamp(1.5em,2vw,3em);display:block}
[data-infinite-grid-item]>div{-webkit-user-select:none;user-select:none;border-radius:0;width:100%;aspect-ratio:4/5;position:relative;overflow:hidden;background-color:transparent}
[data-infinite-grid-item] img{pointer-events:none;object-fit:cover;border-radius:0;width:calc(100% + 2px);height:calc(100% + 2px);max-width:none;position:absolute;top:-1px;left:-1px}
/* View toggle via body class */
body:not(.view-grid) [data-infinite-grid-init]{opacity:0;pointer-events:none}
body.view-grid [data-3d-tornado-init]{opacity:0;pointer-events:none}
#arxToggle{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:41;display:flex;gap:4px;background:rgba(0,0,0,.06);border-radius:12px;padding:4px}
#arxToggle [data-mode]{padding:8px 12px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#0c0c0c;opacity:.5;cursor:pointer;text-decoration:none;background:none}
#arxToggle [data-mode]::after{content:"";display:block;width:18px;height:18px;background-color:currentColor;-webkit-mask:center/contain no-repeat;mask:center/contain no-repeat}
#arxToggle [data-mode].is-active{opacity:1;background:#fff}
#arxToggle [data-mode="circle"]::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M12.00%2012.00%20L12.06%2012.01%20L12.12%2012.03%20L12.17%2012.07%20L12.21%2012.13%20L12.23%2012.19%20L12.25%2012.26%20L12.25%2012.34%20L12.22%2012.43%20L12.18%2012.51%20L12.13%2012.59%20L12.05%2012.66%20L11.95%2012.72%20L11.84%2012.77%20L11.72%2012.80%20L11.59%2012.81%20L11.45%2012.79%20L11.30%2012.76%20L11.16%2012.69%20L11.02%2012.61%20L10.90%2012.49%20L10.78%2012.35%20L10.68%2012.19%20L10.61%2012.01%20L10.56%2011.82%20L10.54%2011.61%20L10.55%2011.39%20L10.60%2011.17%20L10.67%2010.95%20L10.79%2010.73%20L10.93%2010.53%20L11.11%2010.35%20L11.33%2010.19%20L11.56%2010.05%20L11.83%209.95%20L12.11%209.89%20L12.41%209.86%20L12.71%209.88%20L13.02%209.94%20L13.33%2010.05%20L13.62%2010.20%20L13.89%2010.40%20L14.14%2010.64%20L14.36%2010.92%20L14.55%2011.23%20L14.69%2011.57%20L14.78%2011.94%20L14.82%2012.33%20L14.81%2012.72%20L14.74%2013.12%20L14.62%2013.51%20L14.44%2013.89%20L14.20%2014.25%20L13.91%2014.57%20L13.57%2014.86%20L13.19%2015.10%20L12.77%2015.30%20L12.32%2015.43%20L11.85%2015.50%20L11.37%2015.51%20L10.88%2015.45%20L10.40%2015.32%20L9.93%2015.12%20L9.48%2014.86%20L9.07%2014.53%20L8.70%2014.14%20L8.39%2013.70%20L8.14%2013.21%20L7.95%2012.69%20L7.83%2012.13%20L7.79%2011.56%20L7.83%2010.98%20L7.95%2010.40%20L8.16%209.83%20L8.44%209.30%20L8.79%208.79%20L9.22%208.34%20L9.72%207.94%20L10.26%207.62%20L10.86%207.36%20L11.49%207.19%20L12.15%207.11%20L12.83%207.11%20L13.50%207.21%20L14.16%207.41%20L14.80%207.69%20L15.40%208.06%20L15.94%208.52%20L16.43%209.06%20L16.84%209.66%20L17.17%2010.32%20L17.41%2011.03%20L17.56%2011.77%20L17.60%2012.53%20L17.53%2013.30%20L17.36%2014.06%20L17.09%2014.80%20L16.71%2015.50%20L16.23%2016.14%20L15.67%2016.73%20L15.02%2017.24%20L14.31%2017.65%20L13.53%2017.97%20L12.72%2018.19%20L11.87%2018.29%20L11.01%2018.27%20L10.15%2018.13%20L9.31%2017.88%20L8.50%2017.51%20L7.75%2017.03%20L7.06%2016.45%20L6.45%2015.77%20L5.94%2015.01%20L5.53%2014.18%20L5.23%2013.29%20L5.06%2012.36%20L5.01%2011.41%20L5.10%2010.46%20L5.31%209.51%20L5.66%208.60%20L6.13%207.74'%20fill='none'%20stroke='black'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M12.00%2012.00%20L12.06%2012.01%20L12.12%2012.03%20L12.17%2012.07%20L12.21%2012.13%20L12.23%2012.19%20L12.25%2012.26%20L12.25%2012.34%20L12.22%2012.43%20L12.18%2012.51%20L12.13%2012.59%20L12.05%2012.66%20L11.95%2012.72%20L11.84%2012.77%20L11.72%2012.80%20L11.59%2012.81%20L11.45%2012.79%20L11.30%2012.76%20L11.16%2012.69%20L11.02%2012.61%20L10.90%2012.49%20L10.78%2012.35%20L10.68%2012.19%20L10.61%2012.01%20L10.56%2011.82%20L10.54%2011.61%20L10.55%2011.39%20L10.60%2011.17%20L10.67%2010.95%20L10.79%2010.73%20L10.93%2010.53%20L11.11%2010.35%20L11.33%2010.19%20L11.56%2010.05%20L11.83%209.95%20L12.11%209.89%20L12.41%209.86%20L12.71%209.88%20L13.02%209.94%20L13.33%2010.05%20L13.62%2010.20%20L13.89%2010.40%20L14.14%2010.64%20L14.36%2010.92%20L14.55%2011.23%20L14.69%2011.57%20L14.78%2011.94%20L14.82%2012.33%20L14.81%2012.72%20L14.74%2013.12%20L14.62%2013.51%20L14.44%2013.89%20L14.20%2014.25%20L13.91%2014.57%20L13.57%2014.86%20L13.19%2015.10%20L12.77%2015.30%20L12.32%2015.43%20L11.85%2015.50%20L11.37%2015.51%20L10.88%2015.45%20L10.40%2015.32%20L9.93%2015.12%20L9.48%2014.86%20L9.07%2014.53%20L8.70%2014.14%20L8.39%2013.70%20L8.14%2013.21%20L7.95%2012.69%20L7.83%2012.13%20L7.79%2011.56%20L7.83%2010.98%20L7.95%2010.40%20L8.16%209.83%20L8.44%209.30%20L8.79%208.79%20L9.22%208.34%20L9.72%207.94%20L10.26%207.62%20L10.86%207.36%20L11.49%207.19%20L12.15%207.11%20L12.83%207.11%20L13.50%207.21%20L14.16%207.41%20L14.80%207.69%20L15.40%208.06%20L15.94%208.52%20L16.43%209.06%20L16.84%209.66%20L17.17%2010.32%20L17.41%2011.03%20L17.56%2011.77%20L17.60%2012.53%20L17.53%2013.30%20L17.36%2014.06%20L17.09%2014.80%20L16.71%2015.50%20L16.23%2016.14%20L15.67%2016.73%20L15.02%2017.24%20L14.31%2017.65%20L13.53%2017.97%20L12.72%2018.19%20L11.87%2018.29%20L11.01%2018.27%20L10.15%2018.13%20L9.31%2017.88%20L8.50%2017.51%20L7.75%2017.03%20L7.06%2016.45%20L6.45%2015.77%20L5.94%2015.01%20L5.53%2014.18%20L5.23%2013.29%20L5.06%2012.36%20L5.01%2011.41%20L5.10%2010.46%20L5.31%209.51%20L5.66%208.60%20L6.13%207.74'%20fill='none'%20stroke='black'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E")}
#arxToggle [data-mode="grid"]::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Crect%20x='3'%20y='3'%20width='8'%20height='8'%20rx='1.6'/%3E%3Crect%20x='13'%20y='3'%20width='8'%20height='8'%20rx='1.6'/%3E%3Crect%20x='3'%20y='13'%20width='8'%20height='8'%20rx='1.6'/%3E%3Crect%20x='13'%20y='13'%20width='8'%20height='8'%20rx='1.6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Crect%20x='3'%20y='3'%20width='8'%20height='8'%20rx='1.6'/%3E%3Crect%20x='13'%20y='3'%20width='8'%20height='8'%20rx='1.6'/%3E%3Crect%20x='3'%20y='13'%20width='8'%20height='8'%20rx='1.6'/%3E%3Crect%20x='13'%20y='13'%20width='8'%20height='8'%20rx='1.6'/%3E%3C/svg%3E")}
/* Render inside the Webflow Designer */
:is(.wf-design-mode,.wf-editor) [data-3d-tornado-init],:is(.wf-design-mode,.wf-editor) [data-infinite-grid-init]{opacity:1!important;position:relative;height:auto;inset:auto}
:is(.wf-design-mode,.wf-editor) [data-3d-tornado-list]{display:flex;align-items:center;gap:1em;overflow:auto;max-width:100vw;perspective:none}
:is(.wf-design-mode,.wf-editor) [data-3d-tornado-item],:is(.wf-design-mode,.wf-editor) [data-infinite-grid-item]{position:relative;top:auto;left:auto;transform:none}
:is(.wf-design-mode,.wf-editor) [data-infinite-grid-list]{display:flex;flex-wrap:wrap;justify-content:center;position:relative}
/* CMS cards (Cases): hover state + case caption */
[data-3d-tornado-item]{cursor:pointer}
[data-3d-tornado-item]>div{overflow:hidden}
[data-3d-tornado-item] img{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
[data-3d-tornado-item]:hover img{transform:scale(1.06)}
/* video preview overlay (plays on hover) */
[data-card-vid]{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);object-fit:cover;border-radius:0;opacity:0;transition:opacity .4s ease;z-index:1;pointer-events:none;background:transparent}
/* single bottom-left title label — changes to the hovered / front card */
#arxCaption{position:fixed;left:26px;bottom:26px;z-index:40;display:flex;align-items:center;gap:14px;font:600 18px/1.15 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;letter-spacing:-.01em;max-width:48vw;color:#fff;mix-blend-mode:difference;pointer-events:none}
#arxCaption .arxcap-dot{display:inline-grid;grid-template-columns:repeat(2,1fr);gap:2px;flex:none}
#arxCaption .arxcap-dot i{width:4px;height:4px;background:currentColor;border-radius:1px;opacity:.85}
[data-infinite-grid-item]{cursor:pointer}
[data-infinite-grid-item]>div{overflow:hidden;background-color:transparent}
[data-infinite-grid-item] img{transition:transform .5s ease}
[data-infinite-grid-item]:hover img{transform:scale(1.05)}

/* force the grid wrapper visible-in-layout (override leftover display:none); opacity toggle handles show/hide */
[data-infinite-grid-init]{display:block!important}

/* ===== embedded (in-section) mode: tornado rendered inside a section block, not fullscreen-fixed ===== */
.arx-embed{position:relative;height:100vh;width:100%;overflow:hidden}
.arx-embed [data-3d-tornado-init],.arx-embed [data-infinite-grid-init]{position:absolute!important;height:100%!important}
.arx-embed #arxCaption,.arx-embed #arxToggle{position:absolute!important}

/* ===== Case study overlay — clicked card zooms fullscreen, case falls over the spatial home ===== */
.cs-ov-open{overflow:hidden}
.cs-ov-open [data-3d-tornado-init],.cs-ov-open [data-infinite-grid-init]{filter:blur(3px) saturate(.85);transform:scale(.97);transition:filter .6s ease,transform .6s ease}
[data-cs-ov]{position:fixed;inset:0;z-index:9999;pointer-events:none}
[data-cs-ov].is-open{pointer-events:auto}
.cs-ov__bg{position:absolute;inset:0;background:#0e1116;opacity:0}
.cs-ov__panel{position:absolute;inset:0;overflow:hidden;background:transparent;opacity:0}
.cs-ov__frame{width:100%;height:100%;border:0;display:block;background:#0e1116}
[data-cs-ov-flip]{position:fixed;z-index:3;will-change:transform}

/* reveal the spiral only once the engine has positioned the cards (no wrong-position flash) */
html.arx-ready body:not(.view-grid) [data-3d-tornado-init]{opacity:1}
