/* GUKIN premium motion layer */
html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .gk-reveal,
  .gk-page,
  .gk-cursor,
  .gk-cursor-dot,
  .gk-cursor-glow,
  .gk-cursor-trail,
  .gk-page-veil { transition: none !important; animation: none !important; }
}

body.gk-ux {
  cursor: none;
}

@media (hover: none), (pointer: coarse) {
  body.gk-ux { cursor: auto; }
  .gk-cursor, .gk-cursor-dot, .gk-cursor-glow, .gk-cursor-trail { display: none !important; }
}

.gk-page {
  opacity: 1;
  transform: none;
  transition: opacity .38s cubic-bezier(.2,.8,.2,1), transform .45s cubic-bezier(.2,.8,.2,1);
  will-change: opacity, transform;
}

.gk-page.is-leaving {
  opacity: 0;
  transform: translateY(8px);
}

.gk-page.is-entering {
  opacity: 0;
  transform: translateY(10px);
}

.gk-page-veil {
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  background: #F6F5F0;
  opacity: 0;
  transition: opacity .28s cubic-bezier(.2,.8,.2,1);
}

.gk-page-veil.is-on {
  opacity: 1;
}

.gk-cursor,
.gk-cursor-glow,
.gk-cursor-dot,
.gk-cursor-trail {
  position: fixed;
  top: 0;
  left: 0;
  border-radius: 50%;
  pointer-events: none;
  z-index: 10000;
  opacity: 0;
  will-change: transform, opacity, width, height;
}

.gk-cursor-glow {
  z-index: 9999;
  width: 72px;
  height: 72px;
  margin: -36px 0 0 -36px;
  background: radial-gradient(circle, rgba(126, 154, 118, .55) 0%, rgba(62, 156, 116, .28) 42%, transparent 70%);
  filter: blur(2px);
  transition: width .35s cubic-bezier(.2,.8,.2,1), height .35s cubic-bezier(.2,.8,.2,1), margin .35s cubic-bezier(.2,.8,.2,1), opacity .3s ease;
}

.gk-cursor {
  width: 42px;
  height: 42px;
  margin: -21px 0 0 -21px;
  border: 1.5px solid rgba(255, 255, 255, .92);
  background: rgba(30, 91, 76, .18);
  box-shadow:
    0 0 0 1px rgba(30, 91, 76, .55),
    0 0 18px rgba(126, 154, 118, .55),
    0 0 36px rgba(62, 156, 116, .35),
    inset 0 0 12px rgba(169, 196, 162, .25);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  transition:
    width .32s cubic-bezier(.2,.8,.2,1),
    height .32s cubic-bezier(.2,.8,.2,1),
    margin .32s cubic-bezier(.2,.8,.2,1),
    background .28s ease,
    border-color .28s ease,
    box-shadow .32s ease,
    opacity .28s ease;
}

.gk-cursor-dot {
  z-index: 10001;
  width: 8px;
  height: 8px;
  margin: -4px 0 0 -4px;
  background: #3E9C74;
  box-shadow:
    0 0 0 2px #fff,
    0 0 12px rgba(62, 156, 116, .9),
    0 0 22px rgba(126, 154, 118, .55);
  transition: transform .18s cubic-bezier(.2,.8,.2,1), background .2s ease, box-shadow .25s ease, opacity .28s ease, width .25s ease, height .25s ease, margin .25s ease;
}

.gk-cursor-trail {
  z-index: 9998;
  width: 10px;
  height: 10px;
  margin: -5px 0 0 -5px;
  background: rgba(126, 154, 118, .45);
  box-shadow: 0 0 10px rgba(62, 156, 116, .4);
  transition: opacity .4s ease;
}

.gk-cursor.is-ready,
.gk-cursor-glow.is-ready,
.gk-cursor-dot.is-ready { opacity: 1; }

.gk-cursor-trail.is-ready { opacity: var(--trail-o, .35); }

.gk-cursor.is-hover {
  width: 68px;
  height: 68px;
  margin: -34px 0 0 -34px;
  background: rgba(62, 156, 116, .28);
  border-color: #fff;
  box-shadow:
    0 0 0 1px rgba(30, 91, 76, .65),
    0 0 28px rgba(126, 154, 118, .7),
    0 0 56px rgba(62, 156, 116, .45),
    inset 0 0 18px rgba(169, 196, 162, .35);
  animation: gkCursorPulse 1.6s ease-in-out infinite;
}

.gk-cursor-glow.is-hover {
  width: 110px;
  height: 110px;
  margin: -55px 0 0 -55px;
  opacity: .95;
}

.gk-cursor-dot.is-hover {
  width: 10px;
  height: 10px;
  margin: -5px 0 0 -5px;
  background: #fff;
  box-shadow:
    0 0 0 2px #1E5B4C,
    0 0 16px rgba(255, 255, 255, .8),
    0 0 28px rgba(62, 156, 116, .7);
}

.gk-cursor.is-down {
  width: 34px;
  height: 34px;
  margin: -17px 0 0 -17px;
  background: rgba(30, 91, 76, .4);
  animation: none;
}

.gk-cursor-dot.is-down {
  transform: scale(.7);
  background: #1E5B4C;
}

.gk-cursor.is-text {
  width: 4px;
  height: 28px;
  margin: -14px 0 0 -2px;
  border-radius: 4px;
  background: rgba(30, 91, 76, .75);
  border-color: transparent;
  box-shadow: 0 0 14px rgba(62, 156, 116, .45);
  animation: none;
}

.gk-cursor-dot.is-text,
.gk-cursor-glow.is-text { opacity: 0; }

@keyframes gkCursorPulse {
  0%, 100% { box-shadow: 0 0 0 1px rgba(30,91,76,.65), 0 0 28px rgba(126,154,118,.7), 0 0 56px rgba(62,156,116,.45), inset 0 0 18px rgba(169,196,162,.35); }
  50% { box-shadow: 0 0 0 1px rgba(30,91,76,.8), 0 0 36px rgba(126,154,118,.9), 0 0 72px rgba(62,156,116,.6), inset 0 0 22px rgba(169,196,162,.45); }
}

.gk-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1);
  transition-delay: var(--gk-delay, 0ms);
}

.gk-reveal.is-in {
  opacity: 1;
  transform: none;
}

[data-mag] {
  transition: transform .35s cubic-bezier(.2,.8,.2,1);
  will-change: transform;
}

a, button, [role="button"], label, .gk-hover, summary {
  cursor: none;
}

input, textarea, select {
  cursor: text;
}
select { cursor: pointer; }

@media (hover: none), (pointer: coarse) {
  a, button, [role="button"], input, textarea, select, label, .gk-hover, summary {
    cursor: auto;
  }
  .gk-cursor, .gk-cursor-glow, .gk-cursor-dot, .gk-cursor-trail { display: none !important; }
}

