/* PRECISION WEBSITE CURSOR SYSTEM
   Main arrow everywhere, with contextual tools only inside the approved special experiences.
   Native cursors are hidden only on fine-pointer desktop devices after JS is ready. */

@media (pointer:fine) {
  html.precision-cursor-ready,
  html.precision-cursor-ready *,
  html.precision-cursor-ready *::before,
  html.precision-cursor-ready *::after,
  body.precision-cursor-ready,
  body.precision-cursor-ready *,
  body.precision-cursor-ready *::before,
  body.precision-cursor-ready *::after {
    cursor:none!important;
  }
}

.precision-cursor,
.precision-cad-crosshair{
  display:none;
}

@media (pointer:fine) {
  .precision-cursor{
    --pc-x:-100px;
    --pc-y:-100px;
    --pc-ox:-4.8px;
    --pc-oy:-4px;
    position:fixed;
    z-index:2147483000;
    left:0;
    top:0;
    width:33.6px;
    height:33.6px;
    display:block;
    pointer-events:none;
    opacity:0;
    transform:translate3d(calc(var(--pc-x) + var(--pc-ox)),calc(var(--pc-y) + var(--pc-oy)),0);
    transition:opacity .12s ease;
    will-change:transform,opacity;
    contain:layout style paint;
  }
  .precision-cursor.is-visible{opacity:1}
  .precision-cursor svg{display:block;width:33.6px;height:33.6px;overflow:visible}
  .precision-cursor__mode{opacity:0;transition:opacity .08s linear}
  .precision-cursor[data-mode="main"] .precision-cursor__main,
  .precision-cursor[data-mode="world"] .precision-cursor__world,
  .precision-cursor[data-mode="orbit"] .precision-cursor__orbit,
  .precision-cursor[data-mode="engineering"] .precision-cursor__engineering,
  .precision-cursor[data-mode="lab"] .precision-cursor__lab,
  .precision-cursor[data-mode="lyrics"] .precision-cursor__lyrics{opacity:1}

  .precision-cursor .pc-stroke{
    fill:none;
    stroke:rgba(239,241,242,.88);
    stroke-width:1.35;
    stroke-linecap:round;
    stroke-linejoin:round;
    vector-effect:non-scaling-stroke;
    transition:stroke .12s ease,opacity .12s ease,filter .12s ease;
  }
  .precision-cursor .pc-guide{
    fill:none;
    stroke:rgba(239,241,242,.23);
    stroke-width:.75;
    stroke-linecap:round;
    vector-effect:non-scaling-stroke;
    transition:stroke .12s ease,opacity .12s ease;
  }
  .precision-cursor .pc-fill{
    fill:rgba(239,241,242,.92);
    transition:fill .12s ease,filter .12s ease;
  }
  .precision-cursor .pc-accent{opacity:.0;transition:opacity .12s ease}

  .precision-cursor.is-hover .pc-stroke,
  .precision-cursor.is-context-hover .pc-stroke{
    stroke:#d58a43;
    filter:drop-shadow(0 0 4px rgba(213,138,67,.34));
  }
  .precision-cursor.is-hover .pc-guide,
  .precision-cursor.is-context-hover .pc-guide{stroke:rgba(213,138,67,.48)}
  .precision-cursor.is-hover .pc-fill,
  .precision-cursor.is-context-hover .pc-fill{
    fill:#dfa05f;
    filter:drop-shadow(0 0 5px rgba(213,138,67,.42));
  }
  .precision-cursor.is-hover .pc-accent,
  .precision-cursor.is-context-hover .pc-accent{opacity:1}

  .precision-cursor.is-down .pc-stroke,
  .precision-cursor.is-dragging .pc-stroke{
    stroke:#f1b36e;
    filter:drop-shadow(0 0 7px rgba(213,138,67,.62));
  }
  .precision-cursor.is-down .pc-guide,
  .precision-cursor.is-dragging .pc-guide{stroke:rgba(213,138,67,.72)}
  .precision-cursor.is-down .pc-fill,
  .precision-cursor.is-dragging .pc-fill{
    fill:#f0a95f;
    filter:drop-shadow(0 0 8px rgba(213,138,67,.72));
  }
  .precision-cursor.is-down .pc-accent,
  .precision-cursor.is-dragging .pc-accent{opacity:1}

  /* MAIN — practical arrow silhouette with a restrained precision guide behind it. */
  .precision-cursor__main .pc-main-guide{opacity:.72}
  .precision-cursor__main .pc-main-arrow{stroke-width:1.18}

  /* WORLD — coordinate/target reticle. */
  .precision-cursor__world .pc-world-ring{stroke-width:1.1}
  .precision-cursor__world .pc-world-core{r:1.8}
  .precision-cursor__world .pc-world-halo{opacity:0}
  .precision-cursor.is-context-hover .pc-world-halo,
  .precision-cursor.is-down .pc-world-halo{opacity:1}

  /* ORBIT — circular navigation tool; extra direction marks only while dragging. */
  .precision-cursor__orbit .pc-orbit-ring{stroke-width:1.15}
  .precision-cursor__orbit .pc-orbit-hover-dot{opacity:0}
  .precision-cursor.is-context-hover .pc-orbit-hover-dot{opacity:1}
  .precision-cursor__orbit .pc-orbit-drag{opacity:0}
  .precision-cursor.is-dragging .pc-orbit-drag,
  .precision-cursor.is-down[data-mode="orbit"] .pc-orbit-drag{opacity:1}

  /* ENGINEERING — local square target. Full-screen CAD guides are separate DOM lines. */
  .precision-cursor__engineering .pc-eng-box{fill:rgba(3,3,3,.72)}
  .precision-cursor.is-hover .precision-cursor__engineering .pc-eng-box,
  .precision-cursor.is-down .precision-cursor__engineering .pc-eng-box{fill:rgba(213,138,67,.12)}

  /* LAB — main practical arrow plus a small experimental satellite point. */
  .precision-cursor__lab .pc-lab-orbit{opacity:.30}
  .precision-cursor.is-hover .precision-cursor__lab .pc-lab-orbit,
  .precision-cursor.is-down .precision-cursor__lab .pc-lab-orbit{opacity:.65}

  /* LYRICS — still an arrow, but with a clear vertical-pan affordance. */
  .precision-cursor__lyrics .pc-lyrics-pan{stroke:#d58a43;opacity:.72}
  .precision-cursor__lyrics .pc-lyrics-arrowhead{fill:#d58a43;opacity:.72}
  .precision-cursor.is-dragging .precision-cursor__lyrics .pc-lyrics-pan,
  .precision-cursor.is-down .precision-cursor__lyrics .pc-lyrics-pan{opacity:1;filter:drop-shadow(0 0 5px rgba(213,138,67,.58))}
  .precision-cursor.is-dragging .precision-cursor__lyrics .pc-lyrics-arrowhead,
  .precision-cursor.is-down .precision-cursor__lyrics .pc-lyrics-arrowhead{opacity:1;filter:drop-shadow(0 0 5px rgba(213,138,67,.58))}

  /* Engineering full-screen CAD crosshair. */
  .precision-cad-crosshair{
    --pc-x:-100px;
    --pc-y:-100px;
    position:fixed;
    z-index:2147482998;
    inset:0;
    display:block;
    pointer-events:none;
    opacity:0;
    transition:opacity .14s ease;
    contain:strict;
  }
  .precision-cad-crosshair.is-visible{opacity:1}
  .precision-cad-crosshair__h,
  .precision-cad-crosshair__v{
    position:absolute;
    display:block;
    background:rgba(235,238,239,.115);
    box-shadow:0 0 1px rgba(255,255,255,.08);
    transition:background .12s ease,box-shadow .12s ease;
    will-change:transform;
  }
  .precision-cad-crosshair__h{
    left:0;
    top:0;
    width:100vw;
    height:1px;
    transform:translate3d(0,var(--pc-y),0);
  }
  .precision-cad-crosshair__v{
    left:0;
    top:0;
    width:1px;
    height:100vh;
    transform:translate3d(var(--pc-x),0,0);
  }
  .precision-cad-crosshair.is-hover .precision-cad-crosshair__h,
  .precision-cad-crosshair.is-hover .precision-cad-crosshair__v{
    background:rgba(213,138,67,.16);
    box-shadow:0 0 5px rgba(213,138,67,.08);
  }
  .precision-cad-crosshair.is-down .precision-cad-crosshair__h,
  .precision-cad-crosshair.is-down .precision-cad-crosshair__v{
    background:rgba(213,138,67,.23);
  }
}

@media (pointer:coarse), (hover:none) {
  .precision-cursor,
  .precision-cad-crosshair{display:none!important}
}

/* ========================================================================== 
   FINAL APPROVED MAIN CURSOR / NATIVE CURSOR SUPPRESSION — 2026-08-25
   ========================================================================== */
@media (pointer:fine) {
  /* The approved cursor system is the only pointer visible. This deliberately
     outranks project drag/grab and native link/button cursors. */
  html.precision-cursor-ready body.precision-cursor-ready,
  html.precision-cursor-ready body.precision-cursor-ready *,
  html.precision-cursor-ready body.precision-cursor-ready *::before,
  html.precision-cursor-ready body.precision-cursor-ready *::after {
    cursor:none!important;
  }

  /* Approved main cursor: same thin technical arrow, slightly smaller. */
  .precision-cursor__main .pc-main-guide{
    opacity:.72;
  }
  .precision-cursor__main .pc-main-arrow{
    stroke-width:1.18;
  }
}


/* ========================================================================== 
   MAIN CURSOR GEOMETRY — APPROVED TRIANGULAR VERSION — 2026-08-25
   Keeps the existing cursor system and contextual tools; only the Main Cursor
   artwork and its Normal / Hover / Active-Drag states are replaced.
   ========================================================================== */
@media (pointer:fine) {
  .precision-cursor__main .pc-main-guide{
    opacity:1;
    stroke:rgba(238,241,242,.22);
    stroke-width:.70;
    stroke-linecap:square;
    filter:none;
  }

  .precision-cursor__main .pc-main-arrow{
    fill:none;
    stroke:#f4f5f6;
    stroke-width:1.45;
    stroke-linecap:square;
    stroke-linejoin:miter;
    filter:none;
  }

  .precision-cursor__main .pc-main-glow{
    fill:none;
    stroke-linecap:square;
    stroke-linejoin:miter;
    vector-effect:non-scaling-stroke;
    opacity:0;
    transition:stroke .12s ease,opacity .12s ease,filter .12s ease;
  }

  /* Hover / interactive — amber technical glow. */
  .precision-cursor.is-hover[data-mode="main"] .precision-cursor__main .pc-main-guide{
    stroke:rgba(255,152,0,.34);
  }
  .precision-cursor.is-hover[data-mode="main"] .precision-cursor__main .pc-main-glow--outer{
    opacity:.24;
    stroke:#ff7a00;
    stroke-width:5.0;
    filter:drop-shadow(0 0 4px rgba(255,122,0,.28));
  }
  .precision-cursor.is-hover[data-mode="main"] .precision-cursor__main .pc-main-glow--mid{
    opacity:.46;
    stroke:#ff9800;
    stroke-width:2.8;
  }
  .precision-cursor.is-hover[data-mode="main"] .precision-cursor__main .pc-main-arrow{
    stroke:#ffaa16;
    stroke-width:1.55;
    filter:drop-shadow(0 0 3px rgba(255,152,0,.26));
  }

  /* Active / drag — orange energy with a bright white geometric core. */
  .precision-cursor.is-down[data-mode="main"] .precision-cursor__main .pc-main-guide,
  .precision-cursor.is-dragging[data-mode="main"] .precision-cursor__main .pc-main-guide{
    stroke:rgba(255,138,0,.52);
  }
  .precision-cursor.is-down[data-mode="main"] .precision-cursor__main .pc-main-glow--outer,
  .precision-cursor.is-dragging[data-mode="main"] .precision-cursor__main .pc-main-glow--outer{
    opacity:.34;
    stroke:#ff5a00;
    stroke-width:5.2;
    filter:drop-shadow(0 0 6px rgba(255,90,0,.42));
  }
  .precision-cursor.is-down[data-mode="main"] .precision-cursor__main .pc-main-glow--mid,
  .precision-cursor.is-dragging[data-mode="main"] .precision-cursor__main .pc-main-glow--mid{
    opacity:.70;
    stroke:#ff8a00;
    stroke-width:2.6;
    filter:drop-shadow(0 0 4px rgba(255,138,0,.36));
  }
  .precision-cursor.is-down[data-mode="main"] .precision-cursor__main .pc-main-arrow,
  .precision-cursor.is-dragging[data-mode="main"] .precision-cursor__main .pc-main-arrow{
    stroke:#fff8f1;
    stroke-width:1.45;
    filter:drop-shadow(0 0 4px rgba(255,138,0,.48));
  }
}
