  /* ==== WOW build: same design, Awwwards-grade motion ==== */
  html.rd-wow{ scroll-behavior:auto; }   /* the lerp does the smoothing; native smooth would double-ease */
  html.rd-wow.rd-cursor *{ cursor:none !important; }   /* hidden only while the custom cursor is actually running */
  html.rd-wow.rd-cursor #em-toggle, html.rd-wow.rd-cursor #em-view-changes,
  html.rd-wow.rd-cursor #em-modal, html.rd-wow.rd-cursor #em-modal *,
  html.rd-wow.rd-cursor [contenteditable="true"]{ cursor:auto !important; }
  html.rd-wow .work-card img{ transition:none !important; }   /* per-frame parallax must not fight the 0.7s hover tween */

  /* Preloader — the mug logo fills bottom-to-top, % synced below */
  #rd-preloader{ position:fixed; inset:0; z-index:100000; background:#FFFFFF; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; transition:transform 1.05s cubic-bezier(.76,0,.24,1); animation:rd-pre-failsafe 0s 8s forwards; }
  @keyframes rd-pre-failsafe{ to{ visibility:hidden; pointer-events:none; } }   /* only fires if JS never dismissed it */
  #rd-preloader.done{ transform:translateY(-101%); }
  #rd-preloader .pre-logo{ position:relative; height:clamp(110px,16vw,150px); }
  #rd-preloader .pre-logo img{ height:100%; width:auto; display:block; }
  #rd-preloader .pre-logo .fill{ position:absolute; inset:0; clip-path:inset(100% 0 0 0); }   /* only the °R mark fills; the cup stays */
  /* sits tight under the mug (the PNG carries ~16% empty space at its foot) and
     bold, to sit in the same weight class as the °R mark */
  #rd-preloader .pre-num{ font-family:var(--font-sans); font-weight:700; font-size:clamp(15px,1.9vw,19px); letter-spacing:.14em; text-indent:.14em; color:#1A1A1A; font-variant-numeric:tabular-nums; width:4.4em; text-align:center; }
  #rd-preloader .pre-line{ position:absolute; left:0; bottom:0; height:2px; background:#1A1A1A; width:0%; }

  /* Smooth-scroll wrapper (created by JS) */
  #rd-smooth{ position:fixed; top:0; left:0; width:100%; will-change:transform; }

  /* JS drives all reveals — neutralize the one-shot CSS animation.
     .fade-up needs opacity:1 restored (style.css sets opacity:0 that only the keyframe releases);
     .reveal must stay AFTER it so elements with both classes start hidden. */
  html.rd-wow .fade-up{ animation:none !important; opacity:1; }
  html.rd-wow .reveal{ opacity:0; }

  /* Split-text word masks — padded so Cormorant ascenders/descenders don't clip */
  .w-mask{ display:inline-block; overflow:hidden; vertical-align:top; padding:.12em .06em .22em; margin:-.12em -.06em -.22em; }
  .w-word{ display:inline-block; transform:translate3d(0,135%,0); will-change:transform; }

  .rd-clip{ will-change:clip-path; }

  /* Custom cursor */
  #rd-dot,#rd-ring{ position:fixed; top:0; left:0; border-radius:50%; pointer-events:none; z-index:100001; mix-blend-mode:difference; }
  #rd-dot{ width:8px; height:8px; background:#fff; }
  #rd-ring{ width:38px; height:38px; border:1.2px solid rgba(255,255,255,.95); transition:width .3s ease,height .3s ease; }
  #rd-ring.big{ width:84px; height:84px; }

  @media (hover:none){
    #rd-dot,#rd-ring{ display:none; }
  }
  @media (prefers-reduced-motion:reduce){
    #rd-dot,#rd-ring,#rd-preloader{ display:none !important; }
    html.rd-wow .reveal{ opacity:1 !important; transform:none !important; }
    html.rd-wow .fade-up{ opacity:1 !important; transform:none !important; }
    .w-word{ transform:none !important; }
    .rd-clip{ clip-path:none !important; }
  }

  /* keep a native cursor over form fields (contact page) */
  html.rd-wow.rd-cursor input, html.rd-wow.rd-cursor textarea,
  html.rd-wow.rd-cursor select, html.rd-wow.rd-cursor label{ cursor:auto !important; }


  /* ==== White theme — replace the cream base with white on all wow pages ==== */
  html.rd-wow{ --bg:#FFFFFF; --bg-alt:#F6F6F4; }
  html.rd-wow body{ background:#FFFFFF; }
  html.rd-wow .site-header{ background:#FFFFFF; -webkit-backdrop-filter:none; backdrop-filter:none; }
  html.rd-wow .site-header.scrolled{ border-bottom-color:#ECEAE3; }
