/* ═══════════════════════════════════════════════════
   NOISE + AMBIENCE
   ═══════════════════════════════════════════════════ */
.noise{
  pointer-events:none;position:fixed;inset:0;z-index:9990;
  opacity:.06;mix-blend-mode:overlay;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency=".85" numOctaves="3" stitchTiles="stitch"/></filter><rect width="200" height="200" filter="url(%23n)" opacity=".55"/></svg>');
  animation:noiseDrift 1.45s steps(2) infinite;
}
@keyframes noiseDrift{0%{transform:translate(0)}100%{transform:translate(-8px,6px)}}

.ambient-orb{
  position:fixed;border-radius:50%;pointer-events:none;
  filter:blur(120px);opacity:.18;z-index:-1;
  animation:orbDrift 12s ease-in-out infinite alternate;
}
@keyframes orbDrift{
  0%{transform:translate(0,0) scale(1)}
  33%{transform:translate(40px,-30px) scale(1.1)}
  66%{transform:translate(-30px,20px) scale(.95)}
  100%{transform:translate(20px,-10px) scale(1.05)}
}
html[data-theme="light"] .noise{
  opacity:.03;
  mix-blend-mode:multiply;
}
html[data-theme="light"] .ambient-orb{
  opacity:.14;
  filter:blur(130px) saturate(118%);
}

/* ═══════════════════════════════════════════════════
   DESKTOP CURSOR
   ═══════════════════════════════════════════════════ */
