@media (hover: hover) and (pointer: fine) {
    html.goga-custom-cursor,
    html.goga-custom-cursor body,
    html.goga-custom-cursor a,
    html.goga-custom-cursor button,
    html.goga-custom-cursor [role="button"] { cursor: none !important; }

    html.goga-custom-cursor input,
    html.goga-custom-cursor textarea,
    html.goga-custom-cursor select { cursor: text !important; }
}

.goga-cursor {
    --goga-cursor-accent: #f68338;
    --goga-cursor-size: 38px;
    position: fixed;
    inset: 0 auto auto 0;
    z-index: 100500;
    width: 0;
    height: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity .2s ease;
    contain: layout style;
}

.goga-cursor.is-visible { opacity: 1; }
.goga-cursor__core,
.goga-cursor__ring {
    position: fixed;
    top: 0;
    left: 0;
    border-radius: 999px;
    will-change: transform, width, height;
    pointer-events: none;
}

.goga-cursor__core {
    width: 6px;
    height: 6px;
    margin: -3px 0 0 -3px;
    background: var(--goga-cursor-accent);
    box-shadow: 0 0 0 1px rgba(255,255,255,.28);
}

.goga-cursor__ring {
    width: var(--goga-cursor-size);
    height: var(--goga-cursor-size);
    margin: calc(var(--goga-cursor-size) / -2) 0 0 calc(var(--goga-cursor-size) / -2);
    border: 1px solid color-mix(in srgb, var(--goga-cursor-accent) 78%, white 22%);
    background: color-mix(in srgb, var(--goga-cursor-accent) 7%, transparent);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    transition: width .25s ease, height .25s ease, margin .25s ease, border-radius .25s ease, background .25s ease;
}

.goga-cursor__label {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 0 14px;
    color: #fff;
    font: 600 10px/1.1 Arial, sans-serif;
    letter-spacing: .04em;
    white-space: nowrap;
    opacity: 0;
    transition: opacity .2s ease;
}

.goga-cursor.is-interactive .goga-cursor__ring { transform: scale(1.28); }

.goga-cursor--contextual.is-interactive .goga-cursor__ring {
    width: max(92px, var(--goga-cursor-size));
    height: 36px;
    margin: -18px 0 0 -46px;
    border-color: rgba(255,255,255,.42);
    background: rgba(8,8,8,.72);
    box-shadow: 0 10px 34px rgba(0,0,0,.24);
    backdrop-filter: blur(12px) saturate(135%);
    -webkit-backdrop-filter: blur(12px) saturate(135%);
}
.goga-cursor--contextual.is-interactive .goga-cursor__label { opacity: 1; }

.goga-cursor--blend .goga-cursor__core,
.goga-cursor--blend .goga-cursor__ring {
    background: #fff;
    border-color: #fff;
    mix-blend-mode: difference;
    box-shadow: none;
}

.goga-cursor--magnetic .goga-cursor__ring {
    transition: width .25s ease, height .25s ease, margin .25s ease, border-radius .25s ease, background .25s ease, border-color .25s ease;
}
.goga-cursor--magnetic.is-interactive .goga-cursor__ring {
    width: calc(var(--goga-cursor-size) * 1.35);
    height: calc(var(--goga-cursor-size) * 1.35);
    margin: calc(var(--goga-cursor-size) * -.675) 0 0 calc(var(--goga-cursor-size) * -.675);
    border-color: rgba(255,255,255,.72);
    background: color-mix(in srgb, var(--goga-cursor-accent) 18%, transparent);
}

.goga-cursor--camera_glass .goga-cursor__core {
    width: 25px;
    height: 25px;
    margin: -12.5px 0 0 -12.5px;
    display: grid;
    place-items: center;
    color: #fff;
    background: rgba(12,12,12,.66);
    border: 1px solid rgba(255,255,255,.42);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.24), 0 8px 24px rgba(0,0,0,.2);
    backdrop-filter: blur(9px) saturate(150%);
    -webkit-backdrop-filter: blur(9px) saturate(150%);
}
.goga-cursor--camera_glass .goga-cursor__core::before {
    content: "\f030";
    font: normal normal normal 12px/1 FontAwesome;
}
.goga-cursor--camera_glass .goga-cursor__ring {
    border-color: rgba(255,255,255,.48);
    background: radial-gradient(circle at 32% 24%, rgba(255,255,255,.2), rgba(255,255,255,.04) 48%, rgba(246,131,56,.12));
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}
.goga-cursor--camera_glass.is-clicking .goga-cursor__core::before { animation: gogaCameraShutter .34s ease; }

.goga-cursor-click {
    position: fixed;
    z-index: 100499;
    width: 22px;
    height: 22px;
    margin: -11px 0 0 -11px;
    border-radius: 50%;
    pointer-events: none;
    border: 1px solid rgba(255,255,255,.72);
    background: radial-gradient(circle at 30% 25%, rgba(255,255,255,.58), rgba(255,255,255,.08) 42%, color-mix(in srgb, var(--goga-cursor-accent) 24%, transparent));
    box-shadow: inset 0 1px 5px rgba(255,255,255,.5), 0 12px 32px rgba(0,0,0,.2);
    backdrop-filter: blur(8px) saturate(150%);
    -webkit-backdrop-filter: blur(8px) saturate(150%);
    animation: gogaLiquidClick .62s cubic-bezier(.16,.8,.28,1) forwards;
}

@keyframes gogaLiquidClick {
    0% { opacity: .95; transform: scale(.4); }
    68% { opacity: .5; transform: scale(3.5); }
    100% { opacity: 0; transform: scale(4.6); filter: blur(2px); }
}
@keyframes gogaCameraShutter {
    0%,100% { transform: scale(1); opacity: 1; }
    45% { transform: scale(.55) rotate(-18deg); opacity: .35; }
}

@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
    .goga-cursor, .goga-cursor-click { display: none !important; }
}
