/* Shared decorative desktop layers. Native cursor remains until successful activation. */
.desktop-cursor,.service-preview-layer { display:none; pointer-events:none; }
@media (min-width:1024px) and (min-height:480px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 html.custom-cursor-active,html.custom-cursor-active body,html.custom-cursor-active body * { cursor:none !important; }
 html.custom-cursor-active body :is(input,textarea,[contenteditable]:not([contenteditable="false"])) { cursor:text !important; }
 html.custom-cursor-active body select { cursor:auto !important; }
 .desktop-cursor { display:block; position:fixed; left:0; top:0; width:22px; height:22px; z-index:1100; color:#f2bd5e; opacity:0; transition:opacity .1s; }
 .desktop-cursor.is-visible { opacity:1; }
 .desktop-cursor svg { position:absolute; inset:0; width:22px; height:22px; overflow:visible; transform:scale(1); transition:transform .15s ease; }
 .desktop-cursor circle { fill:none; stroke:currentColor; stroke-width:1.65; vector-effect:non-scaling-stroke; filter:drop-shadow(0 1px 1px rgba(0,0,0,.8)); transition:stroke-width .15s; }
 .desktop-cursor[data-state="link"] svg { transform:scale(1.35); }
 .desktop-cursor[data-state="nav"] svg { transform:scale(1.15); }
 .desktop-cursor[data-state="service"] svg { transform:scale(1.5); }
 .desktop-cursor[data-state="gallery"] svg { transform:scale(2.7); }
 .desktop-cursor:not([data-state="default"]) circle { stroke-width:1.9; }
 .desktop-cursor span { position:absolute; inset:0; display:grid; place-items:center; font:600 10px/1 Manrope,sans-serif; letter-spacing:.07em; text-shadow:0 1px 1px #000; opacity:0; }
 .desktop-cursor[data-state="gallery"] span { opacity:1; }
 .desktop-cursor.is-light { color:#a86a16; }
 .desktop-cursor.is-light circle { filter:drop-shadow(0 1px 1px rgba(255,255,255,.5)); }
 .service-preview-layer { display:block; position:fixed; left:0; top:0; z-index:90; opacity:0; transform-origin:center; }
 .service-preview-layer img { display:block; width:100%; height:100%; object-fit:contain; }
}