@media(hover:hover) and (pointer:fine){
  :root{
    --cursor-default:url('cursor-default.svg?v=20260408b') 8 6, auto;
    --cursor-pointer:url('cursor-pointer.svg?v=20260408b') 10 6, pointer;
    --cursor-text:url('cursor-text.svg?v=20260408b') 24 24, text;
    --cursor-vertical-text:url('cursor-vertical-text.svg?v=20260408b') 24 24, vertical-text;
    --cursor-help:url('cursor-help.svg?v=20260408b') 24 24, help;
    --cursor-wait:url('cursor-wait.svg?v=20260408b') 24 24, wait;
    --cursor-progress:url('cursor-progress.svg?v=20260408b') 10 6, progress;
    --cursor-crosshair:url('cursor-crosshair.svg?v=20260408b') 24 24, crosshair;
    --cursor-move:url('cursor-move.svg?v=20260408b') 24 24, move;
    --cursor-all-scroll:url('cursor-all-scroll.svg?v=20260408b') 24 24, all-scroll;
    --cursor-grab:url('cursor-grab.svg?v=20260408b') 24 10, grab;
    --cursor-grabbing:url('cursor-grabbing.svg?v=20260408b') 24 10, grabbing;
    --cursor-not-allowed:url('cursor-not-allowed.svg?v=20260408b') 24 24, not-allowed;
    --cursor-no-drop:url('cursor-no-drop.svg?v=20260408b') 24 24, no-drop;
    --cursor-copy:url('cursor-copy.svg?v=20260408b') 24 24, copy;
    --cursor-alias:url('cursor-alias.svg?v=20260408b') 10 6, alias;
    --cursor-context-menu:url('cursor-context-menu.svg?v=20260408b') 10 6, context-menu;
    --cursor-cell:url('cursor-cell.svg?v=20260408b') 24 24, cell;
    --cursor-zoom-in:url('cursor-zoom-in.svg?v=20260408b') 20 20, zoom-in;
    --cursor-zoom-out:url('cursor-zoom-out.svg?v=20260408b') 20 20, zoom-out;
    --cursor-ew-resize:url('cursor-ew-resize.svg?v=20260408b') 24 24, ew-resize;
    --cursor-ns-resize:url('cursor-ns-resize.svg?v=20260408b') 24 24, ns-resize;
    --cursor-nesw-resize:url('cursor-nesw-resize.svg?v=20260408b') 24 24, nesw-resize;
    --cursor-nwse-resize:url('cursor-nwse-resize.svg?v=20260408b') 24 24, nwse-resize;
    --cursor-col-resize:url('cursor-col-resize.svg?v=20260408b') 24 24, col-resize;
    --cursor-row-resize:url('cursor-row-resize.svg?v=20260408b') 24 24, row-resize;
  }
  html,
  body{
    cursor:var(--cursor-default)!important;
  }
  #loader,
  #loader *{
    cursor:var(--cursor-progress)!important;
  }
  a,
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  input[type="checkbox"],
  input[type="radio"],
  input[type="range"],
  .clickable,
  [role="button"],
  summary,
  .brand,
  .nav-link,
  .theme-toggle,
  .lang-toggle,
  .btn-mag,
  .btn-ghost,
  .project-card,
  .hamburger,
  .egg-action,
  .egg-close,
  .contact-close,
  .contact-send{
    cursor:var(--cursor-pointer)!important;
  }
  a,
  button,
  img,
  svg,
  .brand,
  .brand *,
  .nav-link,
  .project-card,
  .project-card *,
  .btn-mag,
  .btn-ghost,
  .theme-toggle,
  .lang-toggle,
  .egg-action,
  .egg-close{
    -webkit-user-drag:none;
  }
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="password"],
  input[type="number"],
  input[type="search"],
  textarea,
  [contenteditable="true"]{
    cursor:var(--cursor-text)!important;
  }
  .vertical-text{
    cursor:var(--cursor-vertical-text)!important;
  }
  .crosshair{
    cursor:var(--cursor-crosshair)!important;
  }
  .move,
  .move-cursor{
    cursor:var(--cursor-move)!important;
  }
  .all-scroll{
    cursor:var(--cursor-all-scroll)!important;
  }
  [draggable="true"],
  .is-draggable,
  .drag-handle,
  .grab{
    cursor:var(--cursor-grab)!important;
  }
  [draggable="true"]:active,
  .is-draggable:active,
  .drag-handle:active,
  .grabbing{
    cursor:var(--cursor-grabbing)!important;
  }
  select{
    cursor:var(--cursor-pointer)!important;
  }
  button:disabled,
  input:disabled,
  select:disabled,
  textarea:disabled,
  [aria-disabled="true"]{
    cursor:var(--cursor-not-allowed)!important;
  }
  [data-help],
  abbr[title],
  [role="tooltip"]{
    cursor:var(--cursor-help)!important;
  }
  .wait{
    cursor:var(--cursor-wait)!important;
  }
  .loading,
  .progress,
  [aria-busy="true"]{
    cursor:var(--cursor-progress)!important;
  }
  .cell{
    cursor:var(--cursor-cell)!important;
  }
  .alias{
    cursor:var(--cursor-alias)!important;
  }
  .copy{
    cursor:var(--cursor-copy)!important;
  }
  .context-menu{
    cursor:var(--cursor-context-menu)!important;
  }
  .zoom-in{
    cursor:var(--cursor-zoom-in)!important;
  }
  .zoom-out{
    cursor:var(--cursor-zoom-out)!important;
  }
  .ew-resize,
  .col-resize{
    cursor:var(--cursor-ew-resize)!important;
  }
  .ns-resize,
  .row-resize{
    cursor:var(--cursor-ns-resize)!important;
  }
  .nesw-resize{
    cursor:var(--cursor-nesw-resize)!important;
  }
  .nwse-resize{
    cursor:var(--cursor-nwse-resize)!important;
  }
  .no-drop{
    cursor:var(--cursor-no-drop)!important;
  }
  html[data-cursor-lock="pointer"],
  html[data-cursor-lock="pointer"] body,
  html[data-cursor-lock="pointer"] body *{
    cursor:var(--cursor-pointer)!important;
  }
  html[data-cursor-lock="grabbing"],
  html[data-cursor-lock="grabbing"] body,
  html[data-cursor-lock="grabbing"] body *{
    cursor:var(--cursor-grabbing)!important;
  }
}

/* ═══════════════════════════════════════════════════
   REDUCED MOTION
   ═══════════════════════════════════════════════════ */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:1;transform:none;filter:none}
  .split-text .word .char-wrap{transform:none;opacity:1}
}
