@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;600&display=swap');

/* ─────────────────────────────────────────
   CURSOR  —  zero lag
───────────────────────────────────────── */
*, *::before, *::after { cursor: none !important; }

#nalmCur {
  position: fixed;
  top: 0; left: 0;
  z-index: 9999999;
  pointer-events: none;
}
#nalmCurRing {
  position: absolute;
  width: 34px; height: 34px;
  top: -17px; left: -17px;
  border-radius: 50%;
  border: 1.5px solid rgba(160,114,42,.45);
  transition: width .22s cubic-bezier(.4,0,.2,1), height .22s cubic-bezier(.4,0,.2,1),
              top .22s cubic-bezier(.4,0,.2,1), left .22s cubic-bezier(.4,0,.2,1),
              border-color .18s ease, background .18s ease;
}
#nalmCurDot {
  position: absolute;
  width: 6px; height: 6px;
  top: -3px; left: -3px;
  border-radius: 50%;
  background: radial-gradient(circle, #C9A84C 0%, #8B6914 80%);
  box-shadow: 0 0 7px 2px rgba(160,114,42,.45);
  transition: transform .08s ease, box-shadow .08s ease;
}
#nalmCur.is-hover #nalmCurRing { width: 56px; height: 56px; top: -28px; left: -28px; border-color: rgba(160,114,42,.65); background: rgba(160,114,42,.05); }
#nalmCur.is-hover #nalmCurDot  { transform: scale(.55); }
#nalmCur.is-click #nalmCurRing { width: 20px; height: 20px; top: -10px; left: -10px; border-color: #A0722A; }
#nalmCur.is-click #nalmCurDot  { transform: scale(1.8); box-shadow: 0 0 14px 5px rgba(160,114,42,.6); }
@media (hover: none) { #nalmCur { display: none !important; } *, *::before, *::after { cursor: auto !important; } }

/* ─────────────────────────────────────────
   PRELOADER  —  white / warm cream
───────────────────────────────────────── */
#nalm-pre {
  position: fixed;
  inset: 0;
  z-index: 999998;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.nalm-bg-base    { position: absolute; inset: 0; background: #FDFBF7; }
.nalm-bg-rays    { position: absolute; inset: 0; background: radial-gradient(ellipse 65% 55% at 50% 44%, rgba(212,175,55,.07) 0%, rgba(180,140,40,.03) 45%, transparent 72%); }
.nalm-bg-vignette{ position: absolute; inset: 0; background: radial-gradient(ellipse 95% 90% at 50% 50%, transparent 50%, rgba(190,160,90,.07) 100%); }

/* Corner brackets */
.nalm-corner { position: absolute; width: 52px; height: 52px; border-color: rgba(160,114,42,.2); border-style: solid; animation: nalm-corner-breathe 4s ease-in-out infinite alternate; }
.nalm-corner-tl { top: 22px; left: 22px; border-width: 1px 0 0 1px; }
.nalm-corner-tr { top: 22px; right: 22px; border-width: 1px 1px 0 0; animation-delay: 1s; }
.nalm-corner-bl { bottom: 22px; left: 22px; border-width: 0 0 1px 1px; animation-delay: 2s; }
.nalm-corner-br { bottom: 22px; right: 22px; border-width: 0 1px 1px 0; animation-delay: 3s; }
@keyframes nalm-corner-breathe { from { opacity: .15; transform: scale(.96); } to { opacity: .5; transform: scale(1.02); } }

/* Particles */
.nalm-particles { position: absolute; inset: 0; pointer-events: none; }
.nalm-p {
  position: absolute; left: var(--x); top: var(--y);
  width: var(--s); height: var(--s); border-radius: 50%;
  background: radial-gradient(circle, rgba(160,114,42,.55), rgba(200,165,80,.15));
  opacity: 0;
  animation: nalm-particle-float var(--d) ease-in-out var(--dl) infinite;
}
@keyframes nalm-particle-float {
  0%   { opacity: 0; transform: translateY(0) scale(1); }
  20%  { opacity: var(--o); }
  70%  { opacity: var(--o); }
  100% { opacity: 0; transform: translateY(-26px) scale(.4); }
}

/* Stage */
.nalm-stage { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 18px; }

/* Ornament rules */
.nalm-rule { display: flex; align-items: center; gap: 12px; width: clamp(200px, 38vw, 300px); opacity: 0; }
.nalm-rule-top { animation: nalm-fade-in .8s ease .15s forwards; }
.nalm-rule-bot { animation: nalm-fade-in .8s ease .35s forwards; }
.nalm-rule-line { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(160,114,42,.35) 40%, rgba(160,114,42,.35) 60%, transparent); }
.nalm-rule-gem {
  width: 8px; height: 8px;
  background: linear-gradient(135deg, #C9A84C, #7a5c0e);
  transform: rotate(45deg);
  box-shadow: 0 0 8px rgba(160,114,42,.4), 0 0 18px rgba(160,114,42,.12);
  flex-shrink: 0;
  animation: nalm-gem-pulse 2s ease-in-out infinite;
}
@keyframes nalm-gem-pulse {
  0%,100% { box-shadow: 0 0 7px rgba(160,114,42,.35), 0 0 14px rgba(160,114,42,.1); }
  50%     { box-shadow: 0 0 13px rgba(160,114,42,.65), 0 0 26px rgba(160,114,42,.22); }
}

/* Logo */
.nalm-logo-wrap {
  position: relative;
  width: clamp(180px, 30vw, 250px);
  height: clamp(180px, 30vw, 250px);
  display: flex; align-items: center; justify-content: center;
  opacity: 0;
  animation: nalm-logo-rise 1.1s cubic-bezier(.22,1,.36,1) .2s forwards;
}
.nalm-logo-halo   { position: absolute; inset: -8%; border-radius: 50%; background: radial-gradient(ellipse, rgba(180,140,40,.08) 0%, transparent 68%); animation: nalm-halo 3s ease-in-out infinite; }
.nalm-logo-halo-2 { inset: 5%; background: radial-gradient(ellipse, rgba(200,160,60,.06) 0%, transparent 65%); animation-duration: 2s; animation-delay: 1s; }
@keyframes nalm-halo { 0%,100% { transform: scale(.9); opacity: .6; } 50% { transform: scale(1.12); opacity: 1; } }

.nalm-logo {
  width: 100%; height: 100%; object-fit: contain; position: relative; z-index: 1;
  filter: drop-shadow(0 2px 16px rgba(160,114,42,.18)) drop-shadow(0 0 6px rgba(160,114,42,.1));
  animation: nalm-logo-shimmer 3.5s ease-in-out 1.3s infinite;
}
@keyframes nalm-logo-rise {
  0%   { opacity: 0; transform: scale(.78) translateY(16px); filter: blur(6px); }
  55%  { opacity: 1; filter: blur(0); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes nalm-logo-shimmer {
  0%,100% { filter: drop-shadow(0 2px 16px rgba(160,114,42,.18)) drop-shadow(0 0 6px rgba(160,114,42,.1)); }
  50%     { filter: drop-shadow(0 2px 28px rgba(160,114,42,.32)) drop-shadow(0 0 14px rgba(200,165,80,.22)); }
}

/* Progress */
.nalm-progress-wrap { opacity: 0; animation: nalm-fade-in .7s ease .5s forwards; }
.nalm-progress-track { position: relative; width: clamp(180px, 34vw, 260px); height: 1px; background: rgba(160,114,42,.13); border-radius: 2px; }
.nalm-progress-fill  { position: absolute; inset: 0; width: 0%; background: linear-gradient(90deg, rgba(139,105,20,.4) 0%, #C9A84C 60%, #A0722A 100%); border-radius: 2px; box-shadow: 0 0 7px rgba(160,114,42,.35); transition: width .06s linear; }
.nalm-progress-glow  { position: absolute; top: 50%; left: 0%; transform: translate(-50%, -50%); width: 5px; height: 5px; background: #C9A84C; border-radius: 50%; box-shadow: 0 0 9px 3px rgba(160,114,42,.55); transition: left .06s linear; }

/* Exit */
#nalm-pre.nalm-exit { animation: nalm-out .9s cubic-bezier(.76,0,.24,1) forwards; }
@keyframes nalm-out { 0% { opacity: 1; transform: scale(1); } 30% { opacity: 1; transform: scale(1.015); } 100% { opacity: 0; transform: scale(1.05); pointer-events: none; } }
#nalm-pre.nalm-gone { display: none; }
@keyframes nalm-fade-in { to { opacity: 1; } }
