/* ===================================================================
   CLSTR ENHANCEMENT LAYER — surgical wow-factor additions
   Loaded alongside style.css. Does not override existing styles.
   =================================================================== */

/* WebGL canvas — fixed behind everything */
#clstr-fx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:0;transition:opacity 1.2s cubic-bezier(.4,0,.2,1)}
#clstr-fx.on{opacity:1}

/* Scroll progress bar */
#clstr-prog{position:fixed;top:0;left:0;height:2px;width:0%;background:linear-gradient(90deg,#C4952A 0%,#E8C566 50%,#C4952A 100%);z-index:9999;box-shadow:0 0 10px rgba(196,149,42,.8);transition:width .15s cubic-bezier(.4,0,.2,1);will-change:width}

/* Custom cursor */
@media(hover:hover) and (pointer:fine){
  html.clstr-cur-on,html.clstr-cur-on *,html.clstr-cur-on *::before,html.clstr-cur-on *::after{cursor:none !important}
  #clstr-cur,#clstr-cur-dot{position:fixed;top:0;left:0;pointer-events:none;z-index:99999;border-radius:50%;will-change:transform;mix-blend-mode:difference}
  #clstr-cur{width:36px;height:36px;border:1px solid #C4952A;margin:-18px 0 0 -18px;transition:width .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1),margin .3s cubic-bezier(.4,0,.2,1),background .3s cubic-bezier(.4,0,.2,1),opacity .3s ease}
  #clstr-cur-dot{width:4px;height:4px;background:#E8C566;margin:-2px 0 0 -2px}
  #clstr-cur.hov{width:56px;height:56px;margin:-28px 0 0 -28px;background:rgba(196,149,42,.15);border-color:#E8C566}
  #clstr-cur.txt{width:2px;height:24px;margin:-12px 0 0 -1px;border-radius:1px;background:#C4952A;border:none}
  #clstr-cur.hide,#clstr-cur-dot.hide{opacity:0}
}

/* Page transition overlay */
#clstr-trans{position:fixed;inset:0;background:#050505;z-index:99998;pointer-events:none;opacity:0;display:flex;align-items:center;justify-content:center;transition:opacity .5s cubic-bezier(.4,0,.2,1)}
#clstr-trans.in{opacity:1;pointer-events:auto;transition-duration:.4s}
#clstr-trans .mark{font-family:'Inter',sans-serif;font-weight:900;letter-spacing:.5em;font-size:14px;color:#C4952A;opacity:0;transform:translateY(20px);transition:opacity .6s .1s cubic-bezier(.4,0,.2,1),transform .6s .1s cubic-bezier(.4,0,.2,1);z-index:2}
#clstr-trans.in .mark{opacity:1;transform:translateY(0)}
#clstr-trans .bars{position:absolute;inset:0;display:flex;flex-direction:column;pointer-events:none}
#clstr-trans .bar{flex:1;background:#050505;transform-origin:left;transform:scaleX(0);transition:transform .7s cubic-bezier(.76,0,.24,1)}
#clstr-trans.in .bar{transform:scaleX(1)}
#clstr-trans .bar:nth-child(1){transition-delay:0s}
#clstr-trans .bar:nth-child(2){transition-delay:.04s}
#clstr-trans .bar:nth-child(3){transition-delay:.08s}
#clstr-trans .bar:nth-child(4){transition-delay:.12s}
#clstr-trans .bar:nth-child(5){transition-delay:.16s}

/* Magnetic hover prep */
.mag{transition:transform .4s cubic-bezier(.4,0,.2,1);will-change:transform}

/* Section anchor dots */
#clstr-dots{position:fixed;right:28px;top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;gap:14px;opacity:0;transition:opacity .6s ease}
#clstr-dots.on{opacity:1}
#clstr-dots .d{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.15);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}
#clstr-dots .d:hover{background:rgba(196,149,42,.6);transform:scale(1.4)}
#clstr-dots .d.act{background:#C4952A;box-shadow:0 0 12px rgba(196,149,42,.8)}
#clstr-dots .d .lbl{position:absolute;right:18px;top:50%;transform:translateY(-50%);font-family:'Inter',sans-serif;font-size:10px;letter-spacing:.18em;color:#C4952A;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s ease}
#clstr-dots .d:hover .lbl{opacity:1}
@media(max-width:860px){#clstr-dots{display:none}}

/* Hero text shimmer */
@keyframes clstr-shimmer{0%,100%{filter:brightness(1) drop-shadow(0 0 0 rgba(196,149,42,0))}50%{filter:brightness(1.15) drop-shadow(0 0 24px rgba(196,149,42,.5))}}
.hl-ready .glitch{animation:clstr-shimmer 6s ease-in-out infinite}

/* Reduce motion */
@media(prefers-reduced-motion:reduce){#clstr-fx,#clstr-cur,#clstr-cur-dot,#clstr-trans,#clstr-dots{display:none !important}html.clstr-cur-on,html.clstr-cur-on *{cursor:auto !important}}
