/* Hit areas belong to the cutouts, never to the full-screen transparent SVG. */
.cc-grabbable,.cc-grabbable image,.cc-grabbable use{pointer-events:visiblePainted;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.cc-grabbing,.cc-grabbing *{cursor:grabbing!important}
.cc-grabbable:focus-visible{outline:2px dashed #7b776d;outline-offset:5px}
html.intro .cc-grabbable,html.intro .cc-grabbable *{pointer-events:none;cursor:default}
.cc-play-surface{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:5}
#ov>.cc-play-surface{z-index:0}
.cc-art-reset{position:fixed;left:70px;bottom:18px;z-index:110;width:42px;height:42px;border:1px solid #181d2340;border-radius:50%;background:#f1ebdfe8;color:#191e23;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(4px)}
.cc-art-reset[hidden]{display:none}
.cc-art-reset svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cc-art-reset:focus-visible{outline:2px solid #182d99;outline-offset:4px}
/* These text wrappers cover large empty areas above the art. Only their
   genuine controls need a pointer hit surface. */
.hero-in,#contact .cta-in{pointer-events:none}
.hero-in a,.hero-in button,#contact .cta-in a,#contact .cta-in button{pointer-events:auto}
#ov .items{pointer-events:none}
#ov .items a,#ov .items button{pointer-events:auto}
.cc-art-fixed,.cc-art-fixed image{pointer-events:visiblePainted;cursor:not-allowed;touch-action:pan-y;user-select:none;-webkit-tap-highlight-color:transparent}
.cc-art-fixed:focus:not(:focus-visible){outline:none!important}
.cc-art-fixed:focus-visible{outline:2px dashed #7b776d;outline-offset:5px}
.nv-scene .nv-motion{animation:none!important;transform:none!important}
