/* Drift ZIP, 8 October 2026: cyan/ember warp 06D and balanced sound A.
   Text treatment extended to this Lapse index's email and archive only. */
:root {
  --silk-colors:linear-gradient(0deg,#001eff,#00cfff 22%,#002fff 36%,#fff134 47%,#ff6100 55%,#001fff 65%,#03f0ff 85%,#0017ef);
  --silk-ink:radial-gradient(ellipse at 20% 60%,#fff4b8 0%,#fff500 8%,#ff4c00 17%,transparent 30%),radial-gradient(ellipse at 75% 25%,#ffffff 0%,#00faff 15%,transparent 30%),linear-gradient(125deg,#001eff,#00cfff 22%,#002fff 36%,#fff134 47%,#ff6100 55%,#001fff 65%,#03f0ff 85%,#0017ef);
}
.silk-link { isolation:isolate;transition:filter .25s ease,transform .18s ease; }
.warp-next.silk-link { text-shadow:none; }
.silk-word { position:relative;display:block;isolation:isolate;filter:drop-shadow(0 0 2px #90e6ff66); }
.silk-word,.silk-word::after {
  background-image:var(--silk-ink);
  background-size:240% 180%,210% 200%,300% 170%;
  background-clip:text;-webkit-background-clip:text;color:transparent;
  animation:silk-word-current 12s ease-in-out -5s infinite alternate;
}
.silk-word::after { content:attr(data-text);position:absolute;inset:0;filter:blur(4px);opacity:.48;pointer-events:none;z-index:-1; }
.silk-word::before {
  content:"";position:absolute;inset:-6px -3px;
  background-image:var(--silk-ink);background-size:240% 180%,210% 200%,300% 170%;
  animation:silk-word-current 12s ease-in-out -5s infinite alternate;
  filter:blur(20px);opacity:.12;z-index:-2;pointer-events:none;border-radius:50%;
}
/* Half the halo on these index links; keep their sharp moving color. */
.site-index .silk-word { filter:drop-shadow(0 0 2px #90e6ff33); }
.site-index .silk-word::after { opacity:.24; }
.site-index .silk-word::before { opacity:.06; }
.silk-link:hover,.silk-link:focus-visible { filter:brightness(1.25);transform:scale(1.04); }
.silk-link:active { transform:scale(.96); }
@keyframes silk-word-current {
  0% { background-position:0% 10%,100% 90%,0% 40%; }
  35% { background-position:55% 85%,40% 15%,45% 70%; }
  70% { background-position:100% 35%,0% 65%,80% 20%; }
  100% { background-position:30% 100%,85% 0%,100% 65%; }
}

.sound-bars { isolation:isolate;border-color:#b7d9ed40;background:#0a0c1080;box-shadow:none; }
.sound-bars::before {
  content:"";position:absolute;inset:7px;border-radius:50%;background:var(--silk-colors);
  background-size:240% 240%;animation:control-silk-flow 12s ease-in-out -5s infinite alternate;
  filter:blur(13px);opacity:.12;z-index:-1;pointer-events:none;
}
.sound-bars i { height:15px;background:var(--silk-colors);background-size:100% 300%;box-shadow:0 0 4px #00cfff35;opacity:.65;animation:control-silk-flow 12s ease-in-out -5s infinite alternate; }
.site-sound-toggle[data-playing="false"]:not([data-sound="loading"]) .sound-bars { animation:none; }
.sound-bars::after { display:none; }
.site-sound-toggle[data-playing="true"] .sound-bars { border-color:#b7d9ed70;box-shadow:none;opacity:1; }
.site-sound-toggle[data-playing="true"] i { opacity:1;animation:control-silk-flow 12s ease-in-out -5s infinite alternate,control-silk-level 2.8s ease-in-out infinite alternate; }
.site-sound-toggle[data-playing="true"] i:nth-child(2) { animation-duration:12s,2.3s;animation-delay:-5s,-.9s; }
.site-sound-toggle[data-playing="true"] i:nth-child(3) { animation-duration:12s,3.4s;animation-delay:-5s,-1.6s; }
.site-sound-toggle[data-playing="true"] i:nth-child(4) { animation-duration:12s,2.6s;animation-delay:-5s,-.6s; }
.site-sound-toggle[data-playing="true"] i:nth-child(5) { animation-duration:12s,2.8s;animation-delay:-5s,-1.2s; }
@keyframes control-silk-flow {
  0% { background-position:0% 10%; }
  35% { background-position:55% 85%; }
  70% { background-position:100% 35%; }
  100% { background-position:30% 100%; }
}
@keyframes control-silk-level { from { transform:scaleY(.3); } to { transform:scaleY(.9); } }

/* Film playback uses the same 40px disc inside a 52px tap target. */
.motion-tools { margin-left:-6px;gap:0; }
.motion-tools .sound-slot { position:static;display:block;flex:none;width:52px;height:52px; }
.motion-toggle,.play-pause { position:relative;width:52px;height:52px;flex:none;padding:6px;opacity:1;isolation:isolate; }
.motion-toggle svg,.play-pause svg { visibility:hidden; }
.motion-toggle::before,.play-pause::before {
  content:"";position:absolute;inset:6px;border:1px solid #b7d9ed40;border-radius:50%;background:#0a0c1080;
  transition:border-color .25s ease,box-shadow .25s ease,transform .18s ease;
}
.motion-toggle::after,.play-pause::after {
  content:"";position:absolute;width:20px;height:20px;pointer-events:none;
  background:var(--silk-colors);background-size:100% 300%;animation:control-silk-flow 12s ease-in-out -5s infinite alternate;
  --playback-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 6h2v12H8zm6 0h2v12h-2z'/%3E%3C/svg%3E");
  -webkit-mask:var(--playback-mask) center/contain no-repeat;mask:var(--playback-mask) center/contain no-repeat;
  filter:drop-shadow(0 0 2px #00cfff55);transition:transform .18s ease;
}
.motion-paused .motion-toggle::after,.viewer.is-paused .play-pause::after {
  --playback-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9 6 9 6-9 6z'/%3E%3C/svg%3E");
}
.motion-toggle:hover::before,.motion-toggle:focus-visible::before,.play-pause:hover::before,.play-pause:focus-visible::before { border-color:#e8f8ffdc;box-shadow:0 0 14px #c0e9ff36; }
.motion-toggle:active::before,.motion-toggle:active::after,.play-pause:active::before,.play-pause:active::after { transform:scale(.94); }
@media(prefers-reduced-motion:reduce) {
  .silk-link,.silk-word,.silk-word::before,.silk-word::after,.sound-bars::before,.sound-bars i { animation:none!important;transition:none!important; }
  .silk-word,.silk-word::before,.silk-word::after { background-position:55% 85%,40% 15%,45% 70%; }
  .sound-bars i,.sound-bars::before { background-position:55% 85%; }
  .silk-link:hover,.silk-link:focus-visible,.silk-link:active { transform:none; }
  .motion-toggle::before,.motion-toggle::after,.play-pause::before,.play-pause::after { animation:none!important;transition:none!important;transform:none; }
  .motion-toggle::after,.play-pause::after { background-position:55% 85%; }
}
