/* TBM Motion Kit v1.0 — base styles. Override the variables to re-theme. */
:root { --tm-accent:#a855f7; --tm-accent-2:#38bdf8; --tm-surface:#14121f; --tm-text:#eeeaff; --tm-radius:12px; }
.tm-caret::after { content:"▍"; margin-left:2px; color:var(--tm-accent); animation:tm-blink 1s steps(1) infinite; }
@keyframes tm-blink { 50% { opacity:0; } }
.tm-glare { position:absolute; inset:0; border-radius:inherit; pointer-events:none; }
.tm-spotlight { position:relative; isolation:isolate; }
.tm-spotlight::before { content:""; position:absolute; inset:0; border-radius:inherit; z-index:-1; pointer-events:none;
  background:radial-gradient(260px circle at var(--tm-x,50%) var(--tm-y,50%), color-mix(in srgb,var(--tm-accent) 35%,transparent), transparent 70%); }
.tm-ripple { position:absolute; border-radius:50%; background:currentColor; pointer-events:none; }
.tm-hold-fill { position:absolute; inset:0; background:color-mix(in srgb,#ef4444 55%,transparent); transform:scaleX(0); transform-origin:0 50%; z-index:0; }
[data-tm~="hold"] > :not(.tm-hold-fill) { position:relative; z-index:1; }
.tm-acc-body { overflow:hidden; }
.tm-tab-bar { position:absolute; left:0; bottom:0; height:2px; width:0; background:linear-gradient(90deg,var(--tm-accent),var(--tm-accent-2)); border-radius:2px; }
[data-tm-tab] { cursor:pointer; opacity:.6; transition:opacity .2s; } [data-tm-tab].tm-active { opacity:1; }
.tm-progress { height:8px; border-radius:99px; background:var(--tm-surface); overflow:hidden; }
.tm-progress-fill { height:100%; background:linear-gradient(90deg,var(--tm-accent),var(--tm-accent-2)); border-radius:inherit; }
[data-tm~="timeline"] { position:relative; padding-left:28px; }
[data-tm~="timeline"]::before { content:""; position:absolute; left:8px; top:6px; width:2px; height:calc((100% - 12px) * var(--tm-line,0));
  background:linear-gradient(var(--tm-accent),var(--tm-accent-2)); }
.tm-step { position:relative; margin-bottom:18px; }
.tm-step::before { content:""; position:absolute; left:-25px; top:5px; width:12px; height:12px; border-radius:50%; background:var(--tm-accent); box-shadow:0 0 12px var(--tm-accent); }
[data-tm~="stack"] { position:relative; cursor:pointer; }
[data-tm~="stack"] > * { position:absolute; inset:0; }
[data-tm~="scroll-progress"] { position:fixed; top:0; left:0; right:0; height:3px; z-index:9999; background:linear-gradient(90deg,var(--tm-accent),var(--tm-accent-2)); }
.tm-toasts { position:fixed; right:16px; bottom:16px; display:flex; flex-direction:column; gap:8px; z-index:10000; }
.tm-toast { padding:12px 16px; border-radius:var(--tm-radius); background:var(--tm-surface); color:var(--tm-text); border:1px solid #2a2640; box-shadow:0 8px 30px #0008; min-width:220px; }
.tm-toast.tm-success { border-color:#22c55e; } .tm-toast.tm-error { border-color:#ef4444; }
.tm-curtain { position:fixed; inset:0; z-index:10001; background:linear-gradient(135deg,var(--tm-accent),var(--tm-accent-2)); transform-origin:50% 100%; }
@media (prefers-reduced-motion: reduce) { .tm-caret::after { animation:none; } }
