/* ============================================================= *
 *  Inner-page mark loader — Yellow asset reveal animation       *
 *  Home keeps the envelope loader; this is internal pages only. *
 * ============================================================= */

.koz-mark-loader{
  position:fixed;inset:0;z-index:3000;
  display:grid;place-items:center;
  /* Brand: Velvet Black field + primary washes (Purple / Blue); Gold only as highlight */
  background:
    radial-gradient(64% 58% at 50% 40%,rgba(114,49,118,.32),transparent 72%),
    radial-gradient(52% 46% at 78% 72%,rgba(7,82,151,.22),transparent 74%),
    radial-gradient(38% 36% at 18% 78%,rgba(212,175,55,.1),transparent 72%),
    var(--velvet,#17151a);
  color:var(--pearl,#eef0f2);
  overflow:hidden;
  transition:opacity .7s cubic-bezier(.19,1,.22,1),visibility .7s;
}
.koz-mark-loader.is-done{
  opacity:0;visibility:hidden;pointer-events:none;
}
.koz-mark-loader.is-done .kml-stage{
  transform:scale(1.08);opacity:0;
  transition:transform .65s cubic-bezier(.19,1,.22,1),opacity .55s ease;
}

.kml-glow{
  position:absolute;border-radius:50%;pointer-events:none;filter:blur(40px);
  opacity:.72;animation:kmlPulse 2.8s ease-in-out infinite;
}
.kml-glow-a{
  width:min(60vw,520px);height:min(60vw,520px);
  left:50%;top:42%;transform:translate(-50%,-50%);
  background:color-mix(in srgb,var(--purple,#723176) 56%,transparent);
}
.kml-glow-b{
  width:min(42vw,360px);height:min(42vw,360px);
  left:50%;top:58%;transform:translate(-50%,-50%);
  background:color-mix(in srgb,var(--blue,#075297) 48%,transparent);
  animation-delay:-1.4s;
}
@keyframes kmlPulse{
  0%,100%{opacity:.56;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:.92;transform:translate(-50%,-50%) scale(1.1)}
}

.kml-dust{position:absolute;inset:0;pointer-events:none}
.kml-dust i{
  position:absolute;width:3px;height:3px;border-radius:50%;
  background:var(--gold,#d4af37);opacity:0;
  animation:kmlDust 3.2s ease-in-out infinite;
}
.kml-dust i:nth-child(1){left:18%;top:28%;animation-delay:0s}
.kml-dust i:nth-child(2){left:78%;top:24%;animation-delay:.4s}
.kml-dust i:nth-child(3){left:62%;top:70%;animation-delay:.8s}
.kml-dust i:nth-child(4){left:28%;top:72%;animation-delay:1.1s}
.kml-dust i:nth-child(5){left:48%;top:18%;animation-delay:.2s;width:2px;height:2px}
.kml-dust i:nth-child(6){left:86%;top:52%;animation-delay:1.5s}
.kml-dust i:nth-child(7){left:12%;top:55%;animation-delay:1.8s}
.kml-dust i:nth-child(8){left:54%;top:82%;animation-delay:.6s;width:2px;height:2px}
@keyframes kmlDust{
  0%,100%{opacity:0;transform:translateY(8px) scale(.6)}
  35%{opacity:.85;transform:translateY(-6px) scale(1)}
  70%{opacity:.35;transform:translateY(-14px) scale(.8)}
}

.kml-stage{
  position:relative;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:.85rem;
  transform:translateY(0);opacity:1;
}

.kml-mark{
  width:min(22vw,108px);height:auto;
  display:block;
  margin-inline:auto;
}
.kml-mark svg{
  width:100%;height:auto;display:block;
}
.kml-mark svg path[stroke]{
  stroke-dasharray:1000;
  stroke-dashoffset:1000;
}
.kml-mark svg path[fill]{
  opacity:0;
  transform-box:fill-box;
  transform-origin:center;
  transform:scale(.72);
}

/* Draw the supplied logo SVG without altering its source colors. */
.koz-mark-loader.is-drawing .kml-mark svg path[stroke]{
  animation:kmlPathDraw 1.05s cubic-bezier(.4,0,.2,1) both;
}
.koz-mark-loader.is-drawing .kml-mark svg path[stroke]:nth-child(1){animation-delay:.05s}
.koz-mark-loader.is-drawing .kml-mark svg path[stroke]:nth-child(2){animation-delay:.1s}
.koz-mark-loader.is-drawing .kml-mark svg path[stroke]:nth-child(3){animation-delay:.15s}
.koz-mark-loader.is-drawing .kml-mark svg path[stroke]:nth-child(4){animation-delay:.2s}
.koz-mark-loader.is-drawing .kml-mark svg path[stroke]:nth-child(5){animation-delay:.25s}
.koz-mark-loader.is-drawing .kml-mark svg path[stroke]:nth-child(6){animation-delay:.3s}
.koz-mark-loader.is-drawing .kml-mark svg path[stroke]:nth-child(7){animation-delay:.35s}
.koz-mark-loader.is-drawing .kml-mark svg path[stroke]:nth-child(8){animation-delay:.4s}
.koz-mark-loader.is-drawing .kml-mark svg path[stroke]:nth-child(9){animation-delay:.45s}
.koz-mark-loader.is-drawing .kml-mark svg path[stroke]:nth-child(10){animation-delay:.5s}
.koz-mark-loader.is-drawing .kml-mark svg path[fill]{
  animation:kmlPathFill .6s cubic-bezier(.19,1,.22,1) .8s both;
}
@keyframes kmlPathDraw{
  to{stroke-dashoffset:0}
}
@keyframes kmlPathFill{
  to{opacity:1;transform:scale(1)}
}

.kml-stars{
  opacity:0;
  transform-origin:110.4px 125.65px;
  transform:scale(.72);
}
.koz-mark-loader.is-drawing .kml-stars{
  animation:kmlStars .7s cubic-bezier(.19,1,.22,1) .85s forwards;
}
@keyframes kmlStars{
  to{opacity:1;transform:scale(1)}
}

/* Soft gold orbit spark */
.kml-orbit{
  position:absolute;left:50%;top:calc(50% - 1.6rem);
  width:min(30vw,140px);height:min(30vw,140px);
  transform:translate(-50%,-50%);
  pointer-events:none;
  animation:kmlSpin 4.5s linear infinite;
  opacity:0;
}
.koz-mark-loader.is-drawing .kml-orbit{animation:kmlFadeIn .4s ease .3s forwards,kmlSpin 4.5s linear infinite}
.kml-orbit span{
  position:absolute;top:0;left:50%;width:5px;height:5px;margin-left:-2.5px;
  border-radius:50%;background:var(--gold,#d4af37);
  box-shadow:0 0 12px rgba(212,175,55,.85),0 0 2px #fff;
}
@keyframes kmlSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes kmlFadeIn{to{opacity:.9}}

.kml-word{
  margin:1.1rem 0 0;
  font-family:var(--font-serif,'Playfair Display'),Georgia,serif;
  font-weight:500;font-size:clamp(1.05rem,2.4vw,1.35rem);
  letter-spacing:.02em;color:var(--pearl,#eef0f2);
  opacity:0;transform:translateY(10px);
}
.kml-sub{
  margin:0;
  font-family:var(--font-sans,'Poppins'),system-ui,sans-serif;
  font-size:.62rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold);
  opacity:0;transform:translateY(8px);
}
.koz-mark-loader.is-drawing .kml-word{
  animation:kmlTypeIn .7s cubic-bezier(.19,1,.22,1) 1.05s forwards;
}
.koz-mark-loader.is-drawing .kml-sub{
  animation:kmlTypeIn .7s cubic-bezier(.19,1,.22,1) 1.2s forwards;
}
@keyframes kmlTypeIn{
  to{opacity:1;transform:translateY(0)}
}

@media(prefers-reduced-motion:reduce){
  .kml-glow,.kml-dust i,.kml-orbit,
  .koz-mark-loader.is-drawing .kml-mark svg path[stroke],
  .koz-mark-loader.is-drawing .kml-mark svg path[fill]{animation:none!important}
  .kml-mark svg path[stroke]{stroke-dashoffset:0}
  .kml-mark svg path[fill],
  .kml-word,.kml-sub{opacity:1;transform:none;animation:none!important}
  .kml-orbit{opacity:.5}
}

body.kml-locked{overflow:hidden;height:100vh}
