/* Optional, body-level overlay: independent of the hero's transformed artboard. */
.cursor-garage-trigger { position: absolute; right: 10px; bottom: 9px; z-index: 5; display: grid; place-items: center; width: 44px; height: 44px; padding: 8px; color: #eed9a9; background: transparent; border: 0; border-radius: 50%; opacity: .45; cursor: pointer; }
.cursor-garage-trigger img { width: 24px; height: 24px; transition: transform .4s ease, filter .2s; }
.cursor-garage-trigger:hover, .cursor-garage-trigger:focus-visible { opacity: 1; background: #d9ab4914; }
.cursor-garage-trigger:hover img { transform: rotate(35deg); filter: drop-shadow(0 0 5px #e9ac35); }
.cursor-garage-trigger span { position: absolute; right: 0; bottom: calc(100% + 7px); padding: 8px 11px; width: max-content; max-width: 220px; border: 1px solid #b8944b66; border-radius: 5px; background: #101416; color: #f4dfa8; font: 12px/1.4 var(--font-body); opacity: 0; visibility: hidden; pointer-events: none; }
.cursor-garage-trigger:hover span, .cursor-garage-trigger:focus-visible span { opacity: 1; visibility: visible; }
.cursor-garage-trigger.is-discovered img { animation: garage-wink .8s ease-out 1; }
@keyframes garage-wink { 30% { transform: rotate(-20deg); filter: drop-shadow(0 0 5px #e9ac35); } 65% { transform: rotate(15deg); } }

.cursor-garage { position: fixed; inset: auto 18px 18px auto; margin: 0; width: 1450px; max-width: calc(100vw - 36px); max-height: calc(100dvh - 36px); overflow: auto; padding: 0 20px 16px; border: 1px solid #b7924d66; border-radius: 14px; color: #eeeae2; background: #070d10; box-shadow: 0 22px 80px #000e; font: 14px/1.5 var(--font-body); }
.cursor-garage::backdrop { background: #010405ae; backdrop-filter: blur(3px); }
.cursor-collection-banner { height: clamp(80px,9vw,140px); margin: 0 -20px; background: url('../assets/cursors/collection/collection.webp') top center / 100% auto no-repeat; border-bottom: 1px solid #b7924d30; }
.cursor-garage__heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 0 14px; }
.cursor-garage__eyebrow { margin: 0 0 4px; color: #d4a54f; font-size: 9px; letter-spacing: .2em; }
.cursor-garage h2 { margin: 0; color: #f5e1b8; font-size: 24px; line-height: 1.15; letter-spacing: -.03em; }
.cursor-garage__close { flex: none; width: 44px; height: 44px; padding: 0; border: 1px solid #ffffff25; border-radius: 50%; background: #ffffff06; color: #ddd4c3; font: 26px/1 sans-serif; cursor: pointer; }
.cursor-garage__close:hover { background: #f2bf4c19; color: white; }
.cursor-garage__intro { margin: 5px 0 0; font-size: 12px; color: #b6b9b7; }
.cursor-garage__choices { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 5px; padding: 0; margin: 0; border: 0; }
.cursor-garage__choices legend { padding: 0; margin-bottom: 9px; color: #dfdfd9; font-size: 10px; letter-spacing: .2em; }
.cursor-garage__choice { position: relative; display: block; min-width: 0; aspect-ratio: 109 / 110; border: 1px solid #ffffff13; border-radius: 10px; overflow: hidden; cursor: pointer; transition: border-color .18s, box-shadow .18s, transform .18s; }
.cursor-garage__choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.cursor-collection-tile { position: absolute; inset: 0; background: url('../assets/cursors/collection/collection.webp') var(--tile-x) 15.4267% / 1409.1743% 930.9091% no-repeat; }
.cursor-garage__choice strong { position: absolute; inset: auto 0 0; padding: 12px 2px 7px; background: linear-gradient(transparent,#060d10 40%); color: #f3f4f1; text-align: center; font-size: clamp(8px,.7vw,10px); font-weight: 500; text-transform: uppercase; white-space: nowrap; }
.cursor-garage__choice:hover { border-color: #edc57790; box-shadow: inset 0 0 20px #efc27315; transform: translateY(-2px); }
.cursor-garage__choice:has(input:checked) { border-color: #ecc273; box-shadow: 0 0 0 1px #d5a85355,0 0 15px #d5a85322; }
.cursor-garage__choice:has(input:focus-visible) { outline: 2px solid #fff1ca; outline-offset: 2px; }
.cursor-garage__selected { display: none; position: absolute; top: 4px; right: 6px; color: #ffdda0; font-size: 12px; }
.cursor-garage__choice:has(input:checked) .cursor-garage__selected { display: block; }
.cursor-collection-set { margin-top: 20px; padding-top: 14px; border-top: 1px solid #cfa95330; }
.cursor-collection-set[hidden] { display: none; }
.cursor-collection-set__heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 15px; }
.cursor-collection-set h3 { margin: 0; color: #ddc79d; font-size: 13px; font-weight: 500; }
.cursor-collection-set__heading > span { color: #959e9e; font-size: 10px; }
.cursor-collection-states { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 6px; margin-top: 10px; }
.cursor-collection-state { display: grid; justify-items: center; align-content: center; gap: 2px; padding: 7px 2px; background: linear-gradient(#111a1f77,#090f1277); border: 1px solid #ffffff09; border-radius: 8px; }
.cursor-collection-state img { display: block; width: 54px; height: 54px; object-fit: contain; }
.cursor-collection-state span { font-size: 9px; color: #bdc2c0; text-transform: uppercase; letter-spacing: .04em; }
.cursor-garage__settings { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 28px; margin-top: 17px; padding-top: 12px; border-top: 1px solid #ffffff12; }
.cursor-garage__motion { display: flex; gap: 10px; align-items: center; min-height: 44px; font-size: 12px; cursor: pointer; }
.cursor-garage input { accent-color: #ddb15f; }
.cursor-garage__motion input { width: 18px; height: 18px; }
.cursor-garage__size { display: grid; grid-template-columns: auto minmax(60px,120px) 38px; align-items: center; gap: 10px; font-size: 12px; }
.cursor-garage__size input { width: 100%; min-width: 0; height: 32px; }
.cursor-garage__size output { color: #d8b770; text-align: right; font-variant-numeric: tabular-nums; }
.cursor-collection-native { margin-left: auto; min-height: 44px; padding: 8px 14px; border: 1px solid #ffffff26; border-radius: 6px; color: #c9cdcb; background: transparent; font: 12px var(--font-body); cursor: pointer; }
.cursor-collection-native:hover,.cursor-collection-native[aria-pressed="true"] { border-color: #dfb965; color: #f5d89b; }
.cursor-garage__device { margin: 10px 0 3px; color: #a8b0ad; font-size: 11px; }
.cursor-garage__saved { margin: 0; min-height: 16px; color: #a8b0ad; font-size: 10px; }
@media(max-width:1199px) { .cursor-garage__choices { grid-template-columns:repeat(6,minmax(0,1fr));gap:7px; } .cursor-garage__choice { max-height:125px; } .cursor-garage__choice strong { font-size:10px; } .cursor-collection-banner { height:95px;background-size:115% auto; } }
@media(max-width:650px) { .cursor-garage { inset:auto 8px 8px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);width:auto;padding:0 12px 14px; } .cursor-collection-banner { margin:0 -12px;height:70px;background-size:180% auto;background-position:55% top; } .cursor-garage__choices { grid-template-columns:repeat(3,minmax(0,1fr));gap:6px; } .cursor-garage__choice strong { font-size:9px; } .cursor-garage__heading { padding:12px 0; } .cursor-garage h2 { font-size:22px; } .cursor-collection-states { grid-template-columns:repeat(4,minmax(0,1fr)); } .cursor-collection-state span { font-size:8px; } .cursor-garage__settings { gap:5px 15px; } .cursor-collection-native { margin-left:0;width:100%; } .cursor-garage__close { position:sticky;top:8px; } }
/* Browser-positioned themed pointers; no full-screen cursor layer. */
@media (any-hover: hover) and (any-pointer: fine) {
  html.cim-cursor-themed, html.cim-cursor-themed * { cursor:var(--cim-pointer-arrow), auto !important; }
  html.cim-cursor-themed :is(p,h1,h2,h3,h4,.card-body), html.cim-cursor-themed :is(p,h1,h2,h3,h4,.card-body) * { cursor:var(--cim-pointer-text), text !important; }
  html.cim-cursor-themed :is(a,button,[role="button"],label), html.cim-cursor-themed :is(a,button,[role="button"],label) * { cursor:var(--cim-pointer-hand), pointer !important; }
  html.cim-cursor-themed [draggable="true"], html.cim-cursor-themed [draggable="true"] * { cursor:var(--cim-pointer-move), move !important; }
  html.cim-cursor-themed [aria-busy="true"], html.cim-cursor-themed [aria-busy="true"] * { cursor:var(--cim-pointer-busy), wait !important; }
  html.cim-cursor-themed :is(:disabled,[aria-disabled="true"],[inert]), html.cim-cursor-themed :is(:disabled,[aria-disabled="true"],[inert]) * { cursor:not-allowed !important; }
  html.cim-cursor-themed [data-preview-role="arrow"], html.cim-cursor-themed [data-preview-role="arrow"] * { cursor:var(--cim-pointer-arrow), auto !important; }
  html.cim-cursor-themed [data-preview-role="hand"], html.cim-cursor-themed [data-preview-role="hand"] * { cursor:var(--cim-pointer-hand), auto !important; }
  html.cim-cursor-themed [data-preview-role="busy"], html.cim-cursor-themed [data-preview-role="busy"] * { cursor:var(--cim-pointer-busy), auto !important; }
  html.cim-cursor-themed [data-preview-role="text"], html.cim-cursor-themed [data-preview-role="text"] * { cursor:var(--cim-pointer-text), auto !important; }
  html.cim-cursor-themed [data-preview-role="move"], html.cim-cursor-themed [data-preview-role="move"] * { cursor:var(--cim-pointer-move), auto !important; }
  html.cim-cursor-themed [data-preview-role="resize"], html.cim-cursor-themed [data-preview-role="resize"] * { cursor:var(--cim-pointer-resize), auto !important; }
  html.cim-cursor-themed [data-preview-role="special"], html.cim-cursor-themed [data-preview-role="special"] * { cursor:var(--cim-pointer-special), auto !important; }
  html.cim-cursor-themed [data-cursor="ns-resize"], html.cim-cursor-themed [data-cursor="ns-resize"] * { cursor:var(--cim-pointer-ns-resize), ns-resize !important; }
  html.cim-cursor-themed [data-cursor="ew-resize"], html.cim-cursor-themed [data-cursor="ew-resize"] * { cursor:var(--cim-pointer-ew-resize), ew-resize !important; }
  html.cim-cursor-themed [data-cursor="nwse-resize"], html.cim-cursor-themed [data-cursor="nwse-resize"] * { cursor:var(--cim-pointer-nwse-resize), nwse-resize !important; }
  html.cim-cursor-themed [data-cursor="nesw-resize"], html.cim-cursor-themed [data-cursor="nesw-resize"] * { cursor:var(--cim-pointer-nesw-resize), nesw-resize !important; }
  html.cim-cursor-themed [data-cursor="n-resize"], html.cim-cursor-themed [data-cursor="n-resize"] * { cursor:var(--cim-pointer-n-resize), n-resize !important; }
  html.cim-cursor-themed [data-cursor="s-resize"], html.cim-cursor-themed [data-cursor="s-resize"] * { cursor:var(--cim-pointer-s-resize), s-resize !important; }
  html.cim-cursor-themed [data-cursor="e-resize"], html.cim-cursor-themed [data-cursor="e-resize"] * { cursor:var(--cim-pointer-e-resize), e-resize !important; }
  html.cim-cursor-themed [data-cursor="w-resize"], html.cim-cursor-themed [data-cursor="w-resize"] * { cursor:var(--cim-pointer-w-resize), w-resize !important; }
  html.cim-cursor-themed [data-cursor="zoom-in"], html.cim-cursor-themed [data-cursor="zoom-in"] * { cursor:var(--cim-pointer-zoom-in), zoom-in !important; }
  html.cim-cursor-themed [data-cursor="zoom-out"], html.cim-cursor-themed [data-cursor="zoom-out"] * { cursor:var(--cim-pointer-zoom-out), zoom-out !important; }
  html.cim-cursor-themed [data-cursor="help"], html.cim-cursor-themed [data-cursor="help"] * { cursor:var(--cim-pointer-help), help !important; }
  html.cim-cursor-themed [data-cursor="crosshair"], html.cim-cursor-themed [data-cursor="crosshair"] * { cursor:var(--cim-pointer-crosshair), crosshair !important; }
  html.cim-cursor-themed [data-cursor="wait"], html.cim-cursor-themed [data-cursor="progress"] { cursor:var(--cim-pointer-busy), wait !important; }
  html.cim-cursor-themed :is([data-cursor="move"],[data-cursor="grab"],[data-cursor="grabbing"]) { cursor:var(--cim-pointer-move), move !important; }
  html.cim-cursor-themed :is([data-cursor="not-allowed"],[data-cursor="no-drop"]) { cursor:not-allowed !important; }
  html.cim-cursor-themed :is(input,textarea,select,[contenteditable]:not([contenteditable="false"]),iframe,video,audio), html.cim-cursor-themed [contenteditable]:not([contenteditable="false"]) * { cursor:revert !important; }
}
.cursor-garage[open][data-motion="true"] [data-preview-role="busy"] img { animation:collection-wheel 1s linear infinite; }
@keyframes collection-wheel { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .cursor-garage-trigger *, .cursor-garage * { animation:none !important; transition:none !important; } }
@media (forced-colors: active) { html.cim-cursor-themed, html.cim-cursor-themed * { cursor:revert !important; } .cursor-garage, .cursor-garage__choice { border:1px solid ButtonText; } .cursor-garage__choice:has(input:checked) { outline:2px solid Highlight; } }

/* The close control remains available while a narrow menu scrolls. */
@media(max-width:650px) { .cursor-garage__heading { position:sticky;top:0;z-index:2;background:#070d10; } .cursor-collection-banner { height:48px; } }

/* Keep the existing mobile footer control clear of the fixed Ask launcher. */
[data-cim-layout-mode="mobile"] .cursor-garage-trigger { bottom:calc(84px + env(safe-area-inset-bottom,0px)); }
